HTTPS 依靠服务器证书来确保您连接到正确的服务器,从而阻止中间人攻击。
如今,全球许多国家都有无数的认证机构。是什么阻止一个国家强制位于该国的证书颁发机构颁发假服务器证书以进行中间人攻击,包括对位于其他国家的服务器的攻击?
如果没有防范措施,HTTPS 仍然安全吗?毕竟,这意味着任何与流氓国家有联系的人都可以通过该国家购买虚假证书来窃听任何 HTTPS 流量......
HTTPS 依靠服务器证书来确保您连接到正确的服务器,从而阻止中间人攻击。
如今,全球许多国家都有无数的认证机构。是什么阻止一个国家强制位于该国的证书颁发机构颁发假服务器证书以进行中间人攻击,包括对位于其他国家的服务器的攻击?
如果没有防范措施,HTTPS 仍然安全吗?毕竟,这意味着任何与流氓国家有联系的人都可以通过该国家购买虚假证书来窃听任何 HTTPS 流量......
证书透明度标准要求在颁发证书时,还应提交一个或多个证书日志。这些是简单的网络服务,可维护加密保证的、可公开审计的、仅附加的证书记录。将证书添加到证书日志后,独立的监视器可以检查日志以确保没有颁发欺诈性证书。如今,浏览器要求所有证书在 TLS 扩展中或通过 OCSP 装订具有签名证书时间戳 (SCT),用于确定证书已添加到证书日志中。大多数浏览器要求证书出现在多个日志中(例如,Chrome 至少需要两个)。如果缺少 SCT,则证书将被拒绝。这确保了每当任何根/中间 CA 开始颁发欺诈性证书时,监视器都会注意到并发出危险信号。然后 CA 撤销证书,或者浏览器停止信任该特定 CA。
过去,使用HTTP 公钥固定。这涉及浏览器在第一次访问站点时保存站点的公钥,如果密钥突然更改,浏览器将拒绝连接。允许在第一次访问时固定任何站点的动态固定现在已被弃用。但是,仍然使用静态固定,其中浏览器为流行的域(如google.com
和)提供硬编码的公钥。facebook.com
如果 MITM 针对任何这些流行域中的任何一个,这也可用于检测具有欺诈性颁发证书的 MITM。
主要浏览器(至少:Chrome、Firefox、Safari、Edge 和 Brave)的信任库不惜一切代价避免可能由政府控制的证书颁发机构。
哈萨克斯坦政府曾经尝试将其官方根证书添加到信任链中。由于信任问题,它最终失败了。如今,即使是来自政府对经济有重大影响的国家(如哈萨克斯坦或俄罗斯)的私营公司,将其证书成功提交给公共信托商店的机会也基本为零。
此外,不止一次 Mozilla 和其他供应商明确禁止(即即使您愿意也不能在页面上接受)甚至是哈萨克斯坦为 MITM 攻击颁发的不受信任的根证书。因此,即使西班牙瓦伦西亚的潜在邪恶政府(供您参考,他们自己的根证书现在存在于您的信任存储中 -请参阅)决定窃听其用户,这种尝试也会导致他们的证书被排除在外来自浏览器,而且很快。
然后这一切都归结为风险建模。政府可能只有在风险很高的情况下才会冒着将当地证书颁发机构排除在外的风险,例如他们正在追捕臭名昭著的恐怖分子或著名的持不同政见者。但是,这些人可能无论如何都会使用更强的隐私保护方法。