Некоторые вопросы о PBKDF2 - PullRequest
       36

Некоторые вопросы о PBKDF2

1 голос
/ 29 февраля 2012

Я использую PBKDF2 для получения ключа из строки пароля в моем приложении, и у меня есть только несколько вопросов по этому поводу.

Во-первых, я видел много PBKDF2 онлайн с использованием хешей, таких как HMAC-SHA256.Что это значит, что он использует HMAC-SHA256, а не только HMAC?Я думал, что HMAC шифрует данные ключом.

Во-вторых, я прочитал, что была уязвимость BlackBerry, потому что ее функция PBKDF2 использовала только одну итерацию (вместо 1000).Будет ли одна итерация такой же, как простое хеширование пароля (скажем, с помощью SHA256).

Спасибо

Ответы [ 2 ]

6 голосов
/ 03 марта 2012

Да, одна итерация примерно равна вызову базовой функции hmac. Вы не хотите этого делать, это значительно облегчает вычисление функции и тем самым упрощает выбор паролей. Чем больше итераций, тем дольше будет процесс.

PBKDF2 использует HMAC. HMAC, однако, является алгоритмом, который использует любую хэш-функцию. Вы можете подключить MD5, Sha1, Sha2 или что-нибудь еще.

HMAC

2 голосов
/ 29 февраля 2012

HMAC использует внутреннюю хеш-функцию. Не шифрует данные; он просто создает проверяемую «подпись» (код аутентификации сообщения) с использованием секретного ключа. HMAC-SHA256 означает HMAC, использующий хеш-функцию SHA256. Вы также можете иметь HMAC-SHA1, HMAC-MD5 или HMAC-WhwhatHash.

Да, с одной итерацией PBKDF2-HMAC-SHA256 очень похож на хеширование пароля с SHA256. У вас все еще есть соль, и хеш-функция вызывается дважды (см. Любую ссылку на HMAC), но тем не менее намного быстрее проверять множество паролей.

...