Mozilla развивает средства верификации бинарных файлов Firefox


В рамках проекта Binary Transparency для Firefox развивается возможность, которая предоставит средства для подтверждения корректности любых публично распространяемых бинарных файлов и даст гарантии, что файлы не содержат вредоносных изменений. В отличие от проверки пакетов по цифровой подписи и контрольной сумме, верификация затрагивает не общий архив, а непосредственно исполняемые или библиотечные файлы по отдельности, которые могут загружаться не только из официальных, но из сторонних источников.

Проверку планируется интегрировать в систему автоматической установки обновлений, которая будет проверять все предлагаемые для загрузки обновления. В дальнейшем наработки проекта выступят основой для формирования повторяемых сборок, позволяющих удостовериться, что бинарные файлы собраны из предоставленных исходных текстов, что позволит охватить и сторонние сборки.

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


Для верификации вначале загружаются только SHA256-хэши бинарных файлов и связанный с релизом сертификат. На основе SHA256-хэшей строится дерево Меркла и формируется доменное имя. Далее проверяется наличие сертификата в публичном и доступном для аудита логе Certificate Transparency, после чего проверяется соответствие сгенерированного доменного имени сертификату. Если всё в порядке, загружаются файлы с релизом и выполняется проверка соответствия заявленных хэшей SHA256 и бинарных файлов.