Contexte
La faille POODLE (découverte par une équipe de Google fin Septembre) permet d’extraire depuis une transaction sécurisée en SSLv3 des informations secrètes (cookies, password) lors d’une attaque de type “Man in the middle”.
Suite à la découverte de cette faille, le protocole SSLv3 est maintenant obsolète, il est conseillé sur un serveur WEB, d’interdire l’utilisation de SSLv3 ce qui peut présenter des problèmes de compatibilité.
Explications
Lors d’une connexion à un site WEB, le navigateur et le serveur WEB vont négocier un protocole de chiffrement, le protocole négocié doit correspondre au protocole le plus à jour implémenté par le serveur et le client.
Bien qu’actuellement la grande majorité des navigateurs et des sites WEB implémentent des protocoles plus sécurisées que le SSLv3, il est possible que le protocole SSLv3 soit choisi par “fallback”. Il est également possible pour un utilisateur malveillant qui contrôlerait le réseau entre le client et le serveur de forcer la négociation d’un protocole antérieur au protocole le plus à jour implémenté par le client et le serveur afin d’en exploiter les failles.
Avec la faille POODLE touchant le SSLv3 et contrairement aux failles précédentes rencontrées sur SSLv3, aucun contournement n’est possible. Il faut donc bannir l’utilisation du protocole SSLv3.
C’est dans cette optique que les principaux navigateurs dont Firefox et Google Chrome, annoncent le retrait du support de SSLv3 sur leurs prochains produits.
Résolution sur IIS & ASP.NET
Sur un serveur web utilisant le framework .NET et qui est compatible avec TLS 1.0, il est possible de forcer l’utilisation d’algorithmes de cryptographie compatibles FIPS.
Cela se fait via l’activation de la stratégie locale située dans :
“Paramètres de sécurité locaux/Stratégies locales/Option de sécurité/Stratégie/Chiffrement Système”
Après cette modification les protocoles non compatibles FIPS (dont SSLv3) ne pourront être utilisés.
Par défaut, ASP.NET utilise des algorithmes non-compatibles avec FIPS, l’erreur 1309, visible dans le logs des évènements Web, est donc susceptible d’apparaitre :
Afin de modifier ce comportement, il faut spécifier au niveau du fichier Web.Config de l’application ASP.NET l’algorithme de cryptographie à utiliser.
Pour ce faire il faut dans la partie <system.web> du fichier Web.Config, ajouter la ligne suivante :
<machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="3DES" decryption="3DES"/>
Sources :
http://support.microsoft.com/kb/911722
https://blog.mozilla.org/security/2014/10/14/the-poodle-attack-and-the-end-of-ssl-3-0/