# Cassage de mot de passe

En cryptanalyse et en sécurité informatique, le cassage de mot de passe (en anglais : password cracking) est le processus de récupération de mots de passe à partir de données stockées ou transmises par un système informatique. Une approche courante, appelée attaque par force brute, consiste à essayer plusieurs mots de passe potentiels et à comparer leur hachage cryptographique au hachage cryptographique du mot de passe recherché.

## Objectifs

Le cassage de mot de passe peut avoir pour objectif
* d'aider un utilisateur à récupérer un mot de passe oublié (l'installation d'un nouveau mot de passe est une façon plus simple de régler ce problème, mais implique des privilèges d'administrateur système) ;
* d'obtenir un accès non autorisé à un système ;
* d'obtenir un accès à un système pour accéder à des preuves numériques pour lesquelles un juge a autorisé l'accès ;
* ou, à titre préventif, de vérifier la qualité des mots de passe utilisés par les utilisateurs d'un système (par exemple, les professionnels de la sécurité informatique, lors d'audits de sécurité, utilisent le cassage de mot de passe pour vérifier le respect des politiques des mots de passe par les utilisateurs d'un système).

## Logiciels de cassage de mots de passe

Il existe de nombreux logiciels de cassage de mots de passe, les plus populaires sont Aircrack, Cain & Abel, John the Ripper, Ophcrack, Konboot, Hashcat (en), Hydra, DaveGrohl (en) et ElcomSoft (en).
De nombreux logiciels d'informatique légale incluent une fonctionnalité de cassage de mots de passe. La plupart de ces logiciels utilisent une combinaison de stratégies, incluant des attaques par force brute et des attaques par dictionnaire.
La disponibilité de puissance de calcul et de logiciels automatisés de cassage de mots de passe faciles à utiliser permet l'utilisation de ces logiciels par des script kiddies.

## Temps requis pour le cassage d'un mot de passe

