Aller au contenu

PBKDF2 : Password-Based Key Derivation Function 2

Cryptographie

PBKDF2 : Password-Based Key Derivation Function 2. « Fonction de dérivation de clé à partir d'un mot de passe, version 2 », par analogie avec un coffre dont chaque essai de combinaison oblige à tourner la molette des milliers de fois.

Le principe : On applique un HMAC au mot de passe et à un sel aléatoire, puis on recommence un grand nombre de fois. Le propriétaire paie ce coût une fois par connexion, l'attaquant une fois par mot de passe essayé.

Paramètres : Sel unique par compte, fonction sous-jacente (souvent SHA-256), nombre d'itérations et longueur de sortie. Les recommandations d'itérations montent avec la puissance des machines ; les valeurs par défaut des vieilles bibliothèques, elles, montent beaucoup moins vite.

Sa faiblesse : Elle ne consomme presque pas de mémoire, donc les cartes graphiques et les circuits spécialisés l'accélèrent massivement. Argon2id ou scrypt, exigeantes en mémoire, résistent mieux.

Pourquoi elle reste : Définie dans PKCS #5, elle est reconnue par FIPS et disponible partout. C'est la solution qu'on choisit quand la conformité parle plus fort que l'état de l'art, c'est-à-dire souvent.

Ce qui arrive si on s'en passe

Sans dérivation lente et salée, les mots de passe sont stockés en clair ou sous forme de condensé rapide. Une base volée se casse alors hors ligne à des milliards d'essais par seconde, et les mots de passe courants tombent en quelques minutes. Sans sel, deux utilisateurs au même mot de passe ont la même empreinte, et des tables précalculées suffisent. Avec PBKDF2 mal paramétré, le gain fond : un nombre d'itérations resté à la valeur d'il y a dix ans ne ralentit plus grand monde. Il faut un sel aléatoire par compte, un nombre d'itérations revu régulièrement, et une migration au fil des connexions vers une fonction exigeante en mémoire quand c'est possible.

Explication de la marmotte

Un site ne devrait jamais garder les mots de passe tels quels : il les transforme en une empreinte impossible à retourner. Mais si un pirate vole ces empreintes, il peut essayer des millions de mots de passe pour trouver lequel correspond. Cette méthode rend chaque essai volontairement lent, en répétant le calcul des milliers de fois, et ajoute un ingrédient différent pour chaque personne. Pour l'utilisateur, la connexion prend à peine plus de temps ; pour le pirate, deviner devient extrêmement long.

Où ce terme est utilisé

← Tout le glossaire