Les mots de passe stockés dans un système bien conçu et sécurisé doivent toujours être crypté (plus précisément, *haché* à l'aide d'une fonction unidirectionnelle puissante). Cependant, le mécanisme et le calendrier de ce cryptage varient en fonction du contexte.
Voici une ventilation et quelques exemples courants :
* Mots de passe du système d'exploitation (Windows, macOS, Linux) : Lorsque vous créez ou modifiez votre mot de passe de connexion pour le système d'exploitation de votre ordinateur, le système d'exploitation hache (crypte) automatiquement le mot de passe *avant* de le stocker. Le mot de passe en texte brut ne touche jamais le support de stockage.
* Comptes de sites Web (par exemple, Google, Facebook, Amazon) : Lorsque vous créez un compte sur un site Web ou modifiez votre mot de passe, le site Web *devrait* immédiatement hacher votre mot de passe côté serveur avant de l'enregistrer dans sa base de données. Des sites Web réputés suivent cette pratique. Le processus se déroule de manière transparente ; tu ne le vois pas. Un *bon* site Web ne stocke jamais votre mot de passe en texte brut.
* Bases de données : De nombreux systèmes de bases de données fournissent des mécanismes permettant de chiffrer automatiquement les données, y compris les mots de passe, lors de leur création ou de leur modification. Les administrateurs de base de données peuvent configurer ces paramètres.
* Mots de passe spécifiques à l'application : Si une application (comme un gestionnaire de mots de passe, un logiciel, etc.) stocke des mots de passe, elle *devrait* les chiffrer automatiquement lors de leur création/modification.
Considérations importantes :
* Chiffrement ou hachage : Le terme « cryptage » est souvent utilisé de manière vague, mais dans le contexte de la sécurité des mots de passe, le hachage est le terme le plus précis. Le hachage est une fonction *unidirectionnelle*. Vous ne pouvez pas facilement inverser un hachage pour obtenir le mot de passe d'origine. Le cryptage, en revanche, est généralement *réversible* (avec la bonne clé). Le stockage des mots de passe sous forme de hachages est beaucoup plus sécurisé car même si une base de données est compromise, les attaquants ne peuvent pas facilement récupérer les mots de passe d'origine. Ils sont réduits à des attaques par force brute (essayer de nombreux mots de passe et les hacher pour voir s'ils correspondent au hachage stocké).
* Salage : En plus du hachage, une valeur aléatoire « sel » est généralement ajoutée à chaque mot de passe avant le hachage. Cela rend beaucoup plus difficile pour les attaquants d'utiliser des « tables arc-en-ciel » précalculées ou d'autres techniques de piratage de mots de passe.
* L'importance des hachages forts : Tous les algorithmes de hachage ne sont pas égaux. Les systèmes modernes devraient utiliser des algorithmes de hachage puissants et coûteux en calcul, tels que :
*Argon2
* bcrypt
* crypter
* PBKDF2 (souvent utilisé en conjonction avec HMAC-SHA256 ou d'autres fonctions de hachage sécurisées)
* L'hypothèse du « devrait » : Il est crucial de comprendre que même si tous les systèmes ci-dessus *devraient* chiffrer (hacher) automatiquement les mots de passe, ce n'est pas *garanti*. Les failles de sécurité se produisent en raison de mauvaises pratiques.
En résumé : Bien que tous les mots de passe ne soient pas *garantis* d'être cryptés automatiquement, les systèmes correctement conçus devraient toujours (et le font généralement) crypter (hacher) les mots de passe lors de leur création pour protéger la sécurité des utilisateurs. Les connexions au système d'exploitation, les comptes de sites Web et les systèmes de bases de données sont d'excellents exemples d'endroits où vous vous attendez à ce qu'un hachage automatique des mots de passe se produise.
|