Знак аттестации Windows 10+ драйверы

В этой статье описывается, как подписать драйвер с помощью подписи аттестации. Подробные сведения и требования к подписи аттестации см. в разделе Windows 10 драйверы, подписанные аттестацией.

Важно!

С 1 марта 2023 г. драйверы, подписанные аттестацией, предназначенные для розничной аудитории, больше не публикуются на клиентский компонент Центра обновления Windows. Драйверы, подписанные аттестацией, для сценариев тестирования по-прежнему поддерживаются при выборе параметров CoDev или Test Registry Key /Surface SSRK .

Предварительные требования

Создание CAB-файла

В этом разделе мы рассмотрим процесс создания отправки CAB-файлов. Мы будем использовать пример драйвера эха , чтобы проиллюстрировать этот процесс.

Типичная отправка CAB-файла должна содержать следующее:

  • Сам драйвер, например Echo.sys

  • INF-файл драйвера, используемый панелью мониторинга для упрощения процесса подписывания.

  • Файл символов, используемый для отладки сведений. Например, Echo.pdb. PDB-файл необходим для средств автоматического анализа сбоев Майкрософт.

  • CAT-файлы каталога являются обязательными и используются только для проверки компании. Корпорация Майкрософт повторно создает файлы каталога и заменяет все отправленные файлы каталога.

Примечание

Каждая папка драйвера в CAB-файле должна поддерживать один и тот же набор архитектур. Например, они должны поддерживать x86, x64 или все они должны поддерживать как x86, так и x64.

Не используйте UNC-пути к общей папке при ссылке на расположения драйверов (\\\server\share). Чтобы cab-файл был допустимым, необходимо использовать сопоставленную букву диска.

Чтобы создать CAB-файл, выполните следующие действия.

  1. Соберите двоичные файлы для входа в один каталог. В этом примере мы будем использовать C:\\Echo.

  2. Откройте окно командной строки от имени администратора.

  3. Введите MakeCab /? , чтобы просмотреть параметры MakeCab:

    C:\Echo> MakeCab /?
    Cabinet Maker - Lossless Data Compression Tool
    
    MAKECAB [/V[n]] [/D var=value ...] [/L dir] source [destination]
    MAKECAB [/V[n]] [/D var=value ...] /F directive_file [...]
    
    source         File to compress.
    destination    File name to give compressed file.  If omitted, the
                   last character of the source file name is replaced
                   with an underscore (_) and used as the destination.
    /F directives  A file with MakeCAB directives (may be repeated). Refer to
                   Microsoft Cabinet SDK for information on directive_file.
    /D var=value   Defines variable with specified value.
    /L dir         Location to place destination (default is current directory).
    /V[n]          Verbosity level (1..3).
    
  4. Подготовка входного файла DDF cab-файла. Для нашего эхо-драйвера это может выглядеть примерно так.

    ;*** Echo.ddf example
    ;
    .OPTION EXPLICIT     ; Generate errors
    .Set CabinetFileCountThreshold=0
    .Set FolderFileCountThreshold=0
    .Set FolderSizeThreshold=0
    .Set MaxCabinetSize=0
    .Set MaxDiskFileCount=0
    .Set MaxDiskSize=0
    .Set CompressionType=MSZIP
    .Set Cabinet=on
    .Set Compress=on
    ;Specify file name for new cab file
    .Set CabinetNameTemplate=Echo.cab
    ; Specify the subdirectory for the files.  
    ; Your cab file should not have files at the root level,
    ; and each driver package must be in a separate subfolder.
    .Set DestinationDir=Echo
    ;Specify files to be included in cab file
    C:\Echo\Echo.Inf
    C:\Echo\Echo.Sys
    
  5. Введите следующую команду, чтобы создать CAB-файл.

    C:\Echo> MakeCab /f "C:\Echo\Echo.ddf
    

    В выходных данных MakeCab должно отображаться количество файлов в созданном CAB-файле. В этом случае должно быть два файла.

    C:\Echo> MakeCab /f Echo.ddf
    Cabinet Maker - Lossless Data Compression Tool
    
    17,682 bytes in 2 files
    Total files:              2
    Bytes before:        17,682
    Bytes after:          7,374
    After/Before:            41.70% compression
    Time:                     0.20 seconds ( 0 hr  0 min  0.20 sec)
    Throughput:              86.77 Kb/second
    
  6. Найдите CAB-файл в подкаталоге Disk1 . Вы можете выбрать CAB-файл в проводник, чтобы убедиться, что он содержит ожидаемые файлы.

