列出并删除非官方安装的 CA 证书

Pab*_*chi 13 security google-chrome ssl privacy certificates

本文揭示了大约 18% 的 HTTPS 连接是如何被 MITM 代理检测到的。正如伟大的相关论文所述:

为了规避这种验证,本地软件会在安装时将自签名 CA 证书注入客户端浏览器的根存储中。
[...]
与普遍的看法相反,公钥固定 [19]——一种 HTTPS 功能,允许网站将连接限制到特定的密钥——并不能阻止这种拦截。Chrome、Firefox 和 Safari 仅在证书链终止于浏览器或操作系统附带的授权时才强制执行固定密钥。当链终止于本地安装的根目录(即管理员安装的 CA 证书)时,将跳过额外的验证[34]。

在公司、桌面防病毒软件和恶意软件/广告软件上添加根 CA是很常见的有时甚至出于诚实的原因。但是为了让情况更清楚SSL 网络浏览与最弱的 CA 完全一样强(这包括 DNS,如果DNS-over-HTTPS)。


我想至少在三个方面检查我的 HTTPS 流量是否被拦截(如果只使用 CLI 更好):

所以真正的问题是:

  • 如何列出非官方安装的 CA 证书(Ubuntu/Firefox/Chrome 未附带)以避免 MITM 攻击/HTTPS 拦截?
  • 如何将受信任的证书存储重置为其默认值?

一些研究和相关问题

参考

Jac*_*opo 1

dpkg -S somefile会告诉你 somefile 属于哪个包。您可以使用dpkg --verify pkgnamedebsums查看它们是否已被修改。

您可以使用它们来验证/etc/ca-certificates.conf及其引用的目录 - 基本上,验证 CA 文件是否属于ca-certificates+dpkg-reconfigure -plow ca-certificates在其中进行选择。正如您可能已经猜到的,update-ca-certificates使用此数据重新创建全局 CA 存储文件。

对于 Chrome 和 Firefox 等特定于应用程序的商店,我没有一个简单的答案。基本上,您首先要查找全局配置目录(如果有)( dpkg -L),然后查看每个用户配置文件以查看该配置文件中是否已安装自定义 CA:查看文件,与新文件进行比较,检查是否已安装自定义 CA。帐户是公司管理的,... StackOverflow 或 SuperUser 可以更直接地提供帮助。

必须注意:安装来自不受信任的第三方的软件包可能会以多种方式扰乱系统(实际上是运行任何不受信任的脚本)。我认为你的问题仍然是一个公平的问题,因为良性软件有时会添加一个 CA 并且不会试图隐藏这一事实。但是,如果您怀疑有人可能在背后修改了您的系统,那么重新安装会安全得多