PBKDF2 (oder BCrypt) Hash-Implementierung für Apache HTTPD oder APR

PBKDF2 (oder BCrypt) Hash-Implementierung für Apache HTTPD oder APR

Kennt jemand eine (einfache) Möglichkeit, PBKDF2 oder BCrypt als Passwort-Hash in Apache HTTPD zu verwenden?

Das allgemeine Szenario ist, dass ich eine Ressource in /private habe, die ich auf eine bestimmte Gruppe von Benutzern beschränken möchte. Die Passwörter dieser Benutzer werden in einer Datenbank gespeichert und mithilfe eines verifiziert mod_auth_dbd.

Ich würdewieum von der Verwendung von SSHA wegzukommen.

Ich kann im Apache apr-util sehen, dass es eine Funktion gibt apr_password_validate(die alle mittlerweile verpönten Hash-Typen verarbeitet); und in apr_crypto_openssl.c gibt es crypto_passphraseeine, die eine Implementierung von PBKDF2 ist.

Hat jemand die beiden zusammengeführt? (Oder habe ich irgendwo in den Apache-Dokumenten einfach etwas Offensichtliches übersehen?)

Antwort1

Nach näherer Betrachtung stellte sich heraus, dass alles viel einfacher war, als ich es mir vorgestellt hatte.

HTTPD verwendet die vom System bereitgestellte Verschlüsselungsfunktion und nutzt so dessen Modularität.

http://en.wikipedia.org/wiki/Crypt_(Unix)#Modular_crypt.283.29_Algorithms

Theoretisch unterstützt es BCrypt direkt (obwohl ich es nicht getestet habe). Ich habe SHA-512 mit dem Präfix $6 getestet.

Das Festlegen eines Passworts nach der unten berechneten Methode führt also zum gewünschten Ergebnis:

salt = 'fGn9LR75';
puts 'quohjo5oor4ac3Deolei'.crypt('$6$' + salt);
=>    
"$6$fGn9LR75$juRSrMtKBa8pdZ8tbTouUvDItoF9Fp.LVk8Kqv2ZL5T.R.q/nUQNGePve1Ge/8rDf/xqUwgpY.3F1MQ0qtauf0"

Antwort2

Für zukünftige Sucher: Beachten Sie, dass in der im Februar 2013 veröffentlichten Version 2.4.4 bcrypt-Unterstützung zu Apache hinzugefügt wurde.

$ htpasswd -nbB -C 11 Benutzername Passwort Benutzername:$2y$11$p1icdLB/EqI2z2EPt6JrQOUdy1GzHg5GdDWcwdj3MIXJLSkgrILoa

verwandte Informationen