Подпишите CAB-файл с помощью сертификата ev

  1. Используйте процесс, рекомендованный поставщиком сертификата EV, чтобы подписать CAB-файл с помощью сертификата EV. Например, чтобы подписать CAB-файл с помощью сертификата, алгоритма дайджеста или метки времени SHA256, введите следующую команду:

    C:\Echo> SignTool sign /ac "C:\MyEVCert.cer" /s MY /n "Company Name" /fd sha256 /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td sha256 /v "C:\Echo\Disk1\Echo.cab"
    

    Важно!

    Не забудьте использовать лучшие отраслевые методики для управления безопасностью процесса подписывания кода EV.

Отправка CAB-файла с подписью EV с помощью Центра партнеров

  1. Перейдите на панель мониторинга оборудования Центра партнеров и выполните вход, используя свои учетные данные.

  2. Выберите Отправить новое оборудование.

    Снимок экрана: список отправленного оборудования.

  3. В разделе Свойства пакетов и подписывания введите имя продукта для отправки драйвера. Это имя можно использовать для поиска и упорядочения отправок драйверов.

    Примечание

    Если вы поделились драйвером с другой компанией, они увидят это имя.

  4. Не устанавливайте флажки для обоих параметров подписывания тестов.

  5. В поле Запрошенные подписи выберите подписи, которые нужно включить в пакет драйвера.

    Снимок экрана: параметры отправки драйвера echo для подписи.

  6. Перейдите вниз по странице и нажмите кнопку Отправить.

  7. После завершения процесса подписывания скачайте подписанный драйвер с аппаратной панели мониторинга.

Проверка правильности подписи драйвера

Выполните следующие действия, чтобы убедиться, что драйвер был правильно подписан.

  1. Загрузив файл отправки, извлеките файл драйвера.

  2. Откройте окно командной строки от имени администратора.

  3. Введите следующую команду, чтобы убедиться, что драйвер подписан должным образом.

    C:\Echo> SignTool verify Echo.Sys
    
  4. Чтобы получить дополнительные сведения и проверить все подписи в файле с несколькими подписями, введите следующую команду:

     C:\Echo> SignTool verify /pa /ph /v /d Echo.Sys
    
  5. Чтобы подтвердить EKU драйвера, выполните следующие действия.

    1. Откройте windows Обозреватель и найдите двоичный файл. Выберите и удерживайте (или щелкните правой кнопкой мыши) файл и выберите Пункт Свойства.

    2. На вкладке Цифровые подписи выберите элемент в списке Подпись.

    3. Выберите Сведения, а затем — Просмотреть сертификат.

    4. На вкладке Сведения выберите Расширенное использование ключа.

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

  • Добавляет внедренную подпись Microsoft SHA2.
  • Если двоичные файлы драйверов внедрены, подписанные клиентом с помощью собственных сертификатов, эти подписи не будут перезаписаны.
  • Создает и подписывает новый файл каталога с помощью сертификата Microsoft SHA2. Этот каталог заменяет любой существующий каталог, предоставленный клиентом.

Тестирование драйвера на Windows 10

Используйте следующие инструкции, чтобы установить пример драйвера.

  1. Откройте окно командной строки от имени администратора. Перейдите в папку пакета драйверов и введите следующую команду.

    C:\Echo> devcon install echo.inf root\ECHO
    
  2. Убедитесь, что в процессе установки драйвера не отображается сообщение "Windows не может проверить издателя этого драйвера". Диалоговое окно "Безопасность Windows".

Создание отправки с несколькими драйверами

Чтобы отправить несколько драйверов одновременно, выполните следующие действия:

  1. Создайте подкаталог для каждого драйвера, как показано ниже.

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

  2. Подготовьте входной файл CAB-файла DDF, который ссылается на подкаталоги. Оно должно выглядеть примерно следующим образом:

    ;*** Submission.ddf multiple driver example
    ;
    .OPTION EXPLICIT     ; Generate errors
    .Set CabinetFileCountThreshold=0
    .Set FolderFileCountThreshold=0
    .Set FolderSizeThreshold=0
    .Set MaxCabinetSize=0
    .Set MaxDiskFileCount=0
    .Set MaxDiskSize=0
    .Set CompressionType=MSZIP
    .Set Cabinet=on
    .Set Compress=on
    ;Specify file name for new cab file
    .Set CabinetNameTemplate=Echo.cab
    ;Specify files to be included in cab file
    ; First Driver
    .Set DestinationDir=DriverPackage1
    C:\DriverFiles\DriverPackage1\Driver1.sys
    C:\DriverFiles\DriverPackage1\Driver1.inf
    ; Second driver
    .Set DestinationDir=DriverPackage2
    C:\DriverFiles\DriverPackage2\Driver2.sys
    C:\DriverFiles\DriverPackage2\Driver2.inf