- Что такое подписанный драйвер?
- Все о подписи драйверов windows / песочница / хабр
- Как подписать драйвер для работы устройств на windows 10 или windows 7
- Отключение проверки цифровой подписи драйверов windows 8 и 8.1
- Отключение проверки цифровой подписи драйверов windows в командной строке
- Признаки проблемы с проверкой цифровой подписи
- Создание самоподписанного сертификата и приватного ключа
- Способ 1: особые параметры загрузки windows
- Способ 2: командная строка
- Способ 3: редактор локальной групповой политики
Что такое подписанный драйвер?
Подписанный драйвер — это драйвер устройства c цифровой подписью. Цифровая подпись — это электронная метка защиты, указывающая издателя программного обеспечения и изменения первоначального содержимого программного пакета драйвера. Если драйвер подписан издателем с подтверждением достоверности подписи центром сертификации, можно быть уверенным, что драйвер выпущен этим издателем и не подвергался изменениям.
Windows выдаст одно из следующих предупреждений: драйвер не подписан, достоверность подписи издателя не подтверждена центром сертификации, драйвер изменен с момента выпуска. MicroSoft
Коротко говоря если драйвер не был подписан компанией MicroSoft, то такой драйвер не будет иметь цифровой подписи драйверов для Windows. С таким драйвером и возникают проблемы при установке.
В данной статье рассмотрим как отключить проверку цифровой подписи драйверов в Windows 10, Windows 8 и 8.1, а также Windows 7.
Содержание:
- Отключение проверки подписи драйверов Windows 10
- Отключение проверки подписи драйверов Windows 8.1 / 8
- Отключение проверки подписи драйверов Windows 7
Все о подписи драйверов windows / песочница / хабр
Как известно в х64 битных платформах была введена процедура обязательной цифровой подписи всего того, что может попасть в ядро системы, а именно драйверов. О том, на сколько это эффективно и оправданно можно долго спорить, но только одно можно сказать точно — гимора разработчикам тут определенно добавилась, особенно тем, кто раньше никогда подписями не занимался. Также для многих стало крайне не очевидно, каким образом разрабатывать драйвер, когда нет на руках валидного сертификата, а тестировать ведь как-то надо. Вот сча я попытаюсь в краткой и доступной форме рассказать о том как это все делается.
Итак, прежде всего, я бы хотел выделить два типа сертификатов, которые я буду рассматривать в рамках данной статьи — тестовый и настоящий. Разница состоит в том, что настоящий сертификат подписан доверенным CA (Certification Authorities — доверенный издатель), типа VeriSign, GlobalSign ну или самим Microsoft, а тестовый подписан самопальным сертификатом типа от Васи Пупкина.
Тестовый сертификат
Как вы уже наверное догадались, именно с помощью этого типа сертификата можно спокойно разрабатывать драйвер, не имея на руках настоящего, но все не так просто, прежде чем его использовать надо проделать некоторые унылые и мудреные мероприятия:
- Сгенерить сам сертификат и установить его. Это можно сделать с помощью тулзы makecert, например так:
Makecert -r -pe -ss PrivateCertStore -n "CN=TestCertforWDK" TestCert.cer
где
PrivateCertStore — название хранилища
TestCertforWDK — название самого сертификата
TestCert.cer — имя файла с сертификатом
(эта тулза входит в комплект WDK 6000/6001 и расположена bin/SelfSign, в WDK 7600 она почему то не входит…) - Добавить этот сертификат в хранилище с доверенным корневыми CA. Открываем в mmc консоль Сертификаты (Run->mmc->File->Add/Remove Snap-in->Certificates) там находим свой сертификат (например в хранилище PrivateCertStore), копируем его в доверенные корневые издатели (Trusted Root Certification Authorities).
- Разрешить тестовые подписи. Для этого прописываем в администраторской консоли:
bcdedit.exe –set TESTSIGNING ON
и перезагружаемся, в итоге на десктопе, после перезагрузки, по углам красоваться соответствующие надписи.
Настоящий сертификат
Тут тоже не все так просто. Дело в том, что не любой CA может выдавать сертификаты для подписи драйверов Windows, а только те, которые авторизованы самой Microsoft, это значит, что корневые сертификаты этих издателей должны быть подписаны Microsoft — что, как раз и выражается в виде этого кросс-сертификата. Вот именно из-за отсутствия кросс-сертификата — тестовая подпись, никогда не будет работать как настоящая. Список доверенных CA, которые обладают такими кросс-сертификатами — представлен тут, там же можно скачать и сами кросс-сертификаты.
После того, как вы выложите несколько сотенок $$$ доверенному центру сертификации, они выдадут вам .pfx файл в котором будут содержаться публичный и приватный ключи. Вы его запустите и с помощью нехитрого диалога (как на рисунке ниже), установите в систему.
Подпись драйвера
Процесс подписи для тестового и настоящего сертификата во многом похожи, различия состоят лиш в том, что:
- для тествой подписи не нужен кросс-сертификат
- для тествой подписи можно не делать таймстамп
Итак приступим
- Качаем тулзу для подписи — signtool (тоже входит в комплект WDK6000/6001)
- Подписываем, с тестовым сертификатом:
signtool sign /v /s PrivateCertStore /n "TestCertforWDK" driver.sys
где
PrivateCertStore — имя хранилища
TestCertforWDK — имя тестового сертификата
driver.sys — имя драйверас настоящим сертификатом:
signtool sign /v /ac MSCV-GlobalSign.cer /s PrivateCertStore /n "YourTrueCertName" /t http://timestamp.globalsign.com/scripts/timstamp.dll driver.sys
где
MSCV-GlobalSign.cer — имя кросс-сертификата
YourTrueCertName — имя настоящего сертификата
timestamp.globalsign.com/scripts/timstamp.dll — адрес таймстампингового центра, в моем случае global sign
Далее драйвер можно установить программно с помощью специальных АПИ либо с помощью замечательной тулзы
KmdManager
.
Подпись пакета драйверов
В реальной жизни подписи самого драйвера оказывается недостаточно, дело в том, что драйвера устройств как правило поставляются в комплекте с inf-файлом, в котором содержится информация о драйвере и устройствах которые он обслуживает. В этом случае необходимо будет сгенерить cat-файл, который содержит в себе инфу о всех файлах пакета, а потом подписать его точно также, как подписывали драйвер.
Для генерации cat-файла и его подписи нам понадобится:
- Корректный inf-файл (запасайтесь бубнами ребятки)
- Тулза которая генерит этот cat-файл из inf-файлов — inf2cat (эта тулза входит в комплект WDK6001/7600, и написана, как не странно, на .NET)
- После чего генерим cat-файл, например так
inf2cat.exe /driver:releaseamd64 /os:Vista_x64,Server2003_x64,Server2008_x64
где
releaseamd64 — папка в которой находится inf-файл и драйверы
Vista_x64,Server2003_x64,Server2008_x64 — список ОС, на которых должен работать драйвер - Подписываем его точно также, как и драйвер
signtool sign /v /ac MSCV-GlobalSign.cer /s PrivateCertStore /n "YourTrueCertName" /t http://timestamp.globalsign.com/scripts/timstamp.dll catalog.cat
сам драйвер при этом подписывать не обязательно. - Проверяем, что все хорошо подписалось, для этого открываем свойство .cat файла (или драйвера) и смотрим вкладку Digital Signatures — если есть то можем полюбоваться на результат, если нет, то где-то накосячили.
Также более достоверно можно проверить с помощью командной строкиsigntool verify /pa /v /c catalog.cat
EasySign
В результате всех моих исследований на предмет САБЖ-а, я некатал по-быстрому простенькую программку EasySign, которая может подписывать дрова без дополнительного гимора с командной строкой и bat-файлами. Возможно кому-то будет полезно.
Саму прогу можно скачать тут, а мануалку почитать ниже:
- Вбиваем в Inf Dir путь к папке где лежит сам .inf файл и все необходимые файлы к нему прилагающиеся.
- Выбираем ОСи где работает драйвер.
- Cross Cert — указываем путь к кросс-сертификату, если нужно подписать драйвер по-настоящему
- Cert Store — названия хранилища, где лежит наш сертификат (например PrivateCertStore)
- Cert Name — название сертификата (например TestCertforWDK), если сертификат один в хранилище, то можно и не заполнять это поле.
- Time Stamp — адрес таймстампингового центра, для тестового сертификата — можно оставить пустым
- Файлы которые надо подписать, тут нужно обязательно добавить cat файл (если еще не создан, то прописать его имя вручную), а также можно добавить все файлы драйверов
- Generate Catalog Only — если подписывать не надо, а только создать .cat файл
- Жмем Sign — чтобы создать cat-файл и подписать, жмем Log — чтобы почитать что произошло, часто бывают ошибки, например неправильно составлен inf-файл, либо signtool чего-то не нашел и т.п.
Литература по теме
http://msdn.microsoft.com/en-us/library/ff544865(VS.85).aspx
Как подписать драйвер для работы устройств на windows 10 или windows 7
Разных причин отсутствия подписи много, и раз Вы это читаете, то скорее всего столкнулись с одной из таких причин. В этом примере попробуем установить довольно старый драйвер для звуковой карты, для которого уже истек срок активности сертификата. Архив с драйверами был загружен с веб-сайта производителя ноутбуков, укомплектованных соответствующей видеокартой (нам удалось найти версию драйвера для Windows XP).
Чтоб было удобнее работать с драйвером, он был перемещён в специально созданную под него папку: c:drv (папка с названием “drv” на диске “C”). Пробуем установить драйвер путем добавления его через консоль в хранилище драйверов, с помощью стандартного инструмента pnputil:Pnputil –a c:drvHDALC2.inf
Для этого впишите “cmd.exe” в поисковой строке рядом с кнопкой “Пуск” и нажмите “Запустить от имени администратора”. Если у Вас на этом этапе открывается окно с предупреждением, нажмите “Да”.Можете или скопировать адрес из примера и вставить в консоль нажатием правой кнопки мышки, или ввести вручную.
Ожидаемо, получаем ошибку, указывающую на то, что в INF-файле не удаётся обнаружить информацию о цифровой подписи. 
То же сообщение мы получим если попробуем нажать на файле драйвера ПКМ и выбрать “Установить”.
Настало время попробовать подписать драйвер свежесозданным сертификатом.
Отключение проверки цифровой подписи драйверов windows 8 и 8.1
Аналогичным способом можно произвести загрузку Windows 8 и 8.1 без обязательной проверки цифровых подписей драйверов:
- Подвести курсор мыши к правому краю экрана;
- Выбрать опцию «Изменение параметров компьютера»;
- Нажать «Обновление и восстановление»;
- Перейти в «Восстановление»;
- Нажать «Перезагрузить сейчас»;
- В процессе перезагрузки выбрать раздел «Диагностика»;
- Затем — «Дополнительные параметры»;
- Выбрать «Параметры загрузки»;
- Нажать кнопку «Перезагрузить»;
- После повторной перезагрузки необходимо нажать F7, или другую клавишу F*, которая соответствует номеру с пунктом «Отключить обязательную проверку подписи драйверов».

