Подписывание драйвера для общедоступного выпуска
Перед выпуском пакета драйвера в общедоступную версию рекомендуется отправить пакет для сертификации. Дополнительные сведения см. в разделе "Сертификация оборудования Windows" и [службы аппаратных панелей мониторинга](.). /dashboard/index.md. Чтобы отправить пакет драйвера для сертификации, необходимо подписать пакет с помощью сертификата, полученного от доверенного центра сертификации, например VeriSign. Дополнительные сведения см. в разделе "Получение сертификата VeriSign". Вам также потребуется кросс-сертификат, предоставляемый корпорацией Майкрософт.
Предположим, вы получили пару файлов из Verisign: файл закрытого ключа (PVK) и сертификат публикации программного обеспечения (SPC). Кроме того, предположим, что у вас есть решение Microsoft Visual Studio, содержащее проект драйвера с именем MyDriver и проект пакета драйвера с именем MyDriver Package. Чтобы подписать пакет драйвера, выполните следующие действия.
Используйте средство Pvk2Pfx для создания сертификата PFX. Средство Pvk2Pfx принимает файлы PVK и SPC в качестве входных данных и создает один PFX-файл. В этом упражнении предположим, что PFX-файл называется MyCert.pfx.
Обратите внимание , что после создания PFX-файла его можно повторно использовать для других проектов драйверов и на других компьютерах разработки драйверов.
Сведения о том, какой кросс-сертификат требуется, см. в разделе "Кросс-сертификаты" для подписи кода в режиме ядра. Убедитесь, что обязательный кросс-сертификат находится в $(BASEDIR)\CrossCertificates, где $(BASEDIR) является базовым каталогом комплектов Windows (например, c:\Program Files (x86)\Windows Kits\8.0\CrossCertificates). Если необходимый кросс-сертификат отсутствует, скачайте кросс-сертификат от Майкрософт и скопируйте его в $(BASEDIR)\CrossCertificates.
В Visual Studio откройте решение, содержащее проекты пакета MyDriver и MyDriver. Если окно Обозреватель решений еще не открыто, выберите Обозреватель решений в меню "Вид". В окне Обозреватель решений выберите и удерживайте (или щелкните правой кнопкой мыши) проект пакета, пакет MyDriver и выберите "Свойства".
На страницах свойств пакета перейдите к разделу "Общие сведения о подписи >драйвера свойств > конфигурации". В раскрывающемся списке "Режим входа" выберите "Рабочий знак". Для рабочего сертификата выполните одно из следующих действий:
Введите путь к сертификату подписи (например, c:\Certs\MyCert.pfx).
Выберите "Выбрать из файла" и перейдите к сертификату подписи.
Выберите "Выбрать из магазина " и выберите сертификат, который вы ранее импортировали в хранилище сертификатов.
Примечание. Чтобы импортировать сертификат в хранилище, выберите и удерживайте (или щелкните правой кнопкой мыши) файл сертификата (PFX-файл) и выберите "Установить PFX". Следуйте инструкциям в мастере импорта сертификатов.
Обратите внимание , что если вы решили использовать другой сертификат в дальнейшем, убедитесь, что новый сертификат импортируется в хранилище сертификатов. Если выбрать "Выбрать из файла " и перейти к новому сертификату, новый сертификат будет автоматически импортирован в хранилище сертификатов. Однако если вы вручную ввели путь к новому сертификату, он не будет автоматически импортирован в хранилище сертификатов. В этом случае необходимо выбрать и сохранить (или щелкнуть правой кнопкой мыши) новый файл сертификата и выбрать пункт "Установить PFX".
На странице свойств "Подписывание > драйвера" для TimeStampServer выберите один из серверов меток времени в раскрывающемся списке.
Примечание. Использование одного из серверов меток времени в раскрывающемся списке требует подключения к Интернету при сборке пакета драйвера. Если при сборке пакета драйвера необходимо отключиться от Интернета, снимите поле TimeStampServer .
На страницах свойств пакета перейдите к разделу "Свойства > конфигурации Inf2Cat > General". В раскрывающемся списке Run Inf2Cat выберите "Да".
Закройте страницы свойств для пакета.
Выберите и удерживайте (или щелкните правой кнопкой мыши) проект драйвера, MyDriver и выберите "Свойства"
На страницах свойств драйвера перейдите к разделу "Общие сведения о подписи >драйвера свойств > конфигурации". Задайте TimeStampServer значение, которое использовалось в свойствах пакета драйвера. Задайте для режима входа значение "Рабочий знак" и задайте для рабочего сертификата то же значение, которое использовалось в свойствах пакета драйвера.
Когда вы будете готовы к сборке пакета драйвера, нажмите клавишу F5. Visual Studio автоматически подписывает пакет и файл драйвера. Если вы настроили развертывание, Visual Studio также развернет подписанный пакет драйвера на тестовом компьютере. Дополнительные сведения см. в разделе "Подготовка компьютера для развертывания и тестирования драйверов" (WDK 8.1).
Просмотр файлов пакета драйвера
После создания решения перейдите в проводник в папку, содержащую пакет драйвера. Одним из файлов в пакете является файл каталога. Файл каталога содержит цифровую подпись пакета. Пример просмотра файлов в подписанном пакете см. в статье "Написание драйвера KMDF на основе шаблона".
Получение подписи выпуска WHQL
Когда пакет драйвера проходит сертификационные тесты, он может быть подписан Лабораторией качества оборудования Windows (WHQL). Если пакет драйвера подписан WHQL, его можно распространить через программу Обновл. Windows или другие механизмы распространения, поддерживаемые корпорацией Майкрософт.
Чтобы установить в Windows 10, 8.1, 8 и 7, пакет драйвера может иметь одну подпись SHA1.
Начиная с Windows 10, также необходимо отправить новый драйвер режима ядра Windows 10 для цифровой подписи на портале панели мониторинга Центра разработчиков оборудования Windows. Как для отправки драйверов ядра, так и в пользовательском режиме должен быть действительный сертификат подписи кода расширенной проверки (EV).
** Примечание** ОТМЕНА SHA1 не применяется к драйверам.
Подписывание пакета по сравнению с подписью отдельного файла драйвера
Пакет драйвера содержит несколько файлов. Как правило, пакет драйверов содержит один или несколько файлов драйверов, информационный файл (INF-файл) и файл каталога. Файл каталога содержит сведения о других файлах пакета. При подписи файла каталога подпись в файле каталога служит подписью для всего пакета драйвера. Другими словами, подписывание файла каталога совпадает с подписью пакета драйвера.
В большинстве случаев достаточно подписать пакет драйвера и не нужно подписывать отдельные файлы драйверов. Однако иногда необходимо подписать как пакет, так и отдельные файлы драйверов. Например, файлы драйверов начального запуска должны быть подписаны отдельно. Подписывание отдельного файла драйвера называется внедрением подписи в файл драйвера.
Предположим, у вас есть решение Visual Studio, содержащее проект драйвера с именем MyDriver и проект пакета драйвера с именем Пакета MyDriver. Visual Studio предоставляет два набора страниц свойств: один для моего драйвера и один для пакета драйвера. Чтобы подписать пакет драйвера, задайте свойства подписи драйвера пакета моего драйвера. Чтобы внедрить подпись в отдельный файл драйвера, задайте свойства подписи драйвера my Driver.
При настройке свойств пакета драйвера для подписывания рабочей среды не забудьте соответствующим образом настроить свойства подписывания отдельных файлов драйверов. Отключите подписывание отдельных файлов драйверов или задайте для отдельных файлов драйверов тот же сертификат, который вы указали для пакета.
Обратите внимание , что хэш (также называемый отпечатком) сертификата, откройте окно командной строки и перейдите в каталог, содержащий сертификат. Введите команду certutil -dump CertName.pfx, где CertName.pfx — это имя сертификата.
Связанные темы
- Изменения в подписывание драйвера в Windows 10
- Доступность поддержки подписывания кода SHA-2 для Windows 7 и Windows Server 2008 R2
- Подписывание драйвера
- Сертификация оборудования Windows
- Службы аппаратной панели мониторинга
- Требования к подписи драйверов для Windows
- Кросс-сертификаты для подписи кода в режиме ядра
- Пошаговое руководство по подписи кода в режиме ядра
- Подписи драйверов
- Установка драйвера начальной загрузки
- Средства для подписывания драйверов