Центры сертификации, недавно повысили стандарты хранения ключей для сертификатов подписи кода, требуя хранить закрытый ключ сертификата либо на физическом USB-токена, либо на совместимом аппаратном модуле безопасности (HSM). С 1 июня 2023 года все сертификаты подписи кода больше не выпускаются в виде загружаемых pfx-файлов. Это изменение соответствует новым требованиям Форума центров сертификации/браузеров (CA/B) по хранению ключей для повышения безопасности ключей кодовых подписей. Предыдущее правило позволяло выпускать сертификаты подписи кода Organization Validation (OV) и Individual Validation (IV) в виде файлов, которые можно загрузить.
Поскольку новые требования позволяют использовать только зашифрованные USB-токены или облачные FIPS-совместимые аппаратные устройства для хранения сертификата и личного ключа, ожидается, что случаи похищения и злоупотребления ключами кодовой подписи со стороны злоумышленников значительно уменьшатся. Хотя использование USB-токенов создает проблемы с интеграцией с современными конвейерами CI/CD, а использование физического модуля HSM в офисных условиях может быть сложным, существует эффективная альтернатива.
Google Cloud предлагает практичное решение: арендовать единый слот для ключей на их сервисе HSM. Такой подход не только экономически выгоден, но и соответствует последним стандартам соответствия FIPS 140-2 Level 2, устраняя при этом потребность в управлении физическими устройствами. В этой статье мы расскажем, как настроить это промежуточное решение.
Понимание процесса подписания кода с помощью облачного HSM
Чтобы понять суть процедуры подписания кода с помощью облачного аппаратного модуля безопасности (HSM), рассмотрим его компоненты:
- Сертификат подписи кода: Цифровой сертификат, выданный доверенным центром сертификации (ЦС), который разработчики программного обеспечения используют для цифровой подписи своего программного обеспечения, скриптов и исполняемых файлов. Этот сертификат служит цифровой подписью, которая подтверждает личность разработчика или издателя и гарантирует, что код не был изменен или скомпрометирован с момента его подписания.
- Google Cloud: Предлагает услуги, которые поддерживают безопасную разработку и развертывание программного обеспечения, включая инфраструктуру для безопасной генерации и управления криптографическими ключами, используемыми в процессе подписания кода.
- Google Cloud HSM for key protection (для защиты ключей): Надежный аппаратный модуль безопасности, размещенный в инфраструктуре Google Cloud, предназначенный для защиты вашего приватного ключа от несанкционированного доступа.
- Инструмент для подписания: Программное обеспечение или утилита, предназначенная для цифровой подписи программ и приложений. Такая цифровая подпись гарантирует конечному пользователю, что программное обеспечение не было изменено или скомпрометировано с момента его подписания разработчиком или издателем.
- Time Stamping Authority (TSA) (Центр отметки времени): доверенный сторонний сервис, обычно управляемый вашим центром сертификации (ЦС), задачей которого является доказательство того, что код был подписан в течение срока действия цифрового сертификата, который использовался для подписания, даже если срок действия сертификата истекает или его отзывают.
Регистрация облачной учетной записи Google в облаке
Первым шагом в настройке является создание учетной записи на Google Cloud Platform. После того, как ваша учетная запись будет активна, необходимо создать новый проект и включить Биллинг. Для того, чтобы продолжить настройку, необходимо предоставить платежную информацию.
![Использование Code Signing сертификата с Google Cloud HSM с помощью Google Cloud HSM 1 Использование Code Signing сертификата с Google Cloud HSM с помощью Google Cloud HSM](https://tuthost.ua/wp-content/uploads/2024/05/image.png)
Сгенерируйте пару ключей, CSR и аттестационное заявление
Перед выпуском сертификатов подписи кода или подписи документов, доверенных Adobe, требуется подтверждение того, что личный ключ подписи клиента был сгенерирован на устройстве, сертифицированном по стандарту FIPS 140-2, уровень 2 (или выше), и надежно хранится на нем. Это устройство гарантирует, что ключ не может быть изъят, а проверка этой защиты называется аттестацией. Google Cloud HSM, использующий устройства производства Marvell (ранее Cavium), способен генерировать подписанные заявления об аттестации для криптографических ключей. Для получения инструкций по созданию пары ключей и заверению, пожалуйста, обратитесь к документации Google по управлению облачными ключами:
Откройте интерфейс управления ключами.
Перейдите в раздел Security а затем в Key Management. Когда вы нажмете на Управление ключами, платформа перенаправит вас на “Google Cloud Marketplace” с просьбой включить KMS API. Вы должны включить его и снова пройти тот же путь, то есть Безопасность >> Управление ключами.
Сгенерируйте Key Ring и ключ HSM.
В интерфейсе Управление ключами нажмите на опцию “CREATE KEY RING”. После этого вам будет предложено настроить параметры брелока, в частности определить название, тип расположения и регион.
Рекомендуемые настройки при создании ключа
Уровень защиты | HSM |
Ключевой материал | ключ, сгенерированный HSM |
Ключевая цель | Асимметричный знак |
Алгоритм | 4096 бит RSA – PKCS#1 v1.5 padding – SHA256 Digest |
Получите подтверждение аттестации
Внешние аудиторы и центры сертификации иногда требуют файл заверения, поэтому вы всегда должны загружать его с платформы Google Cloud HSM. Сначала проверьте удостоверение, а затем только загружайте его.
Новое кольцо для ключей >>> Вкладка “Версия >>> Действия (значок с тремя точками) >>> Проверка аттестации и затем Download Attestation
![Использование Code Signing сертификата с Google Cloud HSM с помощью Google Cloud HSM 2 Использование Code Signing сертификата с Google Cloud HSM с помощью Google Cloud HSM](https://tuthost.ua/wp-content/uploads/2024/05/image-1.png)
Создайте запрос на подписание кода (CSR)
Пришло время сгенерировать CSR, поскольку это важное условие для получения сертификата подписи кода EV. Когда вы подадите этот CSR в центр сертификации или провайдера, он выдаст вам цифровой сертификат для подписи приложений, драйверов и прошивок.
Вы можете использовать “openssl” для генерации CSR. Используйте приведенную ниже команду, чтобы сгенерировать CSR.
openssl req -new -subj '/E={yourEmail}/CN={companyName}/O={companyName}/' -sha256 -engine pkcs11
-keyform engine -key pkcs11:object={keyName}
Примечание: Пожалуйста, замените приведенные выше необходимые значения на ваши собственные. Поскольку ваш приватный ключ хранится в облачном HSM, вам следует использовать Google Cloud API, чтобы позволить openssl получить доступ к ключу.
После того, как вы подготовите пару ключей, CSR и удостоверение аттестации, отправьте их нам для проверки и заказа сертификата.
Закажите сертификат подписания кода
Все сертификаты подписи кода можно приобрести в tuthost сроком действия от 1 до 3 лет со скидками на более длительные сроки, а также с удобством прохождения процесса проверки только один раз для сертификатов с более длительным сроком действия.