Le temps nécessaire pour casser un mot de passe dépend de
* la robustesse du mot de passe qui est une mesure de l'entropie du mot de passe ;
* et du mode de stockage des mots de passe.
La plupart des méthodes de cassage de mot de passe nécessitent que l'ordinateur génère de nombreux mots de passe candidats et les vérifie un à un. Une méthode simple est l'attaque par force brute, dans laquelle un ordinateur essaie toutes les permutations possibles de caractères jusqu'à ce qu'il trouve le mot de passe.
Des méthodes plus rapides, comme les attaques par dictionnaire, tentent de réduire le nombre d'essais requis pour casser un mot de passe. Ces méthodes seront généralement utilisées avant la force brute. L'augmentation de la robustesse du mot de passe augmente le nombre de mots de passe candidats à vérifier pour casser le mot de passe et réduit la probabilité que le mot de passe soit trouvé dans un dictionnaire de cassage.
Le temps requis pour casser un mot de passe à l'aide de programmes informatiques dépend également du nombre de mots de passe pouvant être vérifiés par seconde. Si l'attaquant dispose du hachage cryptographique du mot de passe cible, le nombre de vérifications par seconde peut être de l'ordre du milliard, puisqu'une attaque hors ligne est possible. Une autre situation dans laquelle il est possible de tester rapidement un grand nombre de mots de passe est lorsque le mot de passe est utilisé pour former une clé cryptographique. Dans ce cas, un attaquant peut rapidement vérifier si un mot de passe candidat décode avec succès les données chiffrées. Si l'attaquant ne dispose d'aucune des deux aides précédentes, le nombre de vérifications par seconde dépend du logiciel d'authentification qui limite la fréquence à laquelle un mot de passe peut être vérifié, soit par le temps de traitement du mot de passe, par des CAPTCHAs ou des verrouillages forcés après un certain nombre de tentatives infructueuses.
Pour certains types de hachage de mots de passe, les ordinateurs de bureau ordinaires peuvent tester plus de cent millions de mots de passe par seconde en utilisant des outils de cassage s'exécutant sur un processeur standard, et des milliards de mots de passe par seconde en utilisant des outils basés sur un processeur graphique$^,$$^,$. Le nombre de mots de passe potentiellement testés par seconde dépend fortement de la fonction de hachage cryptographique utilisée par le système pour générer les hachages de mots de passe. Une fonction de hachage appropriée, telle que bcrypt, est préférable par un ordre de grandeur à une fonction naïve telle que le simple MD5 ou SHA. Selon le National Institute of Standards and Technology (NIST), un mot de passe de huit caractères incluant des chiffres, des lettres majuscules, des lettres minuscules et des symboles, et excluant les mots de passe couramment sélectionnés et les mots des dictionnaires de cassage, possède une force de 30 bits. Comme 2$^{30}$ ne représente qu'un milliard de permutations, un tel mot de passe sera donc cassé en quelques secondes si la fonction de hachage est naïve. Lorsque des ordinateurs de bureau ordinaires sont combinés dans un effort de cassage, comme cela peut être fait avec des botnets, les capacités de cassage de mot de passe sont considérablement augmentées. En 2002, Distributed.net a réussi à trouver une clé RC5 de 64 bits en quatre ans, en regroupant plus de 300 000 ordinateurs différents à certains moments et en testant en moyenne plus de 12 milliards de clés par seconde.
Les processeurs graphiques peuvent accélérer le cassage de mot de passe par un facteur 50 à 100 par rapport aux processeurs standards. Depuis 2011, des produits commerciaux revendiquent la capacité de tester jusqu'à 2 800 000 000 mots de passe par seconde sur un ordinateur de bureau standard à l'aide d'un processeur graphique haut de gamme. Un tel appareil peut casser un mot de passe de 10 lettres avec une seule casse en une journée. Le travail peut être réparti sur de nombreux ordinateurs pour une accélération supplémentaire proportionnelle au nombre d'ordinateurs disponibles.
Malgré leurs capacités, les processeurs de bureau sont plus lents à casser les mots de passe que les machines conçues spécialement à cet effet. En 1998, Electronic Frontier Foundation (EFF) a mis au point un appareil de cassage de mots de passe dédié utilisant des ASICs, par opposition à des processeurs à usage général. Leur machine, Deep Crack, a cassé une clé DES de 56 bits en 56 heures, en testant plus de 90 milliards de clés par seconde. En 2010, la Georgia Tech Research Institute (en) a mis au point une méthode d'utilisation de GPGPU pour le cassage de mots de passe. Les résultats obtenus les ont conduits à recommander une longueur minimale de 12 caractères pour la sécurisation des mots de passe$^,$$^,$.

## Prévention

La meilleure méthode pour empêcher le cassage de mot de passe consiste à s'assurer que les attaquants ne peuvent pas accéder même au mot de passe haché. Par exemple, sur le système d’exploitation Unix, les mots de passe hachés étaient initialement stockés dans un fichier /etc/passwd accessible au public. Par contre, sur les systèmes Unix modernes (et similaires), ils sont stockés dans le fichier de mots de passe shadow/etc/shadow, qui est accessible uniquement aux programmes possédant des privilèges d'administrateur système). Cela rend plus difficile pour un utilisateur malveillant d'obtenir les mots de passe hachés, mais de nombreux fichiers de hachages de mots de passe ont été volées malgré cette protection. Une autre approche efficace consiste à associer une clé secrète spécifique à un site avec le hachage de mot de passe. Cela empêche la récupération de mot de passe même si les valeurs hachées sont dérobées.

## Autres méthodes d'obtention de mots de passe

Il existe d'autres techniques pour obtenir un mot de passe, par exemple :
* les techniques traditionnelles d'espionnage : l'ingénierie sociale, l'écoute téléphonique, l'hameçonnage et la fouille de poubelle ;
* des techniques de cryptanalyse : l'attaque temporelle, la cryptanalyse acoustique ;
* les logiciels malveillants : les enregistreurs de frappe, les virus, les chevaux de Troie.