如何定義ldappasswd所使用的密碼保護方案(例如雜湊函數)?

如何定義ldappasswd所使用的密碼保護方案(例如雜湊函數)?

我正在使用 OpenLDAP 2.6。當我透過設定物件的密碼時

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

然後密碼的一些雜湊值最終出現在屬性中userPassword

使用什麼哈希函數ldappasswd?如何配置哈希函數?從它的外觀來看,我認為它預設為不再安全的 SHA1。

答案1

ldappasswd 使用什麼雜湊函數?

從技術上講沒有——它只是調用“更改密碼”LDAP 擴展操作,這會導致 LDAP伺服器使用一些它認為合適的雜湊函數(並將雜湊儲存在它認為合適的地方 - 不一定在 userPassword 中)。

因此「更改密碼」exop 使用的雜湊值是在伺服器端配置的。對於 OpenLDAP,此olcPasswordHash參數預設為“SSHA”(加鹽和迭代 SHA-1),類似於雜湊$1$。如果你想要更強大的東西,你可以選擇{CRYPT}使用系統crypt() 函數提供的任何哈希演算法(即與/etc/shadow 相同- 如果作業系統使用libxcrypt,則可能是bcrypt 或yescrypt,否則使用相同類型的salted SHA ),或者 {ARGON2}如果您安裝了附加的 slapd-argon2 模組(它是 OpenLDAP 的一部分,但位於「contrib」樹中)。

slapd.conf cn=配置
預設(迭代/加鹽 SHA-1):
password-hash {SSHA}
預設:
olcPasswordHash: {SSHA}
系統 crypt() 使用 yescrypt,如果 libxcrypt 正在使用:(
password-hash {CRYPT}
password-crypt-salt-format $y$%.16s
未經測試,但我認為應該有效)
使用 yescrypt 的系統 crypt():
olcPasswordHash: {CRYPT}
olcPasswordCryptSaltFormat: $y$.16s
Argon2(如果 slapd 模組可用):
moduleload argon2
password-hash {ARGON2}
Argon2(如果 slapd 模組可用):
olcModuleLoad: argon2
olcPasswordHash: {ARGON2}

相關內容