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

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

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

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

Спасибо

2 ответа

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

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

HMAC

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

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

Другие вопросы по тегам