Не могу понять, что за файлы Firefox у меня скачиваются? Ситуация такая:
Скачал установочный файл с оффициального сайта mozilla.org напрямую, браузером Firefox, который у меня уже установлен.
Потом решил проверить скачанный файл таким способом: скачал тот же установочный файл через TOR. Сверил хэши: хэши разные! Провожу такую проверку, потому что не доверяю тем, кто контролирует здесь интернет.
Версия файла та же, операционная система та же, язык тот же. Даже размер скачанных файлов совпадает до байта!
Файл имеет имя Firefox Setup 92.0.exe

Стал экспериментировать дальше: нажал New Circuit for this site в своём TOR. Скачал ещё раз. Хэш опять другой! Не поверил: повторил эксперимент ещё 5 раз. Скачиваются файлы, имеющие разный хэш. Размер одинаковый. Имя одинаковое. Сигнатура всех файлов валидная. Подписано: Mozilla Corporation.
Но файлы имеют разный хэш!

Вопрос такой:
почему через TOR скачивается другой установочный файл Firefox? Хотя этот другой файл по всем очевидным признакам то же самое? (отличается только хэш)
Почему через разные узлы сети TOR скачиваются разные установочные файлы Firefox?

Gtrnx
исходники открыты, забирай и компилируй. только проверить их не забудь.

Gtrnx у меня хэши SHA256 и SHA512 совпали - всё окей. Другие алгоритмы не вижу смысла проверять. Скачивал через тор и без него.
Твой подход к сверке хэшей неправилен. Нужно сверять хэш, который указывает разработчик с тем хэшем, который получаешь ты из скачанного файла. [mozilla] выкладывает хэши для каждой версии своих продуктов - например, для Firefox 92.0 это хэши SHA256 и SHA512

Gtrnx пишет

Почему через разные узлы сети TOR скачиваются разные установочные файлы Firefox?

Видимо, это зависит от того в какой стране расположен выходной узел. Каждый раз после нажатия "New Circuit for this site" менялось и расположение выходного узла. Поэтому ты мог скачивать [firefox] с разной локализацией (язык). Хэш в таком случае будет отличаться.

Повторил эксперимент ещё раз. Вот этот файл скачан через тот firefox, который у меня установлен: https://www.virustotal.com/gui/file/fb2a1ae356544978332460a1b6d64c982fe09868063e64971e4ffe5a734bac20/details
Вот этот скачан через tor: https://www.virustotal.com/gui/file/dcfec47ed56c0b3ea7bc97caa8c35d08718e789dc7661d064b79948f98e5c374/details

Размеры этих двух файлов совпадают с точностью до байта. А хэши разные.

Первый хэш есть на странице https://ftp.mozilla.org/pub/firefox/releases/92.0/SHA256SUMS
Второго хэша там нет.
В связи с этим вопрос: почему через tor скачивается какой-то странный инсталлятор?

Gtrnx
Сейчас скачал https://ftp.mozilla.org/pub/firefox/rel … 2092.0.exe через [firefox], а потом через Tor-браузер. Хэши совпали и соответствуют данным в SHA256SUMS.

Gtrnx пишет

В связи с этим вопрос: почему через tor скачивается какой-то странный инсталлятор?

Это уже вопрос к тор, а не firefox

Gtrnx
У меня такое уже было, сначала качал через vpn, а на следующи день напрямую, но тут бесполезно что-то доказывать.
Качайте отсюда, это не гарантирует идентичности, но по крайней мере вы исключите вероятность загрузки другого языка.

Качаю со страницы https://www.mozilla.org/en-US/firefox/all/#product-desktop-release
Там можно выбрать локализацию явным образом, я, разумеется, выбираю одну и ту же локализаци.

С той страницы через обычный firefox и через TOR файлы почему-то скачиваются с разных серверов.
Через обычный firefox файлы скачиваются с download-installer.cdn.mozilla.net
Через TOR файлы скачиваются с сервера cdn.stubdownloader.services.mozilla.com
Наверно, это объясняет, почему хэши разные.
В чём разница между этими серверами?

Gtrnx
Точные ссылки приведите.

При помощи обычного firefox и TOR зашёл на страницу https://www.mozilla.org/en-US/firefox/all/#product-desktop-release
Выбрал одинаковые опции.
Нажал кнопку download

В результате опять скачались разные файлы.
Вот ссылка для firefox:
https://download-installer.cdn.mozilla.net/pub/firefox/releases/92.0/win64/en-US/Firefox%20Setup%2092.0.exe

Вот ссылка для TOR:
https://cdn.stubdownloader.services.mozilla.com/builds/firefox-latest-ssl/en-US/win64/8d190619276e416b799be85ad6f827e64d097b84f93fc5fecffcdba52d895567/Firefox%20Setup%2092.0.exe

Ссылки очень разные. К тому же, ссылка для TOR содержит какой-то хэш. С чего бы этО?

Gtrnx
Если сравнить файлы побинарно, то в файле с https://cdn.stubdownloader.services.mozilla.com/ добавлена строка вида:

Выделить код

Код:

__MOZCUSTOM__:campaign%3D%2528not%2Bset%2529%26content%3D%2528not%2Bset%2529%26dltoken%3Daff558aa-d4c6-43f1-b453-70689a9c09c0%26experiment%3D%2528not%2Bset%2529%26medium%3D%2528direct%2529%26source%3D%2528other%2529%26ua%3Dfirefox%26variation%3D%2528not%2Bset%2529

                                                                                                                                                                                                               

Покопался в коде, наткнулся на Bug 1630809 - Support partner repacks which add attribution to Windows full installers в частности на https://hg.mozilla.org/mozilla-central/ … ion.rst#l5.

In contrast to :ref:`partner repacks`, attributed builds only differ from the normal Firefox
builds by the adding a string in the dummy windows signing certificate. We support doing this for
full installers but not stub. The parameters of the string are carried into the telemetry system,
tagging an install into a cohort of users. This a lighter weight process because we don't
repackage or re-sign the builds.

Похоже, что файл с https://cdn.stubdownloader.services.mozilla.com помечен этой строкой, чтобы сообщить через телеметрию в Mozilla о своей установке.

Это что же получается? Каждый раз, когда кто-то скачивает firefox через Tor, инсталлятор каким-то образом помечается? Ну, например, в файл внедряется какой-то хэш, а потом, при инсталляции, он через телеметрию о чём то сообщает кому-то?

И цифровая подпись остаётся действительной. Значит, а стороне сервера, который раздаёт файлы, на лету, в файл внедряется особая метка, а потом файл подписывают цифровой подписью mozilla ?? Ведь изменить запускаемый файл таким образом, чтобы цифровая подпись осталась действительной, - это задача не тривиальная.

И зачем бы этО?