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


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.

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