Pourquoi SHA-256 seul ne convient pas pour le stockage de mots de passe
Le stockage de fichiers et le stockage de mots de passe côté serveur résolvent différents problèmes. Le stockage de mots de passe doit également rendre chaque supposition hors ligne coûteuse.
Dans ce guide
Hashing n'est pas le chiffrement: il n'y a pas d'opération de décryptage correspondante. Néanmoins, après une fuite de base de données un attaquant peut hacher devine et les comparer avec des enregistrements volés sans passer les limites de taux de connexion de votre application.
La vitesse du SHA est un inconvénient
SHA-256 est utile pour les contrôles d'intégrité et de nombreuses applications cryptographiques. Sa vitesse est indésirable pour le stockage des mots de passe. SHA256(salt + password) Le sel et le coût de calcul servent à des fins différentes.
N'inventez pas un format de signature ou une boucle de hachages ordinaires. Utilisez une bibliothèque de hashing de mots de passe maintenue.
Choisissez une fonction dédiée de hachage de mots de passe
OWASP préfère Argon2id pour les nouveaux systèmes, le chiffrement étant une alternative lorsqu'il n'est pas disponible. PBKDF2 Bcrypt demeure pertinent pour les systèmes existants, mais a des limites, y compris la longueur des entrées.
Utilisez les fonctions de bibliothèque pour la création et la vérification, la génération de sel et le stockage des paramètres. Choisissez les paramètres de coût à partir des instructions et mesures actuelles sur le serveur cible. Comptez pour les connexions simultanées et les limites de ressources: le hachage coûteux ne doit pas rendre trivial le déni de service.
Comprendre le sel et le poivre
Un sel est aléatoire et unique à chaque enregistrement ; il n'a pas besoin d'être secret. Conservez aussi l'identificateur de l'algorithme et les paramètres de vérification, souvent dans l'enregistrement codé de la bibliothèque.
Un poivre est un secret optionnel gardé à l'extérieur de la base de données de mot de passe. Il peut aider dans certains scénarios de rupture, mais complique la rotation et la gestion des clés.
Mettre à jour les dossiers après une vérification réussie
Lors d'une connexion réussie, vérifiez l'ancien enregistrement d'abord, puis rehash le mot de passe soumis si les paramètres sont dépassés. Vous ne pouvez pas récupérer les mots de passe originaux des hachages existants pour migrer toute la base de données. Les comptes inactifs ont besoin d'une politique de réinitialisation ou de migration séparée.
Avant le déploiement, testez les mots de passe incorrects, la migration historique, les limites de longueur et de charge. N'enregistrez jamais les mots de passe de test ou envoyez-les à l'analyse.