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