2011-08-07 15 views
7

tylko szukasz porady. Mam stronę internetową z około 2500 użytkowników - małe, ale rosnące. Zbudowałem go za pomocą szyfrowania SHA1 na hasłach. Odtąd czytałem, że SHA1 jest niepewny i chciałby zmienić SHA256 na sól.Chcesz przekonwertować szyfrowanie hasła witryny od SHA1 do SHA256

Czy ktoś ma jakieś porady, jak dokonać takiego przejścia? Byłoby świetnie, gdybym mógł odszyfrować hasła i po prostu je ponownie włączyć, ale nie wygląda na to, że można.

thx Adam

Odpowiedz

11

Zwykłym sposobem iść na ten temat to:

  1. Bądź kolumna hashed-password większe, aby pomieścić mieszania SHA256 i dodać „sól” kolumnę
  2. Ustaw soli dziedzinie początkowo NULL i dostosuj kod sprawdzania haseł, aby NULL salt oznaczała sha1, a nie-NULL oznacza sha256
  3. Po pomyślnym zalogowaniu się do sha1, zmień ponownie hasło na sha256 za pomocą soli i zaktualizuj bazę danych.

Po pewnym czasie użytkownicy sami przeprowadzą migrację do sha256; Jedynym problemem są użytkownicy, którzy logują się tylko sporadycznie lub wcale. W tym celu możesz wysłać wiadomość e-mail z przypomnieniem, a nawet zagrozić zamknięciem konta, jeśli nie zalogujesz się przed X dniem (nie podawaj faktycznego powodu chociaż ...)

7

Właśnie w celu wyjaśnienia, SHA jest algorytm mieszania, która jest (zazwyczaj) ulica jednokierunkowa. Nie można odszyfrować skrótów, co jest pewnego rodzaju siłą używania ich do uwierzytelniania haseł. Jesteś na dobrej drodze, przechodząc do solonego hasha, i oto, jak bym to zrobił.

Jedynym sposobem uzyskania haseł jest umożliwienie użytkownikowi wpisania ich samych. Gdy użytkownicy odwiedzają Twoją witrynę i logują się, aktualizuj hasła jeden po drugim. W swojej metodzie uwierzytelniania wykonałbym teraz haszowanie i porówna go z tym, co jest w istniejącym polu (nic nowego tutaj). Zakładając, że pasuje, użyj salt SHA256 i zaktualizuj hasło w bazie danych. Jeśli chcesz, trzymaj trochę w tabeli użytkownika, śledząc, którzy użytkownicy zostali zaktualizowani.

Podejmuję wiele założeń, ale tak właśnie rozwiązałem algorytm mieszania w przeszłości. Powodzenia!

1

I poproś o ponowną migrację hasła hasła z SHA1 do SHA256 natychmiast, bez czekania, aż użytkownik ponownie odwiedzi witrynę, aby ponownie wprowadzić hasło. Zmianą będzie migracja hash hasła jednorazowego i zmiana funkcji sprawdzania poprawności logowania.

Załóżmy hasło hash są generowane przy użyciu funkcji: hasło + sól [SHA1] -> Hash-SHA1

migrować do SHA256, można konwertować hash hasła używając następującego algorytmu:

Hash -sha1 + sól [Sha256] -> Hash-sha256 (Sól jest używana do zwiększenia złożoności danych wejściowych).

W zależności od akceptowalnej wartości funkcji sha256, można zakodować Hash-sha1 na base64 do drukowania ASCII.

Dla funkcji walidacji logowania, hasło powinno być zakodowane przy użyciu następującego algorytmu:

hasło + sól [sha1] -> hash-SHA1 + sól [sha 256] -> hash-sha256

Wada jest dwa razy haszowana (wykorzystaj trochę czasu procesora), ale uprość migrację i lepsze zabezpieczenia.

+0

Myślę, że [zasada Kerckhoffsa] (https://en.wikipedia.org/wiki/Kerckhoffs%27s_principle) dotyczy przyczyny, dla której jest to zły pomysł - "bezpieczeństwo przez zaciemnienie". Podstawowe hasło jest nadal przechowywane jako SHA1. Jeśli zamierzasz zrobić coś takiego, to HMAC prawdopodobnie ma sens. –

0

Przejście na SHA256 nie spowoduje większego bezpieczeństwa witryny.

SHA1 i SH512 są wiadomość trawi, byli nigdy ma być hasłem hashowania (lub klucz-wyprowadzenie) funkcji. (Chociaż skrót wiadomości może być użyty jako blok konstrukcyjny dla KDF, tak jak w PBKDF2 z HMAC-SHA1.)

Funkcja hashowania hasłem powinna bronić się przed atakami słownikowymi i tablicami tęczowymi.

Obecnie jedynym standardem (jak w usłudze NIST) hashowania lub funkcji kluczowania jest PBKDF2. Lepsze wybory, jeśli użycie standardu nie jest wymagane, to bcrypt i nowszy scrypt. Wikipedia ma stron dla wszystkich trzech funkcji:

strona w https://crackstation.net/hashing-security.htm zawiera obszerne omówienie zabezpieczenia hasłem.

To powiedziawszy, tdhammers oferuje dobre porady dotyczące sposobu radzenia sobie z migracją.

Powiązane problemy