Wszystkie artykuły

PBKDF2: najstarszy standard rozciągania klucza

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.

Wypróbuj narzędzie