Français
  • craquage-de-mots-de-passe
  • attaque-par-table-arc-en-ciel
  • hachage

Comment vos mots de passe sont-ils piratés? Comment améliorer la sécurité des mots de passe?

Dans cet article, nous avons présenté plusieurs méthodes classiques pour pirater les mots de passe, ainsi que les principes sous-jacents de ces approches. En abordant ces concepts, nous avons fourni des pratiques à la fois du point de vue des dépositaires de mots de passe et des propriétaires de comptes sur la manière d'améliorer la sécurité des mots de passe.

Darcy Ye
Darcy Ye
Developer

Nous voyons souvent des nouvelles indiquant que les mots de passe des utilisateurs de certaines applications bien connues avec une large base d'utilisateurs sont divulgués. Vous pouvez penser que comme vous n'utilisez pas cette application particulière, de tels incidents n'ont rien à voir avec vous, mais ce n'est pas le cas en réalité.

Récemment, il y a également eu des nouvelles sur Twitter indiquant que les méthodes d'IA peuvent grandement accélérer la vitesse de décryptage des mots de passe. Nous avons donc voulu comprendre les subtilités derrière cela et voir comment nous pouvons améliorer la sécurité de nos mots de passe.

PassGAN Twitter

Comment les mots de passe sont-ils piratés?

En général, les mots de passe des comptes sont généralement traités à l'aide de divers algorithmes de hachage, puis stockés dans des bases de données. Vous pouvez vous référer à notre blog précédent pour mieux comprendre le hachage des mots de passe. Malheureusement, certains prestataires de services, manquant de bon sens, stockent les mots de passe en texte brut dans leurs bases de données. Cette pratique peut entraîner des dommages encore plus importants si les données sont divulguées.

En sauvegardant les mots de passe hachés, même les administrateurs de bases de données ne peuvent pas accéder à votre mot de passe d'origine, ce qui renforce considérablement la sécurité. Lors de la vérification de l'exactitude d'un mot de passe saisi, le même algorithme de hachage est utilisé pour traiter le mot de passe saisi. Le hachage résultant est ensuite comparé à la valeur stockée dans la base de données. Si les deux valeurs de hachage correspondent, le mot de passe saisi est considéré comme correct.

En termes simples, le décryptage de mots de passe implique de générer des chaînes qui respectent les règles de mot de passe autorisées. Il s'agit ensuite de vérifier continuellement ces chaînes en utilisant la méthode mentionnée ci-dessus pour finalement découvrir le mot de passe en texte brut correct.

Méthodes courantes pour pirater les mots de passe

Dans cette section, nous allons brièvement introduire trois méthodes courantes pour craquer les mots de passe.

Attaque par force brute

Les attaques par force brute énumèrent généralement toutes les possibilités dans les règles de mot de passe autorisées et les essaient une par une.

Par exemple, les téléphones portables peuvent définir un mot de passe numérique à 4 chiffres. Les attaques par force brute essaieront toutes les possibilités une par une de 0000, 0001, 0002, …, jusqu'à 9999.

Les attaques par force brute sont très chronophages, car il y a trop de tentatives. Supposons que la longueur du mot de passe soit $L$, et le nombre de caractères possibles par chiffre de mot de passe soit $n$, alors le nombre de possibilités que les attaques par force brute doivent essayer est $n^L$, ce qui est un nombre très grand.

La raison pour laquelle de nombreux mots de passe nécessitent une combinaison de chiffres, de lettres majuscules et minuscules et de caractères spéciaux est d'augmenter $n$, ce qui augmente considérablement le nombre de possibilités, augmentant ainsi la difficulté de pirater le mot de passe.

Attaque par dictionnaire

Les attaques par dictionnaire utilisent des mots issus de dictionnaires, souvent combinés avec des espaces, des chiffres, des symboles spéciaux et d'autres éléments, pour former diverses combinaisons de mots de passe. Ces combinaisons sont ensuite utilisées pour tenter de vérifier les correspondances de mots de passe.

