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 ;)