IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Chiffrement et hash en PHP contre l'attaque Man in the middle

Chiffrement et hash en PHP contre l'attaque Man in the middle


pr�c�dentsommairesuivant

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.

Le client envoie un "client hello", pr�sentant ce qu'il sait faire



On voit dans la liste des informations envoy�es par le client la liste des m�thodes de chiffrement qu'il conna�t :

Liste des m�thodes de chiffrement du client



Le serveur va � son tour envoyer un "server Hello" avec plusieurs informations :

R�ponse du serveur :server Hello



Dans les informations qu'envoie le serveur, on trouve la m�thode de chiffrement qu'il choisit, ainsi que son certificat (voir chapitre suivant).

La m�thode de chiffrement choisie par le serveur



Le certificat du serveur



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.

Envoi de la cl� de chiffrement sym�trique au serveur



La transmission de donn�es chiffr�es gr�ce � cette cl� peut maintenant commencer.

donn�es chiffr�es



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 :

certificat



pr�c�dentsommairesuivant