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


Подписывание драйверов WBDI

Конкретные требования к подписи кода для драйверов WBDI зависят от того, реализуется ли драйвер WBDI с помощью платформы драйверов пользовательского режима (UMDF), платформы драйверов в режиме ядра (KMDF) или модели драйвера Windows (WDM). Помимо файла каталога, который должен быть подписан, некоторые библиотеки DLL должны быть подписаны с помощью определенного атрибута. Дополнительные сведения см. в разделе Шаги по отправке драйвера отпечатков пальцев.

Все пакеты драйверов WBDI должны быть подписаны через портал WHQL, чтобы убедиться, что они не были изменены. Такая сигнатура требуется независимо от того, работает ли драйвер в режиме ядра или в пользовательском режиме. Подписывать каждый отдельный файл в пакете не требуется. Вместо этого вы создаете файл каталога, содержащий хэш-значение для каждого файла в пакете, и подписываете файл каталога. Директива CatalogFile в INF указывает имя этого файла. Для большинства драйверов WBDI подпись файла каталога является единственным нужным типом подписи.

Для некоторых драйверов WBDI требуется несколько сигнатур. Драйвер запуска в режиме ядра, который является драйвером, который загружается загрузчиком Windows во время процесса загрузки, требует дополнительной встроенной подписи на платформах x86 и x64. Таким образом, драйвер запуска загрузки обычно должен быть подписан двумя способами:

  • Пакет драйвера запуска загрузки, установленный с помощью INF, должен иметь подписанный файл каталога, как и другие типы драйверов. Файл каталога используется для проверки подписи во время установки.
  • Двоичный файл драйвера запуска загрузки должен быть внедрен с подписью с помощью SPC с соответствующим перекрестным сертификатом. Перекрестный сертификат выдается ЦС (называемым доверенным корнем), который подписывает открытый ключ для корневого сертификата другого ЦС, что создает цепочку доверия от одного доверенного корневого ЦС к нескольким другим ЦС.

Как правило, после создания и подписания файла каталога пакета встраивается подпись двоичного файла драйвера.

Драйверы запуска загрузки имеют следующие характеристики:

  • В INF-идентификаторе драйвера тип запуска указывается как "Start=0".
  • Служба ядра настраивается с типом serviceType драйвера ядра или драйвера файловой системы, для параметра StartMode задано значение "boot".

В этом разделе не рассматриваются подробные сведения о требованиях или процедурах подписывания драйверов. Общие сведения о требованиях к подписи для драйверов см. в разделе Подписывание драйверов.