Podręcznik
2. Kryptografia
2.4. Hasła jako klucze kryptograficzne
Jedną z podatności w kategorii nieprawidłowego zastosowania kryptografii jest bezpośrednie wykorzystanie hasła jako klucza kryptograficznego. W systemach zero-knowledge, gdzie informacja po stronie dostawcy chroniona jest wyłącznie hasłem znanym użytkownikowi, klucze kryptograficzne generowane są na podstawie jedynego dostępnego komponentu jakim jest to hasło. Aby zapewnić odpowiednią jakość tak powstałego klucza kryptograficznego niezbędne jest wykorzystanie funkcji skrótu, która ograniczoną entropię hasła rozłoży w sposób równomierny w przestrzeni klucza kryptograficznego, a dodatkowo uniemożliwi szybkie generowanie kluczy testowych w przypadku ataku brutalnego. Do tego celu mogą służyć wcześniej wymienione funkcje skrótu do przechowywania haseł, najpopularniejszą w tym kontekście jest PBKDF2 (Password based key derivation function), która dzięki regulowalnemu wydatkowi obliczeniowemu może być dostosowana dla uzyskania niezbędnego czasu obliczeń na danej platformie. Należy jednak pamiętać, że funkcje tego typu nie chronią przed niską entropią i prostotą hasła będącego ich podstawą.