试图了解数字证书和 CA 确实是安全的

信息安全 tls 证书 证书颁发机构
2021-08-26 15:31:46

我了解数字证书和证书颁发机构(受信任的第 3 方)有助于防止 HTTPS 连接期间的中间人攻击。但是,我对一些细节感到困惑。

假设我们有一个客户端 Alice 和 Bob,他们的服务器映射到“bob.com”。

当 Bob (bob.com) 向 CA(比方说 veriSign)请求创建一个新证书并将他的公钥发送给他们以放入证书中时,是什么阻止了黑客拦截请求,将公钥切换为他们自己的,让 CA 创建一个虚假证书,然后将此虚假证书返回给 Bob。Bob 实际检查返回证书上的公钥是否与他最初在请求中发送给 CA 的内容相匹配的唯一保护措施是什么?然后我想通知 CA 他返回的内容与他发送的内容不符,因此 CA 不会保留虚假记录?

假设 Bob 从 veriSign 获得的新创建的证书是合法的,现在假设 Alice 将通过 HTTPS 协议向“bob.com”发出请求。是什么阻止了双通道 MITM 攻击,其中黑客在前往 Alice 的途中拦截 Bob 的新证书,创建一个新证书,用他们自己的密钥(之前由威瑞信签名)对其进行签名,但随后也拦截了 Alice 对 VeriSign 的请求她要求提供威瑞信的公钥,然后用匹配的公钥再次将其切换为恶意密钥。现在,当 Alice 尝试检查虚假证书的完整性时,它会检查出来,因为尽管她认为她正在使用 veriSign 的公钥检查签名,但她真的使用了恶意公钥?

3个回答

Bob 实际检查返回证书上的公钥是否与他最初在请求中发送给 CA 的内容相匹配的唯一保护措施是什么?

如果在 CA 使用公钥创建证书之前切换了公钥,那么 Bob 的网站将根本无法运行。他妥善保管的私钥只能与他原来的公钥一起使用。攻击者不太可能 MITM 所有连接并阻止这一事实变得明显。

当 Alice 要求提供 veriSign 的公钥时,她会拦截 Alice 对 veriSign 的请求,并使用与恶意密钥匹配的公钥再次将其切换出去。

Alice 没有联系 Verisign。Alice 只信任她的浏览器或计算机的受信任证书存储中的 CA 证书副本,而 Verisign 恰好是其中之一。

受信任的证书存储在安装时填充(对于操作系统,或者在 Firefox 的情况下是应用程序),然后根据需要通过常规操作系统或应用程序更新进行更新 - 比您想象的要少,因为许多根 CA长寿。

好问题。最受信任的 CA 的证书通常包含在软件安装包中,例如浏览器安装程序、操作系统安装程序或预安装在智能手机等设备上。这就是为什么浏览器(或其他应用程序)会注意到证书是否真的来自指定的 CA。

您实质上是在询问是什么阻止了第三方通过受信任的 CA 颁发证书。

  1. 成本 - CA 收取颁发证书的费用。以这种方式发行数以千计的成本令人望而却步。

  2. 域验证 - 受信任的 CA 仅是受信任的,因为它们可以正确验证域所有权。一些 CA 未能 100% 做到这一点,并失去了他们的信任状态。一种验证方法是向域名注册商上的技术联系人发送电子邮件。这里有已知的弱点https://en.m.wikipedia.org/wiki/Certificate_authority#Validation_weaknesses