Vigil@nce : SSL, TLS, obtention de cookie HTTPS
septembre 2011 par Vigil@nce
Ce bulletin a été rédigé par Vigil@nce : http://vigilance.fr/offre
SYNTHÈSE DE LA VULNÉRABILITÉ
Un attaquant, qui peut contrôler les connexions HTTPS du
navigateur web de la victime et qui dispose de bande passante
suffisante, peut employer de nombreuses sessions SSL afin de
calculer les entêtes HTTP, comme les cookies.
– Gravité : 1/4
– Date création : 26/09/2011
PRODUITS CONCERNÉS
– Microsoft IIS
– Microsoft Internet Explorer
– Microsoft Windows 2003
– Microsoft Windows 2008
– Microsoft Windows 7
– Microsoft Windows Vista
– Microsoft Windows XP
– Opera
– Protocole SSL/TLS
DESCRIPTION DE LA VULNÉRABILITÉ
Le protocole SSL/TLS supporte les chiffrements CBC (Cipher Block
Chaining) : un bloc clair est "XORé" (opération OU Exclusif) avec
le dernier bloc chiffré, puis le tout est chiffré. Cette
dépendance entre un bloc et son bloc précédent a fait l’objet de
plusieurs études théoriques depuis 2002, et a conduit à la
définition de TLS 1.1 en 2006, qui utilise un algorithme différent.
Le "protocole" HTTPS, utilisé par les navigateurs web, encapsule
une session HTTP dans une session SSL/TLS. Une requête HTTP est de
la forme :
GET /abcdefg HTTP/1.0
Entêtes (cookies)
...
Cette requête est fragmentée en bloc de 8 octets, qui sont
chiffrés par CBC. Le premier bloc est alors "GET /abc".
Un attaquant peut mettre en place un site web illicite, et inviter
la victime à s’y connecter. Ce site web peut demander au
navigateur web de la victime de charger la page "/abcdefg" du site
sécurisé par SSL/TLS.
L’attaquant contrôle la taille de l’url demandée (via "/abcdefg"),
et il peut donc positionner le premier octet des entêtes à la fin
d’un bloc (dont les 7 autres octets sont connus : "P/1.1\r\n"). Ce
bloc suit un bloc entièrement connu ("defg HTT"). L’attaquant peut
ensuite intercepter la session SSL/TLS chiffrée, et mémoriser le
dernier bloc chiffré. Ce bloc sert de vecteur d’initialisation
pour calculer un XOR avec le chiffré de "defg HTT" (bloc 2), et un
caractère deviné placé en fin de "P/1.1\r\n" (bloc 3). Le résultat
est réinjecté par l’attaquant en fin de requête HTTP en clair. Il
observe le bloc résultant chiffré, et s’il est le même que le
troisième bloc chiffré, alors le caractère deviné était correct.
L’équation simplifiée est :
chiffré(IV XOR (IV XOR ChiffréDeBloc2 XOR ClairDeBloc3Deviné)) =
chiffré(ChiffréDeBloc2 XOR ClairDeBloc3Deviné) =
ChiffréDeBloc3
L’attaquant répète ces requêtes autant de fois que nécessaire.
Un attaquant, qui peut contrôler les connexions HTTPS du
navigateur web de la victime et qui dispose de bande passante
suffisante, peut donc employer de nombreuses sessions SSL afin de
calculer les entêtes HTTP, comme les cookies.
ACCÈS AU BULLETIN VIGIL@NCE COMPLET
http://vigilance.fr/vulnerabilite/SSL-TLS-obtention-de-cookie-HTTPS-11014