Поделиться через


Проверка подписывания двоичного файла драйвера с помощью внедренной подписи

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

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

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

  • Тестово подпишите 64-разрядную версию двоичного файла примера Toastpkg, toaster.sys. В каталоге установки WDK этот файл находится в папке src\general\toaster\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 файле драйвера.