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

Introduction

Quand on n’utilise pas le même mot de passe sur tous les sites/programmes, il n’est pas facile de tous les connaître par cœur. Fort heureusement, il existe presque toujours une procédure de récupération relativement facile lorsque l’on a un trou de mémoire, ce qui n’est malheureusement pas le cas des fichiers numériques et notamment les archives comme nous en avons récemment fait l’expérience.

Image 1 : Peut-on casser un mot de passe avec une carte graphique ?

Rappelons qu’il y a de nombreux moyens de protéger ses données : TrueCrypt est par exemple un excellent logiciel libre pour chiffrer des informations, d’autant plus qu’il supporte maintenant les instructions AES-NI. Pourtant, le chiffrement des archives est encore la solution la plus répandue.

Image 2 : Peut-on casser un mot de passe avec une carte graphique ?

Le niveau de sécurité est parfois mal compris : pour peu que l’on soit paranoïaque en matière de protection, on choisit le chiffrement le plus complexe en pensant que c’est aussi le plus sûr. L’AES-256 devrait donc être supérieur à l’AES-128 et pourtant, le problème est plus subtil. On peut représenter le chiffrement comme un gros coffre-fort : son épaisseur est gage de sécurité … tout comme la clé qui permet de l’ouvrir. La longueur et la complexité du mot de passe sont donc deux critères à ne surtout pas négliger.

Une majorité de gens estiment qu’un mot de passe contenant huit caractères suffit à tenir les hackers à distance, ce qui n’est pas tout à fait vrai comme nous allons le voir.

Configuration du test

Composants
Processeur
Intel Core i5-2500K (Sandy Bridge), 3,3 GHz, LGA 1155, 6 Mo de cache L3 partagés
Carte mère
Asus P8P67 Deluxe
DRAM
Kingston Hyper-X 8 Go (2 x 4 Go) DDR3-1333, 1,5 Volt
Stockage
Samsung 470 256 GB
Cartes graphiques
Palit GeForce GTX 460 1 Go
Asus GeForce GTX 570 1,28 Go
AMD Radeon HD 5870 1 Go

Alimentation
Seasonic 760 Watts, 80 PLUS
Logiciels et pilotes
Os
Windows 7 Ultimate 64 bits
DirectX
Version 11
Graphiques
ForceWare 270.51
Catalyst 11.4
Archivage & récupération
Visual Zip Password Recovery Processor
Version 6.2
Advanced Archive Password Recovery
Version 4.53
Accent Zip Password Recovery
Version 2.01
Accent RAR Password Recovery
Version 2.01
Parallel Password Recovery
Version 1.6.0
WinZip
Version 15.5 Pro
Chiffrement: Zip 2.0, AES-128, AES-256
Compression: aucune, Zipx/PPMd, Zip/deflate
WinRAR
Version 4.00 64 bits
Chiffrement: AES-128
Compression: Normal, Stocker


Image 3 : Peut-on casser un mot de passe avec une carte graphique ?

Soulignons que WinZip propose trois types de chiffrement : Zip 2.0, AES-128 et AES-256 ainsi que plusieurs niveaux de compression. WinRAR est bien plus simple dans la mesure où il se contente uniquement de l’AES-128 (ainsi que les réglages de compression). On verra comment ces paramètres influent sur la récupération d’un mot de passe.

Cryptage : WinZip et WinRAR

Image 4 : Peut-on casser un mot de passe avec une carte graphique ?

Les archives chiffrées type WinZip/WinRAR sont généralement moins sûres qu’un disque dur intégralement chiffré, parce qu’il s’agit de deux approches différentes.

La compression des données consiste à coder un ou plusieurs fichiers tout en supprimant les redondances de manière à optimiser l’espace de stockage. On peut voir la différence en comparant les fichiers dans un éditeur hexadécimal :

Image 5 : Peut-on casser un mot de passe avec une carte graphique ?

Le chiffrement n’est pas effectué au niveau du contenant pour WinZip, d’où le fait que le contenu de l’archive soit visible puisque le nom des fichiers n’est pas protégé.

Image 6 : Peut-on casser un mot de passe avec une carte graphique ?

