Хеші/крипто

PBKDF2 Hash + Verify

Похідний ключ через PBKDF2 (RFC 8018) з паролем, HMAC-SHA1/256/384/512 і налаштовуваною кількістю ітерацій.


                    

PBKDF2 (RFC 8018) багаторазово застосовує HMAC до пароля й солі, щоб штучно уповільнити обчислення — це найстаріший зі стандартизованих алгоритмів для хешування паролів і виведення ключів шифрування.

Як користуватися

Типові сценарії

Що варто памʼятати

На відміну від bcrypt і Argon2, PBKDF2 не є memory-hard — вимагає лише часу процесора, тому менш стійкий до атак на GPU з великою кількістю паралельних обчислювальних одиниць.

Рекомендована кількість ітерацій зростає з часом за рекомендаціями NIST і OWASP у міру пришвидшення обладнання — варто періодично звіряти з актуальними рекомендаціями.

Стаття про цей інструмент: PBKDF2: найстаріший стандарт розтягування ключів

Часті запитання

Чим PBKDF2 відрізняється від bcrypt чи Argon2 для хешування паролів?

PBKDF2 багаторазово застосовує HMAC-хеш-функцію, щоб уповільнити перебір, але, на відміну від bcrypt чи Argon2, не є пам'яттю-залежним, тому його відносно дешевше зламати на GPU. Він і досі широко використовується та схвалений FIPS, але для нових систем зазвичай радять Argon2.

За що відповідає кількість ітерацій і якою вона має бути?

Кількість ітерацій задає, скільки разів застосовується базова хеш-функція, напряму обмінюючи швидкість на стійкість до перебору. Поточні рекомендації — сотні тисяч ітерацій для SHA-256, зі збільшенням з часом у міру пришвидшення апаратного забезпечення.

Навіщо PBKDF2 потрібна сіль?

Сіль гарантує, що однакові паролі дають різний результат, не дозволяючи зловмисникам використовувати заздалегідь обчислені райдужні таблиці й змушуючи атакувати кожен хеш окремо.

Чи має значення, яку базову хеш-функцію використовує PBKDF2?

Так. Старі реалізації часто використовували HMAC-SHA1 за замовчуванням — у конструкції HMAC це не критична вразливість, але сучасні рекомендації однозначно радять HMAC-SHA256 чи сильніший заради більшого запасу міцності без відчутної втрати швидкості.

Де ще використовується PBKDF2, крім зберігання паролів?

PBKDF2 широко застосовують для виведення криптографічних ключів шифрування з паролів — наприклад, у WPA2/WPA3 для Wi-Fi та в багатьох форматах шифрованих файлових контейнерів.

Статті: Хеші/крипто

Hash Generator: чим MD5, SHA-1 і SHA-256 відрізняються одна від одної

Чому MD5 досі використовують для перевірки цілісності файлів, але не для паролів.

Checksum Verifier: як перевірити, що файл не пошкоджено

Чому збіг контрольної суми підтверджує цілісність файлу, але не те, хто його створив.

HMAC: чим хеш з ключем відрізняється від звичайного хешу

Чому звичайний SHA-256 не захищає від підробки повідомлення, а HMAC — захищає.

Bcrypt: чому паролі хешують повільно, а не швидко

Чому швидкий SHA-256 — погана ідея для паролів, а повільний bcrypt — правильна.

UUID: як генерують ідентифікатори, що майже ніколи не повторюються

Чому UUID v4 можна генерувати незалежно на мільйонах машин без ризику колізій.

Генератор паролів: що насправді робить пароль стійким

Чому довгий пароль зі словника надійніший за короткий з символами й цифрами.

AES: як працює симетричне шифрування

Чому той самий ключ шифрує і розшифровує дані в AES, і чим це відрізняється від асиметричного шифрування.

Argon2: чому цей алгоритм переміг конкурс на хешування паролів

Чим Argon2 краще захищає від атак на відеокартах, ніж старіші алгоритми хешування паролів.

Scrypt: навіщо алгоритму потрібно багато пам'яті

Чому scrypt навмисно вимагає багато пам'яті, щоб ускладнити перебір на ASIC-пристроях.

TOTP: як працюють одноразові коди в застосунках-автентифікаторах

Чому код у Google Authenticator працює без інтернету і синхронізується із сервером лише за часом.

X.509: що всередині SSL-сертифіката

Що саме браузер перевіряє в сертифікаті сайту, перш ніж показати зелений замочок.

PGP: як працює шифрування з відкритим і приватним ключем

Чому можна вільно ділитися публічним ключем PGP, але не приватним.