Zmiana tylko jednego parametru w menadżerze haseł może znacząco zwiększyć nasze bezpieczeństwo.
Opublikowano 25-01-2023 06:33
TL;DR: Sprawdź ilu iteracji PBKDF2 używa Twój menadżer haseł. Jeżeli mniej niż 100000 - rozważ zmianę tego parametru. Jest ona prosta a znacząco wpływa na bezpieczeństwo.
W przypadku Bitwardena sprawdzisz to przez interfejs webowy:
Account settings.Security.Keys.KDF iterations. Po zmianie wciśnij guzik Change KDF.Według najnowszych wytycznych OWASP powinieneś wybrać 600000.
Bitwarden jeszcze do niedawna używał 100000.
Teraz dla nowych kont ta wartość została zwiększona do 350000.
Bezpieczeństwo menadżera haseł w głównej mierze opiera się na haśle głównym. To hasło wykorzystywane jest do szyfrowania bazy danych. Ale nie używa się go wprost. Wylicza się z niego specjalny hash. Więcej o tym opowiadam w filmie jak wygląda łamanie haseł.
Bitwarden używa PBKDF2. Bardzo dokładnie jest to opisane w specjalnym dokumencie. Ale w skrócie:
Iterations i sprawdzaj jak wydłuża się czas wygenerowania hasha w zakładce Output.W rzeczywistości generowanie hasha jest dużo szybsze. Tutaj generujemy go przez przeglądarkę z użyciem kodu JavaScript. W prawdziwym życiu atakujący używają specjalistycznych narzędzi - na przykład hashcata.
Do naszych potrzeb ten przykład jest wystarczający. Widać, że im większa liczba - tym generowanie jest wolniejsze.
Cert Polska udostępnia bazę najpopularniejszych polskich haseł. Zawiera ona około miliona haseł. Załóżmy, że jako hasła głównego użyłeś jednego z haseł znajdujących się na tej liście.
Potencjalny atakujący sprawdza więc wszystkie wyrazy ze słownika po kolei - dla każdego z nich generując wartość PBKDF2.
W dużym uproszczeniu:
395ms * 1000000 = 395000000ms (czas potrzebny na wygenerowanie hasha razy liczba rekordów) czyli około 109 godzin.1158ms * 1000000 = 1158000000 czyli ponad 321 godzin.Modyfikacja tylko jednego parametru sprawiła, że atak jest trzy razy wolniejszy.
PS. Nie ustawiaj tej wartości na zbyt wielką liczbę - na przykład miliard. Bo wtedy przy każdym logowaniu Twój komputer musi wykonać odpowiednią ilość iteracji abyś mógł się zalogować. Przy za dużej liczbie będzie to trwało po prostu zbyt długo ;)