Se connecter avec
S'enregistrer | Connectez-vous

Cracker un mot de passe en GPGPU

Peut-on casser un mot de passe avec une carte graphique ?
Par

Comme on l’a vu, le principe d’une attaque par force brute est d’essayer un maximum de combinaisons aussi rapidement que possible, mais les processeurs modernes ne sont pas particulièrement bien optimisés pour ce faire. Notre configuration de test a beau pouvoir traiter 28 millions de combinaisons à la seconde, on constate également que tous les cycles CPU ne sont pas employés (rappelons que l’on est sur un processus essai/erreur répétitif). La capture d’écran ci-dessus montre que la fréquence est utile, mais surtout que le programme tire parti du parallélisme et pourrait donc afficher des performances supérieures avec plus de cores.

En matière de parallélisme, on sait qu’un processeur est généralement efficace mais que les ALU d’une carte graphique le sont souvent encore plus. AMD et NVIDIA avaient ainsi convaincu les acteurs du transcodage vidéo jusqu’à ce qu’Intel implémente Quick Sync dans Sandy Bridge avec le succès que l’on sait. Reste que l’on tient ici un domaine dans lequel le potentiel de calcul général des cartes graphiques actuelles devrait pouvoir être exploité.

Le crack des mots de passe en GPGPU a longtemps été la chasse gardée de la communauté académique, sachant que les acteurs travaillaient sur un code personnalisé qui n’a jamais débouché sur un programme commercial. Il existe aujourd’hui deux utilitaires GPGPU accessibles au grand public : Parallel Password Recovery et Accent Password Recovery.

Le premier est exclusivement optimisé pour CUDA. Ceci ne veut pas dire que la technologie GPGPU de NVIDIA est meilleure que l’AMD Stream, mais il faut tout de même souligner l’implication de la firme au caméléon dans ce domaine : NVIDIA s’est investi bien plus tôt qu’AMD et offre aux développeurs une pléthore de libraires de bas niveau nécessaires pour maitriser la technologie. La réponse d’AMD a été bien plus lente et à vrai dire, on constate encore des ratés avec l’accélération Stream lorsqu’elle est activée sur quelques programmes de transcodage bien connus. Ceci explique en partie pourquoi le second logiciel (Accent Password Recovery) semble lui aussi privilégier l’architecture NVIDIA. CUDA et Stream sont tous deux pris en charge, mais seules les cartes de la firme au caméléon sont optimisées pour attaquer le chiffrement Zip 2.0.

GTX 460
Attaque par force brute
(combinaisons/seconde)
Parallel Password Recovery Accent Password Recovery
Compression: Zip
Cryptage : Zip 2.0
24 111 280
516 096 000
 Compression: Zip
Cryptage : AES-128
185 072
166 800
Compression: Zip
Cryptage : AES-256
185 177
156 138
Compression: RAR Normal
Cryptage : AES-128
34934231

Le moins que l’on puisse dire c’est que l’optimisation est bien présente avec le cryptage Zip 2.0 ! Une GTX 460 permet donc de dépasser les 500 millions de combinaisons à la seconde, c'est-à-dire environ 18 fois plus qu’un Core i5-2500K. Concrètement, on est alors en mesure de retrouver un mot de passe à sept signes parmi tous les caractères ASCII en moins de 48 heures. Pour huit signes, on mettrait environ 168 jours.

GTX 460
Attaque par force brute
Tous caractères ASCII
Durée de la recherche
Mot de passe entre 1 et 6 caractères Mot de passe entre 1 et 8 caractères
A 180 000 combinaisons/seconde
50 jours et 20 heures
1284 ans et 79 jours
A 24 millions de combinaisons/seconde9 heures et 9 minutes
9 ans et 230 jours
A 500 millions de combinaisons/seconde26 minutes et 21 secondes
168 jours et 17 heures

Bien entendu le cryptage Zip 2.0 est plutôt dépassé et si WinZip continue de le proposer, c’est au nom de la compatibilité. L’AES (Advanced Encryption Standard) est maintenant l’algorithme de référence : il est inviolé à ce jour et bien plus difficile à paralléliser que le Zip 2.0, même si les éditeurs de logiciels s’y emploient sûrement.

Les performances s’effondrent littéralement lorsque l’on essaie de retrouver un mot de passe chiffré en AES, au point que le curseur de la souris partait en syncope sur notre configuration de test. Les attaques par force brute (seule solution à ce jour) sont extrêmement lentes : il faudrait plus de 13 ans pour retrouver un mot de passe à sept signes sur la base des 128 caractères ASCII.

2 x GeForce GTX 570 en SLI
Attaque par force brute
(combinaisons/seconde)
Parallel Password Recovery Accent Password Recovery
Compression: Zip
Cryptage : Zip 2.0
45 412 290
1 492 279 088
 Compression: Zip
Cryptage : AES-128
495 133
513 936
Compression: Zip
Cryptage : AES-256
496 244
513 880
Compression: RAR Normal
Cryptage : AES-128
13 90414 605

Le GPGPU reposant intégralement sur le parallélisme, on devrait donc avoir de meilleurs résultats avec les 960 (2x 480) CUDA cores d’un SLI de GTX 570 plutôt que les 336 d’une seule GTX 460.

Une fois en place, les deux cartes font passer le chiffrement Zip 2.0 pour de la pâte à modeler. Grâce au code optimisé, on grimpe à 1,5 milliard de combinaisons par seconde : dans les faits, le temps nécessaire à retrouver un mot de passe à huit signes sur l’ensemble des caractères ASCII est réduit à deux mois environ.

En parallèle, le chiffrement AES reste solide puisqu’il faudrait presque 5 ans à raison de 500 000 combinaisons à la seconde pour venir à bout d’un mot de passe au-delà de sept signes.