Glossary
Facteur de coût
Le facteur de coût (ou work factor) fixe le nombre de tours d'une fonction de hachage, échangeant vitesse de connexion contre résistance au cassage.
Le facteur de coût — aussi appelé work factor — est le nombre qui détermine le coût d'une opération de hachage de mot de passe. bcrypt l'exprime comme un nombre de tours (un coût de 12 signifie 2¹² = 4 096 tours internes), et sha512crypt l'exprime via un paramètre explicite rounds=N. Augmenter le facteur de coût ralentit un peu les connexions légitimes, mais ralentit proportionnellement chaque tentative lors d'une attaque par force brute ou par dictionnaire.
Ce compromis est tout l'intérêt d'un hash lent : un facteur de coût n'est utile que parce qu'un attaquant le paie à chaque candidat testé, alors qu'un utilisateur légitime ne le paie qu'une fois par connexion. Doubler le facteur de coût double à peu près les deux chiffres, d'où la nécessité de l'augmenter périodiquement à mesure que le matériel progresse — un facteur de coût choisi en 2015 ne ralentit plus un GPU moderne comme il le faisait alors.
Un facteur de coût n'est pas la même chose qu'un sel : un sel déjoue le précalcul et empêche des mots de passe identiques de correspondre, tandis que le facteur de coût est ce qui ralentit réellement chaque tentative. Voir pourquoi les hash rapides sont dangereux pour ce qui se passe quand un mot de passe stocké n'a aucun facteur de coût, et Argon2 vs bcrypt vs scrypt pour savoir lequel choisir.