conception et implémentation du côté serveur conception et...

76
- 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 Harinjaka (: ) Mr ANDRIAMAHALISON Rijanavalona Ronald () Soutenu le 28 Février 2006 N° : 04 / EN / II / 05 (: ) 05 / EN / II / 05 () Année universitaire : 2004 - 2005

Upload: others

Post on 27-Aug-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

- 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

Page 2: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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

Page 3: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

Ny zava-miafin’i Jehovah dia amin’izay

matahotra Azy ; ary asehony azy ny

fanekeny.

Sal 25 : 14

Page 4: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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

Page 5: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 6: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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

Page 7: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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

Page 8: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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

Page 9: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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

Page 10: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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

Page 11: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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

Page 12: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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

Page 13: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 14: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 15: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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

Page 16: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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].

Page 17: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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

Page 18: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 19: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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,

Page 20: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 21: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 22: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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é.

Page 23: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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

Page 24: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 25: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 26: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 27: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 28: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 29: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 30: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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].

Page 31: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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

Page 32: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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].

Page 33: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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).

Page 34: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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

Page 35: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 36: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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].

Page 37: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 38: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 39: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 40: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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

Page 41: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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 :

Page 42: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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

Page 43: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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

Page 44: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 45: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 46: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 47: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 48: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 49: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 50: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

38

Figure 3.3 : Organigramme de l’application client.

b) DU COTE SERVEUR

Page 51: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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,

Page 52: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 53: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 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.

Page 54: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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)

Page 55: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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

Page 56: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 57: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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).

Page 58: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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).

Page 59: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 60: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 61: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

49

Page 62: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 63: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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

Page 64: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 65: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 66: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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]

Page 67: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 68: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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 :

Page 69: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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,

Page 70: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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

Page 71: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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

Page 72: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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)

Page 73: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 74: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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].

Page 75: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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.

Page 76: Conception et implémentation du côté serveur Conception et ...biblio.univ-antananarivo.mg/pdfs/raharivolaalintsoalh_espa_ing_06.pdf · DEVELOPPEMENT DE TRANSCRYPT 1.0 LOGICIEL

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 (♦)