De nombreux individus choisissent d'utiliser des phrases avec des significations claires comme mots de passe pour faciliter leur mémorisation. Les attaques par dictionnaire se révèlent être une méthode efficace pour cracker les mots de passe avec de telles caractéristiques.

Attaque par table arc-en-ciel

Une table arc-en-ciel est une cartographie pré-calculée des mots de passe en texte brut vers leurs valeurs de hachage correspondantes. En comparant directement les valeurs de hachage stockées dans la base de données avec celles de la table arc-en-ciel, toutes les correspondances trouvées peuvent être utilisées pour rechercher et récupérer directement le mot de passe en texte brut correspondant.

Les tables arc-en-ciel offrent l'avantage de fournir un accès immédiat aux mots de passe en texte brut si la valeur de hachage a été pré-calculée (et enregistrée dans la table arc-en-ciel). Cependant, il est important de noter que si la valeur de hachage n'a pas été pré-calculée (et donc pas présente dans la table), une table arc-en-ciel ne peut pas être utilisée.

En plus des méthodes décrites ci-dessus, il existe de nombreuses autres techniques non couvertes ici. En général, une combinaison de ces méthodes est employée pour englober tous les mots de passe possibles et accélérer le processus de piratage.

Comment accélérer le piratage des mots de passe?

Dans la section précédente, nous avons brièvement présenté certaines méthodes classiques de piratage de mots de passe. De là, nous pouvons résumer quelques idées pour améliorer la vitesse ou le taux de réussite du piratage de mots de passe.

Pour pirater un mot de passe, cela implique souvent deux étapes :

  1. Déterminer l'espace de recherche pour le mot de passe (générer des mots de passe possibles)
  2. Utiliser l'algorithme de hachage pour générer des hachages pour les mots de passe possibles obtenus à l'étape précédente, et les comparer avec le hachage du mot de passe à pirater

Les attaques par dictionnaire et par table arc-en-ciel mentionnées ci-dessus optimisent respectivement ces deux étapes:

  • L'attaque par dictionnaire réduit l'espace de recherche des mots de passe. En partant de l'hypothèse que "les utilisateurs ont tendance à créer des mots de passe en utilisant des combinaisons de mots avec des significations réelles", des mots comme zzzz ne sont pas inclus dans le dictionnaire, ce qui signifie qu'ils ne seront pas tentés comme mots de passe potentiels. Cette pratique revient à écarter préalablement les réponses incorrectes. Cela s'apparente à l'approche des questions à choix multiples : bien que vous ne puissiez pas être certain de l'option correcte, vous pouvez identifier quelles options sont définitivement incorrectes. En éliminant ces options manifestement incorrectes, vos chances de deviner correctement parmi les options restantes sont renforcées.
  • L'attaque par table arc-en-ciel accélère le temps d'exécution de l'algorithme de hachage. Pour les individus bien versés en structures de données, la recherche est une opération de complexité $O(1)$, et aucune opération ne peut être plus simple que $O(1)$ en termes de complexité temporelle. En revanche, la complexité temporelle des algorithmes de hachage couramment utilisés comme MD5 et SHA est $O(n)$, ce qui est nettement plus lent que $O(1)$.

En pratique, l'optimisation du processus de piratage de mots de passe commence également à partir des deux perspectives ci-dessus. Il convient de mentionner que, en raison de l'espace relativement étroit pour l'optimisation de la complexité temporelle $O(n)$ pour les algorithmes de hachage de chaînes, davantage de considérations sont faites dans l'amélioration du matériel ou des méthodes de calcul, qui ne seront pas détaillées ici.

Alors comment l'IA aide-t-elle à craquer les mots de passe?

Dans l'ensemble de la démarche de piratage de mots de passe, le rôle de l'IA consiste à apprendre certains modèles et méthodes de construction à partir de mots de passe en texte brut exposés. Par la suite, l'IA peut simuler ces modèles de construction de mots de passe pour générer un ensemble de mots de passe potentiels. Ensuite, l'IA peut utiliser des algorithmes de hachage ou même du matériel spécialisé pour effectuer le piratage de mots de passe.