WinRAR s’appuie sur le même concept, mais propose le chiffrement des noms de fichiers. L’accès au contenant est alors sécurisé par un mot de passe.

Image 7 : Peut-on casser un mot de passe avec une carte graphique ?

Le nom des fichiers fait partie de ce qu’on appelle les métadonnées. Une des différences entre WinRAR et WinZip tient au fait que les métadonnées apparaissent en texte brut avec ce dernier.

Ceci ne rend pas nécessairement WinRAR plus sûr pour autant, mais un hacker persistant essaiera spontanément d’utiliser les métadonnées vu qu’elles ne sont généralement pas chiffrées et permettent de trouver des informations précieuses. Restera ensuite à concevoir un exploit à partir des failles identifiées dans la méthode de chiffrement.

Ce constat est peu rassurant, mais il ne faut pas s’inquiéter à partir du moment où l’on allie un mot de passe complexe à une méthode de chiffrement sûre (AES-128 ou AES-256). En parallèle, mieux vaut éviter des noms évocateurs comme « relevés de compte 2011 » lorsque l’on cherche à ne pas attirer l’attention. Mais à trop vouloir en faire, que se passe-t-il lorsque l’on a oublié comment accéder aux données que l’on a protégé soi-même ?

Résistance des mots de passe

Image 8 : Peut-on casser un mot de passe avec une carte graphique ?

On peut concevoir le chiffrement de données comme une grille de sudoku : plus la complexité est grande, plus il sera difficile d’en venir à bout. Deux approches permettent de s’y attaquer.

En premier lieu, les hackers essaient de trouver une sorte de motif dans le chiffrement. Cette approche se subdivise en plusieurs types comprenant notamment les attaques par canaux auxiliaires dont on entend parfois parler. Ces méthodes sont complexes au point d’être inaccessibles à l’utilisateur moyen.

L’autre approche est bien plus primitive puisqu’il s’agit d’un processus répétitif d’essai/erreur : on parle alors d’attaque par force brute. Pour reprendre l’exemple du sudoku, cela revient à générer toutes les combinaisons de chiffres possibles pour résoudre la grille. Il existe des moyens de freiner ce type d’attaque en masquant les identifications réussies, mais il s’agit d’un luxe que ne peuvent pas se permettre des programmes grand public comme WinZip et WinRAR. Vu que le nombre d’erreurs n’est pas limité, la question n’est pas de savoir si le mot de passe pourra être retrouvé mais dans quel délai.

Image 9 : Peut-on casser un mot de passe avec une carte graphique ?

Caractères disponibles (hors lettres accentuées)
Combinaisons à
deux caractères
Combinaisons à
quatre caractères
Combinaisons à
six caractères
Minuscules
676
456 976
308 915 776
Minuscules et majuscules
2704
7 311 616
19 770 609 664
Minuscules, majuscules et nombres
3844
14 776 336
56 800 235 584
Carcatères ASCII
8836
78 074 896
689 869 781 056

Les attaques par force brute s’appuient sur les probabilités ; vu que le nombre de combinaisons augmente en fonction de la longueur du mot de passe, la notion de permutation est primordiale. Admettons par exemple les mots de passe comme des anagrammes : avec les lettres a, b et c, on trouve six combinaisons ([a,b,c], [a,c,b], [b,a,c], [b,c,a], [c,a,b] et [c,b,a]).

Le calcul du nombre de possibilités est simple : n(taille du mot de passe),  sachant que « n » correspond au nombre de caractères. Comme on peut le voir dans le tableau ci-dessus, les 26 lettres de l’alphabet en minuscules et majuscules suffisent à atteindre plusieurs milliards de combinaisons. Si l’on étend la sélection aux caractères spéciaux et chiffres (les 128 caractères ASCII), on arrive alors à plusieurs centaines de milliards. N’oublions pas non plus qu’à défaut de connaitre la taille du mot de passe, il faudra tester toutes les combinaisons allant de un à x caractères.

Cracker un mot de passe avec le CPU

