我正在处理的系统架构需要比较两个SSL / TLS(通常是X.509)证书。也就是说,我需要验证两个证书是否相同。
我不在乎他们是否过期或自签,我只是想确保他们没有被改变。
执行此类操作的最正确方法是什么?是否足以比较这些证书的两个签名(两个字节[]),或者这个操作是否容易出现我到目前为止没有考虑过的漏洞?
答案 0 :(得分:3)
我不认为比较这两个签名就足够了,除非您的代码直接从某个实例获取证书,这些证书确保签名也已经检查证书本身。所以在很多情况下,我会说:没有。
我认为最灵活,最正确的方法是分别检查两个证书(正文与签名)的完整性,然后直接比较证书中您需要相同的所有信息。 (我这样说是因为我不确定你需要总身份)。
但是,如果您的目标是检查服务器发送的证书是否真实,那么在您的代码中获得整个证书的副本并不一定明智;在这种情况下,您可以验证服务器的证书,然后根据存储在应用程序中的安全哈希检查其正文。