Souvent, on a la flemme.
Souvent, on ne comprend pas trop à quoi servent toutes ces mesures de sécurité dont on nous parle dans des posts, articles, vidéos ou shorts.
Puis on se dit : « De toute façon, ça n’arrive qu’aux autres… »
Mais alors, c’est quoi le brute forcing et pourquoi cela peut mettre en péril vos mots de passe et toute votre vie numérique ?
Comment sont stockés les mots de passe ?
Sur un site ou une application bien conçue, un mot de passe n’est jamais stocké en clair.
En réalité, il n’est même pas conservé tel quel : ce qui est enregistré dans la base de données, c’est son hash.
Un hash, c’est quoi ?
C’est comme une empreinte numérique d’une donnée.
On prend un texte, un fichier ou toute autre information, on le passe dans une fonction de hachage et on obtient une suite de caractères de longueur fixe (par exemple, 64 caractères pour SHA-256).
Deux propriétés importantes :
- Toujours la même empreinte pour la même donnée.
- Non réversible : on ne peut pas retrouver la donnée d’origine juste avec le hash.
Exemple simplifié de base de données avec le nom et le hash du mot de passe, pour se rendre compte:
Leo|09a5925d50d4858b27fcd828d323a7ff0c0e0b47c9d7cffd4a21d361b7e97c35
cloe|5e2c110a9ae6e0d289258981f110a158bc5aeaa9f23d0b786cb3b7df95da2e1d
Maria|ca534855f601d9f74b759f32dc52c50cc0d4c4f32bcaf2fcf7a2ad9a6f444f9e
Tulip|2578d17c4eefc146b2a0fa993a8b308bc3fff9508215e362c2874260a59e0ff2
Et à chaque fois que vous vous connectez, l’application va comparer le hash du mot de passe que vous entrez, avec celui stocké dans sa base de données. S’ils sont identiques, c’est bon. Ce sont donc les hash qui sont comparés, et non les mots de passe.
À première vue, c’est rassurant : même si la base est volée, on n’a pas les mots de passe en clair.
Rassurant oui… mais ce n’est pas infaillible.
Brute force et attaques par dictionnaire
Le brute force pur consiste à tester toutes les combinaisons possibles jusqu’à trouver la bonne.
C’est réputé efficace, mais souvent très long. Beaucoup trop long…
En pratique, les attaquants utilisent plus souvent une attaque par dictionnaire : ils prennent des millions de mots de passe déjà connus (issus de fuites de données), les hachent avec le même algorithme, et comparent les résultats aux hash volés.
L’une des listes les plus célèbres est rockyou.txt.
Elle provient d’un piratage survenu en 2009 contre le site RockYou (widgets et jeux Facebook) où 32 millions de mots de passe en clair ont été dérobés. Cette liste est aujourd’hui une référence pour tester la robustesse des mots de passe, car elle contient des exemples réels, utilisés par de vraies personnes.
Vous pouvez la télécharger facilement en faisant une recherche sur google, en revanche n’essayez pas de l’ouvrir dans un éditeur de texte, il y a 14M de lignes, c’est un peu lourd pour un pc.

Allez, un exemple (fictif et légal)
Découvrons ensemble de mot de passe de … Tulip <3

On voit ici que le hash du mot de passe de Tulip est 2578d17c4eefc146b2a0fa993a8b308bc3fff9508215e362c2874260a59e0ff2
On va devoir déterminer le type de hash utilisé, pour ce faire on a un outil qui s’appelle *hash-identifier*

Le résultat (probable) indiqué est SHA-256
On a le type de hash, on a téléchargé rockyou, pour attaquer il ne manque plus que la baguette magique, et elle s’invoque avec « hashcat »
donc la commande sera : hashcat -m 1400 (qui correspond à l’algo SHA-256) <hash> </path/to/rockyou.txt.gz>

Le résultat apparait après quelques secondes ….

Comment se protéger ?
Tulip pensait être à l’abri : après tout, elle utilisait un mot de passe « compliqué », avec beaucoup de caractères, de la ponctuation, des chiffres et des lettres, comme Facebook le recommandait…
Mais *headoverheals.8 n’était pas suffisant.
Le password manager
C’est là qu’intervient le gestionnaire de mots de passe (password manager).
Il vous permet de générer des mots de passe réellement forts et aléatoires, qui n’apparaîtront pas dans les listes de mots de passe compromis et qui résisteront aux attaques par dictionnaire.
Il est quasiment impossible de retenir un mot de passe fort comme : d$Gpl,65*&rEr,!?rT89freE:?$f5
Il est aussi très peu probable qu’un tel mot de passe figure dans un dictionnaire de mots de passe connus. Le gestionnaire se chargera de le retenir pour vous et de le remplir automatiquement lors de vos connexions.
L’authentification à deux facteurs (2FA)
En complément, ajoutez une seconde couche de sécurité avec l’authentification à deux facteurs (2FA).
Cela consiste à confirmer votre connexion soit par e-mail, soit par SMS, soit (plus pratique) en saisissant un code à usage unique généré par une application dédiée, qui change toutes les 30 secondes environ.
Pourquoi je recommande souvent Proton:
Proton propose depuis peu un authentificateur gratuit, simple d’utilisation et disponible sur les stores Android et Apple.
Il est basé en Suisse, un pays qui ne fait pas partie des 14 Eyes, un groupe de 14 pays ayant des accords de surveillance et de partage de renseignements, notamment numériques.
Une fois téléchargé, vous pourrez activer l’authentification à deux facteurs sur vos applications les plus sensibles (mails, réseaux sociaux, exchanges crypto etc…). Lors de la connexion, on vous demandera de confirmer en entrant le code à six chiffres qui se trouvera dans cette application, sur votre téléphone.
Bien sûr, il existe d’autres applications similaires, comme Google Authenticator, Aegis ou Authy.
Important : Brute forcer un mot de passe sur un compte qui ne vous appartient pas est illégal. Les techniques présentées ici doivent être utilisées uniquement dans un cadre légal, comme des exercices CTF, des audits autorisés ou des environnements de test personnels. C’est très très illégal, immoral et mal. Je n’encourage personne à essayer, même pas pour rigoler.
Bisous.