我们目前正在实施多个Web应用程序,要求用户创建将通过LDAP调用进行身份验证的用户登录。 LDAP服务器和用户帐户将由所有应用程序共享,并且用户的凭据在所有应用程序中都是相同的。
我的问题是在标准LDAP场景中,客户端或者LDAP服务器是否处理散列的位置。我的理解是,LDAP服务器在创建时接收用户密码,并对其进行哈希并存储。 (我们计划在客户端> webserver> LDAp服务器之间使用salted SHA512哈希和SSL连接)
据我了解,散列操作集中在LDAP服务器上,减轻客户端的麻烦,避免客户端的任何破坏,影响其他应用程序。
答案 0 :(得分:0)
现代的,专业品质的服务器使用存储方案来处理涉及在服务器上执行哈希的密码属性(通常为userPassword
和authPassword
)。服务器通常会将唯一值(称为salt)附加或前置到密码,然后执行散列函数。 “盐”最大限度地减少了字典攻击的有效性,也就是说,字典更难以创建用于加密密码的哈希密码。
应使用SSL(安全连接),或使用StartTLS扩展请求提升非安全连接。应使用加密连接,以便可以使用BIND请求以明文形式传输密码。可以通过服务器的密码策略实施机制检查通过安全连接以明文形式传输的密码的历史和质量。对于强制执行密码历史记录和质量检查的服务器,不应对密码进行预编码传输。因此,对于LDAP客户端而言,并不是“麻烦”,因为服务器可以在中央位置执行组织范围内的同意密码质量和历史记录检查。