Aller au contenu
ecdsa.com

Hachage des mots de passe

Le stockage d’un mot de passe sous la forme du résultat d’une fonction volontairement lente, salée et de préférence exigeante en mémoire, comme Argon2id, scrypt, bcrypt ou PBKDF2, pour qu’une base de données volée résiste aux tentatives hors ligne de deviner les mots de passe.
Autres graphiesArgon2idbcryptscryptPBKDF2password hash

Une fonction de hachage rapide comme SHA-256 permet aux attaquants de tester des milliards de candidats par seconde sur des GPU. Le hachage des mots de passe ajoute un sel aléatoire unique par mot de passe (ce qui neutralise les tables précalculées) et un coût paramétrable. Le Password Storage Cheat Sheet de l’OWASP recommande, dans l’ordre : Argon2id (RFC 9106) avec au moins 19 Mio de mémoire, 2 itérations et un parallélisme de 1 ; scrypt avec N = 2¹⁷, r = 8, p = 1 ; bcrypt avec un facteur de coût de 10 ou plus (il tronque l’entrée à 72 octets) ; et, lorsque FIPS 140 est exigé, PBKDF2-HMAC-SHA256 avec au moins 600 000 itérations.

Stockez l’algorithme et les paramètres avec le condensat (le format de chaîne PHC $argon2id$v=19$m=19456,t=2,p=1$…, le $2b$10$… de bcrypt) afin de pouvoir augmenter les coûts plus tard et mettre à niveau les anciens condensats à la connexion suivante. Un poivre (pepper) facultatif, secret conservé hors de la base de données, ajoute une protection si seule la base de données fuit.

La NIST SP 800-63B-4 exige un stockage salé et renforcé par un coût de calcul et, pour les mots de passe utilisés comme facteur d’authentification unique, une longueur minimale de 15 caractères. Les clés d’accès suppriment totalement le secret stocké : le serveur ne conserve qu’une clé publique.

Normes et références

Tous les termes