Код на подпись: как будет работать новая система доверия к ПО
Что подтверждает сертификат
Минцифры уже в 2027 году планирует начать выдавать сертификаты подписи программного кода разработчикам российского ПО. Сами сертификаты позволят узнать, кто является разработчиком программы и менялся ли код после выпуска.
«Несмотря на законодательное название «сертификат безопасности НУЦ», такой документ не подтверждает безопасность программы: НУЦ не исследует исходный код и не устанавливает отсутствие уязвимостей. Более точное понятие — «сертификат подписи программного кода». Объект регулирования — полный жизненный цикл доверия: от защищенного хранения ключа и фиксации доверенного времени до блокирования конкретной опасной версии», — говорит патентный поверенный компании UserGate, член Комитета по информационной безопасности АПКИТ Александр Киселев.
При этом властям придётся определить оператора информационной системы НУЦа, а подпись кода решит проблему только внутри России, поскольку зарубежные платформы не доверяют отечественному корневому сертификату.
Технически цепочка проверки доверия к подписи кода выглядит так: разработчик получает сертификат, подписывает им программу, а затем средство проверки должно убедиться, что подпись действительна, сертификат выдан доверенным центром и сама цепочка доверия признаётся конкретной платформой.
Последний этап может стать главным ограничением такой схемы. «Полноценной и бесшовной замены западным удостоверяющим центрам не будет. Подпись кода проверяет операционная система, а не разработчик. Windows доверяет корневым сертификатам из своего хранилища, и корня НУЦ там нет. Программа с российским сертификатом на обычной Windows получит предупреждение о недоверенном издателе. На macOS и iOS российский сертификат не поможет — там принимают только подпись от Apple, — отмечает независимый эксперт по информационной безопасности и защите КИИ Николай Лобанов. — Система эффективно закрывает российские ОС и управляемые корпоративные среды, где корень раздаётся групповыми политиками. Но домашние и зарубежные машины она защитить не может».
Доверие к сертификатам НУЦ потребуется обеспечить не только в ОС, но и в магазинах приложений, средствах защиты и других системах, проверяющих подпись кода, отмечают эксперты. «По закону сертификат подписи кода НУЦ выдают только на программы из реестра российского ПО», — отмечает Николай Лобанов.
Зачем нужны два профиля — RSA и ГОСТ
Проект Минцифры предусматривает два варианта сертификатов подписи кода: RSA и ГОСТ. По словам начальника отдела разработки программного обеспечения «Базальт СПО» Антона Мидюкова, идея национального сертификационного центра — использовать отечественную криптографию и цепочку доверия от сертификационного центра к разработчикам.
Это не означает, что RSA автоматически решает проблему доверия к российскому НУЦ. Алгоритм подписи и корень доверия — разные уровни инфраструктуры. Даже технически совместимый RSA-сертификат должен входить в цепочку, которой доверяет проверяющая система.
Для разработчиков такая ситуация может означать необходимость поддерживать сразу два сценария подписания, не исключают эксперты. «Технический барьер один: подпись по ГОСТ требует средств криптозащиты с поддержкой российских алгоритмов и на стороне сборки, и на стороне проверки. Тем, кто поставляет ПО в госорганы, могут понадобиться обе подписи (и ГОСТ, и RSA), и конвейер сборки (CI/CD) в связи с этим придётся перестраивать», — поясняет Николай Лобанов.
Сколько будет стоить бизнесу
Цена сертификата и порядок расчёта пока не установлены, но версии уже есть. Так, «Ведомости» со ссылкой на эксперта указали, что стоимость одного сертификата может составить от 2 000 до 5 000 руб. Но эта сумма станет далеко не ключевым расходником. «Киберболоид» прикинул, к чему можно начинать готовиться уже сейчас.
По мнению опрошенных экспертов, сертификация может удорожать разработку из-за процессных издержек, задержек релизов и необходимости адаптировать сборочные конвейеры.
Где возникают риски
Наличие сертификата ещё не означает, что конкретная программная платформа автоматически будет считать подписанный им код доверенным. Для проверки подписи система должна поддерживать соответствующий алгоритм, знать доверенную цепочку сертификации и признавать её корневой центр доверенным. Так, например, работает система в Windows.
Поэтому остаётся вопрос, какие именно программные платформы будут поддерживать сертификаты НУЦ и в какие сроки. «Суверенный сертификат без суверенного механизма его проверки остаётся электронным удостоверением, которое программная платформа не обязана признавать», — отмечает Александр Киселев.
По мнению Николая Лобанова, есть вопросы к механизму проверки статуса сертификатов в проекте. По оценкам эксперта, сейчас недостаточно подробно определены параметры публикации списков отозванных сертификатов, а механизм OCSP предусмотрен несимметрично для RSA- и ГОСТ-профилей. Это принципиальный момент для подписи кода. Сертификат может быть действующим по дате, но уже скомпрометированным. Поэтому системе требуется не только механизм выдачи, но и полноценный механизм оперативного отзыва и проверки статуса.
Безопасность системы определяется не только тем, кто выдаёт сертификат, но и тем, как устроен весь жизненный цикл ключа: генерация, хранение, использование, резервирование, ротация и отзыв. Если ключ генерируется или хранится у стороннего участника инфраструктуры, возрастает цена потенциальной компрометации. «Ключ должен создаваться и храниться у разработчика, желательно на аппаратном носителе», — отмечает Николай Лобанов.
Какие задачи решает модель сертификатов НУЦ
- Юридическую. Федеральный закон № 210-ФЗ ввёл понятие сертификатов безопасности НУЦ, включая сертификат для аутентификации разработчика российского ПО и подтверждения целостности и происхождения программы, а также установил полномочия НУЦ по их созданию и выдаче.
- Криптографическую. Проект предусматривает RSA- и ГОСТ-сертификаты подписи кода, с помощью которых можно подтверждать целостность и происхождение программ.
- Технологическую. Для практического использования сертификатов требуется интеграция их проверки и поддержки в отечественные операционные системы и инфраструктуру распространения ПО. Минцифры уже сообщало о такой работе, в частности применительно к отечественным ОС и RuStore.
- Эксплуатационную. Эксперты связывают возможное массовое применение сертификатов с необходимостью защищённого хранения ключей, автоматической подписи сборок и процедур замены сертификатов.
Говорить, что новая система просто заменит западные сертификаты, было бы преждевременно, отмечают эксперты. На первом этапе более реалистичный сценарий — создание российского контура доверия прежде всего для отечественного ПО, государственного сектора и контролируемых инфраструктур. Подпись кода на первых порах будет подтверждать издателя и целостность подписанных данных, но пока не заменит проверку программы на уязвимости и вредоносную функциональность.
