请帮助我了解这个过程如何进行.我知道Web浏览器包含证书颁发机构(CA)的根证书,如verisign,Entrust,Comodo等,但是当用户访问安全页面时会发生什么?Web浏览器是否向CA的服务器发送请求以验证ceriticate,或者仅使用CA的根证书(在浏览器中)来验证证书?
我使用了一些HTTP嗅探器并登录到gmail(登录页面是安全的),但没有看到请求发送到谷歌以外的任何网站,这是否意味着它只使用CA的根证书?
证书颁发机构颁发使用私钥签名的证书.你的浏览器中存储相应的公众对一帮信任的CA密钥.当您收到安全交易请求时,浏览器会使用公钥检查证书的根目录(由您要连接的主机提供),以确保它是由匹配的私钥真正签名的.
主机存储由受信任的第三方(CA)签名的证书,并且您的浏览器存储该第三方的公钥.当事务开始时,主机只需要为您的浏览器提供该证书以进行验证.受信任的第三方无需进行交易时间干预.
这与PGP之类的系统不同,在PGP中,您必须联系第三方才能获得与您通信的人的公钥.系统可以以不同的方式工作,因为使用PGP可以加密/解密数据.使用证书,您所做的只是验证身份.
Web浏览器具有其信任的根证书列表.这些是CA的公钥.浏览器说你可以相信这些CA的私钥实际上是私有的,并且那些由其中一个私钥加密的东西 - 包括所谓的Web服务器的证书 - 真的来自CA.
证书包含Web服务器的公钥和Web服务器的地址(以及公司名称等),由CA的私钥加密.当网站所有者从CA购买证书时,此加密完成一次.之后,网站所有者会保留证书,以便在您发出https请求时向您发送.由于您的浏览器能够使用CA的公钥(已在您的计算机上)来解密Web服务器发送的证书,并在解密的证书中看到证书包含与https服务主机匹配的主机地址,浏览器断定主机的公钥(使用CA的公钥解密)是可信的.Web主机定期发出的证书可能仍然来自欺骗主机的随机人员,但至少您可以确信它包含您要与之通信的https服务主机的可信公钥.
然后,您可以发送使用主机公钥加密的数据(如信用卡号),只有主机的私钥才能解密您的数据.在交易过程中不需要与CA进行任何通信.
这取决于您的浏览器/操作系统配置.基本上,浏览器或操作系统有一个受信任的根权限列表(Mozilla有自己的列表,IE使用Windows).
当发生SSL握手时,将检查站点证书以查看它是否由其中一个受信任的权限签名,以及服务器名称是否与证书中的名称匹配.
接下来会发生什么取决于浏览器或操作系统配置.CA具有撤销列表功能(它是一个大列表或单独的服务(OCSP),您可以在其中询问证书是否仍然良好).如果您的浏览器/操作系统配置为检查此操作,则会执行此额外步骤.
如果OCSP服务可用,它们将默认检查OCSP服务,默认情况下不检查CRL列表.