数字证书在用于保护网站时如何工作(使用SSL)?

时间:2009-04-25 12:24:58

标签: security ssl certificate

请帮助我了解这个过程如何进行。我知道Web浏览器包含证书颁发机构(CA)的根证书,如verisign,Entrust,Comodo等,但是当用户访问安全页面时会发生什么? Web浏览器是否向CA的服务器发送请求以验证ceriticate,或者仅使用CA的根证书(在浏览器中)来验证证书?

我使用了一些HTTP嗅探器并登录到gmail(登录页面是安全的),但没有看到请求发送到谷歌以外的任何网站,这是否意味着它只使用CA的根证书?

4 个答案:

答案 0 :(得分:21)

证书颁发机构颁发使用私有密钥签名的证书。您的浏览器为一堆受信任的CA存储相应的 public 密钥。当您收到安全交易请求时,您的浏览器会使用公钥检查证书的根目录(由您连接的主机提供),以确保它真的是由匹配的私钥签名。

主机存储由受信任的第三方(CA)签名的证书,并且您的浏览器存储该第三方的公钥。当事务开始时,主机只需要为您的浏览器提供该证书以进行验证。受信任的第三方无需进行交易时间干预。

这与PGP之类的系统不同,在这些系统中,您必须联系第三方才能获得与您通信的人的公钥。系统可以以不同的方式工作,因为使用PGP可以加密/解密数据。使用证书,您所做的只是验证身份。

答案 1 :(得分:12)

Web浏览器包含它信任的根证书列表。这些是CA的公钥。浏览器说你可以相信这些CA的私钥实际上是私有的,并且那些由其中一个私钥加密的东西 - 包括所谓的Web服务器的证书 - 真的来自CA.

证书包含Web服务器的公钥和Web服务器的地址(以及公司名称等),由CA的私钥加密。当网站所有者从CA购买证书时,此加密完成一次。之后,网站所有者会保留证书,以便在您发出https请求时向您发送。由于您的浏览器能够使用CA的公钥(已在您的计算机上)来解密Web服务器发送的证书,并在解密的证书中看到证书包含与https服务主机匹配的主机地址,浏览器断定主机的公钥(使用CA的公钥解密)是可信的。 Web主机定期发出的证书可能仍然来自欺骗主机的随机人员,但至少您可以确信它包含您要与之通信的https服务主机的可信公钥。

然后,您可以发送使用主机公钥加密的数据(如信用卡号),只有主机的私钥才能解密您的数据。在交易过程中不需要与CA进行任何通信。

答案 2 :(得分:6)

这取决于您的浏览器/操作系统配置。基本上浏览器或操作系统有一个受信任的根权限列表(Mozilla有自己的列表,IE使用Windows)。

当发生SSL握手时,将检查站点证书以查看它是否由其中一个受信任的机构签名,以及服务器名称是否与证书中的名称匹配。

接下来会发生什么取决于浏览器或操作系统配置。 CA具有撤销列表功能(它是一个大列表或单独的服务(OCSP),您可以在其中询问证书是否仍然良好)。如果您的浏览器/操作系统配置为检查此操作,那么将执行此额外步骤。

Firefox和Windows默认情况下会检查OCSP服务(如果可用),默认情况下都不会检查CRL列表。

答案 3 :(得分:2)

CA签署Web服务器证书。由于浏览器已具有CA公钥(在根证书中),因此可以在不访问CA的情况下验证它的真实性。唯一需要CA访问权限的是检查证书是否被撤销。