Wie definiere ich das von ldappasswd verwendete Kennwortschutzschema (z. B. Hash-Funktion)?

Wie definiere ich das von ldappasswd verwendete Kennwortschutzschema (z. B. Hash-Funktion)?

Ich verwende OpenLDAP 2.6. Wenn ich das Passwort eines Objekts über

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

dann landet ein Hash des Passworts im Attribut userPassword.

Welche Hash-Funktion wird ldappasswdverwendet? Wie konfiguriere ich die Hash-Funktion? So wie es aussieht, gehe ich davon aus, dass standardmäßig ein SHA1 verwendet wird, was nicht mehr sicher ist.

Antwort1

Welche Hash-Funktion verwendet ldappasswd?

Technisch gesehen keine – es ruft nur die erweiterte LDAP-Operation „Passwort ändern“ auf, die dazu führt, dass das LDAPServereine Hash-Funktion zu verwenden, die es für angemessen hält (und den Hash dort zu speichern, wo es ihn für angemessen hält – nicht unbedingt im Benutzerpasswort).

Der Hash, der vom Exop „Passwort ändern“ verwendet wird, wird also serverseitig konfiguriert. Für OpenLDAP ist dies der olcPasswordHashParameter, der standardmäßig auf „SSHA“ (gesalzener und iterierter SHA-1) eingestellt ist, ähnlich wie $1$Hashes. Wenn Sie etwas Stärkeres möchten, können Sie entweder die {CRYPT}Hash-Algorithmen verwenden, die die crypt()-Funktion des Systems bereitstellt (also dieselben wie bei /etc/shadow – möglicherweise bcrypt oder yescrypt, wenn das Betriebssystem libxcrypt verwendet, ansonsten dieselbe Art von gesalzenem SHA),oder {ARGON2}wenn Sie das zusätzliche Modul slapd-argon2 installiert haben (es ist Teil von OpenLDAP, aber im „Contrib“-Baum).

slapd.conf cn=Konfiguration
Standard (iteriertes/gesalzenes SHA-1):
password-hash {SSHA}
Standard:
olcPasswordHash: {SSHA}
System crypt() mit yescrypt, wenn libxcrypt verwendet wird:
password-hash {CRYPT}
password-crypt-salt-format $y$%.16s
(nicht getestet, aber ich denke, das sollte funktionieren)
Systemcrypt() mit Yescrypt:
olcPasswordHash: {CRYPT}
olcPasswordCryptSaltFormat: $y$.16s
Argon2, wenn das slapd-Modul verfügbar ist:
moduleload argon2
password-hash {ARGON2}
Argon2, wenn das slapd-Modul verfügbar ist:
olcModuleLoad: argon2
olcPasswordHash: {ARGON2}

verwandte Informationen