VI. Chiffrement de la session : HTTPS▲
VI-A. Pr�sentation▲
Si vous avez lu attentivement jusqu'ici, c'est bon, vous avez tout pour comprendre le HTTPS.
Rien d'original en effet, du hash, du chiffrement sym�trique et du chiffrement asym�trique.
Ainsi, une fois que le client et le serveur sont d'accord sur les algorithmes � utiliser, le serveur g�n�re la cl� publique et priv�e du chiffrement asym�trique, envoie la cl� publique (en pratique, il s'agit plut�t de certificat) au client et garde la cl� priv�e. Le client g�n�re une cl� pour le chiffrement sym�trique, la chiffre avec la cl� publique du serveur. Le tout est envoy� au serveur qui d�chiffre avec sa cl� priv�e.
Ce m�canisme permet ainsi de transmettre la cl� priv�e d'un chiffrement sym�trique de mani�re s�curis�e.
Le HTTPS est en fait une utilisation du HTTP classique, s�curis� par SSL (Secure Socket Layer) invent� par Netscape.
Le SSL se place dans le mod�le TCP au niveau de la couche session, sous la couche application.
Ceci est primordial car cela signifie que toute application peut utiliser SSL.
Voyons rapidement le mode de fonctionnement.
Lorsqu'on appelle un page en HTTPS, la premi�re �tape consiste pour le client et le serveur � se mettre d'accord sur les m�thodes de chiffrement.
Pour se rendre compte de cet �change, on va utiliser Ethereal dont voici quelques captures.
On voit dans la liste des informations envoy�es par le client la liste des m�thodes de chiffrement qu'il conna�t :
Le serveur va � son tour envoyer un "server Hello" avec plusieurs informations :
Dans les informations qu'envoie le serveur, on trouve la m�thode de chiffrement qu'il choisit, ainsi que son certificat (voir chapitre suivant).
Enfin, la troisi�me phase, le client va g�n�rer la cl� priv�e de chiffrement sym�trique, la crypter gr�ce � la cl� publique du serveur et l'envoyer au serveur.
La transmission de donn�es chiffr�es gr�ce � cette cl� peut maintenant commencer.
VI-B. D�ploiement▲
Pour utiliser le SSL sous windows, vous trouverez toutes les informations n�cessaires en suivant [ ce lien ].
Pour linux, le mieux est de se renseigner aupr�s de la documentation de sa propre distribution, un package est bien souvent disponible.
VI-C. Certificat▲
Je viens de vous pr�senter le principe du HTTPS et �a a l'air incrackable.
Et bien tel que je viens de le pr�senter, �a ne vaut rien, car n'oublions pas que depuis le d�but de cet article, un homme est entre nous et le serveur.
Imaginez que cet homme vous envoie lui-m�me sa cl� publique au bon moment et poss�de sa cl� priv�e pour d�chiffrer. Il sera capable de lire tout ce que vous �crivez comme s'il n'y avait aucun chiffrement.
L'important pour le hacker sera de faire croire au visiteur qu'il est bien connect� au bon site et non au hacker. Pour cela, il existe plusieurs techniques, on peut par exemple pirater le site cibl� et y mettre une redirection automatique vers le site du hacker qui sera un clone du site original.
Pour r�soudre ceci, il faut utiliser un certificat, qui consiste pour un serveur � enregistrer sa cl� publique aupr�s d'un organisme externe qui ainsi certifie sa validit�.
Le serveur n'envoie plus sa cl� publique, mais le certificat entier que le client valide aupr�s de l'organisme correspondant.
En cliquant sur le petit cadenas en bas � droite de Firefox, vous pourrez ainsi voir ceci :