数字证书的验证是否需要远程调用?
Does verification of digital certificates require remote calls?
我有几个关于数字证书的问题:
1) 据我了解,客户端能够验证服务器数字证书,因为客户端在其机器上包含一组众所周知的 CA 自签名证书。这足以完成整个验证,还是需要客户端对实际 CA(无论它位于何处)进行一些额外的远程调用?我阅读了一些有关证书撤销(CRL 和 OCSP)的内容,这些内容似乎表明在某些时候需要进行远程调用。
2) 验证服务器证书时,客户端到底发生了什么?我一直向自己解释,基于服务器证书中的 CA,客户端在其机器上找到相应的 CA 自签名证书,并使用其中的 public 密钥来解密服务器证书中的签名(所以这里没有远程调用)。据我所知,解密结果是服务器 public 密钥的摘要。因此,客户端对服务器证书中的 public 密钥进行哈希处理,以将其与上一步的摘要相匹配。如果两者匹配,则一切正常,客户端和服务器可以交换对称密钥以进行进一步通信。对吗?
1) 从技术上讲,不需要,不需要远程调用。当然,它比这要复杂一点——如果您使用的是 OCSP,那么是的,您将需要到达 OCSP 服务器并且它必须是远程调用。如果您使用 CRL,则需要进行远程调用以从证书中的 CRL 分发点 [CDP] 获取 CRL;但是如果 CRL 是在本地获取和缓存的,并且没有过期,那么证书检查都是本地的。
2) 你说得对,客户端'chains to a trusted root';执行了更多检查,包括密钥使用、日期范围检查,以及如您所述,验证证书的签名。最后的检查是确保根在客户端可用。
希望对您有所帮助。
我有几个关于数字证书的问题:
1) 据我了解,客户端能够验证服务器数字证书,因为客户端在其机器上包含一组众所周知的 CA 自签名证书。这足以完成整个验证,还是需要客户端对实际 CA(无论它位于何处)进行一些额外的远程调用?我阅读了一些有关证书撤销(CRL 和 OCSP)的内容,这些内容似乎表明在某些时候需要进行远程调用。
2) 验证服务器证书时,客户端到底发生了什么?我一直向自己解释,基于服务器证书中的 CA,客户端在其机器上找到相应的 CA 自签名证书,并使用其中的 public 密钥来解密服务器证书中的签名(所以这里没有远程调用)。据我所知,解密结果是服务器 public 密钥的摘要。因此,客户端对服务器证书中的 public 密钥进行哈希处理,以将其与上一步的摘要相匹配。如果两者匹配,则一切正常,客户端和服务器可以交换对称密钥以进行进一步通信。对吗?
1) 从技术上讲,不需要,不需要远程调用。当然,它比这要复杂一点——如果您使用的是 OCSP,那么是的,您将需要到达 OCSP 服务器并且它必须是远程调用。如果您使用 CRL,则需要进行远程调用以从证书中的 CRL 分发点 [CDP] 获取 CRL;但是如果 CRL 是在本地获取和缓存的,并且没有过期,那么证书检查都是本地的。
2) 你说得对,客户端'chains to a trusted root';执行了更多检查,包括密钥使用、日期范围检查,以及如您所述,验证证书的签名。最后的检查是确保根在客户端可用。
希望对您有所帮助。