Lors d’une Cryptoparty, une question sur la composition d’un mot de passe m’a était posée, la personne m’expliquait que l’informaticien de son boulot lui avait confirmé qu’un mot de passe de 15 caractères en minuscules était robuste, et que l’ajout de majuscule et/ou des caractères spéciaux ne servirait à rien.
J’ai répondu que cela était faux, et pour que le mot de passe soit le plus complexe possible il faut obligatoirement ajouter des majuscules et des caractères spéciaux.
En fait, nous avons raisons tous les deux, et ce fut une erreur de ma part de dire que l’informaticien avait tord.
Oui un mot de passe de 15 caractères tout en minuscule est un mot de passe robuste à l’heure actuelle, même si l’ajout des majuscules et des caractères spéciaux le rendent beaucoup plus complexe.
Plus c’est long plus c’est bon
Plus le mot de passe est long, moins il a besoin d’être d’être complexe, une chaîne aléatoire de caractère minuscule suffit, j’ai fais moi même des calcules avec mon ordinateur doté d’un processeur core i5.
L’attaque d’un mot de passe par Brute force est basé sur les mathématiques des « Permutations avec Répétition »
Si nous gardons notre exemple avec un mot de passe de 15 caractères
Cas N° 1 – Si il est composé uniquement de minuscule, il existe environ 3.7×1030 (3.7 Dekillion) de combinaisons possibles
Cas N° 2 – Si il est composé de minuscule et majuscule, il existe environ 14*1060 (14 Icosillion) de combinaisons possibles
Cas N° 3 – Si il est composé de minuscule, majuscule et de 18 caractères spéciaux, il existe environ 21*1081 (21 Icosiheptillion) de combinaisons possibles
Cas N° 4 – Si il est composé de minuscules, majuscules, chiffres et de 18 caractères spéciaux, il existe environ 1220*1090 (1220 Triacontillion) de combinaisons possibles
En sachant qu’un ordinateur de maison (Le mien en occurrence) avec un processeur de base (i5) combiné à un script de génération de combinaisons qui utilise les permutations avec Répétition, peut faire environ 256*1020 (256 Hexillion) de combinaisons/minute[1].
Il faut plus de 28209 ans pour tester toutes les combinaisons du premier cas, et a plus de 110*1033 année pour le Cas N° 2
Mais la période se réduit considérablement avec les superordinateurs, dont le plus puissant à l’heure actuel est le TaihuLight, il est 4,6 million de fois plus performant que notre petit i5.
En faisant un calcule grossier, il faut environ 2 jours et demi pour tester toutes les combinaisons du cas 1. Je vous rassure, tout le monde n’a pas de superordinateur sous la main.
Mais pour le cas n° 2, c’est a dire un mot de passe de 15 caractères, constitué de majuscules et minuscules on passe à 8,63*1030 années
Et cela n’est pas tous, dans les 4 cas que nous avons vu, nous connaissons le nombre de caractère, c’est a dire 15, imaginez vous, alors, le nombre de combinaisons possibles si le nombre de caractère était inconnu ?
Cela démontre bien qu’il est impossible, à l’heure actuelle, de casser un mot de passe de 15 caractères[2], même si celui-ci n’est constitué que de minuscules pour de « simple mortel » comme nous, mais que cela reste possible pour un superordinateur (2,5 jours)
Ce petit exemple démontre bien l’importance d’ajouter à ses mots de passe les majuscules, les chiffres et les caractères spéciaux.
Mais ce qu’il faut également retenir, c’est qu’il ne faut jamais donner les caractéristiques de son mot de passe, c’est à dire sa longueur et le type de caractères dont il est composé. Car en donnant ces deux informations, vous réduisez drastiquement le nombre de combinaisons possibles pour le casser, et cela est d’autant plus vrais si ce dernier fait moins de 10 caractères.
Je vous recommande de lire mon précédent article sur le gestion des mots de passe
[1]Théoriquement, le core i5 a une “puissance” d’environ 20 GigaFlops, alors que TaihuLight a lui une puissance de 93 pétaflops
[2]Ici je parles uniquement de mot de passe dont les caractères ont étaient générés aléatoirement, et non de mot de passe constitué de “mot” du dictionnaire ou du quotidien