Test-Signing двоичного файла драйвера с помощью внедренной подписи

Подписанный файл каталога — это все, что необходимо для правильной установки и загрузки большинства пакетов драйверов. Однако для некоторых сценариев может потребоваться внедренное подписывание некоторых двоичных файлов в пакете драйвера. Внедренное подписывание означает добавление цифровой подписи в файл двоичного изображения драйвера вместо использования цифровой подписи в файле каталога. В результате двоичный образ драйвера изменяется, когда драйвер имеет встроенную подпись.

Внедренное подписывание двоичных файлов в режиме ядра требуется всякий раз, когда драйвер является драйвером запуска загрузки. В 64-разрядных версиях Windows Vista и более поздних версиях Windows требования к подписывке кода в режиме ядра утверждают, что загрузочный драйвер должен иметь внедренную сигнатуру. Обратите внимание, что это дополнение к файлу каталога пакета драйверов, который должен соответствовать требованиям к подписи для установки устройства PnP.

Как и в случае с файлами каталога, SignTool используется для внедрения цифровой подписи в двоичные файлы в режиме ядра с помощью тестового сертификата. В следующей командной строке показано, как запустить SignTool для выполнения следующих действий:

  • Подпишите 64-разрядную версию двоичного файла примера Toastpkg, toaster.sys. В каталоге установки WDK этот файл находится в каталоге src\general\тостер\toastpkg\toastcd\amd64 .

  • Используйте сертификат Contoso.com(Test) из PrivateCertStore для тестовой подписи. Дополнительные сведения о создании этого сертификата см. в разделе Создание тестовых сертификатов.

  • Метка времени цифровой подписи через центр метки времени (TSA).

Чтобы проверить и подписать файл toaster.sys , выполните следующую командную строку:

Signtool sign /v /fd sha256 /s PrivateCertStore /n Contoso.com(Test) /t http://timestamp.digicert.com amd64\toaster.sys

Где:

  • Команда sign настраивает SignTool для подписывания указанного файла каталога, tstamd64.cat.

  • Параметр /v включает подробные операции, в которых SignTool отображает сообщения об успешном выполнении и предупреждения.

  • Параметр /fd указывает алгоритм дайджеста файла, используемый для создания подписей файлов. Значение по умолчанию - SHA1.

  • Параметр /s указывает имя хранилища сертификатов (PrivateCertStore), содержащего тестовый сертификат.

  • Параметр /n указывает имя сертификата (Contoso.com(Test)), установленного в указанном хранилище сертификатов.

  • Параметр /t указывает URL-адрес TSA (http://timestamp.digicert.com), который будет меткой времени цифровой подписи.

Важно!

Включение метки времени предоставляет необходимые сведения для отзыва ключа в случае компрометации закрытого ключа подписывания кода подписывающего.

  • amd64\toaster.sys указывает имя двоичного файла в режиме ядра, который будет иметь встроенную подпись.

Дополнительные сведения о SignTool и его аргументах командной строки см. в разделе SignTool.

Дополнительные сведения о том, как проверить и подписать драйвер с помощью внедренной сигнатуры, см. в разделе Test-Signing a Driver File.