2010-12-13 8 views
15

Czytałem o incydencie Gawkera i pojawiło się kilka artykułów dotyczących używania tylko haseł hashujących przy użyciu bcrypt i chcę się upewnić, że mój mechanizm mieszający jest wystarczająco bezpieczny, aby unikaj przełączania się na inną metodę. W mojej obecnej aplikacji wybrałem implementację PBKDF2 z wykorzystaniem sha2-512 i co najmniej 1000 iteracji.Szyfrowanie hasła: PBKDF2 (przy użyciu sha512 x 1000) vs Bcrypt

Czy mogę poprosić o opinie na temat korzystania z PBKDF2 vs Bcrypt i czy powinienem wprowadzić zmianę?

Odpowiedz

27

Jesteś dobry z PBKDF2, nie musisz przeskoczyć do bcrypt.

Mimo, że zalecenie użycia 1000 iteracji zostało zrobione w roku 2000, teraz chcesz znacznie więcej.

Ponadto, należy podjąć więcej ostrożności przy użyciu bcrypt:

Warto również zauważyć, że podczas gdy bcrypt jest silniejsza niż PBKDF2 dla większości typów haseł, to odstaje na długie hasło podczas; wynika to z niezdolności bcrypt do użycia więcej niż pierwszych 55 znaków hasła Podczas naszych szacunkowych kosztów i NIST. szacunki entropii hasła wskazują, że ograniczenie 55 znaków bcrypt nie jest może powodować problemy w chwili obecnej, implementatorzy systemów, które polegają na bcrypt może być dobrze poinformowany, aby obejść to ograniczenie (np. Przez "prehashing" fraza hasła, która umożliwia jej wprowadzenie do limitu 55 znaków) lub podjęcie kroków, aby uniemożliwić użytkownikom umieszczanie zbyt dużej entropii hasła w 56. i następnych znakach (np. przez żądanie od użytkowników witryny internetowej wpisania hasła do danych wejściowych box, który ma tylko miejsce na 55 znaków).

From scrypt paper [PDF]

Powiedział, że jest tam również scrypt.

Wszelkie porównania byłaby niepełna bez stole z papieru scrypt wspomniano powyżej:

Estimated cost of hardware to crack a password in 1 year.

liczy iteracji dla PBKDF2-HMAC-SHA256 wykorzystywane są 86000 i 4300000.

+5

"prosząc użytkowników witryny internetowej o wpisanie hasła w polu wprowadzania, które ma tylko 55 znaków." Przykro mi, ale jak to się ma do prawdziwego świata? Nie mogę wymyślić 8-znakowych haseł. – m33lky

+6

Znam faceta, który używa sekwencji wspaniałych gier szachowych jako haseł. Dodaje sekwencje z nazwiskami graczy, datami, miastami granymi itd. Znam inną osobę, która używa wierszy z epickich wierszy, wprowadzając zamierzone błędy. Istnieje wiele sposobów na uzyskanie rilly długich haseł. – Cheeso

+1

Należy zauważyć, że wystąpił błąd w papierze kryptograficznym, a rzeczywiste algorytmiczne odcięcie bcrypt wynosi 72 znaki. Więc wciąż jest granica, ale ma 128 więcej bitów entropii. Co jest niezwykle istotne. – ircmaxell

-7

Komentarz (re: tytuł):

  • Nie używaj szyfrowania (odwracalne) do przechowywania haseł, chyba że musisz.
  • Ponieważ przedstawiłeś opcję mieszającą (nieodwracalną) jako alternatywę, zakładam, że nie potrzebujesz odwracalności.

opinie dotyczące korzystania PBKDF2 vs Bcrypt i czy należy zaimplementować zmianę?

Moja opinia:

Zastosowanie PBKDF2 nad Bcrypt. (Mam tylko większą wiarę w SHA niż Blofish, bez żadnego powodu)

Co do tego, czy powinieneś "wprowadzić zmianę", nie wiem, o co prosisz.

Edytowane w celu jaśniejszego oddzielenia dyskusji szyfrowania/mieszania od określenia moich preferencji w/r/t algorytmie.

+0

"Implementacja zmiany" oznacza konwersję moich skryptów do użycia bcrypt zamiast algo PBKDF2. – buggedcom

+4

Nie wierzę, że bcrypt jest szyfrowaniem. Jest to jednokierunkowa funkcja mechanizmu mieszającego na BLOWFISH – buggedcom

+0

BCrypt * jest * algorytmem mieszającym. –

Powiązane problemy