Notre histoire commence dans les années 1970. Le mot de passe était alors un petit rien, considéré comme une contrainte inutile que chacun devait subir et traitait avec négligence, voire dédain. En ces temps lointains, il était le plus souvent vide ou identique au login ou prénom de l’utilisateur et rarement plus élaboré. Avec la digitalisation galopante et la progression des techniques et tentatives de piratage, il est à présent de plus en plus convoité, omniprésent qu’il est devenu, et ne pouvant plus rester simpliste par le pouvoir qu’il véhicule. D’un mot de passe pour tout, nous sommes arrivés à l’ère d’un pour chaque utilisation, avec un minimum obligatoire de qualité.
Dans les premières années des réseaux locaux puis d’Internet, le mot de passe était encodé dans les unités de stockage avec des algorithmes qui, de nos jours, feraient sourire. Mais, à l’époque, les techniques d’attaques cryptographiques réclamaient une puissance de calcul indisponible au grand public. De plus, ces mots de passe étaient si simples, personne ne comprenant encore l’importance de ceux-ci, que souvent une simple attaque de dictionnaire, même faite manuellement, suffisait. De nos jours, les processeurs graphiques (GPU) spécialisés permettent, pour un coût restant modeste, de disposer d’une puissance de calcul largement suffisante pour attaquer la plupart des algorithmes cryptographiques dans des délais raisonnables. La technologie logicielle suit également, permettant de pouvoir fabriquer sa propre machine « à casser du mot de passe » ou, plus généralement, des hash.
Par ailleurs, et au-delà de ces aspects purement techniques, ce mot de passe est défini le plus souvent par des individus régis par des comportements psychologiques stéréotypés découlant de leur parcours personnel, qu’il soit éducatif, culturel ou émotionnel. Ces facteurs d’influence vont considérablement modeler les mots choisis au départ ainsi que les transformations éventuelles qui pourraient être imposées par une politique de sécurité, selon les termes mêmes de cette politique et sa présentation dans le formulaire de saisie. Une étude sur des milliers d’utilisateurs internationaux a permis d’établir des hypothèses, dont la validation progresse rapidement, quant à la forme finale qu’aura le mot de passe, permettant ainsi de grandement améliorer les performances de l’attaque par force brute.
De nos jours, le mot de passe est toujours le mal-aimé du monde informatique et il n’existe pas pléthores de moyens de garantir sa qualité et donc la protection des accès à l’information.
En amont, au moment de la saisie, il est possible d’indiquer des contraintes de qualité et de contrôler les mots de passe proposés, les propositions inacceptables étant alors purement et simplement bloquées.
Une autre solution, consiste en aval à s’assurer de la qualité du mot de passe choisi. Malheureusement cette solution pose problème car l’algorithme cryptographique utilisé pour le stockage du mot de passe n’est pas réversible. En effet l’algorithme ne permet pas de décoder le hash pour retrouver le texte clair. Il faut alors utiliser des techniques dites de « cassage ».
Cet article s’adresse au lecteur désireux de connaître la version en texte clair d’un mot de passe (particulièrement) sans avoir les moyens de le décoder. Il a pour objectif de fournir les éléments théoriques et pratiques permettant au lecteur de construire sa propre solution de « cassage » de mots de passe, selon les moyens dont il dispose, et de la mettre en œuvre pour auditer (en aval) la qualité des mots utilisés pour sécuriser ses accès ou ses données. Le premier chapitre présente simplement le fonctionnement de la technique de cassage cryptographique et les schémas psychologiques mis en œuvre par l’individu lors du choix d’un mot de passe, ce qui a pour avantage d’optimiser la méthode. Le second chapitre présente une solution matérielle à base de cartes graphiques du marché avec l’utilisation de logiciel pour retrouver les mots de passe définis au départ par les individus, et évaluer leur qualité a posteriori. À partir de là, il est possible de placer des contraintes de qualité bloquantes pour augmenter cette qualité et ainsi réduire le risque de piratage.