En fait, comparé à d'autres outils de piratage de mots de passe, l'avantage de tuer de PassGAN réside dans sa capacité à "deviner les mots de passe les plus probables aussi rapidement que possible", ce qui correspond à l'idée de "réduction de l'espace de recherche des mots de passe possibles" mentionnée ci-dessus.

Probabilité de deviner les mots de passe

Comment rendre les mots de passe plus sûrs?

Nous allons expliquer comment protéger les mots de passe sous deux angles. Ici, nous commençons simplement par le mot de passe lui-même, sans discuter d'autres moyens d'assurer la sécurité des comptes, tels que l'authentification multi-facteurs (MFA) et ainsi de suite.

Du côté des prestataires de services d'identité

En tant que prestataires de services d'identité, ils hébergent tous les mots de passe des utilisateurs, ce qui leur confère la responsabilité de protéger la sécurité de ces mots de passe. Voici plusieurs stratégies qui peuvent être mises en œuvre pour renforcer la sécurité des mots de passe des utilisateurs :

  1. Éviter de stocker les mots de passe en texte brut : Bien que cela puisse sembler évident, certains prestataires de services continuent à stocker les mots de passe en texte brut dans leurs bases de données. Utiliser des valeurs de hachage pour stocker les mots de passe ajoute une couche de sécurité; même si la base de données est compromise, les hackers auraient besoin de nombreux efforts pour cracker les mots de passe hachés.

  2. Appliquer des limites de fréquence à l'interface API pour la vérification des mots de passe : Réexaminons le processus de piratage de mots de passe mentionné précédemment. Une partie intégrante de ce processus implique de "vérifier" si un mot de passe est correct. Étant donné que les mots de passe sont confiés aux prestataires de services d'identité, ils sont les seules entités équipées pour offrir l'API de vérification des mots de passe. En limitant la fréquence d'accès à cette API, nous pouvons empêcher les hackers d'essayer rapidement divers mots de passe, même s'ils possèdent des suppositions de mots de passe très probables.

  3. Imposer des compositions de mots de passe plus complexes : Par exemple, comme mentionné précédemment, une plus grande variété de caractères dans les mots de passe d'une longueur donnée contribue à une complexité accrue. De plus, l'utilisation de techniques d'IA similaires à celles discutées précédemment permet l'évaluation de la sécurité des mots de passe avant soumission. Si un mot de passe est jugé faible, les utilisateurs peuvent être invités à choisir une alternative plus robuste.

Du point de vue des utilisateurs

En tant que propriétaires de comptes et actifs numériques associés, les utilisateurs doivent prêter une attention maximale à la sécurité de leurs mots de passe de compte.

  1. Éviter d'utiliser le même mot de passe sur différents sites Web : Après avoir obtenu des mots de passe de certains sites Web, de nombreux hackers tentent d'utiliser ces identifiants de compte pour accéder à d'autres sites. Si plusieurs comptes pour différents services partagent le même mot de passe, il pourrait y avoir un risque de perte de comptes et de fuite d'informations dans le scénario mentionné ci-dessus.

  2. Opter pour des mots de passe purement aléatoires chaque fois que possible : Cette approche aide à prévenir la réutilisation de modèles de mots de passe communs que la plupart des gens emploient (comme mentionné précédemment, en utilisant des phrases en anglais), compliquant ainsi les efforts des hackers pour "rétrécir l'espace de recherche des mots de passe" et augmentant le niveau de complexité des mots de passe.

En tant que fournisseur d'infrastructure pour les services d'identité, Logto a mis en œuvre plusieurs des meilleures pratiques mentionnées ci-dessus pour protéger la sécurité des comptes utilisateurs. Cela permet aux utilisateurs d'interagir avec diverses applications sans craindre de perdre leurs comptes, tout en permettant aux prestataires de services en ligne d'assurer la sécurité des données des utilisateurs avec un minimum d'efforts, leur permettant ainsi de se concentrer sur leurs activités commerciales principales.