Il existe une myriade de programmes pour récupérer un mot de passe, parmi lesquels Advanced Archive Password Recovery et Visual Zip Password Recovery Processor. Nous avons utilisé le premier pour récupérer un mot de passe à 7 caractères sur une archive WinZip en 20 minutes. Ceci nous a rendus curieux : à quelle vitesse notre configuration essayait-elle les combinaisons ? Que se serait-il passé avec une méthode de chiffrement plus complexe comme l’AES-128 ?

Toutes nos archives protégées par un mot de passe sont-elles vraiment à 20 minutes du premier venu ?

Image 10 : Peut-on casser un mot de passe avec une carte graphique ?

Image 11 : Peut-on casser un mot de passe avec une carte graphique ?

Combinaisons/seconde,
attaque par force brute
Advanced Archive Password RecoveryVisual Zip Password Recovery Processor
Compression: aucune
Cryptage : Zip 2.0
28 357 311
20 943 157
Compression: aucune
Cryptage : AES-128
9715
échec
Compression: aucune
Cryptage : AES-256
9713
échec
Compression: Zip
Cryptage : Zip 2.0
28 492 733
20 888 938
Compression: Zip
Cryptage : AES-128
9733
échec
Compression: Zip
Cryptage : AES-256
9760
échec
Compression: RAR Stocker
Cryptage : AES-128
213

Compression: RAR Stocker
Cryptage : AES-128, noms des fichiers
202

Compression: RAR Normal
Cryptage : AES-128
213

Compression: RAR Normal
Cryptage : AES-128, noms des fichiers
202

Comme on peut le voir ci-dessus, la compression n’a qu’un effet relativement mineur sur le nombre de combinaisons par seconde. En revanche le chiffrement en Zip 2.0 accuse le poids des ans par une faiblesse majeure : concrètement, un Core i5-2500K peut retrouver un mot de passe à cinq caractères en quelques instants vu qu’il peut tenter environ 28 millions de combinaisons par seconde. Advanced Archive Password Recovery comme Visual Zip permettent tous deux de trouver un mot de passe avec un cryptage Zip 2.0, mais le second devient inefficace avec l’AES-128 (problème logiciel).

Image 12 : Peut-on casser un mot de passe avec une carte graphique ?

Plus que la capacité du processeur à tester les combinaisons, c’est surtout la résistance des mots de passe qui nous intéresse ici :

Durée de la recherche
à 28 millions de combinaisons/seconde
Mot de passe entre 1 et 4 caractères
Mot de passe entre 1 et 6 caractèresMot de passe entre 1 et 8 caractèresMot de passe entre 1 et 12 caractères
Minuscules
instantanée
11 secondes
2 heures
112 ans
Minuscules et majuscules
instantanée12 minutes
22 jours
451 345 ans
Tous caractères ASCII
3 secondes
7 heures
8 ans
701 193 345 ans

Quand bien même on est en mesure d’essayer 28 millions de combinaisons par seconde, on voit que la probabilité de trouver la bonne finit par devenir infime lorsque l’on a un mot de passe long et complexe. La rupture se fait avec huit caractères : passe encore les 22 jours de calculs si les données sont vraiment importantes, mais si le mot de passe n’est pas uniquement composé de lettres majuscules et minuscules, il faut alors 8 ans de recherche.

Heureusement, Advanced Archive Password Recovery permet de mettre la recherche en pause et de la sauvegarder pour la prendre plus tard. Pour peu que l’on ait plusieurs machines à disposition, on peut vraiment gagner du temps en distribuant la charge de travail.

Cracker un mot de passe en GPGPU

Image 13 : Peut-on casser un mot de passe avec une carte graphique ?

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.

Performances en attaque par force brute : NVIDIA vs AMD

Image 14 : Peut-on casser un mot de passe avec une carte graphique ?

Cet exercice repose intégralement sur l’échelonnement des performances. Il faut un maximum de cores à haute fréquence: deux GTX 570 n’ont que 2,8 fois plus de CUDA cores qu’une seule GTX 460 et pourtant, les performances sont triplées. Ceci s’explique du fait que les CUDA cores des GTX 570 affichent une fréquence supérieure (8 %).

