Glossaire

Qu'est-ce que Sel (cryptographie) ?

Un sel cryptographique est une valeur aléatoire combinée à un mot de passe ou à une autre entrée avant que celle-ci ne soit traitée par une fonction de hachage ou de dérivation de clé. Il garantit que des entrées identiques produisent des sorties différentes et rend inopérantes les tables d’attaque précalculées.

Aussi connu sous le nom de : salt, cryptographic salt

Sans sel, des mots de passe identiques produisent toujours des hachés identiques. Un attaquant disposant d’une table précalculée associant les mots de passe courants à leurs valeurs de haché (table arc-en-ciel) peut rechercher instantanément tout haché correspondant dans une base de données volée. Le salage déjoue cette attaque en mêlant une valeur aléatoire unique à chaque mot de passe avant le hachage. Même si deux utilisateurs ont le même mot de passe, des sels différents produisent des sorties de haché différentes.

Un sel n’a pas besoin d’être secret : il est généralement stocké en clair avec le haché ou la clé dérivée. Son but est de forcer l’attaquant à calculer chaque haché individuellement plutôt que d’utiliser des tables précalculées. Un sel aléatoire de 16 octets offre 2^128 variations possibles pour chaque mot de passe, ce qui rend le précalcul totalement irréalisable.

Les sels sont essentiels dans deux contextes : le hachage de mots de passe (où ils protègent les hachés de mots de passe stockés dans les bases de données) et la dérivation de clé (où ils garantissent que la même phrase secrète produit des clés dérivées différentes pour des opérations différentes). Dans les deux cas, le sel doit être généré avec un générateur de nombres aléatoires cryptographiquement sûr et être unique par opération — jamais réutilisé d’un utilisateur ou d’une opération de chiffrement à l’autre.

Comment Vaulted utilise Sel (cryptographie)

Quand une phrase secrète est ajoutée à un secret Vaulted, un sel aléatoire de 16 octets est généré côté client via la Web Crypto API. Ce sel est fourni à PBKDF2 avec la phrase secrète et 100 000 itérations pour dériver une clé d’encapsulation AES-KW. Le sel est ensuite intégré dans le fragment d’URL, afin que le navigateur du destinataire puisse redériver la même clé d’encapsulation à partir de la phrase secrète. Chaque secret protégé par une phrase secrète reçoit son propre sel unique, garantissant que la même phrase secrète produit des clés d’encapsulation différentes pour des secrets différents.