Je veux aujourd'hui compléter un billet écrit il y a trois ans déjà à propos du mot de passe, de sa composition et surtout de sa vulnérabilité. A contre-courant de ce que je peux lire ici ou là je persiste à considérer qu'un mot de passe dit compliqué à deviner ne protège pas mieux qu'un mot de passe réputé facile à deviner. Je me propose ici d'argumenter cette idée. Commençons par la fin et explorons ensemble comment un hacker s'y prendrait pour pirater un mot de passe.
a) Il a installé sur l'ordinateur cible un de ces keyloggers, un logiciel qui scrute les frappes au clavier de la victime. En ce cas nous sommes bien obligé de déduire que la composition du mot de passe n'a aucune importance puisque le pirate va le découvrir instantanément.
b) Le pirate a récupéré la base de données des utilisateurs d'un site et avec un logiciel approprié il va tenter de décoder les mots de passe qui y sont stockés. Là aussi nous sommes finalement dans le même cas qu'en a), c'est-à-dire que la capacité du pirate à deviner un mot de passe n'a aucun rapport avec la complexité de ce dernier.
Il ne reste que c) et d), autrement dit la comparaison du mot de passe avec une liste et l'usage de la force brute.
Le cas c) - l'usage d'une liste - est ce que j'appelle du piratage d'opportunisme. Le pirate va essayer les uns après les autres les mots de passe habituellement les plus utilisés et espérer tomber sur le bon. Je dois avouer que j'ai du mal à concevoir que cette méthode soit réellement utilisée car elle est l'équivalent d'une attaque par déni de service, autrement dit d'une connexion directe au site visé suivi d'une suite d'essais de mots de passe tels que password, admin, user_admin et autre 123456. On pourrait ici répliquer que dans les faits le pirate ne se connecte pas vraiment à la page d'accueil du site mais plutôt au serveur et que de là il "attaquerait" directement la base de données. Oui mais alors cela voudrait dire qu'ici le maillon faible est la sécurité du site et non pas la qualité du mot de passe de l'utilisateur.
Pour moi il ne reste plus que d), la force brute. Notre pirate va essayer - via un logiciel bien sûr - toutes les combinaisons possibles, une à une, en partant de aaaa et en allant jusqu'à zzzz. Là au moins il est sûr de trouver le mot de passe ; sauf que comme nous allons le voir le temps risque fort de lui manquer.
Nous en arrivons alors à la seconde partie de mon raisonnement, la constitution du mot de passe en lui-même. Imaginons la situation suivante : Je créé un compte sur un site internet et je dois pour cela définir un mot de passe. Je me décide alors pour "ridicule" ; oui, comme l'adjectif. Quels sont les risques pour moi d'être piraté avec un tel mot de passe ?
Des cas a), b) et c) déjà vus je dois surtout craindre c) car après tout "ridicule" est un mot du dictionnaire, un parmi 90 000 certes. Mais comme déjà dit plus haut je n'y crois pas un seul instant.
Par contre j'ai tout à craindre de la force brute car mon mot de passe se situe quelque part entre "aaaaaaaa" et "zzzzzzzz" et avec la méthode d) mon pirate passera forcément à un moment ou à un autre par "r-i-d-i-c-u-l-e". J'ai toutefois ici un allié de poids, les mathématiques combinatoires, car apprenez qu'il est possible de former 417 654 129 152 combinaisons différentes quand un mot de passe a 8 caractères de long. Avouez que c'est beaucoup... Et encore, comment le pirate peut t-il savoir que dans mon mot de passe il n'y a que des minuscules et aucun chiffre ni caractère spécial (tel que @ & _ ou *) ?
N'est-il pas au contraire contraint de présupposer leur présence dans mon mot de passe ? Dès lors ce n'est plus dans une liste de 26 caractères possibles qu'il devra chercher mais dans une liste de 62 caractères*. En effet si ça se trouve j'ai tapé "RiDiCUle" comme mot de passe ou encore "R*d@Cul_". Le seul indice facile dont dispose mon pirate c'est la taille du mot de passe, ici 8 caractères de long.
Mais comme je viens de l'écrire doit-il chercher parmi les seules minuscules, les minuscules et majuscules mélangées ou alors parmi une combinaison de chiffres et de lettres ? Faute d'éléments en sa possession il va devoir prendre en compte le plus grand dénominateur.
Ainsi, le mot de passe "ridicule" est en position 139 051 448 099 si on ne compte que sur les minuscules et en position 96 118 177 285 565 s'il faut prendre en compte chiffres et lettres.
En supposant que son logiciel soit capable d'explorer 40 000 combinaisons à la seconde - ce qui n'est déjà pas si mal** - il lui faudra 96 jours (24h/24 ...) avant d'arriver à mon "ridicule". Et encore ! Il lui faudra avoir parié que je n'utilisais que des minuscules dans mon mot de passe. Faute de ce renseignement il devra attendre 66 015 jours, autrement dit un peu plus de 180 années avant de pouvoir utiliser mon compte à mon insu***.
Dès lors permettez-moi de considérer que mon "ridicule" protège tout autant qu'un mot de passe réputé compliqué à pirater.
CQFD.
* Je dis 62 mais je ne compte pas les caractères spéciaux : 10 chiffres + 26 minuscules + 26 majuscules = 62 caractères différents. Ajoutons les caractères spéciaux et cela ferait 70. ** A la fin de la première seconde notre pirate n'en sera qu'à "aaaachel"... *** Il est possible de me réclamer le détail complet de mon calcul, histoire de le vérifier et pourquoi pas ? de le contredire.
コメント