Je suis tombé sur une discussion dans laquelle j'ai appris que ce que je faisais n'était pas en fait de saler les mots de passe mais de les poivrer, et j'ai depuis commencé à faire les deux avec une fonction comme :
hash_function($salt.hash_function($pepper.$password)) [multiple iterations]
Sans tenir compte de l'algorithme de hachage choisi (je veux que ce soit une discussion sur les sels et les poivres et non sur des algorithmes spécifiques, mais j'en utilise un sécurisé), est-ce une option sécurisée ou devrais-je faire quelque chose de différent ? Pour ceux qui ne sont pas familiers avec les termes :
-
A sel est une valeur générée de façon aléatoire, généralement stockée avec la chaîne de caractères dans la base de données, conçue pour rendre impossible l'utilisation de tables de hachage pour craquer les mots de passe. Comme chaque mot de passe a son propre sel, ils doivent tous être forcés individuellement afin de les craquer ; cependant, comme le sel est stocké dans la base de données avec le hachage du mot de passe, une compromission de la base de données signifie la perte des deux.
-
A poivre est une valeur statique stockée séparément de la base de données (généralement codée en dur dans le code source de l'application) et destinée à rester secrète. Elle est utilisée pour qu'une compromission de la base de données ne rende pas la table de mots de passe de l'application entière forçable par brute.
Y a-t-il quelque chose qui m'échappe et le salage et le poivrage de mes mots de passe sont-ils la meilleure option pour protéger la sécurité de mes utilisateurs ? Cette méthode présente-t-elle un défaut de sécurité potentiel ?
Note : Supposons, pour les besoins de la discussion, que l'application et la base de données sont stockées sur des machines distinctes, qu'elles ne partagent pas de mots de passe, etc., de sorte qu'une violation du serveur de base de données ne signifie pas automatiquement une violation du serveur d'application.
3 votes
Non bastante un duplicata, mais extrêmement liés : stackoverflow.com/questions/16594613/
2 votes
Duplicata de site croisé : security.stackexchange.com/q/3272/2113