火狐浏览器疑似遭篡改,每次下载后 SHA512 都不同

到底怎样下载到安全、原版的 Firefox?

我时区,语言都是国内

我用火狐一般从源码编译

2 个赞

那你验证 tarball 的 digest 嘛

我协助维护nonguix频道的firefox,能不验证吗 :stuck_out_tongue:

你应该给出点击 Download 之后的最终地址,否则无法证明几次下载都是相同的文件。

确定了每次都是下载同一个文件之后,才能继续排查是否其他问题导致。

⋊> [~/Downloads] open 'https://download-installer.cdn.mozilla.net/pub/firefox/releases/78.9.0esr/mac/en-US/Firefox%2078.9.0esr.dmg'

⋊> [~/Downloads] sha256sum Firefox\ 78.9.0esr.dmg
afb97bd0ffc48103a3513ce8ded8bb245438a9460846643dea72c77a71694e0d  Firefox 78.9.0esr.dmg

⋊> [~/Downloads] rg 'mac/en-US/Firefox 78.9.0esr.dmg' ./Firefox-78.9.0esr-SHA256SUMS.txt | xargs
afb97bd0ffc48103a3513ce8ded8bb245438a9460846643dea72c77a71694e0d mac/en-US/Firefox 78.9.0esr.dmg

⋊> [~/Downloads] rg 'mac/en-US/Firefox 78.9.0esr.dmg' ./Firefox-78.9.0esr-SHA256SUMS.txt | sed 's!mac/en-US/!!' | sha256sum -c
Firefox 78.9.0esr.dmg: OK

这个图里面,每个链接的mozilla.com后面都有一个builds,会不会每次下载都会生成一个唯一id之类的玩意塞进去啊……所以每个文件的散列值都不一样,在win64后面的那一串东西也不一样。

火狐很久之前是有国内版这一说的,好象是商业合作啥的,不过那个时候火狐还没出到quantum,后来quantum之后我有一次从百度下载的最终打开新标签推荐是国内网站,默认搜索器都是搜狗,不过后来我都是直接去mozzilla官网手动选版本,这样下载的火狐首页推荐就是国外网站了,甚至中文都不带 :joy:

每次,在 Windows Pro 上,通过 Internet for people, not profit — Mozilla Firefox Browsers,点击 Firefox for Desktop,再点击 Download options and other languages,再选择 Firefox Extended Release,最后点击 Download Now。

刚才在 Chrome 上测试四次,最终下载链接分别为:

https://cdn.stubdownloader.services.mozilla.com/builds/firefox-esr-latest-ssl/en-US/win64/050d2763e5f80162aa7aa10a726f7a715308e064e9c95d23d5ddc54d2d20227f/Firefox%20Setup%2078.9.0esr.exe

https://cdn.stubdownloader.services.mozilla.com/builds/firefox-esr-latest-ssl/en-US/win64/a8afc81e64efb10bfdf306e13387ee499910f648ae46903ebb544198ee415a71/Firefox%20Setup%2078.9.0esr.exe

https://cdn.stubdownloader.services.mozilla.com/builds/firefox-esr-latest-ssl/en-US/win64/1bc545b20bf1e659181b1949657d0d05fd7a873a1419f09e35df85f43aa2afd9/Firefox%20Setup%2078.9.0esr.exe

https://cdn.stubdownloader.services.mozilla.com/builds/firefox-esr-latest-ssl/en-US/win64/2d1b9ed104a007879b336b9e8c7b9f20978eb1ce5cf37591dde3ee17b2809892/Firefox%20Setup%2078.9.0esr.exe

用 Edge 测试,最终下载链接为:

https://cdn.stubdownloader.services.mozilla.com/builds/firefox-esr-latest-ssl/en-US/win64/8bb73c5bbe57f265f657ac16ee0ba509a08f8005a33e73a077e7a6685858857e/Firefox%20Setup%2078.9.0esr.exe

兄弟,你再看下我贴的地址,就是从国际版下的。

有同学反应这个链接下的 Firefox,安装后打开也出现国內 Top Sites 的情况。

挂俄罗斯节点下载的。 Firefox本来就在不同地区有不同本地化策略,跟隐私没啥关系,有兴趣可以挂日本之类的节点继续验证。

1 个赞

在地化,也不能文件 SHA512 完全不同、文件大小相同吧?不知到底改了什么。文件 HASH 不同,如何验证此文件是谁递过来的

我觉得上面俄版完全不同于标准版的HASH和Top Sites已经可以说明问题了。根据你的IP,给你从就近的服务器上下载安装包,包里写的Top Sites是当地的热门网站。 至于你想的别的情况:

  1. 首先如果是微软,那么显然,我换IP就能下到不一样的包,跟微软没有直接关系。除非微软帮助Mozilla做了几十个国家的特供软件,然后劫持Mozilla的链接,用自己的包偷梁换柱。
  2. 如果是Wall,那么既然用日本IP和俄罗斯IP也会下载到与官方不同的包,说明日本和俄罗斯也有Wall,并且和谐了火狐。

有道理。同一 ip,同一语言,几次下载,SHA512 不同,这怎么解释

那就不知道Mozilla在实现本地化的时候是怎么操作的了,会出现这种情况。 但也很好懂,毕竟你在同一个IP同一个语言的情况下,下载链接都不一样。

用FTP下载的都是一致的。说明跟下载方式有关系。如果一定要追求完全一致,去FTP就行了。

下載的時後实時用脚本更新安装包里的推送不就是了,不要想太多,相关部门不会对你上 por*hub 看的东西有啥兴趣的(

1 个赞

追求安全最好还是自己编译火狐,而且mozconfig文件里要加入unset MOZ_TELEMETRY_REPORTING

根据 BLFS 指南

# The following option unsets Telemetry Reporting. With the Addons Fiasco,
# Mozilla was found to be collecting user's data, including saved passwords and
# web form data, without users consent. Mozilla was also found shipping updates
# to systems without the user's knowledge or permission.
# As a result of this, use the following command to permanently disable
# telemetry reporting in Firefox.
unset MOZ_TELEMETRY_REPORTING

tarball的digest要验证,最好还要打开来验证。因为和tar一起用的gzip xz等压缩工具的output并不总是确定性的。gzip在没有传递-n参数时,会记录文件名,时间戳等信息,而xz启用多线程压缩后压缩结果也会变得不确定。(而bzip2和zstd似乎没有这种问题)

其中一个例子

另一个例子是Github Archive, 我们知道,从Github Archive可以方便的下载某个仓库某个ref的压缩包,但Github Archive会不定期删掉旧的文件,有需要时再重新生成新的tarball。因此,同一个仓库同一个ref, 在 Github Archive 不同时间下载回来的压缩包完全可能有不同的哈希值。

2 个赞