如何在 pam_ldap 中使用来自 OpenLDAP 的 SHA-256 散列(和加盐)密码?

如何在 pam_ldap 中使用来自 OpenLDAP 的 SHA-256 散列(和加盐)密码?

我在 OpenLDAP 中对密码进行了哈希处理和加盐处理,以便通过 Linux 中的 PAM 登录。当哈希为 SHA-1(加盐或不加盐)类型或纯文本时,设置有效。在这些情况下,一切正常,用户可以使用这些凭据登录。

如果我切换到加盐的 SHA-256 (SSHA-256) 密码,则用户无法使用正确的密码登录。 pam_ldap 可能不理解 SHA-256?我找不到任何说明此限制的文档,但也找不到显示这是可能的配置示例。

我该怎么办?为 SHA-256 配置/编译 pam_ldap?使用 PAM 以外的其他东西吗?

我被迫使用加盐 SHA-256,因为凭据已经存在于另一个(领先的)数据存储中,并且必须同步到 OpenLDAP。

答案1

看到 CRYPT 函数了吗? https://www.redpill-linpro.com/techblog/2016/08/16/ldap-password-hash.html

OpenLDAP 直通身份验证

OpenLDAP 还可以使用外部进程来验证和散列密码。这些方案是:

CRYPT - 将使用操作系统的 crypt 库作为密码处理程序 SASL - 将使用 Cyrus SASL 作为密码处理程序 Cyrus SASL 上次更新是在 2012 年,但 CRYPT 是 POSIX API 的一部分,应该不断更新。那么 - CRYPT 能为我们提供最新的哈希值吗?

Crypt 来救援

事实证明,基于 Linux 的 glibc 版本的 crypt 通过在密码哈希中编码的附加版本控制方案(有时称为模块化 crypt 格式)支持附加加密方案:

1 - MD5 2a - Blowfish/bcrypt 5 - SHA-256 6 - SHA-512

相关内容