【发布时间】:2014-08-01 07:17:38
【问题描述】:
所有证书现在都是使用另一个自签名 CA 证书生成的。我正在为一个项目做 POC。
我必须找出一种方法来获取有关通过客户端请求接收到的客户端证书的信息。我该怎么做?
编辑:更具体地说,我想检查来自两个不同传入 Web 请求的两个客户端证书是否相似
【问题讨论】:
标签: iis ssl certificate iis-7.5 mutual-authentication
所有证书现在都是使用另一个自签名 CA 证书生成的。我正在为一个项目做 POC。
我必须找出一种方法来获取有关通过客户端请求接收到的客户端证书的信息。我该怎么做?
编辑:更具体地说,我想检查来自两个不同传入 Web 请求的两个客户端证书是否相似
【问题讨论】:
标签: iis ssl certificate iis-7.5 mutual-authentication
如何监控通过请求发送的客户端证书?
客户端证书用于建立 SSL/TLS 连接。 HTTPS 请求发生在较高级别,与较低级别的 SSL/TLS 通道无关。
话虽如此,可能有一个可用的令牌或 cookie 将来自客户端证书的用户身份与 HTTP 请求绑定。
我必须想办法获取有关信息 通过客户端请求接收的客户端证书。怎么做 我这样做?
你没有说你有什么,你想要什么信息。您可能需要更具体。
我想检查两个客户端证书是否来自两个不同的传入 网络请求是否相似
您需要在此上下文中定义“相似”。这可能很棘手。
天真地,您可以使用{Subject's Distinguished Name} 或{Subject's Distinguished Name, Public Key} 来查看两个是否“相等”。但我不确定如何区分“相似”(可能是同一个Issuer?)。
注意不要只使用{Subject's Distinguished Name}。这是最新的 Android APK 签名错误:Android Fake ID Vulnerability Lets Malware Impersonate Trusted Applications。
X509 证书将公钥绑定到实体。因此,基于 (1) 主题、(2) 公钥和 (3) 颁发者(在 (1) 和 (2) 上应用签名),证书是“唯一的”。
实体在主题中呈现。例如,服务器或用户。服务器通过其 DNS 名称等进行识别;而用户是通过他们的电子邮件地址来识别的。您可以通过Subject's Distinguished Name获取主题名。
您可以从证书中获取主题的公钥。公钥将始终可用,就像主题始终可用一样。受信任的权威机构将两者绑定,如果缺少任何一个,则不会签署请求。
颁发者签署了主题的证书。它是受信任的权威机构,通常是公共 CA。您可以从 Issuer Distinguished Name 中获取发行者的名称。
如果需要,您可以从 Authority Key Identifier (AKI) 中获取颁发者公钥的摘要。要获取实际的公钥,您需要检查颁发者的证书。
当您验证主题证书上的签名时,您需要颁发者的证书。您需要它,因为您需要来自颁发者的公钥来验证主题证书上的证书。
您可以在RFC 4514,轻量级目录访问协议( LDAP):可分辨名称的字符串表示。
【讨论】: