【问题标题】:Storing Password Reset Questions in LDAP在 LDAP 中存储密码重置问题
【发布时间】:2009-06-25 10:56:16
【问题描述】:

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

  • 我们应该使用什么属性类?
  • 是否可以让 LDAP 服务器执行散列操作?
  • 如果容器不公开它如何执行散列,有没有办法使用 LDAP 比较操作?
  • 答案是否因您选择的目录服务供应商而异?
  • 是否可以为此目的扩展密码属性类?

【问题讨论】:

    标签: security encryption active-directory ldap passwords


    【解决方案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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-08-26
            • 2013-09-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-07-07
            相关资源
            最近更新 更多