Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается, как подписать драйвер с помощью аттестационного подписания.
Замечание
Подписанные драйверы, аттестованные для розничной аудитории, не размещаются на клиентский компонент Центра обновления Windows. Поддержка драйверов, подписанных аттестацией, продолжается при тестировании сценариев с помощью параметров CoDev или Test Registry Key /Surface SSRK.
Предпосылки
Прочитайте и изучите требования к драйверам с аттестационной подписью для сценариев тестирования.
Зарегистрируйтесь в программе разработчика оборудования. Если вы не зарегистрированы, выполните действия, описанные в разделе Register для программы разработчика оборудования Майкрософт Windows.
У вас должен быть сертификат подписи кода расширенной проверки (EV). Проверьте, уже ли у вашей организации есть сертификат подписи кода.
Если у вас есть существующий сертификат, сделайте его доступным.
Если у вашей организации нет сертификата, приобретите сертификат EV.
Скачайте и установите пакет средств для оценки и развертывания Windows (Windows ADK), следуя процессу, описанному в Download и установите Windows ADK.
(Необязательно) Скачайте пример драйвера Echo, который доступен в GitHub.
Создание CAB-файла
Следующая процедура создает отправку CAB-файлов с помощью примера драйвера Echo для иллюстрации действий.
Типичная отправка CAB-файла должна содержать следующие компоненты:
Сам драйвер (например, Echo.sys).
Файл INF драйвера (INF-файл), используемый панелью мониторинга для упрощения процесса подписывания.
Файл символов, используемый для отладки сведений, таких как Echo.pdb. Файл .pdb требуется для Майкрософт средств автоматического анализа сбоев.
Файлы каталога (CAT) являются обязательными и используются только для проверки компании. Майкрософт повторно создает файлы каталога и заменяет все файлы каталога, отправленные ранее.
Замечание
Каждая папка драйвера в CAB-файле должна поддерживать один и тот же набор архитектур. Например, они должны поддерживать x86, x64 или все они должны поддерживать как x86, так и x64.
Не используйте UNC-пути общего доступа при ссылке на расположения драйверов (\server\share). Необходимо использовать сопоставленную букву диска для допустимости CAB.
Чтобы создать CAB-файл, выполните следующие действия.
Соберите бинарные файлы для подписи в один каталог. В этом примере используется
C:\Echoпапка.Откройте окно командной строки с правами администратора.
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).Подготовьте входной файл для фреймворка описания устройства (DDF) в формате CAB. Для драйвера Echo в этом примере входные данные могут быть похожи на следующий код:
;*** 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Введите следующую команду, чтобы создать 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Найдите CAB-файл в подкаталоге
Disk1. Вы можете выбрать CAB-файл в проводнике, чтобы убедиться, что он содержит ожидаемые файлы.
Подписать CAB-файл с помощью сертификата EV
Следующий шаг — подписать CAB-файл с помощью вашего EV-сертификата.
Используйте процесс, рекомендуемый поставщиком сертификатов EV. Например, чтобы подписать CAB-файл с помощью метки времени SHA256, введите следующую команду:
C:\Echo> SignTool sign /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 в Центре партнеров
Подписав CAB-файл, вы будете готовы отправить файл в Центре партнеров:
Перейдите на панель мониторинга оборудования Центра партнеров и войдите с помощью учетных данных.
Выберите "Отправить новое оборудование".
В разделе "Пакеты и подписывание свойств" введите имя продукта для отправки драйвера. Используйте это имя для поиска и упорядочивания ваших заявок на драйверы.
Замечание
Имя отображается при совместном использовании драйвера с другой компанией.
Оставьте оба параметра тестовой подписи не отмеченными (не выбрано).
Для параметра "Запрошенные подписи" выберите подписи , которые необходимо включить в пакет драйвера:
Нажмите кнопку "Отправить " в нижней части страницы.
После завершения процесса подписывания загрузите подписанный драйвер с аппаратной панели мониторинга.
Проверка правильности подписи драйвера
Убедитесь, что драйвер правильно подписан, выполнив следующие действия:
После загрузки файла представления извлеките файл драйвера.
Откройте окно командной строки с правами администратора.
Введите следующую команду, чтобы убедиться, что драйвер подписан должным образом:
C:\Echo> SignTool verify Echo.SysЧтобы получить список других сведений и проверить все подписи в файле с несколькими подписями, введите следующую команду:
C:\Echo> SignTool verify /pa /ph /v /d Echo.SysЧтобы подтвердить использование расширенных ключей (EKUs) драйвера, выполните следующие действия.
Откройте обозреватель Windows и найдите двоичный файл. Щелкните правой кнопкой мыши файл и выберите Свойства.
На вкладке "Цифровые подписи" выберите указанный элемент в списке подписей.
Выберите "Сведения" и выберите "Просмотреть сертификат".
На вкладке "Сведения" выберите "Расширенное использование ключа".
Драйвер использует следующий процесс, когда он ушел в отставку драйвера:
Добавьте внедренную сигнатуру SHA-2 Майкрософт.
Если двоичные файлы драйверов подписаны клиентом с использованием собственных сертификатов, перезапишите подписи.
Создайте и подпишите новый файл каталога с помощью сертификата SHA-2 Майкрософт. Каталог заменяет любой существующий каталог, предоставленный клиентом.
Тестирование драйвера на Windows
Установите пример драйвера и проверьте его на Windows:
Откройте окно командной строки с правами администратора.
Перейдите в папку пакета драйвера и введите следующую команду.
C:\Echo> devcon install echo.inf root\ECHOУбедитесь, что процесс установки драйвера не отображает следующее сообщение об ошибке: "Windows не удается проверить издателя этого программного обеспечения драйвера".
Создание заявки с несколькими драйверами
Отправьте несколько драйверов одновременно, выполнив следующие действия:
Создайте подкаталог для каждого драйвера.
Подготовьте файл ввода DDF для CAB-файла, ссылающийся на подкаталоги. В этом примере входные данные могут быть похожи на следующий код:
;*** 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