Mozilla сменила GPG-ключ подписи Firefox и Thunderbird после случайной утечки

Mozilla сообщила, что перешла на новый GPG-подключ, которым подписываются некоторые артефакты релизов Firefox и Thunderbird, Linux-тарболы, RPM-пакеты и файлы контрольных сумм. Причина, незашифрованная копия предыдущего подключа была случайно закоммичена в приватный репозиторий на GitHub.

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

Для большинства пользователей действий не требуется. Действие нужно в двух случаях. Тем, кто вручную проверяет GPG-подписи релизов, нужно импортировать новый ключ и отзыв (revocation) старого, после импорта отзыва релизы, подписанные старым ключом, больше нельзя будет проверить. Пользователям RPM-сборок Firefox может понадобиться ручное вмешательство: на Fedora 43 и новее dnf сам подтянет новый ключ при следующем обновлении (нужно лишь подтвердить импорт, сверив отпечаток 827E 6586 0867 9618 CD34 9F93 678E 455D 7676 7AA3), а на Fedora 42 и старее, а также на RHEL, Rocky и AlmaLinux dnf не может заменить ключ автоматически, обновления будут падать с ошибками вида «Import of the key didn't help, wrong key?» или «keys… are not correct for this package», и старый ключ нужно удалить вручную командой rpm -e перед импортом нового. На дистрибутивах на базе openSUSE/SUSE аналогичная проблема решается вручную через zypper. Thunderbird официальных RPM-пакетов не поставляет, поэтому для него никаких RPM-специфичных действий не нужно.

Отпечаток основного ключа Mozilla Software Releases, 14F2 6682 D091 6CDD 81E3 7B6D 61B7 B526 D98F 0353, отпечаток нового подключа, 827E 6586 0867 9618 CD34 9F93 678E 455D 7676 7AA3, срок действия нового подключа истекает 2028-08-05. Новый ключ и отзыв старого можно получить из KEY-файлов последней Firefox Nightly, с keys.openpgp.org или прямо из блога Mozilla.

Ключевые факты

  • Mozilla сменила GPG-подключ для подписи Linux-тарболов, RPM-пакетов и файлов контрольных сумм Firefox и Thunderbird
  • Причина, незашифрованная копия старого подключа случайно попала в приватный репозиторий на GitHub
  • Аудит не нашёл следов доступа посторонних; доступ к репозиторию имела только небольшая группа сотрудников Mozilla, у которых и так был легитимный доступ к ключу
  • Старый ключ отозван; для большинства пользователей действий не требуется, но пользователям RPM-сборок на Fedora 42 и старее, RHEL/Rocky/AlmaLinux и openSUSE нужно вручную удалить старый ключ перед импортом нового
  • Новый подключ действует до 2028-08-05, его отпечаток, 827E 6586 0867 9618 CD34 9F93 678E 455D 7676 7AA3

Почему это важно

Приватный репозиторий на GitHub, не то место, где ожидаешь найти незашифрованный подписывающий ключ крупного open source проекта: случайный коммит секрета, типовой класс инцидентов, который регулярно приводит к куда более серьёзным последствиям, чем в этом случае. Mozilla отреагировала штатно: отозвала ключ, перешла на новый и опубликовала прозрачный разбор с техническими деталями вместо тихой ротации.

Кому это важно

В первую очередь, тем, кто вручную проверяет GPG-подписи релизов Firefox и Thunderbird, и пользователям RPM-сборок Firefox на Fedora, RHEL, Rocky Linux, AlmaLinux и дистрибутивах на базе openSUSE/SUSE, где менеджер пакетов не может заменить ключ автоматически. Обычных пользователей десктопных сборок с автообновлением инцидент не затрагивает.

Как это применить

Если вы проверяете подписи вручную, импортируйте новый ключ (отпечаток подключа 827E 6586 0867 9618 CD34 9F93 678E 455D 7676 7AA3, отпечаток основного ключа 14F2 6682 D091 6CDD 81E3 7B6D 61B7 B526 D98F 0353) и отзыв старого. На Fedora 43+ dnf подхватит новый ключ сам при следующем обновлении, нужно только подтвердить импорт. На Fedora 42 и старее, RHEL/Rocky/AlmaLinux и openSUSE/SUSE старый ключ нужно удалить вручную (rpm -e --allmatches для соответствующего gpg-pubkey) перед импортом нового, иначе обновления Firefox будут падать с ошибкой проверки подписи. Thunderbird официальных RPM-пакетов не выпускает, так что для него это неактуально.

Можно ли доверять

Mozilla дала техническую верификацию: конкретные отпечатки старого и нового ключей, срок действия, инструкции для разных дистрибутивов и объяснение, что именно произошло. По собственному аудиту компании, следов доступа посторонних к ключу за время его нахождения в репозитории не найдено, а доступ к репозиторию был ограничен людьми, у которых и так были легитимные права на ключ, но это внутренняя оценка Mozilla, независимого стороннего расследования в источнике не упомянуто.

Риски и подводные камни

Главный технический подвох, при выполнении rpm --import со старым ключом, ещё не удалённым из системы, команда может отрапортовать об успехе, хотя ключ фактически не обновился; порядок действий (сначала удалить старый ключ, потом импортировать новый) важен. После импорта отзыва старого ключа релизы, подписанные им, перестанут проходить проверку, это ожидаемое поведение GPG, но об этом стоит знать заранее.