Отключение проверки цифровой подписи драйверов windows в командной строке
Произвести деактивацию функции проверки подписей драйверов можно с помощью командной строки. Есть целых 2 способа.
Способ 1:
- Запустить командную строку. Можно найти ее в поиске Windows. Или нажать сочетание клавиш Win R, ввести команду cmd и нажать Enter;
- В окне командной строки ввести следующую команду:
exe /set nointegritychecks ON
И нажать Enter;
- Перезагрузить компьютер.
Снова включить ее можно с помощью команды:
bcdedit.exe /set nointegritychecks OFF
Способ 2:
- Запустить командную строку;
- Ввести команду:
exe -set loadoptions DISABLE_INTEGRITY_CHECKS
И нажать Enter; - Затем, ввести еще одну команду:
exe -set TESTSIGNING ON
И нажать Enter; - Произвести перезагрузку компьютера / ноутбука.
Включение проверки подписей драйверов производиться поочередным вводом следующих команд:
bcdedit -set loadoptions ENABLE_INTEGRITY_CHECKS
bcdedit -set TESTSIGNING OFF
Признаки проблемы с проверкой цифровой подписи
Устанавливая драйвер для необходимого вам устройства, вы можете увидеть на своем экране сообщение службы безопасности Windows.
Несмотря на то, что вы можете в появившемся окне выбрать пункт «Установить этот драйвер все равно», ПО будет инсталлировано некорректно. Поэтому решить проблему просто выбором данного пункта в сообщении не получится. Такое устройство будет помечено восклицательным знаком в «Диспетчере устройств», что свидетельствует о проблемах в работе оборудования.
Несмотря на то, что вы можете в появившемся окне выбрать пункт «Установить этот драйвер все равно», ПО будет инсталлировано некорректно. Поэтому решить проблему просто выбором данного пункта в сообщении не получится. Такое устройство будет помечено восклицательным знаком в «Диспетчере устройств», что свидетельствует о проблемах в работе оборудования.
Как правило, в описании такого устройства будет фигурировать ошибка 52.
Кроме того, во время инсталляции софта без соответствующей подписи может появиться уведомление в трее. Если вы увидите нечто подобное, изображенное на скриншоте ниже, это значит, что вы, возможно, столкнулись с проблемой проверки подписи драйвера.
Кроме того, во время инсталляции софта без соответствующей подписи может появиться уведомление в трее. Если вы увидите нечто подобное, изображенное на скриншоте ниже, это значит, что вы, возможно, столкнулись с проблемой проверки подписи драйвера.
Создание самоподписанного сертификата и приватного ключа
- Создайте папку “DrvCert” на диске “C”
- Вернитесь в консоль и введите
cd C:Program Files (x86)Windows Kits10binx64 - Создайте самоподписанный сертификат командой
makecert -r -sv C:DrvCertmyDrivers.pvk -n CN="Company" C:DrvCertmyDrivers.cer, — где вместо «Company» можно ввести любое другое название условной компании, для которой издается сертификат. В процессе Вам нужно будет задать пароль. Возьмём для примера “0rPr0RpR”. - Создайте публичный ключ командой
cert2spc C:DrvCertmyDrivers.cer C:DrvCertmyDrivers.spc - Совместите публичный и приватный ключи в сертификате с форматом .pfx с помощью команды
pvk2pfx -pvk C:DrvCertmyDrivers.pvk -pi 0rPr0RpR -spc C:DrvCertmyDrivers.spc -pfx C:DrvCertmyDrivers.pfx -po 0rPr0RpR— где в конце тот пароль, который Вы вводили ранее.
Способ 1: особые параметры загрузки windows
Чаще всего необходимость отключения проверки цифровой подписи возникает единожды. В этой ситуации логичнее всего воспользоваться предоставлением временного разрешения. Оно будет работать один раз: до последующей перезагрузки компьютера. За этот промежуток времени вы можете инсталлировать любое количество непроверенных драйверов, перезапустить ПК, и проверка сертификата будет работать как и прежде, защищая операционную систему.
Первым делом запустите ОС в особом режиме. Пользователям Windows 10 потребуется выполнить следующие шаги:
- Запустите «Параметры», вызвав «Пуск».

Это же можно сделать, вызвав альтернативное меню ПКМ.
- Откройте «Обновление и безопасность».
- В меню слева перейдите в «Восстановление», а справа, под «Особые варианты загрузки», кликните «Перезагрузить сейчас».
- Дождитесь старта Виндовс и выберите раздел «Поиск и устранение неисправностей».
- В «Диагностика» перейдите в «Дополнительные параметры».
- Здесь откройте «Параметры загрузки».
- Ознакомьтесь с тем, что применится при следующем старте системы, и нажмите «Перезагрузить».
- В этом режиме будет отключено управление мышью, а также изменится разрешение экрана до низкого. Пункт, отвечающий за отключение проверки подписи драйверов, седьмой в списке. Соответственно, нажмите на клавиатуре F7.
- Начнется перезапуск, по завершении которого вы можете выполнить инсталляцию.








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

Теперь можно заняться инсталляцией программного обеспечения.
После следующего включения компьютера будет произведен обычный запуск системы, и она вновь начнет проверять подпись у драйверов, которые вы захотите установить. Обратите внимание, что эта служба не занимается проверкой установленных драйверов, для этого необходимо запускать отдельное приложение, которое по понятным причинам нас не интересует.
Способ 2: командная строка
Используя известный многим интерфейс командной строки пользователь может отключить цифровую подпись, введя последовательно 2 команды.Этот способ работает только при стандартном интерфейсе BIOS. Владельцам материнских плат с UEFI потребуется предварительно отключить «Secure Boot».
Подробнее: Как отключить UEFI в BIOS
- Откройте «Пуск», введите cmd, кликните ПКМ по результату и выберите «Запустить от имени администратора».

