Implementación de hash PBKDF2 (o BCrypt) para Apache HTTPD o APR

Implementación de hash PBKDF2 (o BCrypt) para Apache HTTPD o APR

¿Alguien conoce una forma (simple) de utilizar PBKDF2 o BCrypt como hash de contraseña dentro de Apache HTTPD?

El escenario general es que tengo un recurso en/privado que me gustaría restringir a un grupo determinado de usuarios. Esos usuarios tendrán contraseñas almacenadas en una base de datos y verificadas mediante un archivo mod_auth_dbd.

me gustaríacomopara evitar el uso de SSHA.

Puedo ver en Apache apr-util que hay una función apr_password_validate(que maneja todos los tipos de hash ahora mal vistos); y en apr_crypto_openssl.c hay crypto_passphraseuna implementación de PBKDF2.

¿Alguien ha soldado los dos juntos? (¿O simplemente me perdí algo obvio en algún lugar de los documentos de Apache?)

Respuesta1

Entonces, después de una revisión más detallada, parece que todo fue mucho más simple de lo que había imaginado.

HTTPD utiliza la función de cripta proporcionada por el sistema y, por lo tanto, aprovecha su modularidad.

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

En teoría, es compatible con BCrypt directamente (aunque no lo probé). Probé SHA-512 usando el prefijo $6.

Entonces, establecer una contraseña como se calcula a continuación logra el resultado deseado:

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

Respuesta2

Para futuros buscadores, tenga en cuenta que la compatibilidad con bcrypt se agregó a Apache en la versión 2.4.4, lanzada en febrero de 2013.

$ htpasswd -nbB -C 11 nombre de usuario contraseña nombre de usuario:$2y$11$p1icdLB/EqI2z2EPt6JrQOUdy1GzHg5GdDWcwdj3MIXJLSkgrILoa

información relacionada