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.