Cryptographie!

La sécurité du commerce éléctronique : SSL, TLS...

  Il est très pratique de contrôler ses comptes, ou de commander son billet de train depuis chez soi grâce à Internet. Mais lorsqu'on communique son mot de passe ou son numéro de carte bancaire, que se passe-t-il? Circulent-ils en clair sur le réseau? Transmet-on son numéro de CB au commerçant? à sa banque? N'y-a-t-il pas quelqu'un qui peut usurper son identité? Des protocoles cryptographiques permettent de répondre à ses questions et à ses inquiétudes. Le plus répandu est SSL (Secure Sockets Layers, couche de transport sécurisé).

Une petite histoire de SSL
  C'est la société Netscape Communications, l'éditrice de Netscape Navigator, l'un des tous premiers navigateurs internet, qui est à l'origine du protocole SSL, en collaboration avec Mastercard, Bank of America, MCI et Silicon Graphics. Il est intégré fin 1994 dans Netscape Navigator; une nouvelle version voit le jour à l'hiver 1995.

  Le brevet de SSL est racheté en 2001 par l'IETF, l'Internet Engineering Task Force, un groupe informel qui élabore la plupart des standards de l'internet. A cette occasion, l'IETF accepte de faire de SSL un standard universel, et le renomme TLS (Transport Layer Security). Cela dit, c'est encore sous le nom de SSL que le protocole est connu.

  De nos jours, tous les navigateurs présents sur le marché supporte SSL, et la majeure partie des communications sécurisées se font par l'intermédiaire de ce protocole. SSL fonctionne de manière totalement cachée pour l'utilisateur, qui n'a pas à intervenir dans le protocole. La seule façon d'identifier une communication sécurisée est d'observer que l'adresse du site commence par https:// au lieu de http://, le s signifiant secure. Parfois, les navigateurs ajoutent aussi un cadenas dans la barre d'adresse.
Les objectifs de SSL
  Les objectifs de SSL sont triples :
  • authentifier les partenaires : le serveur comme le client doivent être sûrs de l'identité l'un de l'autre;
  • assurer la confidentialité : quelqu'un qui écoute la communication ne doit pas pouvoir comprendre les échanges, ni les modifier;
  • préserver l'intégrité des données : il faut être sûr que les données envoyées d'un côté sont bien celles qui sont reçues de l'autre côté.
SSL, principe de fonctionnement
  Pour remplir ces 3 objectifs, SSL utilise de nombreux outils cryptographiques : la cryptographie à clé publique, la cryptographie symétrique, les fonctions de hachage et les certificats électroniques. Nous allons schématiser comment fonctionne SSL en décrivant ses actions lorsque Greg commande un bouquet à la boutique en ligne "Milfleurs". Il se passe l'échange suivant :
  • Greg se connecte au site sécurisé de Milfleurs.
  • Le site Milfleurs lui envoie un certificat électronique. Ce certificat électronique, garanti par une autorité de certification, certifie à Greg qu'il s'agit bien du site de Milfleurs; il comporte aussi la clé publique d'échange P du site Milfleurs.
  • Le navigateur de Greg vérifie le certificat. Il se met ensuite d'accord avec le serveur distant sur un système cryptographique symétrique à utiliser (en pratique, le plus sûr qu'ils ont en commun). Puis il choisit au hasard une clé pour cet algorithme, la clé de session K.
  • Le navigateur de Greg envoie au serveur de Milfleurs P(K). A l'aide de sa clé secrète S, le serveur de Milfleurs calcule S(P(K))=K. Ainsi, le navigateur de Greg et le serveur de Milfleurs sont en possession d'une même clé.
  • Greg rentre son numéro de CB et d'autres données. Elles constituent les "informations". Le navigateur envoie à Milfleurs ces "informations", chiffrées en utilisant la clé K. Il envoie aussi un résumé de ces "informations", en utilisant une fonction mathématique appelée fonction de hachage.
  • Grâce à la clé K, le serveur de Milfleurs peut retrouver les "informations". Il calcule aussi le résumé des informations, et compare avec le résumé envoyé par le navigateur de Greg. S'ils coïncident, c'est que les données ont été correctement transmises.
Au-delà de SSL
  Ce protocole a plusieurs inconvénients majeurs :
  • le plus grave est sa sensibilité à l'attaque du milieu. Elle dépend pour beaucoup de l'utilisateur (Greg dans notre exemple). En effet, si quelqu'un se fait passer pour Milfleurs, il ne pourra fournir qu'un certificat erroné. Le navigateur de Greg le signalera à Greg, publiant un avertissement sur le certificat. Seul Greg pourra choisir de continuer la transaction ou non. S'il n'est pas assez prudent, il risque de communiquer des données sensibles à des personnes non autorisées.
  • il n'évite pas la non-répudiation : rien ne certifie au marchand que c'est Greg qui a passé commande, et celui-ci peut toujours protester auprès de sa banque pour être remboursé. En réalité, il est théoriquement possible dans SSL de demander à ce que Greg soit lui aussi authentifié. Mais quel particulier dispose d'un certificat électronique?
  • le marchand est en possession du numéro de CB du client. S'il est peu scrupuleux, il peut s'en servir à son compte. A la fin des années 1990, un autre procole, baptisé SET (Secure Electronic Transaction), et mis au point par Visa et Mastercard, permettait de contourner ce problème. Il faisait aussi intervenir les banques du client et du commerçant. Greg envoyait cette fois directement son numéro de CB à la banque du commerçant. Celle-ci vérifiait les coordonnées bancaires, et confirmait au commmerçant si elles étaient valides ou non. Ce protocole ne s'est jamais réellement imposé et a été abandonné au début du XXIè siècle.
Consulter aussi