Freak : une nouvelle faille qui pourrait coûter cher

Par:
fredericmazue

mer, 04/03/2015 - 15:13

Cela faisait bien longtemps que nous n'avions pas eu droit à une faille majeure. Disons quoi ? Une bonne semaine ? Bref, on s'ennuyait presque, alors voici Freak.

Freak, pour Factoring attack on RSA-EXPORT Keys a été découverte par des chercheurs en sécurité, des américains et des français d'INRIA, qui l'ont baptisée ainsi pour décrire à la fois la faille et le moyen de l'attaquer.

La faille se situe dans les connexions SSL/TLS et n'est pas sans rappeler Heartbleed et POODLE. De fait Freak est similaire à PODDLE, dans le sens où elle peut être attaquée par la bonne vieille approche de l'homme du milieu.

Le problème n'est en fait pas vraiment technique mais plutôt politique, ce qui est à la fois surprenant et amusant pour une vulnérabilité informatique. Jusqu'avant 1990 une loi américaine interdisait à l'exportation les produits trop bien cryptés. Sans doute cette loi avait-elle pour intention de permettre aux services secrets américains de casser relativement facilement les communications chiffrées étrangères. Cette loi a été abolie en 1990, mais les habitudes sont restés.

Elles sont principalement restées dans le navigateur par défaut d'Android, qui décidemment est une vraie catastrophe, Chrome sur Android, ainsi que dans le navigateur Safari d'Apple sur système iOS et OS X.

Un billet de Cryptographic Engineering explique comme Freak peut être exploitée.

Pour une communication chiffrée, les recommandations actuelles sont d'utiliser un cryptage sur 2048 bits. Un cryptage sur 512 bits n'est plus considéré comme assez fort de nos jours, en regard de la puissance de calcul que peut désormais manifester un cluster.

Lorsqu'une connexion SSL s'établit, un navigateur propre sur lui demande au serveur un chiffrage en 2048 bits. C'est ici que l'homme du milieu intervient. Au milieu entre le navigateur et le serveur, il modifie la demande du premier et transmet une demande "export RSA" au second. Export RSA, c'est la clé RSA d'exportation voulu par la loi américaine mentionnée plus haut. Une clé RSA "d'exportation" est codée sur 512 bits. Le serveur, s'il a gardé de vieilles habitudes légales répond avec une clé RSA 512 bits ce que les navigateurs mentionnés plus haut acceptent en raison de la même mauvaise habitude légale.  

De nos jours, selon le billet de Cryptographic Engineering, le bon algorithme mit en oeuvre sur un cluster du cloud permet de casser la clé en force brute en environ 7 heures. Après quoi, l'attaquant peut déchiffrer la communication entre le serveur et d'autres clients. En effet, il faut savoir qu'en raison du coût l'exécution de la génération d'une clé, cette opération en général faite que lorsque le serveur Web démarre. Ainsi procède notamment le module mod_ssl d'Apache. Il génère une clé export RSA au démarrage et réutilise cette même clé tant qu'il ne démarre pas. Même si 7 heures est un temps qui semble encore énorme pour décrypter une clé, cela vaudra la peine aux yeux d'un homme du milieu qui pourra utiliser son décryptage tant que le serveur attaqué ne redémarre pas.

Ce qui a de quoi donner quelques frissons lorsqu'on s'apprête à payer avec sa carte bleue sur un site sécurisé, avec un navigateur douteux. Un homme du milieu disposant de la clé décryptée du serveur d'une banque pourra lire la transaction bancaire en clair. Ou comment l'homme du milieu devient plein de fric :-)

Google a déjà corrigé le problème. Aux fabricants de déployer le correctif. Apple devrait publier un correctif d'ici une semaine.

Et côté serveur ? Le problème concerne OpenSSL versions 1.0.1, 1.0.0 et 0.9.8, mais il est normalement fixé dans les mises à jour 1.0.1k, 1.0.0p et 0.9.8zd respectivement.

Il y a quand même une morale dans cette histoire. A la façon de l'arroseur arrosé. Les sites de la Maison Blanche (www.whitehouse.gov), du FBI (www.fbi.gov) et même ... de la NSA (www.nsa.gov) ont été testés comme étant vulnérables à Freak :-)