Como definir o esquema de proteção por senha (por exemplo, função hash) usado pelo ldappasswd?

Como definir o esquema de proteção por senha (por exemplo, função hash) usado pelo ldappasswd?

Estou usando o OpenLDAP 2.6. Quando eu defino a senha de um objeto via

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

então algum hash da senha acaba no atributo userPassword.

Qual função hash ldappasswdusa? Como configuro a função hash? Pelo que parece, presumo que o padrão seja um SHA1 que não é mais seguro.

Responder1

Qual função hash o ldappasswd usa?

Tecnicamente nenhum – apenas invoca a operação estendida LDAP 'Alterar senha' que faz com que o LDAPservidorusar alguma função hash que achar apropriada (e armazenar o hash onde achar apropriado - não necessariamente em userPassword).

Portanto, o hash usado pela exop 'Alterar senha' é configurado no lado do servidor. Para OpenLDAP, esse é o olcPasswordHashparâmetro cujo padrão é "SSHA" (SHA-1 salgado e iterado), semelhante aos $1$hashes. Se você quiser algo mais forte, você pode escolher {CRYPT}usar quaisquer algoritmos de hash que a função crypt() do sistema forneça (ou seja, o mesmo que com /etc/shadow – possivelmente bcrypt ou yescrypt se o sistema operacional usar libxcrypt, caso contrário, o mesmo tipo de SHA salgado ),ou {ARGON2}se você tiver o módulo slapd-argon2 adicional instalado (faz parte do OpenLDAP, mas está na árvore "contrib").

tapa.conf cn=config
Padrão (SHA-1 iterado/salgado):
password-hash {SSHA}
Padrão:
olcPasswordHash: {SSHA}
Sistema crypt() usando yescrypt, se libxcrypt estiver em uso:
password-hash {CRYPT}
password-crypt-salt-format $y$%.16s
(não testado, mas acho que deve funcionar)
Sistema crypt() usando yescrypt:
olcPasswordHash: {CRYPT}
olcPasswordCryptSaltFormat: $y$.16s
Argon2 se o módulo slapd estiver disponível:
moduleload argon2
password-hash {ARGON2}
Argon2 se o módulo slapd estiver disponível:
olcModuleLoad: argon2
olcPasswordHash: {ARGON2}

informação relacionada