Использование Code Signing сертификата с Google Cloud HSM с помощью Google Cloud HSM

Центры сертификации, недавно повысили стандарты хранения ключей для сертификатов подписи кода, требуя хранить закрытый ключ сертификата либо на физическом 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

Сгенерируйте пару ключей, 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

Создайте запрос на подписание кода (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 лет со скидками на более длительные сроки, а также с удобством прохождения процесса проверки только один раз для сертификатов с более длительным сроком действия.

Этот материал был полезным?

Похожие материалы