Argent electronique
paiement électronique

CRYPTOGRAPHIE

Paiement électronique: Introduction à la cryptographie



cryptographie Introduction

encryption Cette section explique les bases de la cryptographie, les méthodes de cryptographie les plus répandues ainsi que le protocole SSL qui est utilisé par le fureteur de la firme Netscape.

La cryptographie est la transformation de données dans une forme illisible pour quelqu'un qui ne détient pas la méthode de décryptage (souvent une clé de décryptage). Son but est de garantir la confidentialité en cachant l'information à toute personne qui n'est pas censée en avoir connaissance.

L'établissement de méthodes permettant la transmission d'informations d'une personne à une autre n'élimine pas entièrement la problématique de la sécurité. En effet, il faut aussi s'assurer de la bonne foi des opérateurs des serveurs utilisés pour les transmissions sur Internet. De la même façon, lorsque, par exemple, un client fournit son numéro de carte de crédit à un commerçant, il doit avoir confiance en ce commerçant. La cryptographie permet de protéger des données en assurant la transmission d'un ordinateur à un autre. En aucun cas cette technologie ne peut protéger un client contre les possibilités de fraude du marchand ou peut-être du responsable du serveur.

Les points qui sont abordés dans cette section sont les suivants :

La cryptographie par clés.
protocole SSL La gestion des clés dans le cadre de Internet.
La distribution des clés.
Le protocole SSL (Secure Socket Layer) .
Introduction aux cartes de crédit     VISA   Carte de crédit VISA CARD     MASTERCARD   Carte de crédit MasterCard Card     AMERICAN EXPRESS   Carte de crédit American Express Card
Références.




La cryptographie par clés

Retour au début de la page.

Dans un environnement multi-usagers, le cryptage permet d'augmenter la sécurité des communications entre utilisateurs sur des lignes non protégées (par exemple Internet). Prenons par exemple Alice et Bob (Note 1) qui désirent communiquer : Alice décide d'envoyer un message à Bob et souhaite que personne d'autre ne puisse le lire.



Le processus est illustré ci-dessous:

Elle décide donc de le crypter avec une clé spécifique de cryptage.

Puis Alice envoie le message encrypté à Bob.

Bob reçoit le message et le décrypte avec la clé de décryptage et lit le message.

Supposons que Gilles intercepte le message : il ne pourra pas le comprendre sans obtenir la clé de décryptage.


Il faut comprendre que l'essentiel, c'est la conservation des clés dans un endroit sûr de telle sorte qu'il n'y ait que les personnes autorisées qui connaissent les clés.

La cryptographie fut développée à l'origine par les militaires afin d'envoyer des messages sans que l'ennemi puisse en connaître le contenu. Il existe deux types de cryptographie, soit celle à clé secrète et celle à clés publique/privée.

Dans le cas de la cryptographie à clé secrète, le récepteur utilise la même clé pour décoder le message que celle que l'émetteur a utilisé pour l'encoder.

Le problème majeur posé par la cryptographie à clé secrète est que les correspondants doivent se mettre d'accord sur la clé à utiliser sans que personne d'autre ne le sache. S'ils se trouvent dans des zones géographiques éloignées, ils doivent alors faire confiance aux moyens de communication à leur disposition, à savoir la poste, le téléphone ou tout autre moyen de transmission. Quiconque intercepte leur clé sera en mesure de déchiffrer tous les messages qu'ils s'enverront.

Le deuxième type, soit la cryptographie à clés publique/privée élimine ce dernier problème. Pour chaque individu il existe une clé publique et une clé privée. La clé publique d'un individu est utilisée par les autres pour encrypter les messages qu'ils lui envoient. La clé privée est personnelle et permet de déchiffrer les messages reçus. Les personnes désirant communiquer ne doivent dorénavant plus s'envoyer les clés dans le plus grand secret des dieux. Les clés publiques sont mises à la disponibilié de tous tandis que les clés privées doivent demeurées connues que de leur détenteur légitime.

La création, la transmission et le stockage des clés sont appelés gestion des clés et les systèmes de cryptage développés doivent effectuer cette gestion.

