Release-Signing двоичного файла драйвера с помощью внедренной подписи
Подписанный файл каталога — это все, что необходимо для правильной установки и загрузки большинства пакетов драйверов. Однако для некоторых сценариев может потребоваться внедренное подписывание некоторых двоичных файлов в пакете драйвера. Внедренное подписывание означает добавление цифровой подписи в файл двоичного изображения драйвера вместо использования цифровой подписи в файле каталога. В результате двоичный образ драйвера изменяется, когда драйвер имеет встроенную подпись.
Внедренное подписывание двоичных файлов в режиме ядра (например, драйверов и связанных файлов .dll) требуется каждый раз, когда:
Двоичный файл драйвера является драйвером запуска при загрузке. В 64-разрядных версиях Windows Vista и более поздних версиях Windows требования к подписывке кода в режиме ядра утверждают, что загрузочный драйвер должен иметь внедренную сигнатуру. Это необходимо независимо от того, содержит ли пакет драйвера файл каталога с цифровой подписью.
Двоичный файл драйвера устанавливается с помощью средства , который не включает пакет драйвера и файл каталога.
Как и в случае с файлами каталога, средство SignTool используется для внедрения цифровой подписи в двоичные файлы в режиме ядра с помощью тестового сертификата. В следующей командной строке показано, как запустить SignTool для выполнения следующих действий:
Подпишите 64-разрядную версию двоичного файла примера Toastpkg, toaster.sys. В каталоге установки WDK этот файл находится в каталоге src\general\тостер\toastpkg\toastcd\amd64 .
Используйте сертификат издателя программного обеспечения (SPC), выданный коммерческим центром сертификации (ЦС).
Используйте совместимый кросс-сертификат для SPC.
Назначьте метку времени цифровой подписи с помощью центра метки времени (TSA).
Чтобы проверить и подписать файл toaster.sys , выполните следующую командную строку:
Signtool sign /v /fd sha256 /ac MSCV-VSClass3.cer /s MyPersonalStore /n contoso.com /t http://timestamp.digicert.com amd64\toaster.sys
Где:
Команда sign настраивает SignTool для подписывания указанного двоичного файла в режиме ядра ,amd64\toaster.sys.
Параметр /v включает подробные операции, в которых SignTool отображает сообщения об успешном выполнении и предупреждения.
Параметр /fd указывает алгоритм дайджеста файла, используемый для создания подписей файлов. Значение по умолчанию - SHA1.
Параметр /ac указывает имя файла, содержащего перекрестный сертификат (MSCV-VSClass3.cer), полученный из ЦС. Используйте полное имя пути, если перекрестный сертификат не находится в текущем каталоге.
Параметр /s указывает имя личного хранилища сертификатов (MyPersonalStore), содержащего SPC.
Параметр /n указывает имя сертификата (Contoso.com), установленного в указанном хранилище сертификатов.
Параметр /t задает URL-адрес TSA (
http://timestamp.digicert.com
), который будет меткой времени цифровой подписи.
Важно!
Включение метки времени предоставляет необходимые сведения для отзыва ключа в случае компрометации закрытого ключа подписывания кода подписывающего.
- amd64\toaster.sys указывает имя двоичного файла в режиме ядра, который будет иметь встроенную подпись.
Дополнительные сведения о SignTool и его аргументах командной строки см. в разделе SignTool.
Дополнительные сведения о подписи выпуска драйвера с помощью внедренной сигнатуры см. в разделах Пакеты драйверов для подписывания выпуска и Подписывание выпуска файла драйвера.