Перейти к содержимому
ecdsa.com

Подпись кода

Подписание исполняемых файлов, пакетов, скриптов или прошивок сертификатами X.509, ключами платформы, OpenPGP или Sigstore, чтобы операционные системы, магазины приложений и пользователи могли проверить издателя и обнаружить подделку.
Другие написанияcode signingcode-signing certificatesoftware signingEV code signing

Форматы зависят от платформы: Authenticode для PE-файлов Windows, MSI и PowerShell; подписи кода Apple с сертификатами Developer ID и нотаризацией; схемы подписи APK (APK Signature Scheme) для Android; подпись JAR для Java; подписи репозиториев RPM и Debian с OpenPGP; подписи образов контейнеров с помощью cosign; UEFI Secure Boot с собственной иерархией ключей. Метки времени позволяют подписям оставаться действительными после того, как истёк срок действия сертификатов, которыми они созданы.

Публично доверенные сертификаты для подписи кода подчиняются Базовым требованиям к подписи кода (Code Signing Baseline Requirements) CA/Browser Forum: с 1 июня 2023 года закрытый ключ должен генерироваться и храниться в аппаратном модуле (не ниже FIPS 140-2 уровня 2 или Common Criteria EAL 4+), а с 1 марта 2026 года максимальный срок действия сертификата составляет 460 дней (бюллетень CSC-31).

Кража ключей подписи — регулярно повторяющийся путь атаки (сертификаты, которыми были подписаны драйверы Stuxnet, взлом сервера сборки Adobe в 2012 году), поэтому аппаратное хранение ключей, отдельные службы подписи и планы отзыва важнее выбора алгоритма.

Стандарты и ссылки

Все термины