Attaque par dictionnaire

Un article de Wikipédia, l'encyclopédie libre.

L'attaque par dictionnaire est une méthode utilisée en cryptanalyse pour trouver un mot de passe ou une clé. Elle consiste à tester une série de mots de passe potentiels, les uns à la suite des autres, en espérant que le mot de passe utilisé pour le chiffrement soit contenu dans le dictionnaire. Si tel n'est pas le cas, l'attaque échouera.

Cette méthode repose sur le fait que de nombreuses personnes utilisent des mots de passe courants (par ex : un prénom, une couleur, le nom d'un animal...). C'est pour cette raison qu'il est toujours conseillé de bien réfléchir avant de choisir un mot de passe. Le leet est une pratique simple et très efficace pour se protéger de ce genre d'attaque.

L'attaque par dictionnaire est souvent une méthode utilisée en complément de l'attaque par force brute qui consiste à tester de manière exhaustive les différentes possibilités de mots de passe. Cette dernière est particulièrement efficace pour des mots de passe n'excédant pas 5 ou 6 caractères.

Sommaire

[modifier] Contenu du dictionnaire et règles

Outre le contenu habituel d'un dictionnaire qui renferme un ensemble de mots, le dictionnaire peut être fortement amélioré en combinant les mots ou en appliquant certaines règles. Par exemple, pour chaque mot, on peut essayer de changer la casse de certaines lettres ou les remplacer par leurs équivalents en leet speak. Une autre astuce consiste à répéter deux fois le mot (par exemple « secretsecret »), dans l'espoir que l'utilisateur fasse appel à cette méthode peu sûre pour renforcer son mot de passe. On peut aussi générer des dictionnaires, par exemple pour des numéros de plaque, des numéros de sécurité sociale, des dates de naissance, etc.

[modifier] Logiciels

Le logiciel John the Ripper, le plus connu dans ce domaine, est fourni avec une liste de règles qui permettent d'étendre l'espace de recherche et explorer les failles classiques dans l'élaboration des mots de passe ou des clés par les utilisateurs. Il existe des dictionnaires qui contiennent plusieurs millions de mots et qui ne sont pas fournis avec le logiciel. Citons encore L0phtcrack et Cain & Abel qui fournissent des services similaires.

Toutefois, ce type de logiciels n'est pas forcément utilisé dans un but malicieux. Ces outils peuvent être utiles pour les administrateurs qui veulent sécuriser les mots de passe et alerter les utilisateurs sur les risques encourus.


[modifier] Détection

Il est possible de détecter les attaques de force brute en limitant la durée entre deux tentatives d’authentification ce qui augmente considérablement la durée de déchiffrage. Autre possibilité, le système des cartes à puces (exemple carte bancaires) ou les cartes SIM qui bloque le système au bout de 3 tentatives infructueuses ce qui rend impossible toute attaque par force brute.

[modifier] Salage de mot de passe

Dans les applications, les mot de passes sont souvent stockés sous forme de hash à partir desquels il est très difficile de retrouver le contenu du mot de passe. Certains dictionnaires utilisés pour les attaques comportent le résultat des signatures des mots de passe les plus communs. Une personne malveillante ayant accès aux résultats du hachage des mots de passe pourrait donc deviner le mot de passe originel.Dans ce cas on peut utiliser le "salage" du mot de passe. C'est à dire l'ajout d'une séquence de bit servant à modifier la séquence finale. Prenons par exemple le mot de passe ‘Wikipedia’, qui utilisé avec l’algorithme SHA-1 produit : ‘664add438097fbd4307f814de8e62a10f8905588’. Nous allons maintenant utiliser un salage du mot de passe en y ajoutant ‘salé’. En hachant « Wikipediasalé » nous obtenons le hashage : ‘1368819407812ca9ceb61fb07bf293193416159f’ rendant tout dictionnaire inutile.

Une bonne pratique est de ne pas utiliser une clé de salage unique mais de la générer aléatoirement pour chaque enregistrement. Même si la clé de salage est lisible il faudra pour chaque mot de passe régénérer un dictionnaire salé complet. On peut aussi intégrer une partie dynamique et une partie intégrée au code source de l’application pour une sécurité maximum. Le système d’exploitation UNIX utilise un système de mot de passes hachés.

[modifier] Articles connexes

[modifier] Liens externes

Liste de Dictionnaires de mots courants sur AuthSecu.com

Dictionnaire de hash MD5


Mesures de sécurité cryptographique
Cryptographie : Preuve de sécurité | Sécurité inconditionnelle | IND-CPA | IND-CCA | Kerckhoffs | Malléabilité | Sécurité calculatoire | Hypothèses calculatoires | Confusion et diffusion
Cryptanalyse de base : Biais statistique | Corrélation | Dictionnaire | Force brute | Fréquence | Indice de coïncidence | Interpolation | Mot probable
Cryptanalyse par canal auxiliaire : Canaux auxiliaires : Acoustique | Consommation | Émanations EM | Faute | Sondage | Temporel
Cryptanalyse ciblée : Clé apparentée | Clé faible | EFF | Enigma | Glissement | Intégrale | Linéaire / Différentielle / Différentielle impossible / Différentielle-linéaire / Boomerang | Modes opératoires | Modulo n | Quadratique | Rectangle | Rencontre au milieu | Vigenère | χ²
Systèmes asymétriques : Clé apparentée | Clé faible | Homme au milieu | Sécurité sémantique
Fonctions de hachage : Effet avalanche | Linéaire / Différentielle | Paradoxe des anniversaires | Pseudo-collision
Autres : Anonymat | Confidentialité | Intégrité | Sécurité par l'obscurité