11

对于我的一生,我似乎无法在任何地方找到这个,如果有人甚至可以给我一个链接,我将非常感激。

我们正在尝试在 openLDAP 中打开 SSHA 散列。默认情况下,它以明文形式存储密码,我认为这是犯罪行为,但嘿,我是一个广告人,所以我知道什么。但是您会认为,如果您愿意,他们会很容易找到打开散列所需的信息。你不会选择吗?

4

5 回答 5

11

你可以使用'password-hash'来改变散列算法,默认是SSHA(非明文)。

请注意,slapd 仅在客户端发送的密码是纯文本时才使用上述内容,如果您的客户端发送的是散列密码,它将按原样存储。

例如:使用 pam_ldap,使用 pam_password exop(或清除)

如果密码以散列形式出现并且我知道这是 openLDAP 吹捧的一项功能,那么密码强度测试如何在服务器上运行?

如果您发送散列密码,slapd 无法执行强度测试,因此客户端必须以明文形式发送密码(ppolicy 可以选择接受/拒绝散列密码)。

笔记:

  1. 确保您的客户使用 ssl/tls(因此密码不会以明文形式发送)
  2. userpassword 属性包含特殊字符 ({}),因此您必须执行 base64 -d 来识别所使用的散列算法。

例如:通常属性以以下格式返回(::表示结果是 base64 编码的)

userPassword:: e1NTSEF9QjU0VXNmQWhJN1dQZ3FvbDVSQ1l5RHUzTlVqa1luVVhYV2ljbmc9PQ=
 =

$ echo e1NTSEF9QjU0VXNmQWhJN1dQZ3FvbDVSQ1l5RHUzTlVqa1luVVhYV2ljbmc9PQ==|openssl base64 -d
{SSHA}B54UsfAhI7WPgqol5RCYyDu3NUjkYnUXXWicng==
于 2012-07-31T19:58:59.840 回答
2

LDAP 规范需要明文密码以实现互操作性。上面给出的关于安全性的链接将为您提供服务器可以强制执行的默认哈希类型的选项,但请考虑其含义。

于 2012-07-31T04:17:45.127 回答
2

当您尝试userPassword在添加/修改 LDAP 操作中存储属性时, userPassword值将存储为纯文本。但是您可以使用OpenLDAPppolicy_hash_cleartext中覆盖模块中的选项 来覆盖此行为。ppolicy启用后,当客户端发送纯文本密码时,默认存储为SSHA默认密码。您可以从此处找到有关在 OpenLADP 中启用哈希密码的更多详细信息

于 2015-06-26T07:33:57.377 回答
2

这是一个老问题,但仍然相关。由于其相对容易的暴力破解,不再推荐使用 SSHA(即 SHA-1)。

更安全的散列算法是 SHA-512。使用 OpenSSL 1.1 可以在客户端生成更强的哈希,如下所示:

_generate_password_hash() {
  local plaintext; plaintext="$1"

  command printf "{CRYPT}%s" "$(openssl passwd -6 -stdin <<< "${plaintext}")"
}

这将输出一个字符串,例如:

{CRYPT}$6$SGIWzAbjh.3WoQQJ$vEFlcRBQpd2fJ8dxcbojr83pjQcXcJ.InRMzNRryTQ//fMYJoCRFWAPn22EvJyDikG.MNuUqRYqQtI97Clj2F0

注意开头的{CRYPT}而不是{SSHA}

例如,您可以使用 ldapmodify 应用密码:

ldapmodify -h "${LDAP_HOST}" -D cn=user,dc=example,dc=com -W <<EOF
dn: cn=user,dc=example,dc=com
changetype: modify
replace: userPassword
userPassword: $(_generate_password_hash NEW_PASSWORD_HERE)
EOF

请注意,LibreSSL 有一组不同的哈希算法可用。openssl version如果openssl passwd --help不显示该-6选项,请检查您的实际 OpenSSL 版本。

于 2019-10-30T13:13:55.933 回答
1

OpenLDAP 支持多种存储方案供管理员选择。您用于创建帐户的工具必须配置为进行散列。服务器将以客户端请求的格式存储密码。如果哈希正确完成,ldapsearch 将显示哈希密码,如下所示:

userPassword: {SSHA}d0Q0626PSH9VUld7yWpR0k6BlpQmtczb

有关详细信息,请参阅http://www.openldap.org/doc/admin24/security.html

说到管理工具,我个人推荐http://phpldapadmin.sourceforge.net

于 2012-07-31T00:37:04.230 回答