SSL (Secure Sockets Layers, que l'on pourrait traduire par couche de sockets sécurisée) est un procédé de sécurisation des
transactions effectuées via Internet mis au point par Netscape, en collaboration
avec Mastercard, Bank of America, MCI et Silicon Graphics.
Il repose sur un procédé de cryptographie par clef publique
afin de garantir la sécurité de la transmission de données sur Internet
Le système SSL est indépendant du protocole utilisé,
ce qui signifie qu'il peut aussi bien sécuriser des transactions faites sur le Web par le protocole HTTP
que des connexions via le protocole FTP, POP ou IMAP.
En effet,
SSL agit telle une couche supplémentaire, permettant d'assurer la sécurité des données,
située entre la couche application
et la couche transport (protocole TCP par exemple).
De cette manière, SSL est transparent pour l'utilisateur (entendez par là qu'il peut
ignorer qu'il utilise SSL). Par exemple un utilisateur utilisant un navigateur Internet pour se connecter
à un site de commerce électronique sécurisé par SSL enverra des
données chiffrées sans avoir à s'en préoccuper.
La quasi intégralité des navigateurs supporte désormais le protocole SSL.
Netscape Navigator affiche par exemple un cadenas verrouillé pour indiquer
la connexion à un site sécurisé par SSL et un cadenas ouvert dans le cas
contraire, tandis que Microsoft Internet Explorer affiche un cadenas uniquement lors de la connexion
à un site sécurisé par SSL.
sous Internet Explorer |
sous Mozilla |
|
|
Un serveur sécurisé par SSL possède
une URL commençant par https://, où le "s"
signifie bien évidemment secured (sécurisé).
Au milieu de l'année 2001, le brevet de SSL appartenant jusqu'alors à Netscape
a été racheté par l'IETF (Internet Engineering Task Force) et a été rebaptisé
pour l'occasion TLS (Transport Layer Security).
La sécurisation des transactions par SSL 2.0 est basée sur un échange
de clés entre client et serveur. La
transaction sécurisée par SSL se fait selon le schéma suivant:
- Dans un premier temps, le client, se connecte au site marchand sécurisé par SSL et lui demande
de s'authentifier. Le client envoie également la liste des cryptosystèmes qu'il
supporte, triée par ordre décroissant de la longueur des clés.
- Le serveur a réception de la requête envoie un certificat au client, contenant la clé publique du serveur, signée
par une autorité de certification (CA), ainsi que le nom du cryptosystème le plus haut dans la liste avec lequel il est compatible (la longueur de la clé de chiffrement - 40 bits ou 128 bits - sera celle du cryptosystème commun ayant la plus grande taille de clé).
- Le client vérifie la validité du certificat (donc l'authenticité du marchand), puis crée une clé secrète
aléatoire (plus exactement un bloc prétenduement aléatoire), chiffre cette clé à l'aide de la clé publique du serveur, puis lui
envoie le résultat (la clé de session).
- Le serveur est en mesure de déchiffrer la clé de session avec sa clé
privée. Ainsi, les deux entités sont en possession d'une clé commune dont ils sont
seuls connaisseurs. Le reste des transactions peut se faire à l'aide de clé de session,
garantissant l'intégrité et la confidentialité des données échangées.
|