Ce qui fait la force de cette méthode de cryptographie c'est qu'un message qui est encrypté avec une clé publique ne peut, en aucun cas, être déchiffré avec cette même clé publique. En effet, aucun mécanisme n'est en mesure de d'effectuer le processus inverse permettant de retrouver le message original.

La cryptographie à clés publique/privée est illustrée ci-dessous:

Alice veut envoyer un message chiffré à Bob en utilisant la clé publique de Bob. Le message ne pouvant être décrypté qu'à l'aide de la clé privée de Bob, qui n'est, en principe, connue que de Bob.

De la même façon, Bob va répondre à Alice en utilisant la clé publique d'Alice. Alice va décoder le message grâce à sa clé privée Alice, connue d'elle seule.



La gestion des clés dans le cadre d'Internet

Retour au début de la page.

La cryptographie, telle que décrite à présent, est utilisable dans le sens large. Dans le cadre d'Internet, l'usage particulier qui se fait de la cryptographie à clés publique/privée est de plus en plus répandue grâce à sa facilité d'implantation. Le principe est maintenant intégré dans des fureteurs tels Netscape, Mosaic et Microsoft Explorer. Cet usage est décrit et illustré dans les lignes qui suivent, en prenant l'exemple du protocole de cryptographie SSL intégré au fureteur Netscape.

Il a été expliqué précédemment que la cryptographie à clés publique/privée est plus conviviale que la cryptographie à clé secrète. Cependant, il y a un autre facteur qui favorise l'utilisation de la cryptographie à clés publique/privée: le nombre total de clés requis.


Nombre de
personnes
Nombre de
clés secrètes
Nombre total
de clés privées
ET publiques
214
336
468
51010
61512
72114
82816
93618
104520
1510530
2019040
50 1 225 100
100 4 950 200
500 124 750 1000
1 000 499 500 2000
10 000 49 995 000 20 000
n n(n-1)/2 2n

La technique de cryptographie à clé secrète exige une clé par paire de correspondants puisque toute communication entre deux individus doit rester confidentielle. Par conséquent, si Bob, Alice et Gilles désire communiquer confidentiellement ensemble, il faudra trois clés secrètes et chacun d'entre eux en détiendra deux.

De la même façon, si le nombre d'individus augmente à cinq, le nombre total de clés secrètes nécessaires grimpe à dix, et chaque personne en détient quatre. Finalement, pour chaque individu qui se joint au groupe, il faut générer une clé pour chaque personne appartenant déjà au groupe.

Pour ce qui est de la cryptographie à clés publique/privée, le nombre de clés requis est différent. Pour chaque personne s'ajoutant au groupe, il faut générer deux clés, soit une clé publique et une clé privée, toutes les deux appartenant à la nouvelle personne se joignant au groupe.

Le tableau ci-dessous illustre le nombre de clés nécessaires en fonction du nombre d'utilisateurs. Ce nombre indique la quantité de clés requises pour que chacun des utilisateurs puisse communiquer avec chacun des autres utilisateurs sûrement.

Comme on le constate dans le tableau, le nombre de clés augmente très rapidement dans le cas de la technologie des clés secrètes. Il semble impensable d'implanter cette technologie pour 10 000 usagers dans le cadre d'une communauté où chacun veut communiquer avec tout le monde en secret.


Un autre avantage de la technologie des clés publique/privée réside dans la lecture des messages reçus. En effet, avec cette méthode, le récepteur a besoin d'une seule clé pour lire tous les messages qui lui parviennent (sa clé privée). Dans le cas de la cryptographie à clé secrète, le récepteur doit identifier l'émetteur du message pour identifier la clé à utiliser. L'émetteur doit également conserver le même nombre de clés que le nombre de personnes avec qui il communique.

Par contre, dans le cas où chaque utilisateur ne doit communiquer qu'avec une entité, et non entre eux, le nombre de clés requises par les deux technologies de clés est presque le même et ce nombre est beaucoup plus raisonnable.

Toutefois, la principale difficulté se résume à la distribution des clés. Dans un cas comme dans l'autre, il faut faire connaître une clé à l'autre correspondant. Dans le cas de la cryptographie à clé secrète, il faut que les deux participants s'entendent sur une clé secrète donnée, tandis que dans le cas de la cryptographie à clés publique/privée, les participants doivent s'échanger leur clé publique.



