由于 pbkdf2(基于密码的密钥派生函数 2)是一种更安全的哈希函数,所以我想知道当前 openldap 实现是否支持 pbkdf2(例如 pbkdf2_sha256)?
我在 Google 上找到了一些关于 openldap 中 pbkdf2 支持的信息,但我不确定它适用于哪个 openldap 版本,或者我没有以正确的方式执行:
我在 ubuntu 12.04 上搭建了一个版本 2.4.28 的 openldap 服务器,使用 python lib 生成一个 PBKDF2-SHA256 哈希密码,然后我把这个 PBKDF2-SHA256 密码放入一个新的 ldap 用户的 userPassword 字段中,如下所示:
userPassword: '{PBKDF2-SHA256}10000$LBwTpUPGqxdH$8pDqhAruY94IhhuCZLost471pGImy//wH0pS25LO/YI='
这不起作用。ldap 日志中没有报告错误,但仍然无法使用原始纯文本密码登录。
如果有人能给我一些评论或指导我将不胜感激!!
答案1
目前,OpenLDAP PBKDF2 模块仅支持 PBKDF2-SHA1。模式名称为 {PBKDF2}。可能它与 Python Passlib 兼容。我有 PBKDF2-SHA256 和 PBKDF2-SHA512 的路线图。但尚未实施。
编辑:现在支持 PBKDF2-SHA256 和 PBKDF2-SHA512。https://github.com/hamano/openldap-pbkdf2
答案2
为了确保万无一失,请检查以下内容:
您是否在您的中包含了指令
moduleload pw-pbkdf2.so
和?password-hash {PBKDF2}
slapd.conf
根据您的日志文件,模块是否正确加载?
您可以通过输入来生成 pbkdf2-hashed 密码吗
slappasswd
您的日志文件中是否有关于失败的身份验证尝试的任何条目?