Выпущены Go 1.27.3 и Go 1.26.10, которые заставят верификатор сертификатов Go отклонять любую цепочку сертификатов, проходящую через один из восьми ключей промежуточного центра сертификации. Программы, созданные на основе нового релиза, будут отказываться от соединений с сайтами и сервисами, чьи сертификаты были выданы с использованием этих ключей. Команда Go заявляет, что ключи принадлежат одному неуказанному центру сертификации, и они блокируются из-за «особых опасений по поводу безопасности их работы».
Исправление было внесено по срочной процедуре URGENT track, зарезервированной для наиболее серьезных проблем, и рекомендуется немедленно обновиться. За два дня до этого, 17 октября, Mozilla добавила шесть промежуточных сертификатов, выданных emSign Root TLS CA – G3 от eMudhra, в OneCRL — список, который Firefox использует для блокировки сертификатов. Связанная с этим запись в баг-трекере Mozilla закрыта для публики, и ни Mozilla, ни Go не сообщили, что послужило причиной их действий. Приняли ли аналогичные меры Chrome, Apple или Microsoft, пока не установлено.
В списке изменений Go указаны только SHA-256 хеши восьми ключей. Один из комментаторов в обсуждении на GitHub сопоставил все восемь с промежуточными сертификатами eMudhra, проверив хеши в записях сертификатов. Согласно этому сопоставлению, шесть из них являются промежуточными TLS-сертификатами, выданными под тем же emSign Root TLS CA – G3, что указан в записях Mozilla, а два — промежуточными сертификатами для подписи кода под emSign Root CS CA – G3.
The Hacker News не проверял хеши независимо от сертификатов. Шесть записей Mozilla имеют тот же корневой сертификат, но в записях Mozilla не указаны названия шести сертификатов. Фильтр срабатывает каждый раз, когда программа Go проверяет цепочку сертификатов. Он хеширует открытый ключ каждого сертификата, а не сам сертификат, поэтому также обнаруживается перекрестно подписанная копия одного из восьми ключей, тот же ключ, подписанный другим корневым сертификатом.
Он применяется во встроенном верификаторе Go, а также в путях кода macOS и Windows, которые передают проверку операционной системе. Отклоненная цепочка возвращает ошибку x509: no valid chains built. Изменение не содержит настройки для отключения фильтра. Учитывая структуру кода, оно также применяется, когда программа предоставляет собственный набор доверенных корневых сертификатов, поэтому частное развертывание, намеренно доверяющее одному из восьми ключей, также завершится ошибкой. Команда Go не сообщила, было ли это преднамеренно.
Верификатор Go «не выполняет никакой проверки отзыва», как предупреждает его документация. Он также не читает списки блокировки, используемые браузерами, такие как CRLSets, которые Chrome использовал против поддельных сертификатов Google в этом месяце. Поэтому блокировка ключа означает его включение в релиз, и программы сохраняют старое поведение до тех пор, пока не будут пересобраны. Проекты, включая indigo от Bluesky, были пересобраны на новых релизах 20 октября.
Что произошло в центре сертификации, публично не сообщается. В объявлении Go содержится одно предложение о проблемах безопасности, а релиз вышел без предварительного анонса, который Go отправлял перед своими релизами безопасности 8 октября. Политика безопасности Go определяет проблемы URGENT track как «угрозу целостности экосистемы Go» или уязвимости, активно используемые с серьезным ущербом, и заявляет, что недавних примеров нет. Go не сообщил, что из этого применимо.
В обсуждении один пользователь попросил объяснить в приложенном патче, «кому и чему они соответствуют». Команда Go не ответила по состоянию на 20 октября. eMudhra — индийский центр сертификации, продающий сертификаты под брендом emSign. Его корневые сертификаты emSign Root CA – G1 и emSign ECC Root CA – G3 входят в корневые хранилища Chrome, Apple и Mozilla. Ранее в этом году компания сообщила Mozilla, что ее новый TLS-корневой сертификат перекрестно подписан emSign Root CA – G1, что позволяет сертификатам под новым корневым сертификатом связываться с доверенным корневым сертификатом.
В сентябре шестинедельное публичное обсуждение запроса eMudhra на добавление десяти новых корневых сертификатов в программы корневых сертификатов, управляемые производителями браузеров и операционных систем, включая emSign Root TLS CA – G3, завершилось без возражений. Записи сертификатов для собственных доменов eMudhra, включая emsign.com и emudhra.com, согласно данным прозрачности сертификатов, проверенным The Hacker News 20 октября, проходят через другие промежуточные сертификаты eMudhra. Репозиторий компании на тот день не содержал уведомлений о промежуточных сертификатах, и The Hacker News не обнаружил публичных заявлений от eMudhra.
Go 1.25 и более старые версии больше не поддерживаются и не получают исправлений, поэтому единственным выходом является использование поддерживаемой версии со страницы загрузки. В исходном коде нет временных обходных решений, и фильтр нельзя отключить. Сайты и сервисы, чьи сертификаты проходят через восемь ключей, потребуют сертификаты от другого промежуточного центра сертификации, прежде чем пересобранные клиенты Go смогут к ним подключиться.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Swati Khandelwal




