![为什么 Google Chrome 无法提供校验和](https://linux22.com/image/1491199/%E4%B8%BA%E4%BB%80%E4%B9%88%20Google%20Chrome%20%E6%97%A0%E6%B3%95%E6%8F%90%E4%BE%9B%E6%A0%A1%E9%AA%8C%E5%92%8C.png)
好吧,我可能对这个问题有点无知,但我真的很好奇为什么谷歌没有在下载的 Google Chrome 中提供校验和和 gpg 签名。事实上,我从未在 Google.com 的任何地方看到过校验和。
我知道下载是通过 HTTPS 连接进行的,但如果我错了,请纠正我,仍然有可能注入恶意下载,对吗?我在某处读到发现 VPN 的出口节点已注入可执行文件。
就在最近,Linux Mint 的网站因为 Wordpress 配置错误而被黑客入侵,而 Linux MintISO 被替换为包含某些 DDOS 群后门的 ISO。
Windows 更新、苹果更新、Ubuntu 的 apt-get 都有包的签名签署和验证。
但是谷歌等所有公司在其下载页面上甚至没有校验和。
这是为什么?最终用户下载 Chrome 真的有风险吗?
谢谢 =)
答案1
Windows 安装程序使用 Authenticode (X.509) 签名,该代码由 Windows 本身进行验证。自动更新(使用 Omaha 提供)也使用 X.509 签名。
这Linux 存储库使用 GPG 签名 – 当您第一次google-chrome-current.deb
通过 HTTPS 下载时,它会自动将更新存储库添加到 sources.list 并将其签名密钥安装到您的 apt 配置中(参见/opt/google/chrome/cron/
)。
(我不会说这很糟糕。考虑一下:如果你认为攻击者可以注入虚假的下载...为什么他们不能注入虚假的“校验和”?如果你不能相信你.deb
从https://google.com,那么同样你不能相信你从https://google.com任何一个。)
我知道下载是通过 HTTPS 连接进行的,但如果我错了请纠正我,仍然有可能注入恶意下载,对吗?
一般不会。这……正是 HTTPS 所要阻止的。
但有两种可能性:
如果您开始
http://www.google.com/chrome
并期望自动重定向到 HTTPS,攻击者可以剥离此重定向并强迫您停留在 HTTP 版本。为了避免这种情况,请确保仅有的通过 HTTPS 访问下载页面;可能有一些 Tor 配置可用于完全阻止 HTTP(tcp/80)。(我知道 Tor 有一个针对出口节点的端口白名单,但为客户端也有一个肯定很有用...)
如果您打开 HTTPS 网站但攻击者拦截了您的连接(MITM),浏览器将警告您证书错误(因为攻击者无法获取“真正的”证书
google.com
),但许多人只会盲目地“点击”这些警告甚至不看一眼。为了避免这种情况,请不要绕过那些浏览器安全警告。
最大的浏览器(我想甚至是 IE?)现在都带有google.com
“HSTS 预加载”列表,这迫使浏览器始终使用 HTTPS和防止用户绕过证书错误。因此应该防范此类错误。
答案2
校验和将提供基准验证,以确认给定目标(版本、操作系统、架构等)是否有效,这通常是一件好事,并且被普遍接受为最佳实践;仅仅因为给定的最佳实践“可能”受到损害,并不意味着我们不应该遵循它。即使 cksum 值是伪造的,将其视为非临时的也是不现实的,并且验证签名仍然会失败;当然,也许攻击者设法从 google.com/pubkey 之类的网站上交换出 gpg 密钥,这会影响在此时间点之后下载它们的任何人,但这不能解释广泛共享的公钥副本,根据设计(参见公钥基础设施)。
对于 Google 来说,公开提供校验和的问题在于,这将使引导用户使用所需版本变得更加困难。举例来说,那些明显不正当的托管网站提供旧版工具,而这些工具不再由特定发布者(故意)提供;他们无法证明被病毒感染的下载内容是有效的,而且看起来是有效的。正如我最近发现的那样,您很难找到有效的、过去发布的 chrome 版本,因为从这些网站下载的每一个文件都以某种方式被破解了。我们怎么知道的?因为广告收入需要可量化的参与度,而下载网站无法提供;他们赚的那点钱还不足以支付存储、带宽和开发人员的开销。