Aktivieren Sie die Blowfish-basierte Hash-Unterstützung für Crypt

13

Wie aktiviere ich die crypt_blowfish-Unterstützung für Shadow-Passwörter und PHP auf einem Linux (Debian) -Server?

Ich beziehe mich auf die Blowfish-basierte OpenBSD- Verschlüsselung, die in PHP als CRYPT_BLOWFISH bekannt ist.

Wie weit ich weiß, gibt es kein Debian-Paket dafür. Welche anderen Optionen habe ich, um diesen Hash-Algorithmus für PHP zu aktivieren?

Anmerkung:
PHP Krypta () Funktionen erzeugen Schnittstellen relativ direkt mit der C-Bibliothek Krypta (3) Funktion durch das zugrundeliegende Betriebssystem zur Verfügung gestellt.

Die
Benennung des Update- Pakets ist nicht so klar, wie es sein könnte (sollte).
Das PEAR Crypt_Blowfish-Paket ist ein direkter Ersatz für die MCrypt-Erweiterung von PHP und ermöglicht eine schnelle Zwei-Wege- Blowfish-Verschlüsselung.

Das Debian BCrypt-Paket ist auch eine Implementierung des 'normalen' Zwei-Wege-Blowfish-Algorithmus.

Was ich suche, ist die Bcrypt-Hash-Implementierung für Hashing-Passwörter.

Jacco
quelle
funktioniert "pear install Crypt_blowfish" nicht?
cori
Das pear crypt_blowfish-Paket ist der "normale" Zwei-Wege-Blowfish-Verschlüsselungsalgorithmus. Ich suche nach dem Blowfish-basierten Hashalgorithmus.
Jacco
Ah, jetzt sehe ich das Problem.
cori
Ich wusste nicht, dass Sie für eine Frage ein höheres Kopfgeld erhalten können als für Ihren aktuellen Repräsentanten. Interessant.
Copas
Die Wiederholung wird sofort abgezogen, so dass er ~ 200 Wiederholungen hatte und jetzt ~ 50 hat.
ceejayoz

Antworten:

9

Das Paket, das Sie in Debian installieren müssen, ist libpam-unix2.

Dann müssen Sie die folgenden Dateien unter bearbeiten /etc/pam.d/und die gesamte pam_unix.soVerwendung in ändern pam_unix2.so:

  • gemeinsames Konto
  • common-auth
  • gemeinsames Passwort
  • gemeinsame Sitzung

Bearbeiten Sie die common-passwordDatei und ersetzen Sie den Parameter "md5" durch "blowfish".

Passwörter, die nach diesen Änderungen aktualisiert werden, werden mit Blowfish gehasht. Bestehende Shadow-Passwörter werden nicht geändert. Quelle

Um Blowfish in PHP zu verwenden, geben Sie ein Blowfish-Salz an crypt(). So was:

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

Sie sollten zuerst prüfen, ob CRYPT_BLOWFISH == 1 ist. Und Sie müssen ein ausreichend langes Salt verwenden, das mindestens 22 Zeichen entspricht. Quelle

hayalci
quelle
Hmmm, nach diesen Änderungen ist CRYPT_BLOWFISH aus irgendeinem Grund immer noch nicht gleich 1.
Kzqai
1
Eine Einschränkung: Wenn Ihre Version von pam_unix2 den derzeit für das Kennwort eines Benutzers verwendeten Hash-Algorithmus nicht unterstützt, kann sich dieser Benutzer möglicherweise nicht anmelden. Ich denke, das ist, worauf ich auf meiner Debian-Box gestoßen bin. Einige Konten verwendeten SHA512 und konnten sich nicht anmelden, ein Konto mit MD5 jedoch. Sie können diese Kennwörter von root aus festlegen, da passwdbeim Ausführen von root nicht nach dem alten Kennwort gefragt wird. Wichtig: Lassen Sie Ihre Root-Sitzung geöffnet, bis Sie sicher sind, dass Sie sich erneut anmelden können!
Tom Zych