Ce qu'ont fait Moxie Marlinspike et David Hulton se résume à la production d'un outil permettant de casser un échange MS-CHAPv2 en moins de 24h. Plus précisément, leur travail propose d'une part une nouvelle attaque permettant de réduire la complexité du cassage d'une authentification au cassage d'un DES simple, et d'autre part l'implémentation optimisée d'une machine à casser du DES sur un cluster de 48 FPGA.
Tout ceci se traduit, pour l'utilisateur final, sous la forme d'un petit outil, chapcrack, parcourant une trace PCAP à la recherche d'échanges MS-CHAPv2[1] pour en extraire les informations qui vont bien. Ces dernières pourront alors être soumises sur CloudCracker en vue d'obtenir le résultat final : le mot de passe de l'utilisateur.
D'aucun diront qu'on pouvait déjà conduire ce genre d'attaque avec une Rainbow Table. Certes, sauf que là, pas besoin de télécharger quelques gigaoctets de données donnant accès à un nombre limité de mots de passe : on obtient le résultat dans la demie journée qui suit en moyenne, avec un taux du réussite de 100%. Ce qui change sensiblement la donne...
Bref... RIP MS-CHAPv2 (1999-2012)...

Maintenant, qu'est-ce que ça veut dire en pratique ? En particulier pour les VPN utilisant PPTP d'une part, et surtout pour les réseau Wi-Fi WPA et/ou WPA2 authentifiés en PEAP d'autre part, puisque c'est ce qui m'intéresse principalement. Une fois n'est pas coutume, je vais commencer par le résumé :

  • PPTP est bel est bien cassé, il ne faut plus l'utiliser ;
  • PEAP est touché, mais ça ne devrait pas être rédhibitoire.

Maintenant, la version longue...

Dans le cas de PPTP, le challenge d'authentification circule en clair dans le canal de contrôle établit en TCP à destination du port 1723 du serveur. De fait, il est directement exposée et donc attaquable. On le sait depuis le papier de Schneier et Mudge de 1999 et on sait parfaitement comment déchiffrer les communication en attaquant le challenge d'authentification. On ne pourra donc plus se cacher derrière la bonne vieille technique de l'augmentation de la complexité des mots de passe[2]. PPTP est mort... Pour de bon...

Le cas de PEAP[3], ou toute méthode EAP mettant en œuvre MS-CHAPv2[4], est différent. En effet, MS-CHAPv2 y est utilisé dans une deuxième phase d'authentification encapsulée dans un tunnel TLS. Cette protection suffit à rendre inopérantes les attaques contre MS-CHAPv2 dans ce contexte, à condition que l'établissement préalable de la session TLS soit correctement effectué. C'est à dire en s'assurant de la bonne authentification du serveur RADIUS par une vérification stricte de son certificat par le client[5], sous peine de s'exposer à une attaque de type RogueAP conduisant à un Man in the Middle sur le tunnel TLS et donc l'extraction du fameux challenge.
Donc dans le cas d'un réseau Wi-Fi en WPA ou WPA2 et authentification EAP, l'utilisation de PEAP n'est pas remise en cause pourvu que le certificat du serveur RADIUS soit proprement vérifié par le client. Il pourrait cependant être judicieux de profiter du buzzz pour (re)commencer à se poser la question de la migration vers quelque chose de plus robuste comme EAP-TLS, tout au moins un mécanisme ne reposant pas sur le traditionnel mot de passe...


En définitive, l'intérêt principal de ce travail est d'avoir porté en première page des faits connus depuis plus de dix ans. En effet, cette indéniable performance technique ne change pas grand chose à l'état de l'art, et rien aux bonnes pratiques. Mais dans le petit monde de l'informatique, ce qui devrait être un quasi non-évènement n'en demeure pas moins un pas en avant énorme.
Car ce monde a ceci de particulier[6] que vous pouvez expliquer en long, en large et en travers les faiblesses d'un système répandu, personne ne prêtera attention à vos propos tant qu'une implémentation efficace de l'attaque ne sera pas sortie. Et étrangement, ce sont souvent les mêmes personnes, auparavant sourdes à vos conseils, qui viendront alors se plaindre de ce que certains "gaspillent" leur créativité à développer des attaques, plutôt que mettre leur temps à profit pour concevoir de meilleures protections...

Cette présentation n'aura donc consisté qu'à attirer leur attention en posant la grenade sur la table. Et c'est ce qui, malheureusement, fait toute la valeur de l'avancée...

Notes

[1] Authentification PPTP ou PEAP.

[2] Qui ne protège pas pour autant de l'extraction du hash et sa réutilisation...

[3] Plus précisément PEAPv0 avec MS-CHAPv2, sa forme la plus répandue.

[4] On pensera à EAP-TTLS par exemple.

[5] Ainsi qu'en évitant d'utiliser des certificats faibles ;)

[6] Mais je suis sûr que ce n'est pas le seul...