假设黑客启动了一个新的 Linux 发行版,其中附带了 Firefox。现在浏览器包含 PKI 根证书颁发机构的证书。由于 Firefox 是一款免费浏览器,因此任何人都可以使用伪造的根证书对其进行打包。因此,伪造的根证书将包含实际上未经认证的证书颁发机构。这可以用于验证某些网站吗?如何验证?
许多现有的 Linux 发行版都是由人制作镜像的。他们可以轻松地打包包含可导致此类攻击的证书的软件。上述情况可能吗?以前发生过这样的攻击吗?
答案1
大多数开源软件应用程序都会与某种哈希密钥一起发布。有许多工具可用于验证您下载的内容是否与项目网站上发布的哈希值相同。因此,即使您从镜像下载文件,也可以检查哈希以验证下载的内容是否完全相同。这意味着,要执行您的建议,攻击者还必须颠覆项目网站并发布虚假的哈希密钥,但即使这样,有人也会很快注意到发布的哈希与所有有效的软件下载不匹配。
我认为攻击者没有理由不能创建自己的 Linux 发行版,但请记住这些东西都是开源的,所以人们可以验证它没有做任何恶意的事情。当一个新的发行版规模较小时,没有人可能会验证它,但如果它能够像 Ubuntu、Suse、Fedora 等一样实现大规模采用,那么就会有人花时间验证它。
答案2
信任链总是存在的。对于大多数人来说,信任链始于他们购买预装电脑或包装好的软件的实体店。你信任知名品牌,并且相信这家商店开业时间不长,而且从未被警方搜查过。
您从网上下载的 Linux 和开源软件也有一个信任链。您信任某个发行版供应商(因为其他人信任,或者您在杂志上读到过)。您假设 Google 会将您发送到正确的 URL。您假设那里的人正确地签署了软件(即,他们加密了其软件的哈希值或唯一定义签名),您可以测试。但是,如果链中的任何一个环节被破坏,信任就会受到损害。
答案3
正如 Simon Stevens 所说,它们通常带有哈希值,尽管我注意到很多实际上带有 MD5 哈希值,但这种哈希值已被证明存在弱点。因此,根据生成哈希值的方式,甚至更改哈希密钥也是完全有可能的。最好检查它们是否有 SHA-2 哈希值,它们比 MD5 安全得多,如果使用 MD4 之类的东西,就不要相信它。
答案4
回答你最初的问题,是的,攻击者可以生成自己的 CA 并将其作为受信任的机构添加到浏览器中。不过,这是一个功能,受信任的 CA 列表只是被广泛接受的列表。没有理由说你不能添加自己的 CA。这让我们回到了这一点,你只需要能够信任你获取软件的来源。如果用户下载了包含恶意代码的损坏的 Linux 安装,最有可能的攻击就是某种 rootkit。
如果你担心,你可以随时检查Firefox 允许的 CA 列表并将其与您当前的安装进行比较。