De même, une GTX 590 affiche des résultats similaires à celui du SLI : la carte bi-GPU a certes plus de cores, mais ils sont aussi cadencés à une fréquence moins élevée. Toutefois, si le but est d’avoir des performances maximales, une paire de GTX 590 restera la configuration ultime chez NVIDIA.

Image 15 : Peut-on casser un mot de passe avec une carte graphique ?

En comparaison, les 3072 Stream processors de la HD 6990 fonctionnent à 830 MHz. Rappelons cependant que les Sp d’AMD ne sont pas directement comparables aux CUDA cores de NVIDIA.

Nous n’avons pu que brièvement essayer une paire de HD 5850 en CrossFire, ce qui n’a pas empêché d’arriver à des résultats impressionnants : les 2880 Sp permettent d’atteindre environ 1,1 million de combinaisons par seconde sur une archive chiffrée en AES-128. La solution ultime serait bien entendu de combiner deux HD 6990 mais même dans ce cas de figure, on dépasserait tout juste les 3 millions de combinaisons par seconde. Concrètement, il serait encore impossible de casser un mot de passe à huit caractères en moins d’un an.


CUDA/Stream cores
Fréquence shader
GeForce GTX 460 1 Go
336
1350 MHz
GeForce GTX 570480
1464 MHz
GeForce GTX 5901024
1214 MHz
Radeon HD 5850
1440
725 MHz
Radeon HD 5970
1600
725 MHz
Radeon HD 6990
3072 830 MHz

Il ne faut donc pas espérer en finir rapidement avec les mots de passe qui excèdent sept caractères, mais le fait est que nous regardons les pires cas de figure : c’est un peu comme si l’on recherchait une combinaison entre 00 et 99 pour constater au final que la bonne est 99. Dans la pratique ce n’est généralement pas le cas et le temps de calcul s’en trouve donc réduit.

Les programmes dédiés à la récupération des mots de passe comme ceux-là n’effectuent pas de recherche intégralement séquentielle, ce qui n’en fait donc pas une bonne solution pour la sécurisation des mots de passe. En toute vraisemblance, la récupération du mot de passe se produira à peu près à mi-parcours de la procédure,  mais ceci ne change pas vraiment notre conclusion vu les laps de temps dont il est question. Le Zip 2.0 nous semble incapable d’offrir un niveau de sécurisation suffisant : s’il est clair que la récupération d’un mot de passe de neuf ou 10 caractères serait autrement plus longue que les exemples ci-dessous, ce serait tout à fait faisable avec quelques configurations comme celle utilisée pour le test.

2 x GeForce GTX 570 en SLI
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 500 000 combinaisons/seconde18 jours et 7 heures
462 ans et 116 jours
A 45 millions de combinaisons par seconde
4 heures et 52 minutes
5 ans et 49 jours
A 1,5 milliard de combinaisons par seconde8 minutes
56 jours et 5 heures

Sécurité : WinZip et WinRAR

Image 16 : Peut-on casser un mot de passe avec une carte graphique ?

Les mots de passe ne débloquent pas directement les fichiers chiffrés : il faut générer une clé de déchiffrement à partir du mot de passe et c’est exactement ce que nous avons fait jusqu’ici. Il y a là un goulet d’étranglement pour les attaques par la force brute : vu que la dérivation de clé représente 99 % du processus de récupération, il faut donc des ressources conséquentes pour en venir à bout.

WinZip et WinRAR utilisent tous deux la fonction de hachage cryptographique SHA-1 (Secure Hash Algorithm) pour dériver des clés, mais le mécanisme est différent. WinZip s’appuie sur la fonction PBKDF2 (Password-Based Key Derivation Function 2.0) et emploie l’algorithme SHA-1 à 2002 reprises pour générer une clé. Toutefois celle valeur est constante quelle que soit la longueur du mot de passe (64 caractères maximum), d’où le fait qu’un mot de passe de 10 caractères soit aussi facile à casser avec l’AES-256 qu’avec l’AES-128.

En comparaison, WinRAR utilise son propre système de dérivation de clé. Celui-ci nécessite (longueur du mot de passe x 2 + 11) x 4096 transformations en SHA-1, d’où le fait que les attaques par la force brute sont nettement plus chronophages sur des archives WinRAR.

