Glossaire

Qu'est-ce que Dérivation de clé ?

La dérivation de clé est le processus consistant à transformer une valeur source — généralement un mot de passe, une phrase secrète ou un secret partagé — en une ou plusieurs clés cryptographiques à forte entropie au moyen d’un algorithme déterministe.

Les mots de passe choisis par des humains sont intrinsèquement faibles en tant que clés cryptographiques. Ils sont courts, ont des jeux de caractères limités et suivent des schémas prévisibles. Une fonction de dérivation de clé (KDF) comble cet écart en faisant passer le mot de passe par un algorithme coûteux en calcul, qui produit une clé de longueur fixe adaptée au chiffrement.

Les fonctions de dérivation de clé sont délibérément conçues pour être lentes et gourmandes en ressources. C’est contre-intuitif pour la plupart des domaines logiciels où la vitesse compte, mais pour les KDF, la lenteur est une caractéristique de sécurité. Un attaquant qui veut casser un mot de passe par force brute doit exécuter la KDF pour chaque tentative. Si la KDF prend 100 millisecondes par tentative, tester un milliard de mots de passe prendrait plus de trois ans, contre quelques secondes avec une fonction de hachage rapide.

Les KDF courantes sont PBKDF2, bcrypt, scrypt et Argon2. Chacune équilibre différentes ressources (temps CPU, mémoire, parallélisme) pour résister à différentes stratégies d’attaque. Le choix de la KDF dépend de l’environnement : les applications basées sur le navigateur utilisent généralement PBKDF2 parce qu’elle est disponible via la Web Crypto API, tandis que les applications côté serveur peuvent préférer Argon2 pour sa résistance mémoire.

Comment Vaulted utilise Dérivation de clé

Quand tu définis une phrase secrète optionnelle pour un secret, Vaulted utilise la dérivation de clé pour transformer cette phrase secrète en une clé d’encapsulation. Concrètement, il exécute PBKDF2 avec 100 000 itérations, SHA-256 et un sel aléatoire de 16 octets via la Web Crypto API. La clé dérivée est utilisée avec AES-KW pour encapsuler la clé de chiffrement AES-256-GCM d’origine (encapsulation de clé). Le destinataire doit saisir la même phrase secrète pour dériver la même clé d’encapsulation, désencapsuler la clé de chiffrement et enfin déchiffrer le secret.