Quelques digressions sous GPL...

Aller au contenu | Aller au menu | Aller à la recherche

Blague belge

"Oops !"
C'est, j'imagine, ce qu'a du se dire le Belge Kurt Roeckx lorsqu'il s'est rendu compte de la pitite boulette qu'il avait commis dans le code d'OpenSSL.
C'est un peu le buzz du moment, et pour cause, il compromet la sécurité de l'ensemble des systèmes Debian et Ubuntu utilisant des clés générées par le code d'OpenSSL.
Au début, je pensais qu'il s'agissait juste d'un énième bugalacon qui faisait parler de lui mais n'avait pas d'impact réel. Toutefois, après lecture du billet de SID, j'ai compris qu'il en était tout autrement.....
Le billet de SID regorge, comme à son habitude, de liens des plus utiles pour comprendre réellement ce qu'il s'est passé. Disons simplement que ce mainteneur du package OpenSSL de Debian a voulu supprimer des erreurs remontées par ValGrind et que, ce faisant, il a supprimé la dimension aléatoire de la génération des clés.
Cette dernière se retrouve alors avec le PID du process qui l'appelle comme unique donnée "aléatoire" en entrée... et un PID, c'est sur 15 bits, ce qui veut dire que depuis l'intégration de ce package dans Debian, les clés générées par OpenSSL sur cette distrib sont comprises dans un espace de 2^15 possibilités, soit 32768 !!!

L'impact est direct : la clé que vous utilisez pour vous connecter en ssh à votre machine peut être prédite par n'importe qui. H D Moore, du projet Metasploit, s'est d'ailleurs amusé a générer toutes les clés possibles pour des tailles de 1024, 2048 et 4096 bits. Il ne vous reste plus qu'a loader cela dans votre client SSH et à tenter de vous connecter à n'importe quel serveur... effet garanti.

Le vers est à coté du fruit

Ce qui est intéressant avec cette faille, au delà du fait que ca va donner du boulot à pas mal d'admin pendant quelques temps, c'est qu'elle repose la problèmatique de l'implémentation des algorithmes de crypto.
Comme le disait Bruce Schneier en 1997 :
The best protocol ever invented can fall to an easy attack if no one pays attention to the more complex and subtle implementation issues.

1997 ! 11 ans après, c'est toujours aussi vrai. Non pas que je jette la pierre à qui que ce soit, car j'ai moi-même abandonné l'idée d'implémenter ces algorithmes, faute de posséder l'expertise nécessaire, mais quand on ne sait pas, on évite de faire, ou alors on fait dans son coin sans impacter les autres. Modifier "on the fly" du code dans OpenSSL avant de l'inclure dans une distribution majeure, c'est un poil suicidaire !

Le soucis la dedans, c'est que cela diminue gravement le niveau de confiance que l'on a dans cette API de crypto. OpenSSL est utilisé partout car on la sait fiable et bien codée.... la plupart du temps. Et j'imagine que les devs doivent être furax de voir cette confiance s'envoler pour une erreur qu'ils n'ont même pas commis eux-mêmes.
Encore heureux, c'est limité à Debian. Car si cette erreur était passée dans le stream principal d'OpenSSL et commité en version finale, j'imagine même pas les dégats !

Reste que, de manière générale, j'ai tendance à faire plus confiance aux implémentations qui sont faites dans OpenSSL qu'a celle qu'on peut trouver ailleurs, entre autres du fait que ce code là, au moins, on peut le lire.


Commentaires

1. Julienvendredi 16 mai 2008 à 10:17

Petite strip de Scott Adams sur le sujet retrouvé par pcinpact

http://static.pcinpact.com/images/bd/news/57219-debian-openssl.jpg

Trackbacks

Aucun trackback.

Les trackbacks pour ce billet sont fermés.

Ajouter un commentaire

Le code HTML dans le commentaire sera affiché comme du texte, les adresses internet seront converties automatiquement.