Le point important dans cette histoire, c'est que l'attaque repose sur un cluster de huit PlayStation 3. Tout comme quelques prédécesseurs, le chercheur a donc exploité la puissance de calcul du processeur de la console en environnement distribué pour parvenir à ses fins. Ce n'est pas le premier à le faire, ce ne sera probablement pas le dernier non plus.

Donc bref, cluster, calcul distribué, cracking, on pense tout de suite à du cassage de mots de passe. Dans ce domaine encore, il est loin d'être le premier. Et si on pense WPA et cassage de mot de passe, on pense immédiatement à une attaque qui date tout de même de fin 2003, à savoir le cassage de clés partagés, les fameuses PSK. Sujet sur lequel pas mal de gens ont passé du temps. On notera en particulier les travaux de David "h1kari" Hulton dont une large partie porte justement sur la parallélisation du processus sur des cluster de FPGA.

Donc, pour, je cite, "pénétrer les réseaux Wi-Fi sécurisés"[1], notre chercheur a très probablement porté, voire amélioré, les algorithmes de parallélisation de Hulton et quelques autres. Mais on n'en sait pas plus. Et ce, sur un cluster de PS3. Ce dernier est-il fait maison ? Ou s'agit-il tout d'une reprise de travaux précédent ? Là encore, mystère et boule de gomme. C'est un peu le problème de tout ces articles à l'emporte-pièce avec des citations minimalistes. On les termine avec plus de questions que de réponses, et souvent, ce ne sont même pas eux qui nous les amènent. Les réponses...

Personnellement, mon pronostique est globalement le même que sur Network Computing : c'est du cracking de PSK distribué sur PS3. Voilà.


Maintenant, la question que se posent probablement pas mal de gens, c'est de savoir pourquoi, à l'heure des Rainbow Tables et des processeurs toujours plus puissants, on aurait besoin de paralléliser ce type de calcul. Tout simplement parce qu'il est lourd. Et surtout qu'on a pas trouvé grand chose d'autre pour l'accélérer. Le mode PSK, pour Pre-Shared Key, de WPA et WPA2, permet une authentification par clé partagée. Cette clé peut être fournie sous la forme d'une passphrase, de longueur comprise entre 8 et 63 caractères, ou directement sous la forme d'une clé de 256 bits[2], ce dernier mode étant rarement implémenté. Quoi qu'il en soit, votre couche Wi-Fi a besoin d'une clé de 256 bits. Le passage de la passphrase à la clé se fait à l'aide d'un algorithme standard appelé PBKDF2 qui, dans le cas présent, va faire intervenir quelques 4096 tours de SHA-1 avec comme paramètres la passphrase d'une part et le SSID du réseau d'autre part.

C'est là qu'on comprend pourquoi il n'est pas simple d'accélérer tout ça. Premièrement parce que c'est une fonction très lourde en calculs, difficile à optimiser. Si on regarde les performances des algorithmes de cassage, on va d'une cinquantaine à quelques centaines de clés par seconde sur des machines standards, jusqu'à plusieurs milliers par seconde sur des clusters spécialisés. On est très loin des performances d'un john sur du DES ou du MD5... Deuxièmement, le coup classique des Rainbow Tables quand il s'agit de cassage de mot de passe est mise à mal dès le départ : la fonction prend le SSID en entrée. Du coup, une telle table devra être calculée spécifiquement pour un SSID donné, donc pour un réseau. Sachant que l'attaque d'une PSK est faite offline à partir de la capture d'une authentification, autant attaquer directement la clé que de perdre du temps sur le calcul d'une table qui ne contiendra peut-être pas la bonne passphrase... D'ailleurs, si vous regardez les fameuses tables publiés par Church of Wifi[3], vous verrez qu'elles ont été générées pour les mille SSIDs les plus courants. Du coup, si le SSID attaqué n'est pas dans la liste, tout armé que vous serez de vos 33Go de tables, ce n'est pas ce qui vous aidera à venir à bout de la clé.

Enfin, il me semble également utile de préciser que le mécanisme de PSK concerne l'authentification et qu'il est commun à WPA et WPA2 quand il sont configurés de cette manière. Donc, et surtout, cette l'attaque s'applique à WPA et à WPA2, et ce quel que soit l'algorithme de chiffrement utilisé ensuite. Donc, dire que quelqu'un a cassé WPA parce qu'il sait casser de la PSK plus vite est carrément plus qu'abusif. C'est tout simplement faux. Mais on n'est pas plus à une connerie près sur la sécurité Wi-Fi, et WPA en particulier...


Maintenant, la question qui reste en suspens, c'est le facteur de gain que procure ce cluster de PS3 par rapport aux travaux précédents, en particulier avec les FPGAs. Les articles sont tellement vagues qu'on ne peut rien en tirer sur ce point. Il faudra attendre que Crawford mette quelque chose à disposition pour s'en rendre compte. Les pronostiques sont difficiles, mais vu les gains obtenus par cette technique sur le cassage de mot de passe, je ne pense qu'il y ait de quoi sauter au plafond, et s'en faire pour des clés longues et non triviales. Ceci étant, ceci aura eu pour intérêt de montrer, une nouvelle fois, que la puissance de calcul brute ne nécessite pas forcément de matériel spécialisé, souvent onéreux et difficile à mettre en œuvre. Le bon matériel utilisé intelligemment donne d'excellent résultats. Mais est-ce qu'on en doutait encore ?...

À suivre, mais de loin...


Et pendant ce temps, le comité d'organisation du SSTIC est à l'œuvre pour l'ouverture. Demain. Déjà...

Notes

[1] "to break into secure Wi-Fi networks".

[2] 32 mots hexadécimaux.

[3] Et leurs outils, les CoW*.