Mozilla развивает средства верификации бинарных файлов Firefox
В рамках проекта Binary Transparency для Firefox развивается возможность, которая предоставит средства для подтверждения корректности любых публично распространяемых бинарных файлов и даст гарантии, что файлы не содержат вредоносных изменений. В отличие от проверки пакетов по цифровой подписи и контрольной сумме, верификация затрагивает не архив, а непосредственно исполняемые или библиотечные файлы, которые могут поставляться не только в официальных, но и в сторонних сборках Firеfox.
Проверку планируется интегрировать в систему автоматической установки обновлений, которая будет проверять все предлагаемые для загрузки обновления. В дальнейшем наработки проекта выступят основой для формирования повторяемых сборок, позволяющих удостовериться, что бинарные файлы собраны из предоставленных исходных текстов.
Информация о всех бинарных файлов будет распространяться в виде лога, доступного для публичного аудита и размещаемого с использованием инфраструктуры Certificate Transparency. Для каждого выпуска будет создаваться отдельный сертификат X509 и присваиваться доменное имя, содержащее хэш на основе дерева Меркла, сконструированного на основе SHA256-хэшей связанных с релизом отдельных бинарных файлов. Например, с Firefox 51.0b9 будет связан поддомен вида 151ac...51-0b9.0.fx-trans.net.
Для верификации вначале загружаются только SHA256-хэши бинарных файлов и связанный с релизом сертификат. На основе SHA256-хэши бинарных файлов строится дерево Меркла и формируется доменное имя. Далее проверяется наличие сертификата в логе Certificate Transparency и наличие сгенерированного доменного имени в сертификате. Если все в порядке, загружаются файлы с релизом и выполняется проверка соответствия хэшей SHA256 и бинарных файлов.