Conception et implémentation du côté serveur Conception et...
Transcript of Conception et implémentation du côté serveur Conception et...
- Conception et implémentation du côté serveur (♣)
- Conception et implémentation du côté client (♦)
UNIVERSITE D’ANTANANARIVO
ECOLE SUPERIEURE POLYTECHNIQUE
D’ANTANANARIVO
○○○○ ○○○○
DEPARTEMENT ELECTRONIQUE ----------------------------------------
MEMOIRE DE FIN D’ETUDES EN VUE DE L’OBTENTION DU
DIPLOME D’INGENIEUR
Spécialité : ELECTRONIQUE Option : Informatique Industrielle
Présenté par : Mlle RAHARIVOLA ALINTSOA Lala Harinj aka (♣)
Mr ANDRIAMAHALISON Rijanavalona Ronald (♦)
Soutenu le 28 Février 2006 N° : 04 / EN / II / 05 (♣) 05 / EN / II / 05 (♦) Année universitaire : 2004 - 2005
DEVELOPPEMENT DE TRANSCRYPT 1.0
LOGICIEL DE SECURITE POUR LA MONETIQUE
- Conception et implémentation du côté serveur (♣)
- Conception et implémentation du côté client (♦)
Présenté par : Mlle RAHARIVOLA ALINTSOA Lala Harinj aka (♣)
Mr ANDRIAMAHALISON Rijanavalona Ronald (♦)
• Devant le Jury :
- Monsieur RASTEFANO Elisée Président
- Monsieur RAKOTOMIRAHO Soloniaina Examinateur
- Monsieur RABESANDRATANA ANDRIAMIHAJA M. Examinateur
- Monsieur ANDRIAMANANTSOA Guy Danielson Examinateur
• Rapporteur : Madame RABEHERIMANANA Lyliane Irène
Soutenu le 28 Février 2006
Ny zava-miafin’i Jehovah dia amin’izay
matahotra Azy ; ary asehony azy ny
fanekeny.
Sal 25 : 14
REMERCIEMENTS
Nous rendons grâce à Dieu pour sa bonté, de nous avoir donné la force et la santé durant nos études et la réalisation de ce mémoire.
Nous tenons également à adresser nos vifs remerciements aux personnes suivantes sans qui ce travail de mémoire n’aurait pas pu être réalisé :
-Monsieur RASTEFANO Elisée, Chef du Département Electronique qui a bien voulu présider le Jury. Nous tenons à lui exprimer nos remerciements les plus sincères,
-Madame RABEHERIMANANA Lyliane Irène, notre encadreur, qui n’a cessé de nous guider et de nous prodiguer de bons conseils pour l’accomplissement de ce mémoire. Nous tenons à lui présenter nos vifs remerciements,
-Monsieur, RAKOTOMIRAHO Soloniaina, -Monsieur RABESANDRATANA ANDRIAMIHAJA M., -Monsieur ANDRIAMANANTSOA Guy Danielson, qui ont accepté d’apprécier notre travail, -Tous les membres du corps professoral du département
Electronique qui ont tout fait pour que nous puissions faire de merveilleuses années d’études en leur compagnie,
-Nos familles respectives, merci pour la prière, les aides financières et morales. Merci pour l’encouragement et les conseils. Votre aimable assistance nous est inoubliable ; vous qui avez bien voulu nous apporter votre noble contribution, pour nous permettre de mener à bon terme cet ouvrage,
-Et pour tous ceux qui ont contribué de près ou de loin à l’élaboration de ce mémoire.
Merci à tous ! Que Dieu vous bénisse !
Harinjaka Ronald
RESUME
Bien qu’Internet offre plusieurs opportunités de services dans le domaine
financier, son utilisation expose à de nombreux dangers sur la sécurité des données
confidentielles lors d’une transaction.
Le moyen le plus adéquat afin d’assurer la confidentialité et l’intégrité de
données circulant sur le réseau est le recours à la cryptographie. Cette dernière constitue
le fondement de tous les protocoles de sécurité existant aujourd’hui pour l’encapsulation
des informations.
Pour sécuriser les transactions bancaires sur Internet, nous avons créé
TransCrypt, basé sur un système cryptographique hybride. D’une part, il permet aux
utilisateurs de s’authentifier avec le serveur et de crypter les données avant de les
envoyer grâce à la combinaison de deux algorithmes RSA et Blowfish. D’autre part, il
assure aussi la protection de données enregistrées dans le poste de travail par un nouvel
algorithme que nous avons développé.
ABSTRACT
Although Internet offers several opportunities of services in the financial
domain, it exposes to many dangers on the confidential data at the time of the
transaction.
The device which is the most adequate to assure confidentiality and the integrity
of data circulating on the network are the recourse to the cryptography. This last
constitutes the foundation of all security protocols existing nowadays for the
encapsulation of the information.
To protect banking transaction on Internet, we created TransCrypt , based on
hybrid cryptographic system. Firstly, it allows the users to authenticate themselves with
the server and encrypt data before sending from the combination of RSA algorithm and
Blowfish. Secondly, it also assures the data security recorded in the work station by a
new algorithm that we developed.
iii
TABLE DES MATIERES Page
Remerciements .................................................................................................... i
Résumé .............................................................................................................. ii
Table des matières ............................................................................................ iii
Liste des figures ................................................................................................. vi
Liste des tableaux ............................................................................................. vii
Liste des abréviations ...................................................................................... viii
INTRODUCTION ................................................................................................ 1
Chapitre 1 : GENERALITES SUR LES RESEAUX INFORMATIQUES 1.1 NOTIONS DE BASE SUR LES RESEAUX ................................................................ 2
1.1.1 DEFINITIONS ...................................................................................................... 2 a) RESEAU INFORMATIQUE
b) ADRESSE IP
c) PROTOCOLE
d) RESEAU A COMMUTATION PAR PAQUETS
(i) Commutation par circuit virtuel (ii) Commutation de datagramme
1.1.2 STRUCTURATION EN COUCHES ......................................................................... 3 a) MODELE DE REFERENCE OSI
b) MODELE TCP/IP
1.1.3 ARCHITECTURE CLIENT/SERVEUR .................................................................... 6 a) PRESENTATION DU MODELE
b) DIFFERENTES GENERATIONS
(i) Architecture 1-Tiers (ii) Architecture 2-Tiers (iii) Architecture 3-Tiers (iv) Architecture multi niveaux
1.2 PRINCIPE DES TRANSACTIONS BANCAIRES....................................................... 8 1.2.1 MONETIQUE ....................................................................................................... 8
a) DEFINITION
b) CARTES BANCAIRES
(i) Typologie des cartes (ii) Technologie des cartes (iii) Contrat
c) MONETIQUE COMMERÇANT
(i) Contrat (ii) Autorisation (iii) Matériel (iv) Télécollecte
d) CIRCUIT DE COMPENSATION
(i) Définition (ii) SWIFT
1.2.2 MENACES SUR LES TRANSACTIONS ........................................................... 13 a) ECOUTE
b) USURPATION D’IDENTITE
c) PHISHING
iv
Chapitre 2 : SECURITE DES TRANSACTIONS 2.1 PROTECTION DES RESEAUX ............................................................................... 15
2.1.1 PARE-FEU ......................................................................................................... 15 a) PRINCIPE
b) DIFFERENTS TYPES DE FILTRAGE
(i) Filtrage simple de paquets (ii) Filtrage par suivi de connexion (iii) Filtrage applicatif
c) TRANSLATION D’ADRESSE OU NAT
d) LIMITES D’UN PARE-FEU
2.1.2 RESEAU PRIVE VIRTUEL ................................................................................... 17 a) CONCEPT DU VPN
b) PRINCIPE DE FONCTIONNEMENT
c) PRINCIPAUX PROTOCOLES DE VPN
(i) Protocole PPP (ii) Protocoles de tunneling
2.2 PROTECTIONS DES ACHATS SUR INTERNET .................................................... 19 2.2.1 PROTOCOLE SSL ............................................................................................ 19
a) PRESENTATION
(i) La confidentialité (ii) L’intégrité des données (iii) L’authentification
b) SOUS COUCHES DE SSL
(i) Handshake (ii) Couche SSL Change Cipher Spe (iii) Couche SSL Alert (iv) Couche SSL Record
c) DEROULEMENT DES ECHANGES SSL
d) ASPECTS CRYPTOGRAPHIQUES DE SSL
e) EXEMPLE D’APPLICATION DE SSL
(i) Implémentation (ii) Paiement sur Internet sécurisé par SSL
f) LIMITES DU SSL
2.2.2 PROTOCOLE SET ............................................................................................... 24 a) GENERALITE
(i) Principe (ii) Techniques utilisées
b) DEROULEMENT D’UN ECHANGE SET
c) LES PROGICIELS DE PAIEMENT
(i) IBM Consumer Wallet (ii) IBM Payment Server (iii) IBM Payment Gateway
d) SECURISATION APPORTEE PAR SET
(i) Au cours d’une transaction (ii) Au niveau du poste de travail du client
2.2.3 LES PROTOCOLES UTILISANT LA CARTE A PUCE ............................................. 29 a) FONCTIONS DES CARTES A PUCE
b) STRUCTURE DE PAIEMENT
v
Chapitre 3 : CONCEPTION ET REALISATION DE TRANSCRYPT ................ 31 3.1 CHOIX DES ALGORITHMES DE CHIFFREMENT ................................................ 31
3.1.1 ALGORITHME BLOWFISH ................................................................................. 32 a) CRYPTAGE
b) DECRYPTAGE
3.1.2 CRYPTAGE ASYMETRIQUE RSA ........................................................................ 34 a) PRINCIPE
b) GESTION DES CLES
c) SECURITE DU RSA
3.1.3 CHIFFREMENT DE FLUX EN MODE CFB ............................................................ 35 a) CHIFFREMENT DE FLUX
b) MODE OPERATOIRE CFB
c) MODE DE CHIFFREMENT ET DE DECHIFFREMENT
3.2 DEVELOPPEMENT DE TRANSCRYPT ................................................................. 36 3.2.1 PRINCIPE DE FONCTIONNEMENT...................................................................... 37
a) DU COTE CLIENT
b) DU COTE SERVEUR 3.2.2 RESULTATS DE LA SIMULATION ...................................................................... 40
a) FENETRES DU COTE CLIENT
(i) Fenêtre d’accueil (ii) Fenêtre principale (iii) Fenêtre pour le transfert du message (iv) Fenêtre pour le transfert du fichier
b) FENETRES DU COTE SERVEUR
(i) Fenêtre principale (ii) fenêtre pour la réception de données
3.2.3 CONFIGURATION MINIMALE ............................................................................ 47
CONCLUSION .................................................................................................. 48 ANNEXES
Annexe 1 : DIFFERENTES METHODES DE CRYPTAGE ............................... 50
Annexe 2 : CERTIFICAT X-509 ....................................................................... 51
Annexe 3 : ALGORITHME BLOWFISH ............................................................ 53
Annexe 4 : ALGORITHME RSA ........................................................................ 56
Annexe 5 : ALGORITHME DE CHIFFREMENT DE FLUX ............................... 60
Annexe 6 : LOI DE L’INFORMATIQUE ET DES LIBERTES ............................. 61
REFERENCES ................................................................................................. 63
vi
LISTE DES FIGURES
Figure 1.1 : Modèle en couches ....................................................................................... 4
Figure 1.2 : Modèle client/serveur……… ....................................................................... 6
Figure 1.3 : Description d’une carte bancaire ................................................................ 10
Figure 1.4 : Schéma d’une transaction bancaire……… ................................................ 12
Figure 1.5 : Réseau SWIFT ............................................................................................ 13
Figure 2.1 : Pare-feu réseau… ....................................................................................... 15
Figure 2.2 : Liaison point à point d’un VPN…… .......................................................... 18
Figure 2.3 : Positionnement de la couche SSL dans la pile TCP / IP ............................ 20
Figure 2.4 : Principe de SET…… .................................................................................. 24
Figure 2.5 : Schéma des échanges dans SET ................................................................ .26
Figure 2.6 : Portefeuille électronique de l’acheteur ....................................................... 27
Figure 2.7 : Adaptation du serveur… ............................................................................. 27
Figure 2.8 : Architecture de la passerelle de paiement .................................................. 28
Figure 3.1 : Algorithme de Blowfish…… ..................................................................... 33
Figure 3.2 : Mode de chiffrement et de déchiffrement .................................................. 36
Figure 3.3 : Organigramme de l’application client ........................................................ 38
Figure 3.4 : Organigramme de l’application serveur… ................................................. 39
Figure 3.5 : Fenêtre d’accueil pour le client…............................................................... 40
Figure 3.6 : Menu Fichier…………………………… ................................................... 41
Figure 3.7 : Boîte de dialogue pour la saisie de l’adresse IP… ..................................... 41
Figure 3.8 : Menu Option…………… ........................................................................... 42
Figure 3.9 : Fenêtre pour le changement du mot de passe…… ..................................... 42
Figure 3.10 : Menu Aide……………………………… ................................................ 42
Figure 3.11 : Fenêtre d’Aide à propos……………….................................................... 43
Figure 3.12 : Fenêtre Certificat du Serveur………………… ....................................... 43
Figure 3.13 : Fenêtre pour le transfert du message………… ........................................ 44
Figure 3.14 : Fenêtre pour le transfert du fichier…………… ....................................... 45
Figure 3.15 : Fenêtre principale de l’application serveur……………… ....................... 45
Figure 3.16 : Fenêtre pour la réception de données……………… ............................... 46
Figure 1.17 : Fenêtre d’enregistrement du fichier……………… .................................. 47
Figure A3 : Schéma de Feistel………………… ........................................................... 53
vii
LISTE DES TABLEAUX
Tableau 1 : Rôle des sept couches du modèle de référence OSI………… ...................... 5
Tableau 2 : Rôle des quatre couches du modèle TCP/IP………….................................. 5
Tableau 3 : Les sous couches de SSL…………… ......................................................... 21
Tableau 4 : Ports utilisés………………………………………… ................................ 22
Tableau 5 : Comparaison des algorithmes……………................................................ ..31
Tableau 6 : Gestion des clés RSA…………………… .................................................. 34
Tableau 7 : Caractéristiques du logiciel…………… ..................................................... 47
Tableau A1 : Structure d’un certificat X.509…………………..................................... .52
Tableau A2 : Algorithme d’Euclide………………………… ....................................... 57
Tableau A3 : Algorithme d’Euclide étendu………………… ........................................ 58
viii
LISTE DES ABREVIATIONS
ACL Access Control List
ATM Asynchronous Transfer Mode
CA Certification Authority
CB Carte Bancaire
CBC Cipher Block Chaining
CD-ROM Compact Disk Read Only Memory
CFB Cipher Feedback
CNIL Commission Nationale de l’Informatique et des Libertés
CPU Central Processing Unit
C-SET Chip-Secure Electronic Transaction
CV Circuit Virtuel
DAB Distributeur Automatique de Billet
DES Data Encryption Standard
DN Distinguished Name
FTP File Transport Protocol
GSM Global System for Mobile
HTTP Hypertext Transfer Protocol
IANA Internet Assigned Names Authority
IBM International Business Machines
IDEA International Data Encryption Algorithm
IMAP Internet Message Access Protocol
INTERNET INTERconnected NETwork
IP Internet Protocol
ISO International Standardizing Organization
L2F Layer Two Forwarding
L2TP Layer Two Tunnelling Protocol
LAN Local Area Network
LDAP Lightweight Directory Access Protocol
MAC Message Authentication Code
MAN Metropolitan Area Network
MD Message Digest
NAT Network Address Translation
ix
OS Operating System
OSI Open Systems Interconnection
PC Personal Computer
PDU Protocol Data Unit
PGA Payment Gateway Application
PGCD Plus Grand Commun Diviseur
POP Post Office Protocol
PPP Point to Point Protocol
PPTP Point to Point Tunnelling Protocol
UDP User Datagram Protocol
RAM Random Access Memory
RC Rivest’s Cipher
RSA River Shamir Adleman
RTC Réseau Téléphonique Commuté
SET Secure Electronic Transaction
SGBDR Système de Gestion de Base de Données Relationelles
SHA Secure Hash Algorithm
SMTP Simple Mail Transport Protocol
SSL Secure Socket Layer
SWIFT Society Worldwide Interbank Financial Transaction
TCP/IP Transport Control Protocol / Internet Protocol
TELNET Terminal Network
TPE Terminal de Paiement Electronique
TSM Transaction Services Manager
UIT Union Internationale des Télécommunications
VI Vecteur d’Initialisation
VPN Virtual Private Network
WAN Wide Area Network
1
INTRODUCTION
Grâce au développement des technologies informatiques, l’homme a pu mettre
en place le réseau mondial d'ordinateurs permettant la communication et l’échange de
données dans le monde entier, c’est l’Internet ou INTERconnected NETworks. Ainsi, ce
dernier est devenu une ressource indispensable au bon fonctionnement d'une
organisation, d’une entreprise, ...
Du point de vue économique, le recours à l’Internet a créé de nouvelles
opportunités de services dans la gestion du processus d’émission et de traitement des
transactions bancaires. Que ce soit pour effectuer des transferts de fonds, consulter le
solde de son compte bancaire, ou encore faire du commerce électronique,… Internet
devient de plus en plus l'espace de libre échange pour les entreprises et un vaste
supermarché cybernétique destiné aux particuliers.
Cependant, l’accès fréquent à un tel réseau livre les utilisateurs à une impasse :
d’une part, la grande quantité d’informations plus ou moins confidentielles qui circule,
et d’autre part la facilité accrue de les intercepter. La difficulté majeure consiste à
assurer la sécurité des partis impliqués, ce qui n'est pas encore totalement résolue. Et
c’est l’essence même de ce mémoire de fin d’études qui s’intitule « Développement
de TransCrypt 1.0 logiciel de sécurité pour la monétique ».
Ce rapport comporte trois chapitres. Le premier chapitre introduira les
généralités sur les réseaux, en présentant les notions de base nécessaires ainsi que ses
applications dans les transactions bancaires. Le second décrira la démarche de
caractérisation de la sécurité des transactions, en exposant la protection des réseaux, et
celle des achats sur Internet. Enfin, le dernier chapitre sera consacré à la description du
logiciel de transfert de données sécurisées TransCrypt que nous avons développé. Et les
résultats de simulation seront présentés.
2
Chapitre 1 : GENERALITES SUR LES RESEAUX INFORMATIQUES
Ce chapitre présente les éléments de base des réseaux informatiques. Plus
précisément, il concerne l’Internet ainsi que son utilité dans le domaine bancaire.
1.1 NOTIONS DE BASE SUR LES RESEAUX
A l’ère actuelle, qu’il soit d’entreprise ou familial, le réseau est devenu un outil
incontournable. En reliant les ordinateurs entre eux, il leur permet de communiquer, de
partager des données, ou encore d’accomplir des tâches en commun.
1.1.1 DEFINITIONS
a) RESEAU INFORMATIQUE
Le Réseau informatique est constitué par un ensemble d’équipements
informatiques (ordinateurs ou périphériques) autonomes connectés entre eux, et dont les
informations échangées sont sous forme de données numériques.
Suivant la distance qui sépare les ordinateurs, il existe plusieurs catégories de réseaux.
- Les LAN Local Area Network qui correspondent à des réseaux d’entreprise dont la
distance entre les ordinateurs peut atteindre plusieurs centaines de mètres [1],
- Les MAN Metropolitan Area Network qui correspondent à une interconnexion de
quelques bâtiments se trouvant dans une ville [1],
- Les WAN Wide Area Network destinés à transporter des données à l’échelle d’un
pays. Ces réseaux sont appelés réseaux étendus [1].
b) ADRESSE IP
Dans un réseau, afin que les ordinateurs puissent être reconnus, l’attribution
d’une adresse IP à chaque machine est exigée. Pour IPv4, cette adresse est écrite sur 32
bits appelés octets pointés et chaque octet est noté de 0 à 255. De plus, pour accéder à
des services réseau, il faut associer celle-ci avec le numéro de port (80 pour le http, 21
pour le ftp,…).
Ainsi le couple formé par {adresse IP, numéro de port} s’appelle le socket.
3
c) PROTOCOLE
Le protocole est l’ensemble des règles et des procédures à respecter pour
l’échange des informations entre deux entités de même niveau. Dans le domaine du
réseau informatique, les protocoles sont les langages que les ordinateurs utilisent pour
se communiquer entre eux indépendamment de la liaison [1].
d) RESEAU A COMMUTATION PAR PAQUETS
Afin d’améliorer la performance des transferts d’informations à travers le réseau,
les données sont fragmentées en de petites unités (de 1000 à 2000 bits) appelées
paquets. La commutation par paquets consiste à l’acheminement de ces derniers de la
source à la destination. Pour ce faire, il existe deux techniques différentes.
(i) Commutation par circuit virtuel
La commutation par circuit virtuel (CV) appelée modèle orienté connexion
nécessite la mise en place du chemin avant le transfert proprement dit comme une
véritable commutation de circuit et les paquets suivent le même chemin. Ce système est
utilisé dans les réseaux ATM, X25,…
(ii) Commutation de datagramme
Dans la commutation de datagramme, les paquets sont acheminés
indépendamment les uns des autres et chaque commutateur maintient une table de
routage pour aiguiller les paquets. Il n’y a pas de phase d’établissement de connexion,
c’est un modèle sans connexion [2]. Certains services sur l’Internet en sont des
exemples comme les e-mail.
1.1.2 STRUCTURATION EN COUCHES
Au cours des deux dernières décennies, le nombre et la taille des réseaux ont
augmenté considérablement. Cependant, bon nombre de réseaux ont été installés à l'aide
de plates-formes matérielles et logicielles différentes. Il en a résulté une incompatibilité
et il est devenu difficile d'établir des communications entre des réseaux fondés sur des
spécifications différentes.
Pour assurer l’interopérabilité entre ces différentes technologies, des normes
internationales ont été établies pour garantir la communication entre systèmes ouverts.
Un système est dit ouvert lorsqu’il permet d’échanger des informations entre
équipements hétérogènes, issus de constructeurs différents.
L’architecture, constituée par l’ensemble des protocoles nécessaires pour réaliser
cette communication, se base sur une superposition de niveaux de communication
4
Protocole de la couche (N-1) Interface (N)/(N-1)
Entité émettrice
AN-1
BN-1
AN BN
A1
B1
Support de communication
Entité réceptrice
appelés couches. Le rôle de chaque couche est de fournir un service à la couche
immédiatement supérieure. Dans ce contexte, le langage entre couches adjacentes
s’appelle interface de communication, et entre les couches de même niveau le protocole
de communication [3]. En réalité, aucune donnée ne passe directement d’une entité à
l’autre mais du côté émetteur, les données partent d’une couche haute vers la plus basse,
empruntent le support physique et remontent les couches du côté récepteur (Fig 1.1).
Figure 1.1 : Modèle en couches.
Trois grandes architectures se disputent le marché mondial actuellement. La
première est le modèle de référence OSI de l’ISO, la seconde est le modèle TCP/IP
utilisé sur Internet et la troisième a été introduite par l’UIT pour l’environnement ATM.
Dans ce paragraphe, les deux premières sont décrites.
a) MODELE DE REFERENCE OSI
Le premier objectif de la norme OSI Open Systems Interconnection a été de
définir un modèle d’architecture de réseau basé sur un découpage en sept couches
(Tab.1). Chacune de ces couches a une fonctionnalité particulière.
Afin de permettre l'acheminement des paquets de données entre l'ordinateur
source et l'ordinateur de destination, chaque couche du modèle OSI au niveau de
l'ordinateur source doit communiquer avec sa couche homologue sur l'ordinateur de
destination. Et les informations échangées entre les couches homologues sont appelées
unités de données de protocole (ou PDU Protocol Data Unit) [3].
5
Tableau 1 : Rôle des sept couches du modèle de référence OSI.
N° Couches Rôles des couches Unités
7 Application Interface avec les applications A.PDU
6 Présentation Format de données P.PDU
5 Session Communication entre les hôtes S.PDU
4 Transport Connexion de bout en bout segments
3 Réseau Adressage et Routage paquets
2 Liaison de
données Détection et correction des erreurs trames
1 Physique Transmission binaire bits
b) MODELE TCP/IP
TCP/IP Transmission Control Protocol / Internet Protocol est une famille de
protocoles. Son rôle est de normaliser les communications entre ordinateurs sur Internet.
Pour cela, le modèle se base sur l'adressage IP [4].
Il est étroitement lié au modèle de référence OSI dans les couches inférieures et
prend en charge tous les protocoles physiques et de liaison de données standard.
Le modèle TCP/IP (Tab.2) ne contient que quatre couches mais toutes les
fonctionnalités du modèle OSI y sont présentées.
Tableau 2 : Rôle des quatre couches du modèle TCP/IP.
N° Couches Rôles des couches Unités
4 Application Interface avec les OS Operating System données
3 Transport Communication entre machines
Echange de données, qualité de service segments
2 Internet Acheminement, gestion de fragmentation
et réassemblage des datagrammes datagrammes
1 Accès réseau Accès à un réseau
Spécification de transmission de données trames
6
1.1.3 ARCHITECTURE CLIENT/SERVEUR
L’architecture Client/Serveur est un concept logiciel qui ne date pas
d’aujourd’hui. Dès l’apparition des réseaux, les développeurs ont pensé répartir
l’exécution d’une application entre plusieurs machines connectées par le réseau.
a) PRESENTATION DU MODELE
Au début de l’informatique, les Mainframes étaient les architectures dominantes
dans les entreprises. Les applications et les données étaient centralisées sur un gros
ordinateur entouré de terminaux passifs aux faibles capacités (permettant juste la saisie
des données et l’affichage des résultats).
Petit à petit, le modèle client/serveur a pris la relève et permet, par l’utilisation
de nouvelles méthodes et techniques, de passer outre les limites conçues avec
l’environnement Mainframe et les systèmes propriétaires, et ainsi d’améliorer
l’interopérabilité, la flexibilité des systèmes. En effet, ce modèle permet l’unicité de
l’information diffusée parce que le serveur est au centre du réseau et peut gérer des
ressources communes à tous les utilisateurs.
Les communications, contrairement au modèle peer to peer, se font entre un
client et un serveur (Fig.1.2).
• Le Client est un processus demandant l'exécution d'une opération au serveur
par envoi de message ou requête contenant le descriptif de l'opération à exécuter,
• Le Serveur accomplit l’opération demandée par le client en lui transmettant le
résultat ou réponse.
Figure 1.2 : Modèle client/serveur.
Ce type d’architecture est évolutif parce que l’ajout ou le retrait de clients se fait
aisément.
7
b) DIFFERENTES GENERATIONS
Plusieurs générations d’architecture ont vu le jour.
(i) Architecture 1-Tiers
Cette première génération est née vers les années 70. Le client est passif et
n’exécute rien, il se présente sous forme de terminal ou émulation de terminal. Ainsi, le
flux de données entre le client et le serveur ne véhicule que des informations de
présentation [5].
(ii) Architecture 2-Tiers
La deuxième génération est apparue avec la vague de PC du milieu des années
80. La loi de Grash stipule qu’à puissance égale, plusieurs petites machines coûtent
moins chères qu’un groupe de grosses machines. Le serveur ne s’occupe plus que de la
gestion des données.
Ce type d’architecture est aussi appelé architecture à deux niveaux, le niveau un
est le client et le niveau deux est celui du serveur. Les traitements sont sur le client et les
données manipulées sont sur le serveur. Le plus gros problème est celui de la
maintenance parce que la moindre modification oblige à mettre à niveau chaque poste
client. De plus, les performances de l’application dépendent beaucoup des ressources
clients [5].
(iii) Architecture 3-Tiers
La troisième génération a vu le jour vers le début des années 90. Vu les
problèmes de l’architecture à deux niveaux, l’ajout d’un autre niveau s’avère nécessaire.
Le modèle à trois niveaux apparaît, à savoir :
• Niveau présentation qui est l’interface pour l’utilisateur,
• Niveau métier qui recouvre la logique applicative,
• Niveau données qui possède les données de l’application [6]. En général, ce
sont les serveurs de base de données, documents XML,…
(iv) Architecture multi niveaux
Ce genre d’architecture est une optimisation de l’architecture précédente. Elle se
compose de différents niveaux qui sont en général :
• Interface utilisateur qui est la couche chargée de gérer les interactions entre
l’utilisateur et l’application (Browser Internet, Application de bureau,…)
• Logique d’entreprise qui permet de définir ce que doit afficher l’interface
utilisateur et la manière dont les requêtes doivent être traitées,
• Logique métier qui modélise les règles métiers de l’entreprise,
8
• Service d’infrastructure qui est une fonctionnalité aux composants (connexion,
transaction,…)
• Données qui sont les données de l’entreprise [6].
Remarque
Contrairement à la précédente, dans l’architecture PEER To PEER, il n'y a pas
de serveur dédié. Ainsi chaque ordinateur est à la fois serveur et client. Cela signifie que
chacun des ordinateurs est libre de partager ses ressources. Un ordinateur relié à un
autre périphérique pourra donc éventuellement le partager afin que tous les autres
ordinateurs puissent y accéder via le réseau.
1.2 PRINCIPE DES TRANSACTIONS BANCAIRES
Issue de la rencontre entre les techniques de la communication, de l'informatique
et de l'électronique, une véritable révolution dans les échanges économiques a permis
l’apparition de la monétique. Cette dernière autorise la dématérialisation des espèces
sonnantes et trébuchantes.
1.2.1 MONETIQUE
a) DÉFINITION
La monétique est l’ensemble des techniques électroniques, informatiques,
télématiques permettant d’effectuer des transactions, des transferts de fonds ou toute
autre opération qui relie un utilisateur final équipé d’une carte avec un ensemble de
services [7].
Au sens strict du terme et à l'origine, la monétique est étroitement liée au
système de paiement électronique qui intègre le triptyque :
- carte à puce ou à piste magnétique,
- terminal de paiement électronique (TPE) ou distributeur automatique de billets (DAB),
- établissement bancaire.
b) CARTES BANCAIRES
Depuis ces dernières années, l'utilisation des cartes bancaires occupe une place
de plus en plus importante dans les opérations financières grâce notamment au
développement des transactions effectuées à distance.
9
(i) Typologie des cartes
Dans le cas d’un paiement électronique trois types de cartes existent :
• Cartes de débit : le montant de paiements payés par la carte de débit sera
directement prélevé sur le compte bancaire de l’utilisateur de la carte (Maestro,
VISA Electron).
• Cartes de crédit : permettent à son utilisateur de payer des marchandises à
crédit en ayant l’autorisation de l’organisme émetteur de la carte. Le montant
crédité pourra être débité plus tard sur le compte bancaire de l’utilisateur
(Mastercard, VISA) mais ce montant est déterminé à l’avance.
• Cartes accréditives : ce sont des cartes qui n’intègrent aucune limite de créance
mais dont le montant doit être remboursé à chaque fin de mois.
(ii) Technologie des cartes
D’abord une carte bancaire est identifiée par les caractéristiques suivantes :
- la nature de la carte : VISA, EUROCARD, MASTERCARD,…
- le numéro et la date de validité de la carte,
- le cryptogramme visuel pour les cartes bleues (cartes françaises).
Lors d’un achat à distance, le paiement s’effectue par communication seulement du
numéro apparent de la carte, accompagné parfois de la date d’expiration. Or l’actualité
récente montre que ce système peut engendrer des phénomènes de fraude et de
contrefaçon. Afin de prévenir un tel risque une nouvelle technologie a été développée,
la carte à puce.
La carte à puce contient trois systèmes de sécurité tels que la puce, la piste
magnétique et le numéro gravé sur la carte (Fig1.3).
La puce renferme un numéro à 16 chiffres, la date d’expiration, nom et prénom
du porteur ainsi que la valeur d’authentification obtenue par un calcul cryptographique.
Un code à 4 chiffres est nécessaire pour la lecture des informations sur la puce [8].
La piste magnétique ne contient pas directement le code secret. Elle comporte,
entre autres, les mêmes informations que la puce et des informations sur le code du
pays origine et éventuellement un offset qui servirait pour retrouver le code secret à
quatre chiffres.
10
Figure 1.3 : Description d’une carte bancaire [8].
(iii) Contrat
Pour obtenir une carte auprès de sa banque, le porteur doit signer un contrat
définissant les services rendus par la carte, les droits, l’obligation, les responsabilités du
porteur et ceux de la banque. Il y a aussi les conditions financières telles que
l’irrévocabilité du paiement, les conditions d’approvisionnement du compte et les
plafonds appliqués à la carte.
c) MONETIQUE COMMERÇANT
(i) Contrat
De sa part, le commerçant doit mettre en place les conditions préalables à
l’acceptation d’un règlement par carte. Il doit y avoir aussi un contrat définissant les
droits, l’obligation, les responsabilités de chacun, la garantie du paiement et les
mesures de sécurité qui s’y rattachent comme les vérifications visuelles telles que
l’hologramme, le logo, les dates de validité.
11
(ii) Autorisation
A partir d’une certaine somme, le commerçant doit demander l’autorisation
auprès de l’émetteur de la carte (ou son représentant). Cela permet d’en vérifier la
validité et garantit le paiement de la transaction en cours. Le contact peut être par
téléphone ou de façon automatique.
Lorsqu’une demande d’autorisation est déclenchée, l’émetteur accepte ou refuse
après avoir vérifié l’identité du porteur.
(iii) Matériel
Dans le cas d’un achat dans un magasin, le TPE ou Terminal de Paiement
Electronique est utilisé pour la lecture et le contrôle de la carte. Il est connecté
directement au serveur de la banque acquéreur à l’aide d’une ligne privée (pour les TPE
RTC) ou par des faisceaux hertziens (pour les TPE GSM). Chaque terminal doit être
authentifié au préalable pour avoir l’accès au serveur de la banque. Et pour la
confidentialité des données, les messages échangés sont encapsulés.
(iv) Télécollecte
La télécollecte est l’échange d’informations entre le serveur de la banque du
commerçant et le TPE. Elle peut être déclenchée automatiquement ou manuellement.
Lorsque la connexion est effective, trois transferts sont réalisés :
- mise à jour des paramètres du contrat,
- transfert du fichier de transactions c’est-à-dire du TPE vers le serveur,
- mise à jour des listes des cartes en opposition.
Remarque
Pour Madagascar, il existe des cartes bancaires qui peuvent être utilisées
internationalement à condition que les banques destinataires ou les commerçants soient
affiliés au même réseau bancaire que l’émetteur de la carte.
d) CIRCUIT DE COMPENSATION
(i) Définition
La compensation est l’opération au cours de laquelle achat et vente se règlent au
moyen de virement réciproque.
Pour qu'un moyen de paiement fonctionne, il lui faut une infrastructure
financière, juridique et technique. Le moyen de paiement n'est que la partie visible dans
la vie quotidienne du système de paiement que constitue cette infrastructure. La
12
Banque Commerçant
Banque Client
Porteur Commerçant
Compensation
Effets de commerce
Contrat Porteur
Contrat Commerçant
compensation est la partie cachée qui concerne les échanges entre systèmes de
paiement.
La relation entre le porteur de la carte, le commerçant et leur banque respective
lors d’un achat électronique est illustrée par la Fig.1.4.
Figure 1.4 : Schéma d’une transaction bancaire.
(ii) SWIFT
Le SWIFT Society for Worldwide Interbank Financial Transaction est une
société privée basée à Bruxelles, dont l’objet est d’assurer un réseau international de
communication électronique entre les acteurs financiers. La plupart des banques
adhèrent au SWIFT.
C’est un réseau interbancaire à commutation de paquets. Il offre une palette de
services extrêmement diversifiés tels les transferts de compte à compte, opérations sur
devises ou sur titres, recouvrements, etc... La transmission des informations est chiffrée
et les procédures d'authentification sont très strictes [7].
L’architecture de réseau est centralisée sur trois centres de commutation aux
Etats-Unis et en Europe (Amsterdam, Bruxelles). Ces commutateurs sont rattachés à
chaque pays concerné par des concentrateurs nationaux (Fig.1.5). Des réseaux de lignes
ou des liaisons satellites relient les centres de commutation SWIFT entre eux et avec les
commutateurs nationaux.
13
Centre de
commutation
Concentrateur
national
Concentrateur
national
Institution
financière
Institution
financière
Institution
financière
Institution
financière
- Bruxelles
- Amsterdam
- USA
Figure 1.5 : Réseau SWIFT.
1.2.2 MENACES SUR LES TRANSACTIONS
Bien qu’Internet devienne un outil de communication très répandu dans le
monde, avant de s’y connecter, il est bon d’être averti des risques encourus.
Sur Internet, il existe plusieurs types d’ « attaques » mais pour les transactions
bancaires les plus fréquents sont les suivants.
a) ECOUTE.
La conception technique d’Internet permet les écoutes. Dans le domaine
informatique, l’écoute est la capture des informations se déroulant entre deux
ordinateurs à l’aide d’un dispositif appelé sniffer.
En fait, le protocole de communication TCP/IP utilisé sur Internet découpe les
données en paquets puis les expédie via une ligne de transmission. L’ordinateur espion
va donc intercepter ces paquets constituant la conversation et leur donner un sens. Cette
action s’appelle sniffing de paquets [9].
Ainsi l’écoute permet d’espionner les communications et de récupérer des
informations confidentielles en transit, comme les mots de passe, le numéro de la carte
bancaire,…
b) USURPATION D’IDENTITE
L’usurpation d’identité est appelée IP spoofing. Sur Internet, chaque ordinateur
connecté est identifié par une adresse IP, présumée valide lorsqu’elle est certifiée par les
services TCP et UDP. Un des principaux problèmes est qu’en utilisant le routage source
d’IP qui spécifie une route bidirectionnelle entre l’émetteur et le récepteur, l’ordinateur
du hacker arrive à s’introduire comme étant un ordinateur légal.
14
Ainsi, le spoofing IP est une technique permettant à un pirate d'envoyer à une
machine des paquets semblant provenir d'une fausse adresse IP autre que celle de la
machine du pirate. Ce n’est pas pour autant un changement d'adresse IP. Plus
exactement, il s'agit d'une mascarade de l'adresse IP au niveau des paquets émis, c'est-
à-dire une modification des paquets envoyés afin de faire croire au destinataire qu'ils
proviennent d’une machine légitime [9].
c) PHISHING
Le phishing est une technique frauduleuse utilisée souvent par les pirates
informatiques pour récupérer des informations confidentielles auprès d'internautes.
La technique du phishing est une technique d’ingénierie sociale c'est-à-dire
consistant à exploiter non pas une faille informatique mais la faille humaine en dupant
les internautes à l’aide d'un courrier électronique semblant provenir d'une entreprise de
confiance. Le mail envoyé par ces pirates usurpe l'identité d'une entreprise (banque, site
de commerce électronique, etc.) et invite les clients à se connecter pour mettre à jour
des informations les concernant.
Ainsi, par le biais d’un formulaire, les pirates réussissent à obtenir les
identifiants et les mots de passe des internautes ou bien des données personnelles ou
bancaires (numéro de client, numéro de compte en banque, etc...).
Conclusion
Le problème d’Internet est la question de la sécurité et de la confidentialité de
données en transit. Par nature Internet, étant ouvert à tous, se prête facilement aux
différents piratages. Des logiciels de cryptographie permettent d’assurer une relative
confidentialité des échanges.
15
Chapitre 2 : SECURITE DES TRANSACTIONS
Afin de se prémunir contre les diverses attaques sur les transactions bancaires, ce
chapitre propose différents mécanismes de sécurité comme le contrôle d’accès, le
chiffrement du message et l’authentification. Pour ce faire, la protection des réseaux est
traitée en premier. La protection des achats sur Internet termine ce chapitre.
2.1 PROTECTION DES RESEAUX
Pour un réseau étendu qui utilise Internet comme support de transmission, une
des meilleures solutions de se protéger est de contrôler les paquets entrants et sortants.
Et pour assurer aussi la confidentialité des informations échangées, l’utilisation des
réseaux privés virtuels est nécessaire.
2.1.1 PARE-FEU
a) PRINCIPE
Un pare-feu, appelé aussi coupe-feu (firewall), est un système permettant de
protéger un réseau privé à des attaques provenant de l’extérieur. Il assure d’une part, le
filtrage des données entrantes et sortantes du réseau suivant les conditions de
l’entreprise et d’autre part, le masquage de la configuration du réseau interne en
réduisant au maximum sa visibilité [11].
Pour être efficace, le pare-feu doit être le seul point d’entrée-sortie du réseau
interne. Donc, il est localisé entre le réseau interne et le réseau externe (Fig.2.1). Ceci
est réalisable par une machine possédant deux interfaces réseau.
Figure 2.1 : Pare-feu réseau.
16
b) DIFFERENTS TYPES DE FILTRAGE
Les pare-feu sont les plus vieux équipements de sécurité et comme tel, ils ont été
soumis à de nombreuses évolutions. Selon leur génération et leur rôle précis, les pare-
feu peuvent être classés en différentes catégories.
(i) Filtrage simple de paquets
Le filtrage simple de paquets est la méthode la plus simple. Elle opère au niveau
de la couche réseau et la couche transport du modèle de référence OSI. Cela consiste à
accorder ou à refuser le passage de paquets d'un réseau à un autre en se basant sur :
- L'adresse IP Source/Destination,
- Le numéro de port Source/Destination,
- Et le protocole de niveau trois ou quatre.
Pour ce faire, les pare-feu doivent être configurés par des règles de filtrages,
généralement appelées des ACL ou Access Control Lists [11].
L’inconvénient majeur de ce filtrage est que lors d’une requête d’un client
interne vers un serveur externe, les ports au-dessus de 1024 doivent être ouverts pour
recevoir les réponses. Ceci risque l’incursion d’un éventuel pirate, d’où la nécessité
d’un filtrage par suivi de connexion.
(ii) Filtrage par suivi de connexion
La performance du filtrage par suivi de connexion par rapport au filtrage simple
est la conservation de la trace des sessions et des connexions dans des tables d'états
internes au pare-feu.
Ce dernier prend alors ses décisions en fonction des états de connexions, et peut
réagir dans le cas de situations protocolaires anormales.
Mais dans la pratique, certains suivis de connexions ne sont pas simples à faire
et nécessitent des algorithmes spécifiques, comme principalement le FTP. De plus, une
fois que l'accès à un service a été autorisé, il n'y a aucun contrôle effectué sur les
requêtes et réponses des clients et serveurs.
(iii) Filtrage applicatif
Le filtrage applicatif permet de filtrer les communications application par
application. Il suppose donc une connaissance de l'application, et notamment de la
manière dans laquelle elle structure les données échangées. Un pare-feu effectuant un
filtrage applicatif est appelé passerelle applicative parce qu’il permet de relayer des
informations entre deux réseaux en effectuant un filtrage fin au niveau du contenu des
paquets échangés.
17
c) TRANSLATION D’ADRESSE OU NAT
Une autre fonction essentielle d’un pare-feu est la translation d’adresse ou NAT
(Network Address Translation). En fait, cette technique permet de masquer la
configuration interne du réseau en ne laissant visible à l’extérieur qu’une seule adresse
IP. Autrement dit, seul l’ordinateur mandataire est joignable de l’extérieur mais le
réseau privé interne reste inaperçu [10].
La translation d’adresse consiste à substituer les adresses entrantes ou sortantes
d’un paquet TCP/IP à partir d’une table NAT. Si c’est la source qui est altérée, la
modification est effectuée après que les trames aient été générées ou juste avant qu’elles
ne soient émises sur le média. Par contre, si c’est la destination qui est prise en compte,
la transposition est exécutée dès que les paquets pénètrent dans le pare-feu.
d) LIMITES D’UN PARE-FEU
Le fait d'installer un pare-feu n'est pas signe de sécurité absolue. Le pare-feu ne
protège en effet que des communications passant à travers lui. Ainsi, les accès au réseau
extérieur non réalisés au travers du pare-feu sont autant de failles de sécurité. C'est par
exemple le cas des connexions effectuées à l'aide d'un modem. En outre, le fait
d'introduire des supports provenant de l'extérieur (CD, disquettes, ...) sur des machines
internes au réseau peut être fort préjudiciable pour la sécurité de ce dernier.
La mise en place d'un système pare-feu n'exempte pas de se tenir au courant des
failles de sécurité et d'essayer de les minimiser.
2.1.2 RESEAU PRIVE VIRTUEL
a) CONCEPT DU VPN
Auparavant pour interconnecter deux LAN distants, il n’y avait que deux
solutions, soit les deux sites distants étaient reliés par une ligne spécialisée permettant
de réaliser un WAN entre eux, soit les deux réseaux communiquaient par le RTC.
Avec le développement d’Internet, un nouveau processus de transfert de données
sécurisé et fiable est apparu : c’est le Réseau Privé Virtuel ou VPN (Virtual Private
Network).
Le VPN est l’extension d’un réseau privé qui inclut les liaisons avec des réseaux
partagés ou publics tel qu’Internet. Avec un tel réseau, il est possible de transmettre des
données entre deux ordinateurs par le biais d’un réseau public en émulant une liaison
privée point à point.
18
Un des grands intérêts des VPN est de réaliser des réseaux privés à moindre
coût. En chiffrant les données, tout se passe exactement comme si la connexion se
faisait en dehors d’Internet.
b) PRINCIPE DE FONCTIONNEMENT
Le principe du VPN est basé sur la technique de tunnelling (Fig.2.2). Cela
consiste à construire un chemin virtuel après avoir identifié l’émetteur et le destinataire.
Ensuite, la source chiffre les données et les achemine en empruntant ce chemin virtuel.
Les données à transmettre peuvent appartenir à un protocole différent d’IP. Dans
ce cas, le protocole de tunnelling encapsule les données en rajoutant un entête
permettant le routage des trames dans le tunnel. Le tunneling est l’ensemble des
processus d’encapsulation, de transmission et de désencapsulation [12].
Figure 2.2 : Liaison point à point d’un VPN.
c) PRINCIPAUX PROTOCOLES DE VPN
(i) Protocole PPP
Le protocole PPP Point to Point Protocol, ou protocole point à point fut
développé pour transférer des données sur des liens synchrones ou asynchrones entre
deux points. Il s'agit d'un protocole beaucoup plus élaboré dans la mesure où il transfère
des données supplémentaires mieux adaptées à la transmission de données sur Internet.
Une fonctionnalité intéressante de ce protocole est le multiplexage simultané de
plusieurs protocoles de niveau trois du modèle de référence OSI tels qu’un protocole
d'encapsulation de datagrammes, un protocole de contrôle de liaison (permettant des
contrôles de test et de configuration de la communication) et un ensemble de protocoles
de contrôle, permettant des contrôles d'intégration de PPP au sein de protocoles de
couches supérieures [12].
19
(ii) Protocoles de tunneling
Les principaux protocoles de tunneling sont les suivants :
• PPTP (Point to Point Tunnelling Protocol) de Microsoft, un protocole de niveau
deux qui encapsule des trames PPP dans des datagrammes IP afin de les
transférer sur un réseau IP. PPTP permet le cryptage des données PPP
encapsulées mais aussi leur compression [11].
• L2F (Layer Two Forwarding) de Cisco, un protocole de niveau deux qui permet
à un serveur d’accès distant de véhiculer le trafic sur PPP et transférer ces
données jusqu’à un serveur L2F (routeur). Ce serveur L2F désencapsule les
paquets et les envoie sur le réseau. Contrairement à PPTP et L2TP, L2F n’a pas
besoin de client. Ce protocole est progressivement remplacé par L2TP qui est
plus souple.
• L2TP (Layer Two Tunnelling Protocol) est un protocole standard de
tunnelisation très proche de PPTP. Ainsi le protocole L2TP encapsule des
trames protocole PPP, encapsulant elles-mêmes d'autres protocoles [11].
2.2 PROTECTIONS DES ACHATS SUR INTERNET
Grâce au développement considérable de l’Internet, le commerce d’aujourd’hui
tend de plus en plus vers un commerce cybernétique. Mais la sécurité des paiements
reste toujours un souci des internautes. Pour les rassurer, les commerçants doivent
mettre en place des solutions de paiement sécurisé, comme le SSL, SET, C-SET,…
2.2.1 PROTOCOLE SSL
Le protocole TCP/IP n’a pas été développé en pensant à la sécurité. Il a donc
fallu développer quelque chose de nouveau tel que le protocole SSL (Secure Socket
Layer).
SSL est un protocole de communication d'information développé par Netscape.
Il est devenu un standard pour les transactions web sécurisées comme le commerce en
ligne, les activités bancaires ou la bourse en ligne.
a) PRESENTATION
Entre un client et un serveur, SSL permet d'assurer les services de sécurité suivants :
(i) La confidentialité
La confidentialité consiste à rendre l'information inintelligible à d'autres
personnes que les acteurs de la transaction. Elle est obtenue par l'utilisation
20
d'algorithmes à chiffrement symétrique [voir Annexe1] de blocs comme DES, IDEA,
3DES ou RC2, ou par des algorithmes à chiffrement symétrique de flux comme RC4.
(ii) L’intégrité des données
L’ intégrité des données assure que les informations n'ont pas été altérées par des
personnes non autorisées ou inconnues. Grâce à l'utilisation de MAC basé sur les
fonctions de hachage [voir Annexe 2] MD5 ou SHA-1 [13].
(iii) L’authentification
SSL permet l'authentification des deux entités (client et serveur) basée sur des
certificats numériques au format X.509 [voir Annexe 2], et la confirmation de source
des données grâce aux MACs [14].
b) SOUS COUCHES DE SSL
SSL s’intègre dans la pile TCP/IP, entre la couche application et la couche
transport, illustrée par la Fig.2.3. Dans la mesure où SSL se situe en dessous de la
couche application, les programmes n’ont pas besoin de grande modification pour
utiliser SSL.
En réalité, tout programme qui se connecte à Internet ou utilise TCP/IP pour
communiquer sur un réseau peut employer SSL pour créer une transaction sécurisée. De
plus, SSL ne se base pas sur un algorithme de cryptage particulier. Si un algorithme
devient obsolète ou a une faille découverte qui peut compromettre la sécurité, SSL peut
remplacer l’algorithme par un autre [13].
Figure 2.3: Positionnement de la couche SSL dans la pile TCP/IP.
Précisément, le protocole SSL est constitué de quatre sous-couches (Tab.3) :
(i) Handshake
Cette couche permet l'authentification mutuelle du client et du serveur, la
négociation des algorithmes de chiffrement, de hachage, et l'échange des clés
symétriques qui assurent le chiffrement [14].
21
(ii) Couche SSL Change Cipher Spec
Elle est chargée de synchroniser les stratégies de chiffrement (algorithme de
chiffrement, de hachage, échange de clés) entre le client et le serveur [14].
(iii) Couche SSL Alert
C’est elle qui transmet les messages d’alerte et interrompt la session en cas de
problème [14].
(iv) Couche SSL Record
Elle assure la protection des données des applications et l’encapsulation des
paramètres de plus haut niveau (fragmentation, compression, cryptage) [14].
Tableau 3 : Sous couches de SSL [13].
SSL
Handshake
SSL
Change Cipher Specs
SSL Alert
HTTP
Autre protocole
SSL Record Protocol
TCP
c) DEROULEMENT DES ECHANGES SSL
Les échanges définis par le protocole SSL se déroulent en deux phases:
• Première phase : authentification du serveur
Suite à la requête d'un client, le serveur envoie son certificat au client et lui liste les
algorithmes cryptographiques qu'il souhaite négocier. Le client vérifie la validité du
certificat à l'aide de la clé publique du CA (Certificate Authority) contenue dans le
navigateur. Si le certificat est valide, le client génère une clé symétrique. Cette dernière
est chiffrée avec la clé publique du serveur avant son envoi. Les données échangées par
la suite entre le client et le serveur sont chiffrées et authentifiées à l'aide de la clé
symétrique.
• Deuxième phase (facultative): authentification du client
Le serveur aussi peut demander au client de s'authentifier en lui demandant tout d'abord
son certificat. Le client réplique en envoyant ce certificat puis en signant un message
avec sa clé privée (ce message contient des informations sur la session et le contenu de
tous les échanges précédents).
22
d) ASPECTS CRYPTOGRAPHIQUES DE SSL
Le handshake SSL permet aux deux entités de choisir une suite d'algorithmes
cryptographiques pour assurer la sécurité de leurs échanges. Cette suite sera de la forme
SSL_X_WITH_Y_Z où :
• X désigne l'algorithme de chiffrement asymétrique utilisé pour l'échange de clés,
• Y désigne l'algorithme de chiffrement symétrique avec le mode opératoire pour
le cryptage des données,
• Z désigne l'algorithme de hachage utilisé.
A titre d’exemple, SSL_RSA_WITH_DES_CBC_MD5 signifie que l'algorithme
asymétrique utilisé est RSA, celui du symétrique est DES en mode CBC, et que
l’algorithme de hachage est MD5.
Remarque
La version 3.0 de SSL permet 31 possibilités de suites d'algorithmes
cryptographiques différentes. Une de ces possibilités est de ne rien utiliser, ce qui
revient à utiliser des algorithmes fictifs ne modifiant pas les données et noté comme suit
SSL_NULL_WITH_NULL_NULL.
e) EXEMPLE D’APPLICATION DE SSL
(i) Implémentation
Plusieurs offres commerciales du serveur SSL sont disponibles, par exemple:
SSLeay, Netscape Entreprise Server, Apache, Oracle Web Application Server, Internet
Information Server (IIS), Lotus Domino d'IBM, Java Server de Sun Microsystems…
L'IANA Internet Assigned Names Authority réserve les numéros de port (Tab.4) pour
les communications sécurisées par SSL selon les services demandés.
Tableau 4 : Ports utilisés.
HTTPS (HTTP en SSL) 443
SMTPS 445
NNTPS 563
LDAPS 636
POP3S 995
IMAPS 995
23
TELNETS 992
En pratique, pour connaître qu’un serveur utilise des services sécurisés par SSL, la
spécification du protocole employé doit se terminer par un « s ».
Exemple : https://www.monserveur.com.
(ii) Paiement sur Internet sécurisé par SSL
Lors d’un achat en ligne, le commerçant présente un catalogue de services ou de
produits sur un serveur Web. Sur ce serveur, l’acheteur consulte le catalogue, passe sa
commande puis choisit son moyen de paiement. Dans le cas d’un paiement par carte
bancaire, il est dirigé vers le service de paiement par carte bancaire de la banque.
Pendant toute la phase de paiement, l’acheteur dialogue directement avec le
serveur de paiement sécurisé de la banque. Les échanges se passent en mode sécurisé
garantissant la confidentialité des informations fournies par l’acheteur (numéro et date
de validité de la carte bancaire).
Après validation de la requête par l’acheteur, la banque se charge d’effectuer :
• la demande d’autorisation du paiement (contrôle de la structure du numéro de
carte bancaire, contrôle sur le fichier des cartes volées. En cas d’opposition, la
banque du commerçant interroge celle de l’acheteur par le réseau interbancaire
pour obtenir l'autorisation de paiement),
• l’envoi d’un message de confirmation précisant le résultat du paiement vers le
système informatique du commerçant,
• la mise en recouvrement du paiement.
A l’issue du paiement, le site sécurisé de la banque affiche une page d’information avec
un lien, qui permet à l’acheteur de retourner sur le site du commerçant.
f) LIMITES DU SSL
En ce qui concerne les cartes de crédit, les données de commerce électronique
livrées par SSL ne permettent pas de déterminer si l'utilisateur de la présumée carte de
crédit en est bien le détenteur ni si le commerçant qui accepte la carte est autorisé à le
faire [14].
Si de nos jours, le commerce électronique "sécurisé" sur Internet est possible,
c'est dû aux compagnies de cartes de crédit majeures. Visa et MasterCard International
se sont mis d'accord afin de faire développer un protocole de sécurité absolue pouvant
permettre une foule de transactions rapides et ultra sécuritaires sur le réseau Internet.
24
2.2.2 PROTOCOLE SET
a) GENERALITE
Le protocole SET (Secure Electronic Transaction) est un protocole de
paiement sécurisé destiné au commerce électronique, pour authentifier les personnes
impliquées lors d'achats en ligne. C’est un standard parrainé par Visa et MasterCard,
s'appuyant sur la méthode SSL. Le système utilise des protocoles de cryptographie afin
de rechercher une confidentialité maximum des transactions, SET délivre des certificats
d'authenticité des transactions électroniques.
(i) Principe
SET est basé sur l'utilisation d'une signature électronique au niveau de l'acheteur
et une transaction mettant en jeu non seulement l'acheteur et le vendeur, mais aussi leurs
banques respectives [15]. Dans une transaction SET, trois types d’acteurs interviennent :
• Le fournisseur (appelé marchand ou commerçant) qui peut être un fournisseur
d’informations véhiculées sur le réseau ou un vendeur de biens matériels ou
immatériels.
• L’utilisateur (appelé client), équipé d’un terminal et détenteur d’une carte
bancaire, qui est amené à payer des prestations délivrées par un fournisseur.
• Le serveur de paiement géré par la banque du fournisseur, qui joue le rôle
« d’interface » entre le fournisseur et le réseau bancaire. Le serveur de paiement
se connecte aux réseaux bancaires traditionnels pour les autorisations et la
remise des transactions.
L’authentification de ces trois entités est certifiée par une autre entité appelée
autorité d’accréditation qui délivre leur certificat numérique respectif (Fig.2.4).
Figure 2.4 : Principe de SET [15].
25
(ii) Techniques utilisées
Les principales techniques utilisées par SET pour les protections des transactions sur
Internet sont les suivantes :
• Le chiffrement à clé secrète
La technique de chiffrement à clé secrète est utilisée pour le cryptage de grandes
quantités de données parce qu’elle permet d’offrir des performances raisonnables.
Plusieurs standards de chiffrement existent, parmi lesquels : le DES, et le RC4 [16].
• Le chiffrement à clé publique
Le chiffrement asymétrique est employé par SET d’abord pour transporter une clé
symétrique de chiffrement entre l’émetteur et le destinataire d’un message mais aussi
pour créer des signatures électroniques. L’algorithme asymétrique le plus utilisé est le
RSA [16].
• La fonction de hachage
La technique de hachage est utilisée pour préserver l’intégrité d’une information en
envoyant cette information accompagnée de son condensé, ce dernier étant
éventuellement chiffré [16].
• La signature des messages
La notion de signature numérique d’un message est fondamentale dans
l’authentification de l’origine d’une transaction ainsi que dans sa garantie de non-
répudiation. Elle s’obtient en associant une opération de hachage et une opération de
chiffrement asymétrique [15].
Pour connaître que la clé publique est bien celle appartenant à l’émetteur du message,
celle-ci doit être inclue dans un certificat numérique certifié par une autorité externe.
b) DEROULEMENT D’UN ECHANGE SET
Deux éléments complémentaires indispensables apparaissent dans l’étape du paiement :
- la passerelle de paiement de l’acquéreur. Celle-ci est nécessaire pour traduire le
protocole SET en un protocole bancaire et éventuellement traduire le protocole de
communication d’Internet au protocole de l’acquéreur (TCP/IP, X.25,…)
- la banque émettrice qui a délivré la carte bancaire à l’acheteur et qui devra aussi
fournir une accréditation SET à cet acheteur. Elle intervient dans le processus de
paiement pour donner l’autorisation de paiement à la demande de la banque
acquéreur.
26
livraison / refus (accord/refus banque client)
réponse
autorisation
demande d’achat
Banque Passerelle de paiement Client Marchand
Banque Client
demande d’autorisation
La figure 2.5 donne un aperçu général de la transaction de paiement.
Figure 2.5 : Schéma des échanges dans SET.
1. Le porteur de carte est en liaison, depuis son poste de travail, avec un serveur du
commerçant à travers le réseau Internet. Il utilise son logiciel browser pour consulter le
catalogue du commerçant et choisir les articles qu’il désire acheter.
2. Le serveur du commerçant dialogue avec le porteur de carte pour la phase de
sélection des articles et de sélection du moyen de paiement ainsi qu’avec la banque
acquéreur pour l’obtention d’une autorisation de paiement.
3. La passerelle de paiement est chargée de déchiffrer et de vérifier la validité des
messages SET échangés avec le commerçant et le porteur de carte, et de demander
l’autorisation de paiement au serveur de la banque acquéreur.
4. La banque acquéreur autorise ou non le paiement en faisant appel, suivant les cas, à la
banque émettrice pour contrôler cette autorisation.
c) LES PROGICIELS DE PAIEMENT
Pour les transactions via SET, IBM a développé des logiciels qui assurent la sécurité des
paiements appelés IBM Payment Suite qui sont :
(i) IBM Consumer Wallet
Le Wallet est une application munie d’une interface graphique pour l’utilisateur
qui est ajouté au navigateur de l’acheteur. Il fonctionne sous Windows 95 ou Windows
NT et fournit le portefeuille (Wallet) au porteur de carte (Fig.2.6). Il permet à la fois de
gérer la représentation électronique de la carte, d’effectuer les transactions
d’accréditation et de paiement et de garder trace de ses achats.
27
Figure 2.6 : Portefeuille électronique de l’acheteur [15].
(ii) IBM Payment Server
Le Payment Server est un progiciel qui traite les deux principaux types de
transactions SET chez le commerçant : transactions de paiement et le recouvrement.
C’est une fonction logicielle à ajouter au serveur du catalogue du commerçant, pour lui
permettre de prendre en compte les messages SET échangés avec les acheteurs et la
passerelle de paiement (Fig.2.7).
Figure 2 .7 : Adaptation du serveur [15].
Le serveur logiciel du commerçant assure les gestions de stocks et aussi la mise
à jour des pages web, alors que l’IBM Payment Server permet de vérifier le certificat du
porteur, les signatures des messages échangés et aussi d’assurer le traitement de la
demande de paiement. C’est aussi au serveur de paiement de se charger la création
d’une réponse au porteur comportant le certificat du commerçant.
28
(iii) IBM Payment Gateway
Ce progiciel assure la traduction des messages du format SET au format
bancaire (Fig.2.8). La Payment Gateway, ou passerelle de paiement, se compose de
deux parties principales :
• Moniteur transactionnel (Transaction Services Manager ou TSM)
Il constitue l’infrastructure de la passerelle de paiement. Il permet de diriger les
transactions provenant des commerçants vers le système cible bancaire de l’acquéreur
(c’est en fait un routeur bancaire). L’application de passerelle de paiement constitue
l’application cible. Le TSM permet de convertir des protocoles, de créer des audits, de
réaliser des traces, etc.
• Application de passerelle de paiement (Payment Gateway Application )
Elle reçoit les transactions du TSM en provenance des commerçants. Elle teste la
validité de la demande, et fournit des exits (fonctions de personnalisation des demandes
ou des réponses) pour traduire les demandes contenues dans les messages SET en
fonction du système d’autorisation de la banque.
Figure 2.8 : Architecture de la passerelle de paiement [16].
d) SECURISATION APPORTEE PAR SET
(i) Au cours d’une transaction
29
SET permet à un client d’utiliser en toute sécurité sa carte de paiement lors d’un
paiement en ligne de biens ou de services. En effet, dans une transaction SET, seules les
entités autorisées (banques, serveurs de paiement) ont accès au numéro de carte du
client et aux autres éléments sensibles du paiement. Plus généralement, les services de
sécurité rendus par ce protocole sont les suivants : authentification des acteurs,
confidentialité des informations de la carte [15].
L’objectif visé est d’empêcher le vol du numéro de carte en vue de sa
réutilisation à des fins frauduleuses, dans d’autres types de transactions, confidentialité
des informations sur l’achat effectué par un utilisateur, confidentialité des messages
échangés entre le commerçant et le serveur de paiement, engagement du client et du
marchand sur l’acte d’achat (signatures numériques).
(ii) Au niveau du poste de travail du client
Sur le poste de travail, la sécurité est apportée sous différentes formes,
• D’abord, les informations sensibles telles que la clé privée de l’utilisateur et les
informations de sa carte bancaire stockées sur le disque dur, sont cryptées par
un chiffrement basé sur une clé générée à partir d’un mot de passe.
• Ensuite, le progiciel offre la possibilité de sauvegarder ces données sensibles
sur un disque amovible, la crainte étant qu’un tiers puisse avoir accès au poste
de travail de l’acheteur et réussisse à percer le code de protection de
l’utilisateur.
• Enfin, des dispositifs matériels pour améliorer la protection du mot de passe
pourraient être ajoutés, tel l’utilisation de la carte à puce [15].
2.2.3 LES PROTOCOLES UTILISANT LA CARTE A PUCE
Un des inconvénients de SET est la nécessité pour le porteur d’obtenir un
certificat. Le certificat et la clé privée associée sont les moyens utilisés par le porteur
pour s’authentifier.
Aujourd’hui, un processus d’authentification du porteur est déjà opérationnel, il
s’agit de la carte à puce. D’où vient l’idée de mettre en place de nouveaux protocoles
qui sont généralement des applications de SET en s’appuyant sur une carte à puce tels
que : C-SET, e-Comm, Cyber-Comm, …
a) FONCTIONS DES CARTES A PUCE
Bien qu’elles ressemblent en tous points à des cartes de crédit ou de débit
normal, les cartes à puce possèdent au moins trois caractéristiques spécifiques :
30
- elles peuvent emmagasiner beaucoup plus de données,
- elles sont protégées par un mot de passe,
- elles comportent un microprocesseur intégré capable de générer des paires de
clés (publiques et privées) et même d’effectuer les opérations de chiffrement [6].
Les cartes à puce constituent donc un moyen très sécuritaire pour emmagasiner
et utiliser des clés privées. Les données qu’il faut déchiffrer ou qu’il faut ratifier à l’aide
d’une signature numérique sont confiées à la carte pour que son microprocesseur
exécute les fonctions et ensuite renvoie les données à l’ordinateur.
Ainsi, la clé ne quitte jamais la carte et n’est pas vulnérable à une attaque d’un
programme clandestin qui balayerait la mémoire de l’ordinateur pour y trouver des clés.
b) STRUCTURE DE PAIEMENT
La structure de paiement a une infrastructure reposant sur le protocole SET,
capable à distance d’identifier un utilisateur, d’authentifier sa carte. Alors le
portefeuille électronique n’a plus besoin du certificat SET. Son avantage est que le
mode de paiement ressemble à un achat réel dans un magasin. Equipé d´un lecteur de
carte à puce lié à son PC, le client insère sa carte bancaire dans le terminal et compose
son code secret après avoir validé sa commande.
Lors de la création du message de paiement, certaines informations de paiement
sont envoyées au lecteur de carte qui les fait signer par la carte à puce. Les informations
de paiement reçues par le commerçant sont envoyées dans un message d’autorisation à
la passerelle de paiement qui va extraire les informations de la carte à puce. Les
informations de la carte à puce sont incluses dans le message d’autorisation qui transite
à travers la banque acquéreur et arrive jusqu’à la banque émettrice (celle du porteur) qui
vérifiera à la fois l’état du compte du porteur et la signature de la carte à puce.
Le système a l´avantage d´identifier l´utilisateur de façon sûre. Mais la difficulté
à surmonter est la distribution des lecteurs de carte à puce : si un lecteur transparent
convient, il deviendra certainement à terme, partie intégrante d’une configuration de
tout poste de travail ; si un lecteur spécifique est nécessaire, il sera beaucoup plus
difficile à diffuser à grande échelle [15].
Conclusion
Même si l’Internet expose des dangers aux transactions, ces dernières peuvent
être effectuées sans risques par la mise en place de filtrages pour les réseaux et aussi
31
l’implémentation des techniques cryptographiques dans les protocoles de
communication.
Chapitre 3 : CONCEPTION ET REALISATION DE
TRANSCRYPT
Ce chapitre présente les étapes suivies pour la mise en place d’un transfert de
données sécurisées entre deux ordinateurs distants en mode client/serveur. Pour ce faire,
un logiciel baptisé TransCrypt en mode client/serveur a été développé. Le modèle
utilise trois types d’algorithmes de chiffrement afin de rendre impossible toute écoute
illicite de la communication et permettre une authentification sûre entre les entités.
3.1 CHOIX DES ALGORITHMES DE CHIFFREMENT
• D’abord, nous avons utilisé l’algorithme Blowfish, qui est un algorithme de
chiffrement symétrique, pour crypter les données circulant sur le réseau. D’une part,
c’est un algorithme non breveté, son utilisation est libre et d’autre part, il a été déjà
analysé et considéré comme étant un algorithme de chiffrement robuste et plus rapide
que les autres algorithmes existants [17]. En effet, le Tab.5 montre une comparaison
entre les différents algorithmes de chiffrement.
Tableau 5 : Comparaison des algorithmes [19].
Algorithme Cycle d’horloge
par round
Nombre de
rounds
Nombre de cycles d’horloge
par octet encrypté
Taille de clé
utilisée en bits
Blowfish 9 16 18 32 - 448
RC5 12 16 23 40
DES 18 16 45 56
IDEA 50 8 50 128
3DES 18 48 108 128 - 192
Ce test a été fait avec un Pentium 150, et le résultat montre que Blowfish a le
plus faible cycle d’horloge pour un round donné ainsi que pour crypter un octet de
données. De plus, il a la possibilité d’utiliser une clé variable la plus longue.
• Ensuite, le cryptage asymétrique RSA est choisi parce que c’est une solution
pour résoudre le problème d’échange de clé. Grâce à lui, la clé symétrique de Blowfish
32
peut être transférée en toute sécurité. De plus, il permet aussi l’authentification du
serveur qui va recevoir les données confidentielles du client. RSA est un algorithme à
clé publique très efficace et le plus utilisé pour les systèmes asymétriques, alors qu’il est
devenu aujourd’hui un standard dans le monde de la cryptographie asymétrique [18].
Enfin, pour la sécurité de la clé privée (côté serveur) et du mot de passe (côté
client) qui sont stockés dans le disque dur, nous avons conçu un chiffrement de flux
dont la clé est intégrée dans le code source. En l’associant avec le mode CFB,
l’algorithme a une performance intéressante surtout pour les messages courts.
3.1.1 ALGORITHME BLOWFISH
Blowfish a été conçu par Bruce Schneier en 1993 comme étant une alternative
aux algorithmes existants. C’est un système de chiffrement par blocs de 64 bits basé sur
le chiffrement de Feistel [voir Annexe 3] et qui utilise une clé variant entre 32 bits et
448 bits pour la sécurité contre les attaques de cryptanalyse.
L’algorithme effectue deux étapes successives : une première pour l’expansion
de la clé et une deuxième pour la manipulation de chiffrement des données [voir
Annexe 3].
Soit P un tableau qui contient les sous-clés utilisées lors de chaque itération et S-
Boxes des tables de substitution dont les entrées et les sorties n'ont pas forcément la
même taille. L’expansion de la clé est une opération qui consiste à modifier tous les
éléments du tableau P et ceux des quatre S-Boxes à l’aide de la clé initiale.
La manipulation des données permet de transformer le texte clair en caractères
incompréhensibles.
a) CRYPTAGE
Pour le cryptage, l’algorithme de Blowfish a été utilisé (Fig.3.1). L’entrée de 64
bits de texte en clair est noté x, et la sortie x’. L représente la moitié gauche du bloc du
texte et que R celle de droite. Les éléments du tableau P sont les sous-clés obtenues lors
de l’expansion de la clé initiale et F est une fonction qui utilise les quatre S-Boxes pour
la transformation du bloc de 32 bits. Les opérateurs utilisés sont des ou exclusif pour
assurer la réversibilité de l’encryptage.
33
F
L R P[1]
P[16]
F
P[18] P[17]
x
x'
Début
Fin
x : texte en clair
x’ : texte crypté
L : moitié gauche
G : moitié droite
P : sous-clés
F : fonction de cryptage
: xor
Figure 3.1 : Algorithme de Blowfish.
b) DECRYPTAGE
Pour retrouver le texte en clair, il suffit d’effectuer l’opération inverse en
utilisant la bonne clé.
Afin d’assurer un maximum de sécurité, nous avons utilisé une clé de 448 bits
pour le chiffrement de données.
34
3.1.2 CRYPTAGE ASYMETRIQUE RSA
RSA, inventé par Ron Riverst, Adi Shamir et Leonard Adleman (1977) est le
premier algorithme à clé publique [10]. Il sert aussi bien, pour le chiffrement qu’à
l’authentification. Son élaboration est basée sur des calculs mathématiques.
a) PRINCIPE
L’idée générale est de trouver deux fonctions f (fonction de décryptage) et g
(fonction de cryptage) telle que leur composition donne la fonction identité, f o g ≡ Id.
Les méthodes de chiffrement et de déchiffrement sont décrites en Annexe 4.
b) GESTION DES CLES
Pour la gestion des clés, il faut différencier les tâches parce que le principe n’est
pas le même. Le Tab.6 montre la gestion des clés RSA.
Tableau 6 : Gestion des clés RSA [10].
Pour Utiliser De qui ?
1 - Envoyer un document crypté à quelqu’un la clé publique du destinataire
2 - Décrypter un document la clé privée du destinataire
3 - Envoyer une signature cryptée à quelqu’un la clé privée de l’expéditeur
4 - Décrypter une signature la clé publique de l’expéditeur
Dans TransCrypt, la première ligne est utilisée pour le chiffrement de la clé
symétrique, la deuxième pour la déchiffrer, la troisième est employée pour signer le
certificat du serveur et la quatrième pour la vérification de la signature.
c) SECURITE DU RSA
RSA repose sur le fait qu’il est très difficile et très long de factoriser, dans des
limites raisonnables, un très grand nombre en deux facteurs premiers. Son point fort est
que l’opération inverse est plus compliquée que l’opération directe.
35
Si les adversaires ont à leur possession la clé publique e et le module n, alors
pour trouver la clé de déchiffrement d, ils doivent factoriser n. Or actuellement, la
technologie de factorisation la mieux avancée, n’arrive à factoriser que 129 chiffres,
ainsi, n doit être supérieur à cela [18].
Ainsi nous avons choisi une clé de l’ordre de 1024 bits pour cet algorithme.
3.1.3 CHIFFREMENT DE FLUX EN MODE CFB
a) CHIFFREMENT DE FLUX
Le chiffrement de flux (stream ciphers) est un algorithme de cryptage
symétrique dont les données manipulées sont de dimension unitaire (1 bit, 1 octet,
etc…) ou relativement petite.
Son avantage principal vient du fait que la transformation peut être changée à
chaque symbole du texte clair et du fait qu'il soit extrêmement rapide. Il est aussi utilisé
lorsque l'information ne peut être traitée qu'avec de petites quantités de symboles à la
fois, par exemple si l'équipement n'a pas de mémoire physique ou une mémoire tampon
très limitée.
b) MODE OPERATOIRE CFB
Au début pour chiffrer une chaîne de caractères, le cryptage effectué était de
bloc en bloc. Or le principal problème est que si deux blocs identiques sont cryptés avec
une même clé, le résultat obtenu serait aussi identique.
Le mode CFB Cipher Feedback ou mode de chiffrement à rétroaction est l’une
des solutions à ce problème. L’image d’un caractère ne dépend pas seulement de la clé
du cryptage mais aussi du caractère précédent, alors les images d’un même caractère
répété successivement sont tous différentes [18].
Pour le premier bloc du texte clair, un bloc ayant un contenu aléatoire est généré
qui est appelé vecteur d’initialisation. Ce premier bloc est envoyé tel quel avec le
message chiffré.
c) MODE DE CHIFFREMENT ET DE DECHIFFREMENT
Soit T le texte initial et C son crypté. Ils sont composés d’un tableau dont chaque
élément a une taille d’un octet. Le nième octet du texte est noté T[n] et pour le texte
chiffré C[n]. La fonction f est une fonction quelconque mais elle doit être la même pour
le chiffrement et le déchiffrement. Les étapes de chiffrement et de déchiffrement sont
décrites en Annexe 5.
36
La figure 3.2 présente le principe de chiffrement et de déchiffrement.
Figure 3.2 : Mode de chiffrement et de déchiffrement.
La fonction f est indépendante du cryptage et du décryptage alors dans
TransCrypt, une fonction beaucoup plus compliquée est utilisée pour que l’algorithme
soit plus robuste.
Ainsi nous avons employé les opérateurs ⊕ (ou exclusif), modulo, ET (et
logique) et le décalage à droite pour modifier l’octet. Pour une clé K qui est une chaîne
de caractères fixe de longueur p, la fonction f est donnée par la relation suivante :
f(m) = (m ⊕ K[n mod p] ) ET (m >> 2) (3.1)
Où n est le rang de l’octet m dans le texte.
3.2 DEVELOPPEMENT DE TRANSCRYPT
Ce travail a été développé avec JBuilder 9 de BORLAND. En effet, c’est
d’abord, un outil qui permet d’effectuer le développement visuel d’un programme mais
aussi l’utilisation du langage de programmation JAVA qui possède un potentiel
intéressant dans les applications réseaux.
De plus, c’est un langage multi-plateforme , il a l’avantage de fonctionner sur
différents matériels et différents types d’environnement (Windows, Linux, …).
Enfin, Il est aussi multithreadé c’est-à-dire multitâches, ce qui donne la
possibilité pour le serveur de recevoir plusieurs clients en même temps, rendant ainsi la
simulation plus réaliste.
37
3.2.1 PRINCIPE DE FONCTIONNEMENT
Le principe de fonctionnement se repose sur une architecture client/serveur dont :
• Le serveur a pour fonction « d’écouter » les ordinateurs clients qui veulent
transmettre des informations vers lui, ensuite de décrypter les données arrivées
afin de pouvoir connaître ses contenus.
• L’ordinateur client qui envoie les messages après les avoir crypté à l’aide de la
clé de session.
a) DU COTE CLIENT
Du côté client le principe de la communication est comme suit :
• au lancement du programme, l’utilisateur doit être authentifié par un mot de
passe. Si le mot de passe est valide, il peut accéder dans l’application, sinon, le
programme s’arrêtera après trois essais,
• ensuite, pour se communiquer avec le serveur, le client doit faire une demande
de connexion,
• dans le cas où le serveur est en état d’écoute, le client va recevoir le certificat du
serveur crypté, sinon la communication ne peut pas effectuer,
• pour que l’identité du serveur soit vérifiée, le certificat doive décrypter avec la
clé publique possédée par le client sinon la connexion sera interrompue.
• Si le certificat est valide, alors le client génère la clé symétrique de Blowfish. Il
envoie cette clé vers le serveur après avoir de la crypter avec la clé publique du
serveur,
• Le client attend alors jusqu’à ce que le transfert puisse commencer,
• Enfin, dans la suite de la communication, les données seront cryptées avec cette
clé symétrique jusqu’à la déconnexion.
L’organigramme du côté client est illustré par la Fig.3.3.
38
Figure 3.3 : Organigramme de l’application client.
b) DU COTE SERVEUR
39
La figure 3.4 montre l’organigramme général de l’application serveur.
Figure 3.4 : Organigramme de l’application serveur.
Le fonctionnement de l’application est le suivant :
• d’abord, le serveur doit être démarré pour qu’il puisse écouter toutes les
demandes de connexion sur lui,
• alors, il attend jusqu’à ce qu’il y a un appel venant du client,
• s’il y en a, il envoie son certificat numérique crypté avec sa clé privée vers le
client pour certifier son identité,
• ensuite, si tout se passe normalement, il doit recevoir un message crypté venant
du client qui n’est que la clé symétrique de Blowfish chiffrée avec la clé
publique du serveur,
40
• afin de connaître le contenu du message, le serveur réutilise sa clé privée pour le
décryptage,
• si le décryptage est réussi c’est-à-dire que la clé publique que le client avait
utilisée est bien celle du serveur, il passe à l’étape suivante pour établir la
connexion, sinon la communication sera interrompue,
• enfin si la connexion est établie, les deux entités possèdent alors une même clé
secrète qui sera utilisée pour tout le reste de la communication jusqu’à ce que
cette dernière soit interrompue.
3.2.2 RESULTATS DE LA SIMULATION
L’application permet le transfert des messages cryptés à travers le réseau
informatique après avoir que les deux entités s’authentifient.
a) FENETRES DU COTE CLIENT
(i) Fenêtre d’accueil
Au lancement du logiciel client, la fenêtre d’accueil de l’application s’affiche (Fig. 3.5).
Elle permet d’authentifier l’utilisateur à l’aide d’un mot de passe avant d’accéder au
logiciel.
41
Figure 3.5: Fenêtre d’accueil pour le client.
Elle est composée d’une zone de texte pour la saisie du mot de passe et un bouton pour
valider l’accès.
(ii) Fenêtre principale
Si le mot de passe est valide, une nouvelle fenêtre apparaît pour pouvoir effectuer les
transactions.
La fenêtre comporte trois menus principaux :
• menu Fichier
Le menu Fichier comporte trois sous menus (Fig.3.6).
Figure 3.6 : Menu Fichier.
Le sous menu Connecter permet la connexion au serveur. En cliquant sur ce menu, une
boîte de dialogue apparaît pour la saisie de l’adresse IP du serveur (Fig.3.7).
Figure 3.7 : Boîte de dialogue pour la saisie de l’adresse IP.
Le sous menu Déconnecter permet d’interrompre la connexion et celui du Quitter pour
sortir de l’application.
• menu Option
La figure 3.8 présente les sous menus contenus dans le menu Option.
42
Figure 3.8 : Menu Option.
Dans ce menu, le client peut choisir les types de données à transférer que ce soit un
message ou un fichier . Pour changer le mot de passe, il suffit de cliquer sur Mot de
passe, puis, saisir le mot de passe actuel et taper un nouveau mot de passe (Fig.3.9).
Figure 3.9 : Fenêtre pour le changement du mot de passe.
• menu Aide
Ce menu contient les sous menus A propos et Certificat du Serveur (Fig.3.10)
43
Figure 3.10 : Menu Aide.
Le menu A propos décrit l’information sur les auteurs (Fig.3.11) et que le Certificat
du Serveur permet de visualiser le certificat du serveur si la connexion est établie
(Fig.3.12).
Figure 3.11 : Fenêtre d’Aide à propos.
Figure 3.12 : Fenêtre Certificat du Serveur.
(iii) Fenêtre pour le transfert du message
44
Une fois la connexion est établie, le client peut transférer l’information sur sa carte
bancaire (Fig.3.13).
Figure 3.13 : Fenêtre pour le transfert du message.
La fenêtre est composée de :
• trois zones de texte pour la saisie d’informations sur la carte (nom et prénom, le
numéro de la carte et sa date de validité),
• un bouton Annuler pour recommencer la saisie,
• un bouton Envoyer pour l’envoi de données vers le serveur.
(iv) Fenêtre pour le transfert du fichier
La figure 3.14 montre la fenêtre pour un envoi du fichier. Elle est constituée de :
• Un bouton qui sert à ouvrir le fichier à envoyer et une zone de texte qui affiche
son emplacement.
• Une zone de texte pour l’affichage du fichier.
• Un bouton Annuler pour recommencer le choix du fichier
• Un bouton Envoyer pour l’envoi du ficher vers le serveur.
45
Figure 3.14 : Fenêtre pour le transfert du fichier.
b) DU COTE SERVEUR
(i) Fenêtre principale
La fenêtre principale du serveur permet de suivre la progression des communications et
permet aussi de voir les informations caractéristiques du client (Fig.3.15).
46
Figure 3.15 : Fenêtre principale de l’application serveur.
Après avoir cliqué sur le bouton Démarrer, le serveur peut écouter toutes
tentatives de connexion. Le tableau permet de voir l’historique des connexions. La
colonne Nom d’hôte contient le nom de la machine client, la colonne Adresse IP
comporte son adresse IP, enfin, une colonne Date permet de confirmer la date et l’heure
du début de sa connexion.
Le bouton Arrêter stoppe le serveur et interrompt toutes les communications
entre le serveur et les clients.
(ii) fenêtre pour la réception de données
A chaque nouvelle connexion une autre fenêtre apparaît pour recevoir les messages du
client en cours (Fig.3.16).
Figure 3.16 : Fenêtre pour la réception de données.
La première zone de texte affiche les données reçues cryptées. Le bouton
Décrypter sert à décrypter les informations reçues, s’il s’agit d’un message, sa version
initiale s’affiche directement dans la deuxième zone de texte lors d’un clic sur
Décrypter. Dans le cas d’un fichier, le clic sur le bouton Décrypter conduit à choisir
l’emplacement d’enregistrement du fichier (Fig.3.17).
47
Figure 3.17 : Fenêtre d’enregistrement du fichier.
3.2.3 CONFIGURATION MINIMALE
Le tableau 7 présente la configuration minimale requise pour la station de travail.
Tableau 7 : Caractéristiques du logiciel
Caractéristiques Observation
Nom : TransCrypt Nom inventé à partir du mot Transaction et Crypter
pour faire apparaître la fonction du logiciel.
Version : 1.0 La version est susceptible d’être améliorée dans le futur.
Espace disque nécessaire :
- 2 Mo pour le serveur
- 3 Mo pour le client
-
RAM nécessaire : 64 Mo Assez de mémoire vive est nécessaire pour les calculs
cryptographiques.
Conclusion
Du côté client, TransCrypt permet d’authentifier l’utilisateur par un mot de
passe, puis de crypter ses données confidentielles qui vont circuler sur le réseau.
48
Du côté serveur, le logiciel a pour fonction de recevoir les informations
transmises puis, de les décrypter à l’aide de la clé symétrique.
CONCLUSION
Dans le contexte d’un environnement dématérialisé et ouvert tel qu’Internet, la
collecte et l’utilisation des renseignements à caractères personnels affectent
sensiblement la relation entre les entités commerciales et ses consommateurs. En effet,
pour pouvoir transmettre des données personnelles, les internautes doivent avoir le
sentiment qu’aucun danger n’est à craindre, que le logiciel mis en oeuvre protège les
informations tant au niveau de leur communication lors de la collecte que de leur
stockage dans les bases de données.
En fait, les principaux problèmes qu’il faut résoudre sont la confidentialité de
données et l’authentification des acteurs de la transaction. Les messages échangés
doivent être accessibles seulement aux entités autorisées. Et c’est ainsi que le logiciel
conçu TransCrypt basé sur l’algorithme asymétrique RSA pour le transport de clé et
des algorithmes symétriques, Blowfish et le chiffrement de flux pour la sécurité de
données permet d’établir un canal privé entre les deux extrémités de la communication
pour assurer la confidentialité des données même à travers Internet.
TransCrypt ne prétend pas résoudre définitivement la sécurité des transactions
bancaires mais en est une contribution. En effet, la sécurité apportée par TransCrypt
est seulement au niveau du transport, et chaque client doit être authentifié au préalable
par le serveur, ce qui n’est pas très pratique pour les achats. Pour l’amélioration, une
étude intéressante pourrait être envisagée sur la possibilité d’ajouter des dispositifs
matériels et/ou logiciels pour améliorer l’authentification du client telle que l’utilisation
d’une clé qui peut être lue à partir d’un port externe de l’unité centrale.
Ce travail nous a permis de comprendre le fonctionnement des différents
protocoles de sécurité lors d’une transaction bancaire et aussi le principe des
algorithmes de chiffrement utilisé. De plus, la simulation nous a aidé à développer notre
connaissance sur le langage de programmation JAVA. Ce dernier nous permet le
développement d’un modèle client/serveur et la programmation des différents
cryptosystèmes ainsi que leur implémentation pour pouvoir les manipuler sur le réseau.
49
50
Annexe 1 : DIFFERENTES METHODES DE CRYPTAGE
Pour assurer la confidentialité de la communication, la technique la plus sûre est
l’utilisation de la cryptographie.
Le cryptage consiste à transformer les caractères qui composent le message en
d’autres caractères de façon à les rendre compréhensible seulement par leurs
destinataires légitimes [9].
Suivant les types des clés utilisées, il existe deux sortes de cryptage.
A1.1 CRYPTOGRAPHIE SYMETRIQUE
Les systèmes de cryptage symétrique, appelé aussi systèmes de clé privée sont
utilisés depuis déjà plusieurs siècles. C’est l’approche la plus authentique du
chiffrement de données et mathématiquement la moins problématique.
La technique consiste à effectuer une opération entre la clé et les données à
chiffrer afin de les rendre inintelligibles. Dans un tel système, la clé de chiffrement est
la même que la clé de déchiffrement.
Le problème majeur de ce système se pose lors du partage de la clé entre les
entités concernées. Il est théoriquement possible qu’un tiers espionne l’échange et en
obtienne ainsi une copie.
A1.2 CRYPTOGRAPHIE ASYMETRIQUE
Dans un cryptage asymétrique, la clé de chiffrement et de déchiffrement ne sont
pas identiques. Le système utilise une paire de clés telles que la clé privée et la clé
publique. Ces deux clés sont reliées mathématiquement entre elles de telle sorte que tout
message chiffré avec l’une des clés ne peut être déchiffrée que par l’autre clé.
Généralement, la clé publique sert au cryptage et la clé privée gère le déchiffrement.
Cet algorithme permet de s'affranchir des problèmes liés à l'échange de clé via
un canal non sécurisé. Toutefois, il reste beaucoup moins efficaces (en terme de temps
de calcul) que les algorithmes symétriques. Donc le cryptage asymétrique n'est pas
recommandé pour de grandes quantités d'informations.
51
Annexe 2 : CERTIFICAT X-509
A2.1 GENERALITES
Les algorithmes de chiffrement asymétrique sont basés sur le partage entre les
différents utilisateurs d’une clé publique. Généralement le partage de cette clé se fait au
travers d’un annuaire électronique ou bien d’un site web.
Toutefois, ce mode de partage a une grande lacune parce que rien ne garantit
que la clé est bien celle de l’utilisateur a qui elle est associée. Ainsi un certificat permet
d’associer une clé publique à une entité (une personne, une machine, ...) afin d’en
assurer la validité [19]. Le certificat est en quelque sorte la carte d’identité de la clé
publique, délivré par un organisme appelé autorité de certification (notée CA pour
Certification Authority). Cette dernière est chargée de délivrer les certificats, et de leurs
assigner une date de validité (équivalent à la date limite de péremption des produits
alimentaires), ainsi que de révoquer éventuellement des certificats avant cette date en
cas de compromission de la clé (ou du propriétaire).
A2.2 FONCTION DE HACHAGE
La fonction de hachage est une fonction mathématique qui à partir d’un
message génère une autre chaîne permettant d’obtenir un condensé (appelé aussi haché)
représentant le texte original. Il doit être associé à un et un seul texte en clair, de plus, la
fonction doit être à sens unique afin qu’il soit impossible de retrouver le message
original à partir du condensé [9].
La fonction de hachage ne chiffre pas les données, mais sert à vérifier leur
intégrité. Ainsi pour qu’un certificat soit valide, il doit être signé par l’autorité de
certification, cela signifie qu’une fonction de hachage crée une empreinte de ces
informations, puis ce condensé est chiffré à l’aide de la clé privée de l’autorité de
certification pour créer la signature. La clé publique ayant été préalablement largement
diffusée afin de permettre aux utilisateurs de vérifier la signature avec la clé publique de
l’ autorité de certification.
A2.3 STRUCTURE D’UN CERTIFICAT X 509
52
Le certificat est un petit fichier dont sa structure est normalisée par le standard X.509 de
l’UIT ( Union Internationale des Télécommunications). Sa structure est donnée par le
tableau A1.
Intitulé Tableau A1 : Structure d’un certificat X.509 [19].
Intitulé des champs Usage
Version du certificat Ce champ donne la version du format du certificat (version 1, 2 ou 3 pour l’instant).
Numéro de série du certificat Numéro de série unique du certificat dans le domaine de confiance auquel il appartient.
Description de l’algorithme de signature de la CA
Désigne le procédé utilisé par la CA pour signer le certificat (norme ISO). Il s’agit d’un algorithme asymétrique et d’une fonction de hachage. (Exemple : RSA avec SHA-1.)
Nom de la CA qui a généré le certificat
Spécifie le DN (Distinguished Name) dans la norme X.500 du CA qui a généré le certificat.
Période de validité
Donne les dates de début et de fin de validité du certificat. Un logiciel client utilisant les certificats doit impérativement vérifier ces dates avant utilisation et rejeter le certificat s’il est expiré.
Nom de l’utilisateur auquel appartient le certificat
Spécifie le DN (norme X.500) du propriétaire du certificat.
Clé publique
C’est le coeur du certificat. Ce champ contient la clé publique du détenteur du certificat ainsi que les algorithmes avec lesquels elle doit être utilisée. (Exemple : RSA et MD5.)
Identification alternative de la CA (optionnel)
Ce champ optionnel permet de donner une seconde identification au Issuer dans le cas où celui-ci à un DN commun avec une autre CA.
Identification alternative de l’utilisateur (optionnel)
Ce champ optionnel permet de donner une seconde identification à l’utilisateur dans le cas où celui-ci à un DN en commun avec un ou plusieurs autres utilisateurs.
Signature de la CA
C’est la signature de l’Autorité de Certification. Cette signature est effectuée en passant l’ensemble du certificat au travers d’une fonction de hachage puis en chiffrant le résultat à l’aide de la clé privée de l’Autorité de Certification.
53
Annexe 3 : ALGORITHME BLOWFISH
L’algorithme Blowfish est un système de chiffrement par blocs de 64 bits basé sur le
chiffrement de Feistel.
A3.1 CHIFFREMENT DE FEISTEL
Le chiffrement de Feistel est un algorithme de chiffrement par bloc itératif. La
ième itération ou round est déterminée d’après la sortie de la ronde précédente [10].
D’abord, un bloc de longueur n (pair) est divisé en deux parties égales (chacune aura
une longueur n/2), l’une appelée L et l’autre nommée R. D’où les relations suivantes :
Li = Ri-1
Ri = Li-1 ⊕ f(Ri-1 , Ki) où
(A3.1)
K i est la sous clé utilisée dans le ième round, f est une fonction quelconque.
Ceci est un concept important car il garantit que la fonction (de chiffrement) est
inversible. La moitié droite et la sortie de la fonction de ronde sont combinées par ⊕ (ou
exclusif), l’égalité suivante est forcement vérifiée :
Ri ⊕ f(Ri-1 , Ki) = Li-1 ⊕ f(Ri-1 , Ki) ⊕ f(Ri-1 , Ki) = Li-1 (A3.2)
Alors pour le déchiffrement les relations sont :
Li-1 = Ri ⊕ f(Ri-1 , Ki)
Ri-1 = Li
(A3.3)
La nature de f n’est pas importante. Donc, une fonction aussi compliquée que
désirée peut être employée, et la réalisation de deux algorithmes n’est plus nécessaire.
En fait, le réseau de Feistel (Fig.A3.1) prend tout cela en compte d’une manière
automatique.
54
Figure A3 : Schéma de Feistel.
A3.2 EXPANSION DE LA CLE
La première étape dans l'algorithme est de séparer la clé originale en un
ensemble de sous-clés. Il y a aussi l'initialisation d'un tableau P et de quatre S-Boxes.
Les S-Boxes acceptent un mot de 8 bits en entrée et produisent une sortie de 32 bits
tandis que le tableau P contient 18 sous-clés de 32 bits.
Pour le calcul des sous-clés, il faut d’abord initialiser le tableau P et les S-Boxes
avec une chaîne de caractères fixes, puis effectuer l’opération ⊕ entre le tableau P et
les bits de la clé. Soit K[i] le ième 32 bits de la clé :
P[1] ⊕ K[1],
P[2] ⊕ K[2],
P[i] ⊕ K[i],
P[18] ⊕ K[n].
Lorsque les bits de la clé sont épuisés, il faut revenir au premier 32 bits.
Un bloc de 64 bits, tous à zéro, est ensuite chiffré avec cette version temporaire
de Blowfish. Le résultat chiffré remplace ensuite le premier et le deuxième élément du
tableau P.
Chiffrer le résultat obtenu pour obtenir le troisième et quatrième élément de P, et
ainsi de suite jusqu’à ce que les éléments de P et des S-Boxes sont tous remplacés. Au
final, 4168 octets de données doivent être générés et Blowfish effectue 521 itérations
pour y parvenir.
A3.3 PRINCIPE
L'entrée de 64 bits de texte clair est notée x, la sortie est x’ et le tableau P est noté P[i],
où "i" est l'itération. L’algorithme comporte quatre étapes.
• Etape 0 : découpage des blocs en patrie gauche et droite, d’où deux suites
L et R de 32 bits,
• Etape 1 : pour i allant de 1 à 16, faire
L = L ⊕ P[i]
55
R = F(L) ⊕ R
permuter L et R,
• Etape 2 : faire
Permuter L et R
R = R ⊕ P[17]
L = L ⊕ P[18],
• Etape 3 : recombinaison des parties gauche et droite.
La fonction F( ) est une fonction qui a une entrée et une sortie de 32 bits.
Pour une variable M divisée en quatre : a, b, c, et d et avec les quatre S-Boxes
S1,S2,S3,S4.
F(M) = ((S1(a) + S2(b) mod 232) ⊕ S3(c)) + S4(d) mod 232 (A3.4)
Les S-Boxes sont des tables de substitution dont l’entrée est un mot de 8 bits
correspondant à un chiffre entre 0 et 255. Ce chiffre indique le numéro de la colonne
dont la sortie est l’élément contenu dans cette dernière.
56
Annexe 4 : ALGORITHME RSA
Actuellement, la cryptographie est devenue un moyen très efficace pour la
sécurisation, grâce à l'outil mathématique permettant de rendre inviolables et
inexploitables directement les données sensibles.
A4.1 OUTILS MATHEMATIQUES NECESSAIRES
• NOMBRES PREMIERS
Un nombre premier est un nombre entier, strictement plus grand que 1, dont les
seuls diviseurs sont 1 et lui-même, par exemple : 2, 5, 73, 2521,…Un nombre qui n’est
pas premier est dit composé. Il existe une infinité de nombres premiers. En
cryptographie, les nombres premiers utilisés sont souvent de très grandes tailles (plus de
512 bits).
• PLUS GRAND COMMUN DIVISEUR (PGCD)
Deux nombres sont premiers entre eux quand ils n’ont d’autre facteur en commun
que 1. Autrement dit, si le PGCD de a et n est égal à 1, alors a et n sont dits premiers
entre eux, d’où la relation :
PGCD (a,n) = 1 (A4.1)
• FONCTION D’EULER
La fonction d’Euler est une fonction qui a un entier n fait correspondre le
nombre d’entiers α premiers à n vérifiant 1 ≤ α ≤ n. On note φ cette fonction.
- Si p est un nombre premier, alors tout entier compris entre 1 et (p – 1) est premier
à p, alors
φ(p) = p − 1 (A4.2)
- Soient p et q deux nombres premiers distincts ainsi
φ (pq) = (p − 1)(q − 1) (A4.3)
• THEOREMES
D’après le théorème d’Euler : Si deux entiers a et n sont premiers entre eux,
alors :
57
a φ(n) ≡ 1 mod n (A4.4)
Le théorème de Bezout affirme que le PGCD de deux entiers a et b est une
combinaison linéaire, à coefficients entiers, de a et b.
∀ a et b ∈ Z, ∃ µ, λ ∈ Z tel que PGCD(a,b) = a µ +b λ (A4.5)
• ALGORITHMES
� Algorithme d’Euclide
Pour vérifier si deux nombres entiers sont premiers entre eux, c’est à dire que
leur PGCD vaut 1, l’utilisation de l’algorithme d’Euclide s’avère utile et efficace.
Soit r le reste de la division euclidienne de a par b tel que
a = bq + r, avec r<b (A4.6)
Alors tout diviseur commun de b et r divise aussi a, et réciproquement tout diviseur
commun de a et b divise r (égal à a – bq).
Donc le calcul du PGCD de a et b se ramène à celui de PGCD de b et r ; et il
suffit de recommencer jusqu'à obtenir le dernier reste non nul qui est le PGCD cherché.
A titre d’exemple le tableau A2 récapitule les calculs pour a et b valant respectivement
30 et 13.
Tableau A2 : Algorithme d’Euclide.
a b r
30 = 13 * 2 + 4
13 = 4 * 3 + 1
4 = 1 * 4 + 0
Donc, le PGCD vaut 1 d’où a et b sont premiers entre eux.
� Algorithme d’Euclide étendu
Une amélioration de l’algorithme précédent conduit à trouver les coefficients de
Bezout associés à a et b. En effet, l’algorithme d’Euclide décrit la suite
récurrente suivante :
a0 = a, (A4.7)
a1 = b,
a2 = a0 – q0*a1,
58
an = an-2 – qn-2*an-1
Plus généralement : an+1 = an-1 – qn-1*an (A4.8)
avec qn-1 = an-1/an la division entière de an-1 par an
Cette récurrence peut être retrouvée par combinaison linéaire de a et b :
an = a*Un + b*Vn (A4.9)
Les suites Un et Vn vérifient la formule (A3.8) avec les conditions initiales :
U0 = 1, V0 = 0, (A4.10)
U1 = 0 et V1 = 1
Les coefficients de Bezout sont les valeurs des suites correspondant au PGCD
Pour le cas de l’exemple précédent, on aura alors le tableau A3 (conclusion à mettre)
Tableau A3 : Algorithme d’Euclide étendu.
an = a * Un + b * Vn reste de la division
30 = 30 * 1 + 13 * 0
13 = 30 * 0 + 13 * 1
4 = 30 * [1-0*2] + 13 * [0-1*2] 4 = 30 – 13*2
4 = 30 * 1 + 13 * -2
1 = 30 * [0-1*3] + 13 * [1+(-2)*(-3)] 1 = 13 – 4*3
1 = 30 * -3 + 13 * 7
Donc les coefficients de Bezout cherchés sont -3 et 7.
A4.2 METHODE DE CRYPTAGE ET DE DECRYPTAGE
Trois grands nombres : e, d, et n constituent les clés RSA dont le couple (e,n)
forme la clé publique tandis que (d,n) celle de la clé privée.
Pour encrypter un document il faut initialement le transformer en un nombre
m < n. Le message chiffré est donné par la formule :
m’ = me mod n. (A4.11)
Le message originale est obtenu par le décryptage de m’ en utilisant la relation
59
m = m’d mod n. (A4.12)
• GENERATION ET GESTION DES CLES
D’abord, il faut générer deux nombres premiers très grands p et q de l’ordre de
100 chiffres et calculer n = pq. Ensuite choisir l’exposant d’encryption e suivants les
conditions ci-après :
� 2 ≤ e ≤φ(n), où φ(n) est la fonction d’Euler associée à n.
� φ(n) et e sont premiers entre eux.
et pour le calcul de l’exposant de décryption d, il suffit d’appliquer le théorème de
Bezout. En effet, comme e et φ(n) sont premiers entre eux, leur PGCD vaut 1, et selon
le dit théorème, il existe deux entiers d et k tel que :
ed + kφ(n) = 1 (A4.13)
Cette équation peut se résoudre facilement avec l’algorithme d’Euclide étendu.
Toutefois, si la valeur de d est négative, il faut prendre d’ = d + φ(n).
• PREUVE DE L’ALGORITHME
Etant donné que m est le message en clair et m’ celle du crypté, il s’agit de
prouver que m = m’d mod n.
m’d mod n. = (me mod n)d mod n = med mod n
Or la formule (A3.13) donne que ed = 1 + k φ(n) . Ainsi,
med mod n =mk φ(n)+1 mod n = (mφ(n) mod n)k * m
D’après le théorème d’Euler, mφ(n) ≡ 1 mod n. Alors
(mφ(n) mod n)k * m = 1k *m = m
Soit, m’d mod n = m
60
Annexe 5 : ALGORITHME DE CHIFFREMENT DE FLUX
Le principe de cryptage et de décryptage se base sur la réversibilité de
l’opérateur ⊕ (ou exclusif). En effet, si a = b ⊕ c, b peut être tiré facilement par la
relation b = a ⊕ c, de même pour c = a ⊕ b.
A5.1 CRYPTAGE
L’algorithme comporte deux étapes successives :
� Etape 1
La première étape consiste à tester si le texte à crypter est trop court (inférieur à vingt
caractères). Dans ce cas, une expansion du texte est nécessaire pour le rendre plus
compliquer aux attaques. Ainsi, des codes aléatoires sont ajoutés avant le texte initial
pour fixer sa longueur à vingt caractères.
� Etape 2
Cette étape permet de crypter le texte modifié précédent par une fonction de cryptage
que nous avons conçu. Les procédures sont les suivantes, une opération ⊕ est
appliquée entre l’octet courant du texte et le résultat précédent chiffré à nouveau par la
fonction de chiffrement.
Soient T le texte modifié et C son crypté. Ils sont composés d’un tableau dont chaque
élément a une taille d’un octet. Le nième octet du texte est noté T[n] et pour le texte
chiffré C[n], une variable temporaire notée I est nécessaire pour la sauvegarde du
résultat précédent. f(m) : la fonction de chiffrement et de déchiffrement de l’octet m,
et VI : le vecteur d’initialisation.
Pour le premier octet,
I[0] = VI
C[0] = T[0] ⊕ f (I[0] )
Et pour n > 0,
I[n] = C[n-1] ,
C[n] = T[n] ⊕ f(I[n]) (A5.1)
A5.2 DECRYPTAGE
Comme la fonction XOR est réversible, T[n] peut être tiré par la relation (A5.1)
D’où, T[n] = C[n] ⊕ f(I[n]) (A5.2)
61
Afin de retrouver le message original, il faut ensuite éliminer les codes aléatoires.
Annexe 6 : LOI DE L’INFORMATIQUE ET DES LIBERTES
Face aux dangers que l’informatique peut faire peser sur la vie privée, divers
pays ont cherché à garantir la sécurité des informations à caractère personnel non
seulement par des mesures techniques mais également par des dispositions législatives.
.
A6.1 CNIL Commission Nationale de l’Informatique et des Libertés
Créée par la loi du 6 janvier 1978 relative à l’informatique, aux fichiers et aux
libertés, la CNIL est une autorité administrative indépendante a pour mission essentielle
de protéger la vie privée et les libertés individuelles ou publiques [20]. Elle est chargée
de veiller au respect de la loi « Informatique et Libertés » qui lui confie cinq missions
principales :
• Informer
La CNIL informe les personnes de leurs droits et obligations, et propose au
gouvernement les mesures législatives ou réglementaires de nature à adapter la
protection des libertés et de la vie privée à l’évolution des techniques. L’avis de la CNIL
doit d’ailleurs être sollicité avant toute transmission au Parlement d’un projet de loi
créant un traitement automatisé de données nominatives.
• Garantir le droit d’accès.
La CNIL veille à ce que les modalités de mise en oeuvre du droit d’accès aux
données contenues dans les traitements n’entravent pas le libre exercice de ce droit. Elle
exerce, pour le compte des citoyens qui le souhaitent, l’accès aux fichiers intéressant la
sûreté de l’État, la défense et la sécurité publique, notamment ceux des renseignements
généraux.
• Recenser les fichiers.
Les traitements de données à “risques” sont soumis à autorisation de la CNIL.
Elle donne un avis sur les traitements publics utilisant le numéro national
d’identification des personnes. Elle reçoit les déclarations des autres traitements. Le non
respect de ces formalités par les responsables de fichiers est passible de sanctions
administratives ou pénales. La CNIL tient à la disposition du public le « fichier des
fichiers », c’est-à-dire la liste des traitements déclarés et leurs principales
caractéristiques.
62
• Contrôler
La CNIL vérifie que la loi est respectée en contrôlant les applications
informatiques. La Commission use de ses pouvoirs de vérification et d’investigation
pour instruire les plaintes, pour disposer d’une meilleure connaissance de certains
fichiers, pour mieux apprécier les conséquences du recours à l’informatique dans
certains secteurs, pour assurer un suivi de ses délibérations. La CNIL surveille par
ailleurs la sécurité des systèmes d’information en s’assurant que toutes les précautions
sont prises pour empêcher que les données ne soient déformées ou communiquées à des
personnes non autorisées.
La CNIL peut prononcer diverses sanctions graduées : avertissement, mise en
demeure, sanctions pécuniaires, injonction de cesser le traitement.
• Réglementer
La CNIL établit des normes simplifiées, afin que les traitements les plus
courants et les moins dangereux pour les libertés fassent l’objet de formalités allégées.
Elle peut aussi décider de dispenser de toute déclaration des catégories de
traitement sans risques.
A6.2 LOI SUR LES FRAUDES A LA CARTE BANCAIRE
En ce qui concerne l’utilisation des cartes bancaires, les principales dispositions de la
loi sur la sécurité quotidienne en matière de protection des porteurs de cartes sont les
suivantes :
- l’élargissement des possibilités de faire opposition non seulement en cas de perte
ou vol de la carte, mais aussi lorsqu’il y a utilisation frauduleuse du numéro de
carte (en vente à distance par exemple),
- l’instauration d’une franchise laissée à la charge du porteur lorsque la fraude a lieu
avant la déclaration de perte ou de vol ou d’utilisation frauduleuse,
- le dégagement de la responsabilité du porteur d’une carte victime d’une fraude liée
à une contrefaçon de sa carte ou à une transaction à distance sans utilisation
physique de la carte,
- La loi renforce également les moyens de lutte contre les contrevenants
informatiques en instaurant des sanctions pénales renforcées pour l’utilisation à
des fins délictueuses de moyens informatiques permettant de contrefaire un moyen
de paiement [20].
63
REFERENCES
[1] Cours de « Réseau Local », E510 5ème Année, Département Electronique, ESPA, 2004 – 2005.
[2] Stella Marc-Swecker, « Cours de téléinformatique et protocoles de communication », Université Louis Pasteur Strasbourg, PDF, 2003.
[3] Cours de « Téléinformatique », E551 5ème Année, Département Electronique, ESPA, 2004 – 2005.
[4] PUJOLLE, Les réseaux Ed. Eyrolles, 2003.
[5] http://www.CommentCaMarche.net/initiation/client.htm, 2005.
[6] DONSEZ Didier, « Architecture des Réseaux », Université de Valenciennes, PDF, 2004.
[7] RAZAKANIRINA Ranaivo, CONDE Morlay, « Les paiements via Internet », PDF, janvier 2005.
[8] GUÉTIN Philippe, « La monétique et les transactions électroniques sécurisées », PDF, Décembre 2003.
[9] DANDA Matthew, « La sécurité sur le Web », publié par Microsoft Press, 2001
[10] RAKOTOMAVONJANTOVO Zina, « Sécurisation des réseaux sous Linux », mémoire d’ingénieur n : 06/EN/II/04, Département Electronique, ESPA, 2003/2004.
[11] http://www.CommentCaMarche.net/protect/firewall.htm, 2005.
[12] http://www.microsoft.com/resources/documentation/vpn/default.htm, 2005.
[13] http://www.securiteinfo.com/SSL/SSL.htm, 2005.
[14] DESWARTE Yves, « Sécurité et protection de la vie privée sur Internet », PDF, 2002.
[15] RIBIERE Gérard, « Paiement sécurisé sur Internet avec le protocole SET », PDF, 2004.
[16] http:// www.rambit.qc.ca/plamondon/listcomp.htm, 2005
[17] http :// www.schneier.com/blog/archives/2005/04/blowfish_on_24.html, 2005.
[18] http://www.uqtr.ca/_delisle/Crypto/prives/flux_default.htm, 2005.
[19] BRUCE. Schneier, « Protocoles et algorithmes », J. Wiley, 1997.
[20] BELLEFIN Laurent, « Les PKI : Vers une Infrastructure Globale de Sécurité ? », Novembre 2001.
[21] http://www.cnil.fr, 2005.
Auteurs : RAHARIVOLA ALINTSOA Lala Harinjaka (♣)
ANDRIAMAHALISON Rijanavalona Ronald (♦)
Titre : DEVELOPPEMENT DE TRANSCRYPT 1.0
LOGICIEL DE SECURITE POUR LA MONETIQUE
Nombre de pages : 63
Nombre de figures : 31
Nombre de tableaux : 10
RESUME
Ce travail de mémoire étudie les différentes méthodes pour sécuriser les
transactions bancaires sur Internet. Le logiciel TransCrypt fondé sur des algorithmes
cryptographiques tels RSA, Blowfish et un chiffrement de flux en mode CFB, issu de
notre travail permet le cryptage de données avant la transmission et le décryptage à la
réception. De plus, TransCrypt permet d’assurer l’authentification des acteurs de la
transaction, ce qui permet une sécurité efficace à la monétique.
Mots clés : réseau, monétique, pare-feu, VPN, SSL, SET, algorithme, cryptage,
décryptage.
ABSTRACT
This work studies the different methods to secure the banking transaction on
Internet. The software TransCrypt founds on cryptographic algorithms, descended from
our work such RSA, Blowfish and a flux ciphering in CFB, permits the encryption of
data before the transmission and the decryption to the receipt. Further, TransCrypt
permits to assure the verification of the actors of the transaction what makes the
security more reliable.
Keys word : network, banking transaction, firewall, VPN, SSL, SET, algorithm,
encryption, decryption.
Rapporteur : Madame RABEHERIMANANA Lyliane
Adresses des auteurs : Lot II L 29 A Ankorondrano ANTANANARIVO-101 (♣)
Lot IVR 76 Antanimena ANTANANARIVO-101 (♦)