W Polsce, podobnie jak w całej Unii Europejskiej, obowiązuje RODO (ogólne rozporządzenie o ochronie danych) — polska nazwa dla GDPR, tak zakorzeniona w języku, że wiele osób nie zdaje sobie sprawy, że to ten sam akt prawny co "GDPR" wymieniany w międzynarodowej dokumentacji. RODO wymaga "odpowiednich środków technicznych" do ochrony danych osobowych, w tym haseł, a funkcje takie jak PBKDF2 są jednym z konkretnych sposobów spełnienia tego ogólnego wymogu.
Zasada rozciągania klucza
Zamiast haszować hasło raz, PBKDF2 wielokrotnie, tysiące razy z rzędu, stosuje bazową funkcję skrótu (zwykle HMAC-SHA256), wykorzystując wynik każdej iteracji jako wejście dla następnej. Celowo spowalnia to obliczenie jednego skrótu, czyniąc masowy brute force znacznie droższym dla atakującego.
PBKDF2 w Wi-Fi: WPA2
Jednym z najbardziej rozpowszechnionych zastosowań PBKDF2 na świecie jest wyprowadzanie klucza szyfrującego Wi-Fi z hasła sieci w standardzie WPA2-PSK: hasło sieci przechodzi przez PBKDF2-HMAC-SHA1 z 4096 iteracjami, wykorzystując nazwę sieci (SSID) jako sól, generując 256-bitowy klucz. To wyjaśnia, dlaczego krótkie hasło Wi-Fi jest tak podatne na offline'owy atak brute force po przechwyceniu jednego "handshake'u".
Dlaczego to narzędzie wymaga HTTPS
To narzędzie oblicza PBKDF2 za pomocą wbudowanego w przeglądarkę Web Crypto API zamiast własnej implementacji w JavaScript. Przeglądarki udostępniają crypto.subtle wyłącznie w "bezpiecznym kontekście" — HTTPS lub localhost podczas developmentu — więc bez szyfrowanego połączenia to narzędzie i każde inne narzędzie kryptograficzne na tej stronie po prostu nie zadziała, niezależnie od mocy urządzenia.
Do czego to się przydaje
- Wyprowadzanie kluczy kryptograficznych z haseł do szyfrowania (np. w WPA2/WPA3 dla Wi-Fi).
- Zachowanie kompatybilności ze starszymi systemami wykorzystującymi PBKDF2 do przechowywania haseł.
- Zrozumienie, dlaczego zalecana liczba iteracji stale rośnie w nowszych wersjach standardów.
Wybór bazowej funkcji skrótu ma znaczenie
Starsze implementacje PBKDF2 często domyślnie używały HMAC-SHA1 — sam SHA-1 jest uważany za kryptograficznie osłabiony przy bezpośrednim haszowaniu, ale w konstrukcji HMAC ta słabość nie stanowi krytycznej podatności. Jednak współczesne zalecenia jednoznacznie rekomendują HMAC-SHA256 lub HMAC-SHA512 — nie ze względu na bezpośrednie zagrożenie ze strony SHA-1, lecz dlatego, że dłuższy wynik i nowocześniejsza funkcja dają większy margines bezpieczeństwa bez odczuwalnej utraty szybkości.