Włącz obsługę hashów krypt w oparciu o blowfish

13

Jak włączyć obsługę crypt_blowfish dla ukrytych haseł i PHP na serwerze Linux (Debian)?

Mam na myśli bcrypt oparty na Blowfish w stylu OpenBSD , znany w PHP jako CRYPT_BLOWFISH.

O ile wiem, nie ma dla niego pakietu Debian, jakie inne opcje muszę włączyć ten algorytm mieszania dla PHP?

Uwaga: fuzja
PHP crypt () łączy się stosunkowo bezpośrednio z funkcją crypt (3) biblioteki C udostępnianą przez podstawowy system operacyjny.

Aktualizacja
nazewnictwa pakietów nie jest tak klarowna, jak mogłaby (powinna) być.
Pakiet PEAR Crypt_Blowfish zastępuje rozszerzenie PHPrypt MCrypt, pozwalając na szybkie dwukierunkowe szyfrowanie blowfish.

Również pakiet BCrypt Debiana jest także implementacją „normalnego” dwukierunkowego algorytmu blowfish.

To, czego szukam, to implementacja Bcrypt-hash dla hashów.

Jacco
źródło
nie działa „gruszka instaluje Crypt_blowfish”?
cori
Pakiet gruszki crypt_blowfish jest „normalnym” dwukierunkowym algorytmem szyfrowania Blowfish. Szukam algorytmu mieszającego opartego na blowfish.
Jacco
ah, teraz widzę problem.
cori
Nie wiedziałem, że możesz otrzymać wyższą nagrodę za pytanie niż twój obecny przedstawiciel. Ciekawy.
Copas
Przedstawiciel jest odejmowany natychmiast, więc miał ~ 200 powtórzeń, a teraz ma ~ 50.
ceejayoz

Odpowiedzi:

9

Pakiet, który musisz zainstalować w Debianie to libpam-unix2.

Następnie będziesz musiał edytować następujące pliki pod /etc/pam.d/i zmienić całe pam_unix.soużycie na pam_unix2.so:

  • wspólne konto
  • common-auth
  • wspólne hasło
  • wspólna sesja

Na koniec edytuj common-passwordplik i zamień parametr „md5” na „blowfish”.

Hasła, które są aktualizowane po dokonaniu tych modyfikacji, zostaną zaszyfrowane przy użyciu blowfish. Istniejące hasła cienia nie są modyfikowane. Źródło

Aby użyć blowfish w PHP, podajesz sól blowfish do crypt(). Lubię to:

crypt('sting', '$2a$07$' . substr('saltsaltsalt', 0, CRYPT_SALT_LENGTH) ) 

Najpierw sprawdź, czy CRYPT_BLOWFISH == 1. I musisz użyć wystarczająco długiej soli, która jest równa (lub większa niż) 22 znakom. Źródło

Hayalci
źródło
Hmmm, po wprowadzeniu tych zmian, CRYPT_BLOWFISH nadal nie jest równy 1, z jakiegoś powodu.
Kzqai,
1
Zastrzeżenie: jeśli twoja wersja pam_unix2 nie obsługuje algorytmu haszującego używanego obecnie dla hasła użytkownika, ten użytkownik może nie być w stanie się zalogować. Myślę, że to właśnie natrafiłem na moje okno Debiana; niektóre konta korzystały z SHA512 i nie mogły się zalogować, ale konto korzystające z MD5 mogło. Możesz ustawić te hasła od roota, ponieważ passwdnie pyta o stare hasło, gdy uruchamiasz z roota. Ważne: utrzymuj otwartą sesję root, dopóki nie będziesz pewny, że możesz się zalogować ponownie!
Tom Zych,