Glossary
Kostenfaktor
Der Kostenfaktor (oder Work Factor) legt fest, wie viele Runden eine Hashfunktion ausführt, und tauscht Login-Geschwindigkeit gegen Widerstand gegen Cracking.
Der Kostenfaktor — auch Work Factor genannt — ist die Zahl, die bestimmt, wie aufwendig eine einzelne Passwort-Hash-Operation ist. bcrypt drückt ihn als Rundenzahl aus (ein Kostenwert von 12 bedeutet 2¹² = 4.096 interne Runden), und sha512crypt nutzt dafür den expliziten Parameter rounds=N. Ein höherer Kostenfaktor verlangsamt legitime Logins nur geringfügig, verlangsamt aber jeden einzelnen Versuch bei einem Brute-Force- oder Wörterbuchangriff im gleichen Verhältnis.
Dieser Kompromiss ist der ganze Sinn eines langsamen Hashes: Ein Kostenfaktor ist nur deshalb nützlich, weil ein Angreifer ihn bei jedem getesteten Kandidaten zahlt, während ein echter Nutzer ihn nur einmal pro Login zahlt. Eine Verdopplung des Kostenfaktors verdoppelt ungefähr beide Werte, weshalb er mit zunehmender Hardware-Leistung regelmäßig erhöht werden muss — ein 2015 gewählter Kostenfaktor bremst eine moderne GPU längst nicht mehr so wie damals.
Ein Kostenfaktor ist nicht dasselbe wie ein Salt: Ein Salt vereitelt Vorberechnung und verhindert, dass identische Passwörter übereinstimmen, während der Kostenfaktor dafür sorgt, dass jeder Versuch tatsächlich langsam ist. Siehe warum schnelle Hashes gefährlich sind dafür, was passiert, wenn ein gespeichertes Passwort gar keinen Kostenfaktor hat, und Argon2 vs bcrypt vs scrypt für die Wahl des richtigen Verfahrens.