Викорістання MS Authenticode Code Sign Сертифікату для підпису програмного коду додатків програм ядра Windows в Україні

Инструкция по использованию Microsoft Authenticode

Problem

Для подписи кода сертификатами Microsoft Authenticode или Microsoft Office или VBA загрузите и инсталируйте

Основные аргументы которые поддерживает SignTool.

  1. sign : Конфигурирует инструмент для подписи нужного файла
  2. verify : проверяет цифровую подпись файлов, определяя, был ли сертификат подписи выдан доверенным органом, отозван ли сертификат подписи и, необязательно, действителен ли сертификат подписи для конкретной политики.
  3. /a: автоматически выбирает лучший сертификат подписи. Sign Tool найдет все действительные сертификаты, которые удовлетворяют всем указанным условиям, и выберет тот, который действителен в течение самого длительного времени. Если эта опция отсутствует, Sign Tool ожидает найти только один действительный сертификат подписи.
  4. /f : указывает сертификат подписи в файле. Поддерживается только формат файла обмена личной информацией (PFX)
  5. /fd : Определяет алгоритм дайджеста файла, который будет использоваться для создания подписей файла. По умолчанию это SHA1.
  6. /n : определяет общее имя сертификата. Используйте эту опцию, если у вас есть сертификаты, выданные более чем одной организации в вашем хранилище сертификатов.
  7. /p : если файл в формате PFX защищен паролем, используйте параметр /p, чтобы указать пароль
  8. /pa : указывает, что используется политика проверки подлинности по умолчанию.
  9. /s : указывает хранилище сертификатов (если сертификат импортирован в персональное хранилище, хранилище SPCCertificateStore имеет значение MY)
  10. /t : указывает, что цифровая подпись будет иметь метку времени, указанную Центром времени (TSA), указанным в URL
  11. /tr : указывает URL-адрес сервера отметок времени RFC 3161. Этот параметр нельзя использовать с параметром /t.
  12. /v : определяет подробный параметр для успешного выполнения и предупреждающих сообщений.

Шаги подписания

  1. Go to: Start > Run
  2. Type CMD > click OK
  3. At the command prompt, enter the directory where signtool exists using the CD command to change to that directory, the default directory is:
    CD C:\Program Files (x86)\Windows Kits\8.1\bin\x64

    Note: Указанный выше каталог может отличаться.
  4. Выполните одну из следующих команд подписи ниже.

Рекомендуем использовать сервис меток времени SHA256 в будущем и не использовать сервис SHA1, если не существует устаревшего ограничения платформы, которое не позволяет использовать сервис SHA2.

SignTool будет использовать SHA-1 в качестве алгоритма дайджеста подписи по умолчанию, даже если вы используете сертификат SHA-256. Пожалуйста, используйте команду, чтобы добавить соответствующий алгоритм дайджеста подписи.

The SHA-256 with RFC 3161 timestamping URL is http://sha256timestamp.ws.symantec.com/sha256/timestamp
The SHA-1 with RFC 3161 timestamping URL is http://sha1timestamp.ws.symantec.com/sha1/timestamp

Note: The SHA-1 timestamping URL is http://timestamp.verisign.com/scripts/timstamp.dll
(Имя файла timstamp.dll требуется для соответствия старому соглашению об именах MS-DOS).

Следующий синтаксис подписывает файл, используя сертификат, хранящийся в вашем личном хранилище сертификатов

SHA-1 with Timestamp

Note:Исходный URL-адрес метки времени: http://timestamp.verisign.com/scripts/timstamp.dll (однако имя файла timstamp.dll должно соответствовать старому соглашению об именах MS-DOS), однако http://timestamp.verisign.com /scripts/timestamp.dll теперь также можно использовать.

signtool.exe sign /a /s MY /n "Common name" /t http://timestamp.verisign.com/scripts/timestamp.dll /v "C:\filename.dll"

Note: Если в хранилище личных сертификатов установлено несколько сертификатов, используйте параметр / sha1, чтобы указать значение хэша сертификата подписи кода. Это будет значение отпечатка вашего сертификата подписи кода. Убедитесь, что вы удалили все пробелы для значения отпечатка. Например:

signtool.exe sign /a /s MY /sha1 sha1_thumbprint_value /n "Common name" /t http://timestamp.verisign.com/scripts/timestamp.dll /v "C:\filename.dll"

SHA-256 with RFC 3161 Timestamp:

signtool.exe sign /a /s MY /n "Common name" /fd sha256 /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /v "C:\filename.dll"

Note: Если в хранилище личных сертификатов установлено несколько сертификатов, используйте параметр / sha1, чтобы указать значение хэша сертификата подписи кода. Это будет значение отпечатка вашего сертификата подписи кода. Убедитесь, что вы удалили все пробелы для значения отпечатка. Например:

signtool.exe sign /a /s MY /sha1 sha1_thumbprint_value /n "Common name" /fd sha256 /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /v "C:\filename.dll"

Note: Если вы подписываете файл сертификатом, хранящимся в защищенном паролем файле PFX, просто используйте аргументы "/ f YourCertFileName.pfx / p pfxpassword" вместо "/ a / s MY / n" Common name " в команде.

Проверьте свою подпись одним из методов

Используя signtool

  1. Go to: Start > Run
  2. Type CMD > click OK
  3. В командной строке введите каталог, в котором существует signtool
  4. Выполните команду:
signtool.exe verify /pa /v "C:\filename.dll"

Используя Windows

  1. Щелкните правой кнопкой мыши подписанный файл
  2. Выберите Свойства
  3. Выберите вкладку Цифровые подписи . Подпись будет отображаться в разделе списка подписей .

Дополнительная информация: