Как подписать драйвер в Windows x64 10/8.1/7 с помощью самоподписанного сертификата | Windows для системных администраторов

Как подписать драйвер в Windows x64 10/8.1/7 с помощью самоподписанного сертификата | Windows для системных администраторов Электронная цифровая подпись

Что такое подписанный драйвер?

Подписанный драйвер — это драйвер устройства c цифровой подписью. Цифровая подпись — это электронная метка защиты, указывающая издателя программного обеспечения и изменения первоначального содержимого программного пакета драйвера. Если драйвер подписан издателем с подтверждением достоверности подписи центром сертификации, можно быть уверенным, что драйвер выпущен этим издателем и не подвергался изменениям.
Windows выдаст одно из следующих предупреждений: драйвер не подписан, достоверность подписи издателя не подтверждена центром сертификации, драйвер изменен с момента выпуска.

Коротко говоря если драйвер не был подписан компанией MicroSoft, то такой драйвер не будет иметь цифровой подписи драйверов для Windows. С таким драйвером и возникают проблемы при установке.

В данной статье рассмотрим  как отключить проверку цифровой подписи драйверов в Windows 10, Windows 8 и 8.1, а также Windows 7.

https://www.youtube.com/watch?v=6IH0JpSWDTk

Содержание:

  1. Отключение проверки подписи драйверов Windows 10
  2. Отключение проверки подписи драйверов Windows 8.1 / 8
  3. Отключение проверки подписи драйверов Windows 7

Генерируем cat файл драйвера

Создадим каталог C:DriverCertxg и скопируем в него все файлы из каталога, в который первоначально был распакован архив с драйвером (c:toolsdrv1). Убедить что среди файлов имеются файлы с расширением .sys и .inf (в нашем случае xg20grp.sys и xg20gr).

Перейдем в каталог:

cd C:WinDDK7600.16385.1binselfsign

На основе inf файла с помощью утилиты inf2cat.exe (входит в состав Windows Driver Kit -WDK) сгенерируем для нашей платформы cat файл (содержит информацию о всех файлах пакета драйвера).

inf2cat.exe /driver:”C:DriverCertxg” /os:7_X64 /verbose

Чтобы убедитесь, что процедура прошла корректно, проверьте, что в логе присутствуют сообщения:

Signability test complete.иCatalog generation complete.

После выполнения команды в каталоге драйвера должен обновиться файл g20gr.cat

Дебют или этап подготовки

Очевидным предварительным условием для сертификации является наличие следующего:

Файлы .sys и .cat должны быть подписаны EV сертификатом. Для этого используется утилита singtool из Windows SDK.

В нашем случае файлы .inf, .sys, .map, .pdb и .cat представлены в двух экземплярах для архитектур x86 и x64 соответственно.

Первым шагом к сертификации драйвера является прохождение серии тестов на совместимость оборудования для Windows. Для этих целей Microsoft предоставляет специализированный фреймворк Windows Hardware Lab Kit , ранее называвшийся Windows Hardware Certification Kit (HCK).

А еще ранее этот же фреймворк носил имя Windows Hardware Logo Kit, что доставляет неудобство в поиске информации, так как по запросу HLK нередко выпадает устаревшая. С кратким обзором концепции тестирования можно ознакомиться по ссылке .

Отключение проверки цифровой подписи драйверов windows 8 и 8.1

Аналогичным способом можно произвести загрузку Windows 8 и 8.1 без обязательной проверки цифровых подписей драйверов:

  1. Подвести курсор мыши к правому краю экрана;
  2. Выбрать опцию «Изменение параметров компьютера»;
  3. Нажать «Обновление и восстановление»;
  4. Перейти в «Восстановление»;
  5. Нажать «Перезагрузить сейчас»;
  6. В процессе перезагрузки выбрать раздел «Диагностика»;
  7. Затем — «Дополнительные параметры»;
  8. Выбрать «Параметры загрузки»;
  9. Нажать кнопку «Перезагрузить»;
  10. После повторной перезагрузки необходимо нажать F7, или другую клавишу F*, которая соответствует номеру с пунктом «Отключить обязательную проверку подписи драйверов».
    Отключить обязательную проверку подписи драйверов Windows 10

Подготовка и запуск проекта

На странице Projects выбираем Create project и задаем проекту произвольное имя. Активируем проект двойным кликом по нему. Каждый проект может тестироваться только на машинах одной битности.

На странице Selection выбираем пул машин, на котором будет производиться тестирование. В списке отобразятся устройства, подключенные к машинам из этого пула. Отмечаем устройства, которые будут тестироваться.

Переходим на страницу Tests. Перед запуском тестов применяем плейлист нужной версии, распакованный из архива ранее. Отмечаем тесты, которые будут запущены для устройства. Следует обратить внимание, что некоторые тесты проходят в ручном режиме (обозначены иконкой человечка в столбце Type) и требуют некоторого пользовательского ввода на стороне клиентской машины. Их лучше отложить на потом и сначала отметить все автоматические.

Читайте также:  Русское лото - проверить билет по номеру, архивы тиражей.

Несмотря на всю подготовительную работу, некоторые тесты все же могут завершаться с ошибками, несвязанными напрямую с качеством тестируемого драйвера. Некоторые из них успешно проходятся со второй попытки. Успех выполнения других, в том числе весьма продолжительные тесты Concurrent Hardware And Operating System , по результатам наблюдений может зависеть от аппаратной начинки клиента. Логи результатов тестирования – основной помощник выявления проблем. Посмотреть их можно на странице Results.

Финальный пакет – это файл с расширением .hlkx (zip-архив), который содержит результаты тестирования. Именно его нужно сабмитить в Microsoft через Partner Dashboard для получения цифровой подписи Microsoft Windows Hardware Compatibility Publisher.

При его создании необходимо указать:

  • Путь к директории с драйвером (в директории должны находиться inf/sys/cat файлы);
  • Путь к директории с отладочными символами (pdb/map).

После нажатия на “Create Package” потребуется отметить:

  • Целевые ОС;
  • Locales (отмечаем English).

Подготовка парка машин

Для серверной части HLK ограничением является необходимость развертывания на Windows Server 2021, Windows Server 2021 R2 или Windows Server 2021.

Начиная с релиза 1709 HLK поддерживает тестирование клиентов только соответствующей версии Windows 10 , предыдущие редакции кита предусматривали возможность работы с некоторым подмножеством обновлений этой операционной системы.

Табличка поддерживаемых версий:

HLK versionSupported versionAccepted device/componentAccepted system
1803 1803 – Client 1803 Client Device/Component 1803 Client Systems
1709 1709 – Client 1709 Client Device/Component 1709 Client Systems
1703 1703 – Client 1703 Client Device/Component1703 Client Systems
1607 – Client 1607 Client Device/Component
1607 1607 – Client 1607 Client Device/Component1607 Server Systems
1607 – Server, Azure Stack, SDDC 1607 Server Device/Component
1511 – Client 1511 Client Device/Component

Для организации тестирования нам понадобятся одна управляющая машина с серверной версией Windows и две тестовые машины с 32 и 64-битными версиями Windows 10 в одной сети. При наличии нескольких доступных клиентов одной битности их можно использовать совместно, проводя тестирование параллельно.

Альтернативной конфигурацией, в случае тестирования драйвера для двух архитектур, может быть схема с одним контроллером и одним клиентом (предполагается смена ОС клиента между тестовыми сессиями). Однако в этом случае возможны проблемы с настройкой пулов тестовых машин и потерей результатов тестирования. Кто виноват и что делать в такой ситуации будет рассказано ниже.

Подготовка пула тестовых машин

Пришло время подготовить пулы наших клиентских машин. Они нам понадобятся на этапе создания проекта. На вкладке Configuration все машины отобразятся в Default Pool. Нужно создать свои пулы (кнопка Create Machine Pool) и перетащить в них машины из пула по-умолчанию.

Важно: в одном пуле должны находиться машины с одинаковой битностью.

Поле Status у каждой машины будет Not Ready – нужно щелкнуть по ним правой кнопкой и изменить статус на Ready.

Важно: иногда студия выдает ошибку на попытку изменить статус машины.

Кроме прочего, такая ситуация появляется, когда меняется ОС на тестовом клиенте, например, в схеме с одним контроллером и одним клиентом. Решается это удалением машины из пула (пункт Delete Machine в контекстном меню), что заставляет контроллер создать новый инстанс клиента с правильными характеристиками в Defaul Pool.

Внимание, удаление машины приводит к удалению всех ассоциированных с ней результатов тестирования. Во избежание напрасной потери результатов нескольких часов работы, перед удалением машины следует подготовить финальный hlkx пакет, включающий все пройденные тесты. О подготовке файла hlkx будет рассказано далее.

Пролог

Начиная с версии Windows 10 1607 корпорация Microsoft ввела обязательную сертификацию сторонних драйверов по программе Windows Hardware Compatibility Program (новость об этом в блоге msdn , пост на хабре ). Работает это нововведение на чистых установках Windows 10 соответствующей версии с включенным режимом Secure Boot .

Читайте также:  Как подписать документ электронной подписью в 2019 году

Несоблюдение этого условия в лучшем случае (при отключенном Secure Boot) приведет к появлению предупреждения:

В худшем – к запрету на установку драйвера:

Несмотря на наличие официальной документации по прохождению процедуры сертификации, этот процесс может быть сопровожден рядом неочевидных на первый взгляд сложностей. Ниже приводится поэтапный разбор всех подводных камней на примере прохождения сертификации драйвера веб-камеры для 32 и 64-битной версий Windows 10 с обновлением 1803.

Краткий обзор всей последовательности действий:

  • Подготовка парка машин
  • Развертывание тестового фреймворка Windows Hardware Lab Kit
  • Создание и конфигурация тестового проекта
  • Прохождение списка тестов
  • Подготовка финального пакета с результатами
  • Обработка результатов на серверах Microsoft и получение подписи

Создаем самоподписанный сертификат и закрытый ключ

Создадим в корне диска каталог C:DriverCert.

Откроем командную строку и перейдем в следующий каталог:

cd C:Program Files (x86)Microsoft SDKsWindowsv7.1bin

Создадим самоподписанный сертификат и закрытый ключ, выданный, допустим, для компании Winitpro:

makecert -r -sv C:DriverCertmyDrivers.pvk -n CN=”Winitpro” C:DriverCertMyDrivers.cer

Во время создания утилита попросит указать пароль для ключа, пусть это будет P@ss0wrd.

На основе созданного сертификата создадим публичный ключ для сертификата издателя ПО (PKCS).

cert2spc C:DriverCertmyDrivers.cer C:DriverCertmyDrivers.spc

Объединим публичный ключ (.spc) и персональный ключ (.pvk) в одном файле сертификата формата Personal Information Exchange (.pfx).

pvk2pfx -pvk C:DriverCertmyDrivers.pvk -pi P@ss0wrd -spc C:DriverCertmyDrivers.spc -pfx C:DriverCertmyDrivers.pfx -po P@ss0wrd

Совет. Несмотря на то, что сертификат имеет ограниченный срок действия, истечение срока действия сертификата CodeSigning означает, что вы не сможете создавать новые сигнатуры. Срок действия драйвера, уже подписанного этим сертификатом, бессрочен (либо старые сигнатуры действуют в течении указанного timestamp).

Способ 1: особые параметры загрузки windows

Чаще всего необходимость отключения проверки цифровой подписи возникает единожды. В этой ситуации логичнее всего воспользоваться предоставлением временного разрешения. Оно будет работать один раз: до последующей перезагрузки компьютера. За этот промежуток времени вы можете инсталлировать любое количество непроверенных драйверов, перезапустить ПК, и проверка сертификата будет работать как и прежде, защищая операционную систему.

Первым делом запустите ОС в особом режиме. Пользователям Windows 10 потребуется выполнить следующие шаги:

  1. Запустите «Параметры», вызвав «Пуск».

    Запуск Параметров Windows 10 через Пуск

    Это же можно сделать, вызвав альтернативное меню ПКМ.

  2. Запуск Параметров Windows 10 через альтернативное меню Пуска

  3. Откройте «Обновление и безопасность».
  4. Обновление и безопасность в Windows 10

  5. В меню слева перейдите в «Восстановление», а справа, под «Особые варианты загрузки», кликните «Перезагрузить сейчас».
  6. Перезапуск Windows 10 с особыми параметрами

  7. Дождитесь старта Виндовс и выберите раздел «Поиск и устранение неисправностей».
  8. Выбор действия при загрузке Windows 10 с особыми параметрами

  9. В «Диагностика» перейдите в «Дополнительные параметры».
  10. Диагностика Windows 10

  11. Здесь откройте «Параметры загрузки».
  12. Дополнительные параметры Windows 10

  13. Ознакомьтесь с тем, что применится при следующем старте системы, и нажмите «Перезагрузить».
  14. Параметры загрузки Windows 10

  15. В этом режиме будет отключено управление мышью, а также изменится разрешение экрана до низкого. Пункт, отвечающий за отключение проверки подписи драйверов, седьмой в списке. Соответственно, нажмите на клавиатуре F7.
  16. Загрузка Windows 10 в режиме отключенной обязательной проверки подписи драйверов

  17. Начнется перезапуск, по завершении которого вы можете выполнить инсталляцию.

Последовательность действий для пользователей Windows 7 другая:

  1. Перезагрузите компьютер обычным способом.
  2. После начала запуска системы нажмите F8 (чтобы не пропустить момент, быстро жмите клавишу сразу же после того, как появится приветственный логотип материнской платы).
  3. Стрелками выберите «Отключение обязательной проверки подписи драйверов».
  4. Загрузка Windows 7 в режиме отключенной обязательной проверки подписи драйверов

  5. Остается нажать Enter и дождаться перезапуска системы.

Теперь можно заняться инсталляцией программного обеспечения.

После следующего включения компьютера будет произведен обычный запуск системы, и она вновь начнет проверять подпись у драйверов, которые вы захотите установить. Обратите внимание, что эта служба не занимается проверкой установленных драйверов, для этого необходимо запускать отдельное приложение, которое по понятным причинам нас не интересует.

Способ 2: «командная строка»

Отключить верификацию цифровой подписи можно при помощи введения команд в «Командную строку» операционной системы.

  1. Жмите «Пуск». Переходите во «Все программы».
  2. Переход в раздел все программы с помощью меню Пуск в Windows 7

  3. Щелкайте «Стандартные».
  4. Переход в папку Стандартные из раздела все программы с помощью меню Пуск в Windows 7

  5. В раскрывшейся директории ищите «Командная строка». Произведя нажатие по указанному элементу правой кнопкой мышки (ПКМ), выбирайте позицию «Запуск от имени администратора» в отобразившемся перечне.
  6. Запуск Командной строки от имени администратора через контекстное меню в папку Стандартные из раздела все программы с помощью меню Пуск в Windows 7

  7. Активируется «Командная строка», в которую нужно ввести следующее:

    bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS

    Щелкайте Enter.

  8. Ввод первой команды для отключение проверки подписи драйверов в интерфейсе Командной строки в Windows 7

  9. После появления информации, говорящей об удачном завершении задачи, вбивайте такое выражение:

    bcdedit.exe -set TESTSIGNING ON

    Снова применяйте Enter.

  10. Ввод второй команды для отключение проверки подписи драйверов в интерфейсе Командной строки в Windows 7

  11. Верификация подписи теперь деактивирована.
  12. Проверка подписи драйверов отключена путем ввода двух команд в интерфейсе Командной строки в Windows 7

  13. Для её повторной активации вбейте:

    bcdedit -set loadoptions ENABLE_INTEGRITY_CHECKS

    Применяйте нажатием Enter.

  14. Ввод первой команды для включения проверки подписи драйверов в интерфейсе Командной строки в Windows 7

  15. Затем вбейте:

    bcdedit -set TESTSIGNING ON

    Снова нажимайте Enter.

  16. Ввод второй команды для включения проверки подписи драйверов в интерфейсе Командной строки в Windows 7

  17. Верификация подписи снова активирована.
Читайте также:  Переход ЭЦП на ГОСТ 2012 в 2020 и 2021 году

Существует ещё один вариант действий через «Командную строку». В отличие от предыдущего, он требует всего лишь введения одной команды.

  1. Вводите:

    bcdedit.exe /set nointegritychecks ON

    Жмите Enter.

  2. Ввод команды для отключения проверки подписи драйверов в интерфейсе Командной строки в Windows 7

  3. Проверка деактивирована. Но после инсталляции необходимого драйвера все-таки рекомендуем снова активировать верификацию. В «Командной строке» вбейте:

    bcdedit.exe /set nointegritychecks ON OFF

  4. Ввод команды для включения проверки подписи драйверов в интерфейсе Командной строки в Windows 7

  5. Верификация подписи опять активирована.

Урок: Активация «Командной строки» в Виндовс 7

Способ 3: «редактор групповой политики»

Другой вариант деактивации верификации подписи осуществляется методом манипуляций в «Редакторе групповой политики». Правда, он доступен только в редакциях «Корпоративная», «Профессиональная» и «Максимальная», а вот для редакций «Домашняя базовая», «Начальная» и «Домашняя расширенная» этот алгоритм выполнения поставленной задачи не подойдет, так как в них отсутствует необходимая функциональность.

  1. Для активации нужного нам инструмента воспользуемся оболочкой «Выполнить». Нажмите Win R. В поле отобразившейся формы введите:

    gpedit.msc

    Жмите «OK».

  2. Переход в редактор локальной групповой политики путем ввода команды в окно Выполнить в Windows 7

  3. Запускается необходимый для наших целей инструмент. В центральной части открывшегося окна щелкайте по позиции «Конфигурация пользователя».
  4. Переход в раздел Конфигурация пользователя в окне редактора локальной групповой политики в Windows 7

  5. Далее жмите «Административные шаблоны».
  6. Переход в папку Административные шаблоны из раздела Конфигурация пользователя в окне редактора локальной групповой политики в Windows 7

  7. Теперь войдите в директорию «Система».
  8. Переход в каталог Система из папки Административные шаблоны в окне редактора локальной групповой политики в Windows 7

  9. Затем откройте объект «Установка драйвера».
  10. Переход в папку Установка драйвера из каталога Система в окне редактора локальной групповой политики в Windows 7

  11. Теперь щелкайте по названию «Цифровая подпись драйверов…».
  12. Открытие окна Цифровая подпись драйверов устройств из папки Установка драйвера в окне редактора локальной групповой политики в Windows 7

  13. Открывается окно настройки вышеуказанного компонента. Выставьте радиокнопку в положение «Отключить», а затем жмите «Применить» и «OK».
  14. Отключение проверки подписи драйверов в окне Цифровая подпись драйверов устройств в редакторе локальной групповой политики в Windows 7

  15. Теперь закрывайте все открытые окна и программы, далее щелкайте «Пуск». Кликните по треугольной фигуре справа от кнопки «Завершение работы». Выбирайте «Перезагрузка».
  16. Перезагрузка компьютера с помощью кнопки Пуск в Windows 7

  17. Компьютер будет перезапущен, после чего верификация подписи деактивируется.

Способ 3: редактор локальной групповой политики

Еще один вариант решения поставленной задачи — редактирование политики компьютера. Им могут воспользоваться обладатели Windows версии выше Home (Домашней).

  1. Зажмите Win R и впишите gpedit.msc. Подтвердите ввод кнопкой «ОК» либо клавишей Enter.
  2. Запуск Группового редактора локальной политики через окно Выполнить

  3. Используя левое меню, разверните поочередно папки, нажимая на стрелочку перед их названием: «Конфигурация пользователя» > «Административные шаблоны» > «Система» > «Установка драйвера».
  4. Путь к редактированию драйвера в редакторе локальной групповой политики

  5. Справа в окне дважды ЛКМ кликните по «Цифровая подпись драйверов устройств».
  6. Параметр Цифровая подпись драйверов устройств в редакторе локальной групповой политики

  7. Здесь задайте значение «Отключено», означающее, что осуществляться сканирование как таковое не будет.
  8. Отключение параметра Цифровая подпись драйверов устройств в редакторе локальной групповой политики

  9. Сохраните настройки через «ОК» и перезагрузите компьютер.

Запустите драйвер, который не удавалось установить, и повторите попытку.

Установка драйвера, заверенного самоподписанным сертификатом

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

Pnputil –i –a C:DriverCertxg20xg20gr.inf

Теперь в процессе установки драйвера, окна-предупреждения об отсутствующей цифровой подписи драйвера не появится.

Successfully installed the driver on a device on the system.Driver package added successfully.

В Windows 7 появляется такое предупреждение. о том, уверены ли вы, что хотите установить этот драйвер (в Windows 10 x64 1803 такое всплывающее окно не появляется). Нажав «Install», вы установите драйвер в системе.

Если по каким-то причинам драйвер не устанавливается, подробный лог установки драйвера содержится в файле C:Windowsinfsetupapi.dev.log. Этот лог позволит вам получить более подробную информацию об ошибке установки.

Если установка драйвера прошла успешно, в файле setupapi.dev.log будут примерно такие строки:

>>>  [Device Install (DiInstallDriver) - C:WINDOWSSystem32DriverStoreFileRepositoryxg20gr.inf_amd64_c5955181485ee80axg20gr.inf]
>>>  Section start 2021/07/22 23:32:57.015
cmd: Pnputil  -i -a c:DriverCertxgxg20gr.inf
ndv: Flags: 0x00000000
ndv: INF path: C:WINDOWSSystem32DriverStoreFileRepositoryxg20gr.inf_amd64_c5955181485ee80axg20gr.inf
inf: {SetupCopyOEMInf: C:WINDOWSSystem32DriverStoreFileRepositoryxg20gr.inf_amd64_c5955181485ee80axg20gr.inf} 23:32:57.046
inf:      Copy style: 0x00000000
inf:      Driver Store Path: C:WINDOWSSystem32DriverStoreFileRepositoryxg20gr.inf_amd64_c5955181485ee80axg20gr.inf
inf:      Published Inf Path: C:WINDOWSINFoem23.inf
inf: {SetupCopyOEMInf exit (0x00000000)} 23:32:57.077
<<<  Section end 2021/07/22 23:32:57.155
<<<  [Exit status: SUCCESS]

Как вы видите, для установки самоподписанного драйвера нам даже не пришлось отключать проверку цифровой подписи драйверов с помощью bcdedit.exe, как описано здесь (команды bcdedit.exe /set loadoptions DISABLE_INTEGRITY_CHECKS и bcdedit.exe /set testsigning ON).

Оцените статью
ЭЦП Эксперт
Добавить комментарий