La distribution des clés

Retour au début de la page.

Un des problèmes principaux en matière de cryptographie est la distribution des clés, c'est-à-dire comment faire pour qu'une clé ne soit connue que par les personnes concernées. Il faut transmettre ces clés en toute sécurité, même lorsque les individus sont éloignées.

La cryptographie à clé secrète ne permet pas une sécurité complète puisque la divulgation de la clé doit se faire par un moyen traditionnel comme la poste ou le téléphone.

Pour ce qui est de la cryptographie à clés publique/privée, les utilisateurs doivent pouvoir obtenir leur clé privée de manière tout à fait sûre et toutes les clés publiques doivent être accessibles à qui de droit. L'entité qui s'occupe de la conservation et de la divulgation des clés publiques est appelé le gestionnaire de clés. Le gestionnaire peut être, par exemple, un serveur d'où les clés publiques peuvent être consultées.

La création des paires de clés s'effectue à l'aide d'un logiciel de génération de paires de clés qui est remis aux nouveaux utilisateurs. Ceux-ci génèrent eux-mêmes une paire de clés, puis divulguent leur clé publique au gestionnaire de clés. Par la suite, quiconque veut communiquer avec une autre personne a simplement besoin d'interroger le gestionnaire de clés pour obtenir la clé publique correspondante.

Cette méthode de cryptologie résout le problème dans les cas où les utilisateurs ne peuvent se déplacer pour obtenir leur clé privée en personne. Mais cette méthode a une faiblesse. En effet, il y a un risque qu'une personne prétende être une autre personne lors de la génération des clés. Il faut donc concevoir un système permettant de vérifier qu'une clé publique donnée soit bien associée au détenteur légitime et que c'est bien lui qui l'utilise. De plus, le gestionnaire de clés doit être en mesure de prouver hors de tout doute qu'il est bien le gestionnaire de clés.

Ce problème de distribution des clés a donné naissance aux certificats. Un certificat est un document numérique attestant de la propriété d'une clé publique par une personne. Un tel certificat doit être émis par une institution reconnue.

Le certificat permet au titulaire de prouver à tous que la clé publique associée à ce certificat lui appartient et qu'il pourra décoder les messages que toute personne lui enverra en utilisant cette clé publique. Évidemment, l'émission de tels certificats engendre des coûts et ne peut se généraliser aux clés de tous les utilisateurs d'un système donné. Le certificat est généralement réservé aux gestionnaires de clés. Ainsi, le gestionnaire de clés peut démontrer à tous les individus communiquant avec lui qu'il est bien le gestionnaire de clés.

Les certificats doivent être infalsifiables, pouvoir être obtenus en toute sûreté et créés de telle façon que personne d'autre que leur destinataire légitime ne puisse les utiliser. Un certificat comprend en général les éléments suivants :



Maintenant, il faut s'assurer de l'authenticité des individus désirant communiquer avec le gestionnaire de clés pour enregistrer leur clé publique. En effet, comment le gestionnaire de clés peut-il savoir qu'une personne donnée est autorisée à obtenir une paire de clés dans le cadre d'un réseau donné lorsque celui-ci est privé? De même, comment s'assurer que la personne est bien celle qu'elle prétend être ? La solution réside à la distribution préalable d'un numéro d'identification personnel (NIP) aux usagers autorisés. Ce procédé ramène le problème à sa source: rien n'est possible sans l'intervention d'un moyen de communication traditionnel, du moins dans le cas d'un réseau privé. Par contre, dans le cas d'un réseau ouvert, la cryptographie à clés publique/privée est satisfaisante, comme il est expliqué ci-dessous avec l'exemple du protocole SSL.

L'utilisation conjointe des certificats et de la technologie des clés publique/privée est simple et se résume au processus suivant :

L'encryption de la nouvelle clé publique à l'aide de la clé publique du gestionnaire avant la transmission de l'information jusqu'au gestionnaire permet d'assurer que seul le gestionnaire de clés pourra déchiffrer le message, et la clé publique du nouvel utilisateur.

