在LDAP中存储密码重置问题

时间:2009-06-25 10:56:17

标签: security encryption active-directory ldap passwords

我想在LDAP中存储密码重置问题的答案。我知道答案应该用盐来解决。我想深入了解以下内容:

  • 我们应该使用哪个attributeClass?
  • 是否可以让LDAP服务器执行散列操作?
  • 如果容器没有公开它执行散列的方式,有没有办法使用LDAP比较操作?
  • 答案会根据您使用的目录服务供应商而有所不同吗?
  • 是否可以为此目的扩展密码attributeClass?

4 个答案:

答案 0 :(得分:1)

我在Sun Directory Server中寻找过这样的功能,但却无法找到它。我最终在我的客户端代码中实现它(如果我没记错的话,使用java.security.MessageDigest)。这项工作并不多,但我希望它能由服务器处理。

更新

Oracle Internet Directory 11g支持散列属性: http://download.oracle.com/docs/cd/E17904_01/oid.1111/e10029/data_privacy.htm#BABFFHIH

答案 1 :(得分:0)

只是一个可能完全关闭的想法,为什么不给每个用户重复的帐户,其中密码是秘密问题的答案?
这样您就不必考虑散列/加密/加密,并验证您将调用登录用户API的答案。
那些重复的用户当然属于非常有限的安全组。

答案 2 :(得分:0)

可以使用受哈希/加密的属性的语法(例如userPassword)为安全问题/答案定义属性。这取决于您使用的目录服务器产品。

答案 3 :(得分:0)

如果要将散列/加密值存储为可读字符串(例如Base64编码),则可以使用任何目录字符串属性类型(http://tools.ietf.org/html/rfc4517#page-8)。您还可以将其存储在任何八位字节字符串属性类型(http://tools.ietf.org/html/rfc4517#page-19)中。

如果需要恢复安全问题的答案或者需要在验证期间(例如,混合/较低/大写无差异)的一些宽大处理,则加密可能是更好的选择。最好还有中间件来做这件事。就像Terry Gardner所说,这取决于你正在使用的目录服务器软件。例如,可以将IBM Security Directory Server配置为加密属性值。使用在安装软件期间指定的安全元素完成加密。该应用程序不必做任何特殊的事情。 Novell,Red Hat和Oracle / Sun Directory Server软件也支持加密属性。我不是AD专家,但我认为它不支持加密属性。我认为OpenLDAP也是如此。

相关问题