2012-01-24 14 views
6

To pytanie spowodowało, że zacząłem myśleć o hashowaniu hasła ponownie. Obecnie używam bcrypt (konkretnie py-bcrypt). Słyszałem dużo o PBKDF2 i scrypt.Którą metodę hashowania hasłem należy użyć?

Zastanawiam się, czy istnieją jakieś "nowocześniejsze" metody haszowania haseł, o których mógłbym nie wiedzieć (ponieważ są nowe, więc ludzie nie mówią o nich tak często), a może inne metody Nie wiem.

A następnie od tego, z którego należy korzystać? Większość ludzi wydaje się polecać bcrypt, ale zastanawiam się, czy to po prostu dlatego, że jest stara (czytaj: dobrze znana). scrypt wydaje się lepszy (zmienna ilość użycia pamięci). Nie wiem zbyt wiele o PBKDF2.

Więc jeśli mam schemat zarządzania użytkownikami, który z nich powinienem użyć? A może powinienem użyć czegoś zupełnie innego?

Odpowiedz

6

PBKDF2 jest używany w WPA/WPA2 i poświadczonych w pamięci podręcznej domen 2 (AKA DCC2). Możesz zmienić iteracje dla HMAC-SHA1, aby zwiększyć bezpieczeństwo. Ta metoda spowalniania procesu pękania jest nieprzerwana. Ponieważ jednak jest oparty na SHA1, możesz go nazwać przyjaznym dla GPU do ataku.

Zarówno bcrypt, jak i scrypt, użyj tabeli odnośników. Ta zależność od pamięci czyni ją nieprzyjazną dla GPU. Najnowsze architektury GPU 28   nm umożliwiają jednak bardzo szybki dostęp do pamięci.

Na razie powinieneś faworyzować bcrypt lub scrypt. Jest to dobry wybór do używania skrótów zależnych od pamięci, ale w przyszłości może się to zmienić. Miej oko na to, jak zwiększa się wydajność procesorów GPU. Możliwe, że osiągną one horyzont zdarzeń, w którym lepiej będzie wrócić do zwykłych skrótów GPU, ale zwiększyć liczbę iteracji.

Powiązane problemy