Можно ли разместить сертификат подписи кода EV в облаке?

Моя команда использует сертификат для подписи нашего приложения для Windows. К сожалению, срок действия сертификата скоро истекает, и нам нужен новый. Мы хотим избежать SmartScreen, который появляется при установке приложений, подписанных новыми сертификатами, и я читаю, что сертификаты EV имеют встроенную репутацию.Microsoft предоставляет список органов, которые продают сертификаты для подписи кода, но, насколько я понимаю, все это будет физическим устройством, которое один из разработчиков должен будет держать дома. Мы этого не хотим. Возможно ли иметь в облаке что-то, что мы все можем использовать?

2 ответа

Да, можно подписывать код EV в облаке, не требуя физического ключа, который вы держите при себе. Фактически, мы делаем это в моей компании. Вот как:

  1. Создайте новый ключ подписи в облачном HSM или KMS.
  2. Интегрируйте свой инструмент подписи с облачным HSM или KMS

Для №1 есть несколько вариантов, включая AWS CloudHSM, AWS KMS, Azure Key Vault, Google KMS, Entrust nShield as a Service, Thales DPoD и т. Д. Все они имеют различные плюсы и минусы, поэтому вам нужно заранее знать свои технические требования. времени. Два элемента, которые необходимо точно знать, - это список алгоритмов подписи, которые требуются используемым инструментам подписи, и требования к аттестации вашего центра сертификации.

Некоторые инструменты, такие как signtool, позволяют указать алгоритм хеширования, который вы хотите использовать. К сожалению, другие инструменты не дают вам возможности, и вы застряли с жестко запрограммированным алгоритмом хеширования. Два примера - это продукт Apple, который в настоящее время использует SHA-1 под капотом для одной из производимых подписей, и Microsoft VBA Macro Signing, который использует под капотом MD5. Не все предложения KMS поддерживают все эти алгоритмы, и до тех пор, пока они не будут выполнены, вы не сможете подписывать с помощью этих алгоритмов, и ваш ключ не будет полезен (большинство из них поддерживает только SHA-256, SHA-384 и SHA-512. , хотя Azure Key Vault поддерживает RSNULL, что позволяет обойти это).

Для аттестации ключей, в зависимости от вашего ЦС, вам может потребоваться предоставить аттестацию для вашего ключа, которая связана с аппаратным корнем доверия, который поддерживают только некоторые поставщики HSM / KMS. Другие центры сертификации могут позволить вам показать им свою облачную среду удаленно (например, через Zoom или что-то еще), чтобы показать, что ключ защищен аппаратно, а другие просто требуют, чтобы вы подписали документ, в котором говорится, что ваш ключ защищен.

Цена - следующий очевидный фактор. Некоторые взимают плату за час (или другую единицу времени), в котором работает HSM, в то время как большинство опций KMS взимают небольшую плату за ключ и за использование. Как правило, если у вас мало ключей, один из вариантов KMS будет более дешевым и простым выбором. Но как только количество ключей вырастет, выделенный HSM может стать более рентабельным.

После того, как вы выберете свое криптографическое устройство, вам нужно будет интегрировать с ним свой инструмент подписи. Это делается с помощью поставщика криптографических услуг. Провайдеры уникальны для платформы, на которой вы регистрируетесь. Например, в Windows вам нужен KSP (или CSP для устаревших систем), Java / Android требует поставщика JCE, macOS использует поставщика CTK, OpenSSL использует платформу Engine (хотя это изменение в их последней версии), Linux использует сочетание GPG и PKCS11 и т. д. Некоторые HSM предоставляют некоторых криптографических провайдеров, но не всех. В параметрах KMS их вообще нет, и вам остается писать свой собственный код.

Затем возникает проблема аутентификации / авторизации, производительности, аудита и т. Д. В конечном итоге вы окажетесь в лодке, где хотите выполнить auth / authz через своего поставщика удостоверений (например, Active Directory, Azure и т. Д.), Вам нужно хеширование на стороне клиента для повышения производительности, вам нужны все виды требований аудита и т. Д. По этим и другим причинам мы используем инструмент под названием GaraSign для всего этого, который предоставляет все, что нам нужно, из коробки. Вот их страница для подписи кода.

SSL.com также обеспечивает удаленную подпись для своего сертификата EV. Это платная услуга под названием eSigner.

Другие вопросы по тегам