Пользователи «десятки» могут открыть командную строку либо PowerShell (в зависимости от того, как настроено их альтернативное меню) с правами администратора и через ПКМ по «Пуск».
- Скопируйте команду ниже и вставьте ее в строку:
bcdedit.exe -set loadoptions DISABLE_INTEGRITY_CHECKSНажмите Enter и впишите:
bcdedit.exe -set TESTSIGNING ONСнова жмите Enter. Спустя небольшой промежуток времени вы получите уведомление «Операция успешно завершена».
- Перезагрузите ПК и запустите инсталляцию ПО для нужного оборудования.


В любой момент можно вернуть настройки, открыв cmd методом, расписанным выше, и вписав это:
bcdedit.exe -set TESTSIGNING OFF
После этого нажмите Enter и перезагрузить компьютер. Теперь драйверы всегда будут проверяться операционной системой. Дополнительно можно обратно включить UEFI таким же образом, каким вы его отключали.
Способ 3: редактор локальной групповой политики
Еще один вариант решения поставленной задачи — редактирование политики компьютера. Им могут воспользоваться обладатели Windows версии выше Home (Домашней).
- Зажмите Win R и впишите gpedit.msc. Подтвердите ввод кнопкой «ОК» либо клавишей Enter.
- Используя левое меню, разверните поочередно папки, нажимая на стрелочку перед их названием: «Конфигурация пользователя» > «Административные шаблоны» > «Система» > «Установка драйвера».
- Справа в окне дважды ЛКМ кликните по «Цифровая подпись драйверов устройств».
- Здесь задайте значение «Отключено», означающее, что осуществляться сканирование как таковое не будет.
- Сохраните настройки через «ОК» и перезагрузите компьютер.




https://www.youtube.com/watch?v=6IH0JpSWDTk
Запустите драйвер, который не удавалось установить, и повторите попытку.









![[Windows] Как отключить проверку цифровой подписи драйверов - MIUI помощь - Mi Community - Xiaomi [Windows] Как отключить проверку цифровой подписи драйверов - MIUI помощь - Mi Community - Xiaomi](http://ecpexpert.ru/wp-content/uploads/2021/05/fullsize.jpg)

