¿Cómo definir el esquema de protección de contraseña (por ejemplo, función hash) utilizado por ldappasswd?

¿Cómo definir el esquema de protección de contraseña (por ejemplo, función hash) utilizado por ldappasswd?

Estoy usando OpenLDAP 2.6. Cuando configuro la contraseña de un objeto a través de

ldappasswd -x -D <dn of root user> -W -S <dn of object whose pwd shall be set>

entonces algo de hash de la contraseña termina en el atributo userPassword.

¿Qué función hash ldappasswdutiliza? ¿Cómo configuro la función hash? Por lo que parece, supongo que por defecto es un SHA1 que ya no es seguro.

Respuesta1

¿Qué función hash utiliza ldappasswd?

Técnicamente ninguno: simplemente invoca la operación extendida LDAP 'Cambiar contraseña', lo que provoca que el LDAPservidorutilizar alguna función hash que considere apropiada (y almacenar el hash donde lo considere apropiado, no necesariamente en userPassword).

Entonces, el hash utilizado por la exop 'Cambiar contraseña' se configura en el lado del servidor. Para OpenLDAP, ese es el olcPasswordHashparámetro que por defecto es "SSHA" (SHA-1 salado e iterado), similar a $1$los hashes. Si desea algo más potente, puede optar por {CRYPT}utilizar cualquier algoritmo hash que proporcione la función crypt() del sistema (es decir, lo mismo que con /etc/shadow; posiblemente bcrypt o yescrypt si el sistema operativo usa libxcrypt; de lo contrario, el mismo tipo de SHA salado). ),o {ARGON2}si tiene instalado el módulo adicional slapd-argon2 (es parte de OpenLDAP pero en el árbol "contrib").

slapd.conf cn=configuración
Predeterminado (SHA-1 iterado/salado):
password-hash {SSHA}
Por defecto:
olcPasswordHash: {SSHA}
Sistema crypt() usando yescrypt, si libxcrypt está en uso:
password-hash {CRYPT}
password-crypt-salt-format $y$%.16s
(no probado pero creo que debería funcionar)
Cripta del sistema() usando yescrypt:
olcPasswordHash: {CRYPT}
olcPasswordCryptSaltFormat: $y$.16s
Argon2 si el módulo slapd está disponible:
moduleload argon2
password-hash {ARGON2}
Argon2 si el módulo slapd está disponible:
olcModuleLoad: argon2
olcPasswordHash: {ARGON2}

información relacionada