现在使用另一个自签名CA证书生成所有证书。我正在为一个项目做POC。
我必须找到一种方法来获取有关通过客户端请求接收的客户端证书的信息。我该怎么做?
编辑:更具体地说,我想检查来自两个不同的传入Web请求的两个客户端证书是否相似
答案 0 :(得分:0)
如何监控通过请求发送的客户端证书?
客户端证书用于建立SSL / TLS连接。 HTTPS请求发生在更高级别,与较低级别的SSL / TLS通道无关。
话虽如此,可能有一个令牌或cookie可用来将客户端证书中的用户身份与HTTP请求绑定在一起。
我必须找到一种获取信息的方法 通过客户端请求接收的客户端证书。怎么做 我这样做了?
你没有说你拥有什么,以及你想要什么信息。您可能需要更具体。
我想检查两个客户端证书是否来自两个不同的传入 网络请求是否相似
你需要定义"类似的"在这种背景下。这可能很棘手。
天真地,您可以使用{Subject's Distinguished Name}
或{Subject's Distinguished Name, Public Key}
来查看两个是否相等"。但我不确定如何区分"类似" (也许是相同的发行人?)。
谨防仅使用{Subject's Distinguished Name}
。这是最新的Android APK签名错误:Android Fake ID Vulnerability Lets Malware Impersonate Trusted Applications。
X509证书将公钥绑定到实体。所以证书是唯一的"基于(1)主题,(2)公钥和(3)发行人(对(1)和(2)适用签名)。
实体显示在主题中。例如,服务器或用户。通过其DNS名称识别服务器;同时通过他们的电子邮件地址识别用户。您可以通过主题的专有名称获取主题名称。
您可以从证书中获取主题的公钥。公钥始终可用,就像主题始终可用一样。受信任的权威机构将两者捆绑在一起,如果丢失请求,则不会签署请求。
颁发者签署了主题证书。它是一个值得信赖的权威机构,通常是公共CA您可以从发行人专有名称中获取发行人的姓名。
如果需要,您可以从 Authority Key Identifier (AKI)获取发行者公钥的摘要。要获取实际公钥,您需要检查颁发者的证书。
当您验证主题证书上的签名时,您需要颁发者的证书。您需要它,因为您需要发行人的公钥来验证主题证书上的证书。
您可以在RFC 4514,轻量级目录访问中阅读有关可分辨名称(以及构成它们的相对可分辨名称(RDN))协议(LDAP):可分辨名称的字符串表示。