2 x GeForce GTX 570 en SLI
Attaque par force brute
(combinaisons/seconde)
Parallel Password Recovery Accent Password Recovery
 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

Dans la pratique, on a tout de même autrement plus de chances d’oublier un mot de passe plutôt que de voir une de ses archives protégées tomber dans les mains de quelqu’un ayant beaucoup de temps et de moyens. Quand bien même cette personne aurait une configuration à la pointe, il lui faudrait plus de mille ans pour casser un mot de passe à 9 caractères pour une archive WinZip chiffrée en AES-128. Il est toutefois nettement plus facile de récupérer un mot de passe oublié si l’on sait à quoi il ressemble.

Imaginons par exemple un mot de passe à 10 caractères ASCII dont on connait les caractéristiques suivantes :

  • Commence par e
  • Finit par a
  • Sans majuscules
  • Un point d’exclamation
  • Ne contient aucune des lettres suivantes : B, C, D, Q, T, U, V, W, X, Y, Z

On passe alors de 205 trillions à 1 trillion de combinaisons à essayer, ce qui est réalisable avec une paire de GTX 570. La récupération d’un mot de passe est par contre quasi-impossible avec WinRAR, à moins que celui-ci ne soit très court.

Conclusion

Nous avons été assez surpris après avoir essayé de récupérer le mot de passe d’une vielle archive WinZip. Le fait est que nous sommes à une époque où les donnes censées être protégées ne le sont pas autant qu’on le voudrait (le PSN en est un très bon exemple), ce qui est assez inquiétant quand on constate l’évolution de nos processeurs/cartes graphiques et l’utilisation qui peut en être faite.

Il y a encore une dizaine d’années, il était inconcevable de casser un mot de passe ASCII de 10 caractères dans un délai acceptable à moins d’utiliser une machine conçue pour cela. C’est précisément ce que l’EFF (Electronic Frontier Foundation) a réalisé en 1998 avec son Deep Crack : moyennant 250 000 $, un groupe d’experts a pu construire une machine mettant 1856 puces ASIC AWT-4500 en commun pour arriver à 90 milliards de combinaisons par seconde.

Treize ans plus tard, nous n’arrivons pas au même niveau avec notre configuration de test, mais il faut tout de même noter que notre SLI de GTX 570 affiche 1,5 milliard de combinaisons par seconde avec le cryptage Zip 2.0 : il s’agit d’1/60ème des performances de Deep Crack, pour moins d’un 1/100ème de son prix. Ceci revient à comparer des pommes à des poires vu que le chiffrement Zip 2.0 est dépassé, mais l’essentiel n’est pas là : les architectures graphiques massivement parallèles continueront de progresser à des prix accessibles, jusqu’au jour où sortiront des composants grand public capables d’atteindre les 90 milliards de combinaisons à la seconde.

Image 17 : Peut-on casser un mot de passe avec une carte graphique ?

En parallèle, nous avons vu qu’il valait mieux prendre ses distances avec le cryptage Zip 2.0 : il n’est maintenu que par souci de compatibilité et WinZip conseille l’AES pour une meilleure protection contre les attaques par la force brute.

Les attaques ciblées posent d’autres problèmes : à partir du moment où l’on utilise un mot commun dans un mot de passe, il devient vulnérable aux attaques par dictionnaire quel que soit le chiffrement utilisé. Un dictionnaire de Français courant compte environ 60 000 entrées, une encyclopédie 200 000, tandis qu’une simple GTX 460 peut gérer au moins 150 000 combinaisons par seconde contre un chiffrement AES. Quand bien même on ajouterait quelques variations, il ne faudrait pas plus d’une journée pour cracker le mot de passe :d’un point de vue fonctionnel, un mot entier revient à la même chose qu’une seule lettre.

