13 нояб. 2024 г.
Введение
GlobalSign предлагает два типа сертификатов подписи кода. Методы и требования к подписи кода варьируются от платформы к платформе, часто создавая путаницу для конечного пользователя. В этой статье будут разъяснены различия между типами сертификатов подписи кода и даны ответы на распространенные вопросы о требованиях к подписи кода для различных платформ.
Сертификаты подписи кода
Что такое сертификат подписи кода? Чем сертификат подписи кода отличается от других сертификатов X.509 v3?
Цифровой сертификат содержит такие поля, как использование ключа и расширенное использование ключа, которые определяют назначение сертификата. Там, где SSL-сертификат для веб-сайта будет содержать расширенный ключ аутентификации сервера, показывающий, что его можно использовать для идентификации сервера, сертификат подписи кода имеет расширенный ключ подписи кода, указывающий, что он может использоваться для подписи кода.
Эти поля могут быть заполнены и другими значениями в зависимости от типа сертификата. Ограничение вариантов использования цифровых сертификатов снижает некоторый риск в случае компрометации сертификата. Сертификат со всеми включенными ключевыми полями будет представлять гораздо больший риск в случае компрометации.
Какие существуют типы сертификатов подписи кода?
Существуют cертификаты подпиcи кода с расширенной проверкой (EV Code Signing certificate) и стандартные сертификат подписи кода. GlobalSign предлагает оба типа сертификатов.
В чем разница между стандартной подписью кода и расширенной (EV)?
Стандартные сертификаты подписи кода проходят стандартную проверку организации. К сертификатам подпиcи кода с расширенной проверкой (EV) применяются более строгие требования проверки, установленные CA/B Forum.
Cертификаты подпиcи кода с расширенной проверкой имеют дополнительное преимущество, которое заключается в мгновенном подтверждении репутации в фильтре Microsoft Smart. Стандартные сертификаты подписи кода должны создать репутацию в программе Smart Screen, прежде чем предупреждения на смарт-экране исчезнут.
Cертификаты подпиcи кода с расширенной проверкой также требуются для доступа к порталу информационной панели Центра разработчиков оборудования Windows, через который должны быть подписаны все драйверы,работающие в режиме ядра, предназначенные для Windows 10 (1607 и более поздние версии).
Какие существуют опции заказа стандартных сертификатов и сертификатов подпиcи кода с расширенной проверкой?
Для стандартных сертификатов хранение сертификата доступно в виде файла или в HSM (хранение ключа в HSM или Azure Key Vault, предоставляется клиентом).
Для сертификатов с расширенной проверкой доступно хранение ключа на USB-токене (предоставляется GlobalSign). При желании такие сертификаты можно хранить в HSM или Azure Key Vault (предоставляется заказчиком). Более подробная информация доступна на этой странице.
Могу ли я использовать один и тот же сертификат на нескольких компьютерах?
Да, но не одновременно, так как токен единовременно может быть подключен только к одному компьютеру. Пока драйверы присутствуют на другом компьютере, токен может быть подключен для использования на данном компьютере.
Могу ли я подписать файл удаленно?
Как стандартные так и расширенные сертификаты подписи кода, недоступны через удаленный рабочий стол (RDP). USB-токен должен быть подключен к локальному компьютеру. Примечание: удаленная подпись файла будет зависеть от хранилища ключей.
Локальный USB-токен можно использовать для подписи файла на удаленной машине, но удаленный USB-токен вообще нельзя использовать для подписи.
Как включить единый вход (Single Sign On) с помощью токена?
Чтобы включить единый вход с помощью токена, откройте клиент аутентификации Safenet (SAC). Затем нажмите Настройки клиента ( Client Settings). На вкладке Дополнительно (Advanced) установите флажок Включить единый вход в систему (Enable single logon), как показано на скриншоте ниже. Нажмите кнопку Сохранить (Save), чтобы изменения вступили в силу.
Примечание: Эта функция лучше всего подходит для клиентов, которые хотят подписывать код пакетом. Таким образом, вам не придется каждый раз вводить пароль токена. Однако для обычной подписи кода мы настоятельно рекомендуем отключить эту функцию, так как это не очень хорошая практика.
Подпись кода
Предъявляют ли разные платформы разные требования к подписи кода?
Да. Требования к подписи кода будут варьироваться от платформы к платформе. Требования к подписи файлов Java JAR будут отличаться от требований к подписи переносимого исполняемого файла Windows. Существуют также отдельные требования для подписи приложений в OS X и iOS. То, как и где будут распространяться ваши приложения, также может повлиять на требования к подписи.
Каковы требования к подписи кода в Windows?
Требования к подписи кода Windows будут варьироваться в зависимости от того, на какие версии Windows вы ориентируетесь и какой тип кода вы подписываете.
Корпорация Майкрософт предъявляет разные требования к коду, который будет выполняться в пользовательском режиме, по сравнению с кодом, который будет выполняться в режиме ядра.
Код, работающий в пользовательском режиме, может использовать сертификаты, которые связываются с доверенным удостоверяющим центром, таким как GlobalSign. Для подписи в режиме ядра цепочка сертификатов должна завершаться в корневом центре сертификации Microsoft. Для достижения этой цели GlobalSign предоставляет перекрестный сертификат, который позволяет нашим сертификатам подписи кода подключаться к корневому центру сертификации Microsoft и быть доверенными для подписи в режиме ядра.
Windows (все версии) имеет дополнительное требование. Драйверы режима ядра должны быть подписаны порталом панели мониторинга Центра разработчиков оборудования Windows (Windows Hardware Developer Center Dashboard Portal), для доступа к которому требуется расширенный сертификат подписи кода.
Существуют ли какие-либо дополнительные требования или факторы, связанные с подписью кода Windows?
Другим фактором является алгоритм подписи, используемый для подписи вашего сертификата, а также алгоритм подписи, используемый для подписи кода. Для получения более подробной информации об этих требованиях ознакомьтесь с нашей статьей о поддержке алгоритма хэширования подписи кода Windows.
Нужно ли мне подписывать все библиотеки DLL, включенные в мое приложение?
Windows не проверяет подписи библиотек DLL при загрузке исполняемым файлом. Существуют исключения из этого правила, такие как библиотеки DLL, связанные с DRM, и все модули в WindowsRT/ARM.
Если эти сценарии неприменимы, нет необходимости подписывать библиотеки DLL, однако причиной подписи каждой библиотеки DLL является выполнение проверки целостности при каждом запуске вашего приложения.
Примечание: эта опция доступна только для стандартных сертификатов подписи кода, сертификаты подписи кода с расширенной проверкой только SHA-256 и это не может быть изменено. Однако вы можете выполнить двойную подпись с помощью стандартного сертификата подписи кода SHA-1 и сертификата подписи кода с расширенной проверкой SHA-256.
Какие утилиты обычно требуются для подписи файлов?
Windows:
Microsoft signtool - это стандартная утилита для подписи драйверов и исполняемых файлов. Он поставляется в комплекте как часть пакета SDK для Windows. Signtool может подписывать с помощью локального файла .pfx или использовать сертификаты в вашем хранилище сертификатов Windows. Он работает как со стандартными, так и с сертификатами подписи кода с расширенной проверкой.
Многие приложения для разработки имеют встроенную поддержку подписи кода с использованием метода .pfx или хранилища сертификатов. Например, при подписи макросов VBA через Excel приложение будет использовать сертификаты из вашего локального хранилища сертификатов. Другие приложения, такие как InstallShield, также поддерживают встроенную подпись кода.
Java:
Jarsigner - это утилита, поставляемая в комплекте с Java JDK, которую можно использовать для подписи сертификатов. Как правило, при подписи кода для Java вы создаете хранилище ключей Java (.jks) с помощью Java Keytool (также входит в комплект JDK), однако jarsigner также поддерживает файлы .pfx при условии, что вы знаете псевдоним.
Подпись кода с расширенной проверкой также работает с Jarsigner. Он немного более продвинутый и включает в себя редактирование файла конфигурации для указания слота USB-токена. Более подробная информация приведена в статье Java подписи кода с расширенной проверкой.
Apple:
Хотя как стандартные, так и сертификаты подписи кода с расширенной проверкой могут подписывать файлы .dmg и .app, локальная политика Gatekeeper по умолчанию в OS X и политика Apple App Store требуют использования сертификата, выданного Apple, привязанного к идентификатору разработчика Apple.
Сертификаты подписи кода от других центров сертификации все еще можно использовать для подписи таких вещей, как профили и политики в OS X. Утилита по умолчанию в OS X для подписи кода называется codesign. Более подробную информацию об этой утилите можно найти в руководстве по продукту.
Сканируйте конечные точки, чтобы найти все ваши сертификаты.
Войти / ЗарегистрироватьсяПроверьте установку сертификата на наличие проблем и уязвимостей SSL.