Ainsi, le problème de distribution de clés n'existe plus et les clés privées des utilisateurs n'ont pas besoin d'être transmises ni par Internet, ni par quelques moyens que ce soient, puisque c'est l'utilisateur lui-même qui génère sa clé privée.

Le format de certificat reconnu à l'heure actuelle est défini par la recommandation X.509 du CCITT. Les certificats X.509 peuvent être lus ou écrits via n'importe quel logiciel compatible X.509.



Le protocole SSL (Secure Socket Layer)

Retour au début de la page.

Le but recherché par les entreprises commerciales est un moyen permettant une communication sûre avec leurs clients, et plus précisément, une façon sûre d'obtenir le paiement des biens/services vendus.

Dans un tel cadre commercial, les données qui sont primordiales de protéger lors de la transmission sont constituées des informations concernant la carte de crédit du client (généralement). Dans le cas de vente de contenu électronique ou de service électronique il faut également protéger la transmission de ces données. La libre circulation non-protégée de ces données grugerait une partie des ventes des marchands.

Les transactions commerciales qui s'effectuent sur Internet sont généralement ponctuelles. C'est-à-dire qu'elle ne sont ni régulières, ni périodiques. Un système de cryptographie permettant d'assurer ce type de communication doit tenir compte de ces éléments.

Le protocole SSL (Secure Socket Layer) utilise la technologie de la cryptographie des clés publique/privée et l'authentification développée par RSA Data Security Inc. Le fureteur Navigator's de la compagnie Netscape Communications Corporation utilise l'implantation du protocole SSL. Ce protocole effectue la gestion des clés et l'authentification du serveur avant que les informations ne soient échangées.

Le processus est le suivant :

Un utilisateur quelconque utilise le logiciel Netscape client et entre en communication avec un logiciel serveur de type commercial. Le serveur possède déjà sa paire de clés publique/privée. C'est cette paire de clés qu'il utilise dans ses communication avec tous les logiciels clients.

Le logiciel client, une fois reconnu par le logiciel serveur, génère une paire de clés publique/privée.

Le logiciel client demande au logiciel serveur de lui fournir sa clé publique (celle du serveur).

La clé publique du client est aussitôt encryptée avec la clé publique de serveur et transmise au serveur.

Le serveur décode le message avec sa clé privée serveur et authentifie la clé publique de l'utilisateur.

Le serveur envoie ensuite au logiciel client une confirmation, encryptée, du bon déroulement de l'opération.

Toutes les informations suivantes qui seront transmises entre l'utilisateur et le serveur commercial seront désormais encryptées. De plus, il n'y a que ce serveur qui est en mesure de communiquer avec cet utilisateur puisqu'il n'y a que ce serveur qui connaît la clé publique de cet utilisateur. L'utilisateur et le serveur commercial peuvent maintenant échanger toutes les données voulues de façon sûre.

L'ensemble de ce processus est maintenant complètement transparent pour l'utilisateur.

Avec ce protocole, une nouvelle paire de clés est générée à chaque établissement de la communication entre le logiciel client de l'utilisateur et le logiciel serveur. La communication est donc entièrement sûre, mais en aucun cas le serveur commercial ne peut s'assurer de l'identité de l'utilisateur à l'autre extrémité.

Une façon de résoudre ce problème, est de joindre à ce processus un système de validation, comme par exemple un numéro d'identification personnel (NIP) qui s'obtient par une inscription préalable.




Note 1 : Alice et Bob sont les deux personnages types utilisés dans la plupart des ouvrages traitant de la cryptographie


Références:

Retour au début de la page.

http://www.rsa.com/rsalabs/
http://www.att.com/interspan/overview/att00453.html
http://www.rsa.com/rsalabs/newfaq/q123.html
http://www.rsa.com/rsalabs/newfaq/q165.html
http://www.rsa.com/rsalabs/newfaq/q134.html
Introduction aux cartes de crédit     VISA   Carte de crédit VISA CARD     MASTERCARD   Carte de crédit MasterCard Card     AMERICAN EXPRESS   Carte de crédit American Express Card




Retour au début de la page.
Page précédente.

Dernière mise-à-jour : 17 Octobre 1996.