Voici quelques écueils à éviter pour renforcer la sécurité de ses archives :

  • Eviter les mots du dictionnaire : Le Petit Robert 2011 compte par exemple 60 000 mots, ce n’est rien pour une GTX 460.
  • Eviter d’ajouter un chiffre en suffixe : ce n’est pas parce que l’on rajoute « 1 » à la fin d’un mot de passe qu’il devient plus sûr, vu qu’une demi-journée suffit à tenter tous les mots du dictionnaire et le chiffre manquant avec un SLI de GTX 570.
  • Eviter les répétitions de mots ou lettres de substitution : Motdepassemotdepasse ne fait que doubler le nombre de mots à tester, ce qui n’est pas un obstacle vu la vitesse à laquelle les combinaisons sont tentées. M07d3p@553 n’est pas non plus un bon mot de passe vu que les crackeurs connaissent ce genre de transcription.
  • Eviter les séquences courantes du clavier : Il n’est pas compliqué de rajouter AZERTY au dictionnaire de mot de passe à tester, mieux vaut donc éviter ce genre de raccourcis.
  • Eviter les séquences numériques courantes : 314159 est un nombre facile à retenir vu qu’il s’agit de Pi ; il est aussi souvent testé.
  • Eviter les données personnelles : numéro de sécurité sociale, numéro de téléphone, immatriculation, anniversaire etc. Nous sommes dans une époque où beaucoup d’informations personnelles sont en fait disponibles dans le domaine public, a fortiori quand on possède un compte Facebook/Twitter et consorts.

Le cryptage est aussi valable que le mot de passe qui le protège, or c’est justement la faiblesse des mots de passe symétriques (les clés de chiffrement et déchiffrement sont alors identiques). Le PGP (Pretty Good Privacy) et le chiffrement par certificat offrent des niveaux de protections extrêmement élevés, mais il est délicat de les utiliser au quotidien à moins de passer aux archives PKZIP. En premier lieu, il faut donc choisir un mot de passe à la fois long et complexe.

Fort heureusement, les mathématiques sont là pour nous aider : sur la base des caractères ASCII, la résistance d’un mot de passe sera 94 (taille du mot de passe) vu que chaque caractère supplémentaire rend le mot de passe 94 fois plus sûr. Quelques caractères en plus suffisent donc à rendre un mot de passe virtuellement inviolable vis-à-vis des attaques par la force brute : si les 7 298 831 534 994 528 combinaisons possibles avec un mot de passe à neuf caractères ne suffisent pas à être rassuré, on peut passer à 10 caractères pour atteindre les 699 823 827 359 474 784 possibilités.

Image 18 : Peut-on casser un mot de passe avec une carte graphique ?

Vu les résultats que nous avons obtenus pour cet article, une paire de HD 6990 devrait permettre de légèrement dépasser les 3 millions de combinaisons par seconde contre un cryptage AES. Concrètement, il faudrait alors 7397 années avec l’AMD Stream activé pour rechercher toutes les combinaisons possibles avec un mot de passe de 10 caractères.

Peut-être qu’il sera possible à l’utilisateur moyen d’accéder à des possibilités de calcul parallèle suffisantes pour ce genre de tâche à l’avenir. Le calcul distribué constitue la prochaine étape, sachant que Parallel Pasword Recovery travaille déjà sur la répartition du calcul par accélération GPU.

Il n’y a pas de quoi se faire du mauvais sang pour le moment, mais il est important d’être conscient du niveau de sécurité de ses archives. C’est justement le rôle des logiciels pour la récupération des mots de passe, vision d’ailleurs partagée par WinZip. Tom Vaughan (son vice-président) a ainsi déclaré : « Pour moi, les programmeurs de logiciels pour la récupération de mots de passe sont des white hats et non pas des black hats. Ce sont les logiciels que l’on ne connait pas encore qui devraient nous inquiéter (développé par des black hats et plus rapides/capables de casser des sécurités que ce à quoi on s’attendait) ».

D’autre part, il ne faudrait pas perdre de vue que l’on ne peut pas acheter le/les logiciel(s) de référence : le cryptage personnalisé avance toujours plus vite que les solutions accessibles au grand public. Après avoir abordé ce qu’il vaut mieux éviter, voici quelques conseils pour le choix du mot de passe :

  • Au moins neuf caractères
  • Au moins une majuscule
  • Au moins une minuscule
  • Au moins un caractère spécial comme @ ou !
  • Au moins un chiffre

 .