我如何对 LDAP 数据进行数字签名?
我想从用户计算机向代理服务器发出 LDAP 请求,然后代理服务器将该请求中继到 LDAP 服务器。然后 LDAP 服务器将使用请求的数据以及验证代理服务器未修改数据的签名进行响应?
谢谢,Chenz
答案1
大多数启用 LDAP 的应用程序都支持安全 LDAP,它基本上是通过 TLS 实现的 LDAP。应用程序应该检查签名并报告任何问题。这将防止代理进行修改。您没有说您使用的应用程序是 COTS 应用程序还是您手动编写的应用程序?
答案2
我不知道有任何现成的标准方法可以做到这一点。如果代理是一个简单的 TCP 代理,它只转发数据包并重写 TCP 标头的部分内容,那么 SSL 就可以工作,在这种情况下,SSL 会话实际上由实际的 LDAP 服务器终止。另一方面,如果代理比这更智能,那么 SSL 会话将与代理服务器终止,您将失去不可否认性。
后一种情况更难解决,而且没有标准。一种方法是构建您的系统,使其使用自定义编写的 LDAP 扩展,或者可能只是 LDAP 数据库中的自定义属性,当查询时返回从返回的语句生成的校验和。这将允许检测恶意代理。或者,如果您需要更具体的不可否认性,请基于某种预共享密钥而不是校验和生成值。不幸的是,您可能必须对 LDAP 服务器进行一些更改。