Les mots de passe, du moins pour l'instant, dirigent nos vies. Je l'ai vu avec ma propre famille où le besoin soudain de changer un mot de passe de messagerie, un mot de passe d'identifiant Apple ou même un mot de passe Facebook devient une épreuve de plusieurs heures. Nous vivons à une époque où un segment entier de la population n'a pas grandi en ayant à se souvenir des mots de passe, et n'est donc pas habitué à devoir les rappeler. D'un autre côté, il y a un segment qui est habitué à avoir besoin de connaître et de mémoriser des mots de passe pendant la majeure partie de sa vie. Malheureusement, de mauvaises habitudes se sont formées en matière de création de mot de passe en raison de la facilité d'utilisation. En tant que personne travaillant dans la sécurité offensive, mon travail consiste à réfléchir et à faire des recommandations en fonction du point de vue d'un attaquant. Je dois souvent essayer de capturer ou de déchiffrer des mots de passe dans mon travail quotidien - une tâche difficile, mais effrayante.
Dans ce blog en deux parties, je me mets dans la peau d'un attaquant et explique comment des mots de passe individuels, voire même des bases de données entières, sont obtenus. Mais, je ne te laisserai pas pendre au sec. Il existe des moyens d'empêcher ces attaques de se produire au niveau de l'utilisateur et cela commence par avoir une bonne compréhension de comment et pourquoi nous devrions créer des mots de passe d'une certaine manière.
La porte d'entrée d'une attaque
Pour commencer, dans les systèmes modernes, les mots de passe sont finalement transformés en hachage. Un hachage est une transformation à sens unique de l'entrée en un non-sens essentiellement inintelligible. Il utilise un algorithme connu pour prendre des données, dans ce cas un mot de passe, et les transformer en caractères aléatoires. Par exemple, l'algorithme md5 transforme le mot "mot de passe" en "cc3a0280e4fc1415930899896574e118". C'est généralement ainsi que les mots de passe sont transmis dans les environnements et comment ils sont stockés dans les bases de données des applications. S'il n'est pas stocké ou transmis de cette manière, il est considéré comme du « texte en clair ». Il existe plusieurs types d'algorithmes différents, et au fil du temps, la complexité a évolué pour arriver au hachage final.
Maintenant, certains d'entre vous peuvent penser qu'une valeur de hachage est similaire au chiffrement, et qu'avec une clé, vous pouvez "déchiffrer" le mot de passe. Dans ce cas, les hachages sont des transformations en cours car dans le processus de détermination du hachage, il exécute de nombreux calculs séquentiels différents. Dans les calculs ultérieurs, il peut (ou non) utiliser des données de calculs antérieurs. Ainsi, par conséquent, vous ne pouvez pas revenir en arrière car il vous manque des données qui ont été déterminées au début de la procédure de hachage d'origine. Pour obtenir un mot de passe à partir d'un hachage, le processus le plus couramment utilisé actuellement consiste à "craquer" le hachage. Cela signifie que vous utilisez un programme, un ordinateur puissant et pratiquement toutes les combinaisons de lettres, de mots et de symboles dans une longueur donnée que vous pouvez essayer, et faites-le exécuter la procédure de hachage pour voir si cela correspond. Par exemple, si j'ai une liste de 10 mots, y compris "mot de passe" de plus tôt, le logiciel hachera chaque mot et vérifiera le résultat par rapport au hachage que j'essaie de déchiffrer. Quand il hache "mot de passe" et trouve le même résultat, j'ai maintenant déchiffré ce hachage et je connais le mot de passe. Cela peut prendre de quelques secondes à des millénaires selon l'entropie ou la force du mot de passe.
Craquer les mots de passe est un processus simple
Il existe de nombreux guides en ligne sur la façon de déchiffrer les mots de passe, et tout ce dont vous avez vraiment besoin pour le faire efficacement est un ordinateur capable d'effectuer autant de calculs à la fois que possible. Chaque année, à mesure que les ordinateurs deviennent plus puissants, les algorithmes que nous avons utilisés deviennent plus faibles. Ces systèmes peuvent désormais « deviner » plus de fois par seconde, et donc effectuer plus de tentatives. Cela a abouti à la création de nouveaux algorithmes plus longs pour générer le hachage, en essayant de réduire le nombre de hachages qu'un ordinateur peut générer par seconde. Par exemple, en utilisant le hachage MD5 mentionné précédemment, une carte graphique d'il y a plusieurs années peut faire 40116 mégahachages par seconde. Cela signifie qu'il peut tenter plus de 40 milliards de mots de passe par seconde. En comparaison, avec le hachage NTLMv2, qui est utilisé par Windows, ce même système ferait moins de 3 milliards de hachages par seconde.
Ces chiffres peuvent sembler astronomiques, et vous pouvez vous demander comment il se fait que ces systèmes ne déchiffrent pas un mot de passe en quelques secondes avec autant de tentatives, et c'est là que nous en venons à parler de force de mot de passe, ou d'entropie. L'entropie, dans le contexte de l'information, est essentiellement son incertitude. Pour augmenter l'entropie, vous augmentez l'incertitude, ce qui signifie que vous augmentez les combinaisons possibles de caractères qu'un mot de passe peut être. La théorie dominante des mots de passe a toujours été de rendre les mots de passe aléatoires, ce qui est certainement un moyen d'augmenter l'entropie dans les mots de passe. Cela rend également souvent le craquage beaucoup plus difficile, car le craquage de mot de passe utilise généralement un dictionnaire de mots et applique des « règles » à ces mots. Signifiant pour "mot de passe", le logiciel essaierait non seulement le mot de base, mais remplacerait les lettres par des chiffres, ajouterait des symboles ou ajouterait des chiffres à la fin. Le mot mot de passe lui-même peut entraîner des milliers de combinaisons, et ce pour un seul mot.
C'est pourquoi nous sommes passés de l'utilisation de mots simples à l'inclusion de majuscules, de caractères spéciaux et de chiffres dans nos mots de passe. Pour un mot de passe standard de 8 caractères, cela peut ajouter plus de 40 options différentes pour chaque caractère du mot de passe. Donc, si nous ajoutons des caractères spéciaux et des chiffres à nos mots de passe, mais qu'ils finissent toujours par être piratés, que faisons-nous ? Il existe plusieurs façons d'aborder ce problème, alors restez à l'écoute de la partie 2
Pleins feux sur l'auteur : Dan Berry, consultant en sécurité offensive
Dan Berry a été le spécialiste de la sécurité offensive chez Armes informatiques depuis plus d'un an, et est un expert dans la fourniture de conseils du point de vue d'un attaquant. Dan a affiné les offres de sécurité offensive d'ITW pour qu'elles soient plus efficaces et offrent une meilleure valeur aux clients, tout en cherchant constamment à innover et à fournir des informations plus complètes et plus précieuses sur leur posture de sécurité.