我如何知道我的计算机中的 CA 证书没有被欺骗?

信息安全 tls 证书 网页浏览器 证书颁发机构
2021-09-07 15:41:33

据我所知,浏览器包含几个CA的证书。当我访问http://gmail.com时,该站点说它是 Gmail,它公开了由我计算机中的一个 CA 签名的证书,这样它就知道该站点是自 CA 以来它假装的那个人支持这一说法。

但是,如果在我的办公室计算机中,我的雇主在机器中设置了自己的 CA 证书,并进行中间人攻击怎么办?

  1. 我的雇主在所有机器中都以 Googlee Corp. 的身份存储了一个伪造的 CA 证书(注意错字)
  2. 我访问http://gmail.com
  3. 代理捕获请求,代理响应。
  4. 代理返回由 Googlee Corp 签名的自定义证书。
  5. 我的计算机假定证书是有效的,因为安装在我的计算机中的 CA 证书支持该声明。
  6. 浏览器显示我通过了与 Gmail 的安全连接。

谢谢。

4个回答

曾几何时,您可以对照纸质书检查您的根证书:http: //www.cl.cam.ac.uk/research/security/Trust-Register/

这些天,尝试检查尽可能多的独立来源——例如在虚拟机的不同操作系统上安装不同的浏览器,看看它们是否相互一致。

如果您特别担心您的雇主,请打印一份工作中的根 CA 列表并将其带回家并与您的家用机器进行比较。(反之亦然,从家里打印出来。)如果你在不允许的地方工作,我很惊讶你没有被告知接受新证书,而且无论如何你都会受到监视。

如果您认为 NSA 已经危害了您的工作和家庭,并且您要求为您刻录 CD-ROM 以进行全新安装的任何人也可能是 NSA 工厂,那么您的问题就更大了。(如果你这么认为是对的,那就是比这更大的问题。)

编辑:我忘记的东西 -证书固定 (标准草案)如果http://gmail.com使用的证书以意外方式更改,这将警告您,因此可能会提醒您 MITM 攻击。关于它如何为谷歌工作的解释:https ://www.imperialviolet.org/2011/05/04/pinning.html

丹麦人这不是您真正可以做的事情,但如果采用这种攻击,它可能会提醒您注意这种攻击。另见https://www.imperialviolet.org/2011/06/16/dnssecchrome.html

如果某人(任何人)对您的机器具有 root/admin 访问权限,那么它就不再是您的机器了:您充其量只是与他们共享它。从技术上讲,他们可以自由地将您的任何(或全部)根证书替换为具有不同公钥的精确副本。

您检测伪造的唯一方法是根据已知的良好版本(可能取自另一台受信任的计算机)验证每个根证书的指纹。

此外,除非您每次连接到网站时手动验证整个信任链,否则您必须验证受信任根存储中的所有证书。否则,可以使用单个根来签署与 CA 名称无关的中间证书和叶证书(例如,您可以使用标记为“Microsoft 根 CA”的根来签署声称来自 Thawte 的中间 CA 证书并使用该中间证书来验证 www.gmail.com 的 Web 服务器证书)。

值得一提的是,Google Chrome 希望所有 Google 拥有的网站(GMail、YouTube、Google+ 和所有搜索网站)都提供非常具体的证书。不仅是受信任的网站,而且是 Google 自己知道的与这些网站一起提供的网站。如果您已被 MITMed,则证书将不匹配,Chrome 会警告您。这种做法被称为“证书固定”,这并不罕见(当然不同的软件会固定不同的证书)。您也可以自己完成,方法是进入您的证书存储并安装您知道来自 GMail 的证书,然后指定您将不接受所列域的其他证书,除非您另有说明。

由于计算机在这种情况下属于您的雇主,因此您的雇主可以相对容易地绕过它;他们可以简单地采取措施来强制执行一个仅限 IE 的办公室。组策略还允许 Windows 域控制器推送他们喜欢的任何证书(并撤销或撤销其他证书)。简而言之,如果它是您雇主的网络和您雇主的计算机,那么就您对工作隐私的期望而言,您的雇主几乎没有被允许使用它,

如果一个坏人控制了您计算机信任的 CA(例如,因为它作为根 CA 安装在您的计算机上),那么该攻击者不需要依赖任何像印刷相似名称这样粗略的东西;他可以制作一个伪造的证书,上面写着“gmail.com”的所有详细信息,并声称获得了威瑞信、食品药品管理局和教皇的认证。根证书被称为“根”,因为它们确实是您信任的根。

可以尝试获得一些外部验证;例如,您可以尝试给 Google 总部打电话,要求与系统管理员交谈,看看他是否可以通过电话向您拼出证书的“指纹”。然后,您可以将其与您看到的内容进行比较;这将检测到犯规行为。然而,这假设手机是“本质上安全的”(在最好的情况下这是一个相当可疑的断言),而且你会在谷歌的系统管理员那里找到足够的空闲时间和幽默来实际响应这样的请求。

一个更根本的问题是,如果某个攻击者可以在您的计算机中植入恶意 CA,那么几乎没有理由相信他会就此停止。操作信任库需要管理权限;同一攻击者可能已经安装了键盘记录器或其他类型的恶意软件。他甚至可以事后这样做,因为对正常的软件更新进行了签名:使用他的流氓 CA,攻击者可以对一些充满讨厌代码的虚假更新进行伪造签名。

因此,通常的观点是,如果您怀疑您的根 CA 已被操纵,那么您无法真正挽救您的机器,除非完全格式化并重新安装操作系统(即使这样,只有在没有BIOS 和某些外围设备的固件等可闪存部件中已安装病毒)。