Тестовая подпись драйвера windows

Все о подписи драйверов Windows

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

Итак, прежде всего, я бы хотел выделить два типа сертификатов, которые я буду рассматривать в рамках данной статьи — тестовый и настоящий. Разница состоит в том, что настоящий сертификат подписан доверенным CA (Certification Authorities — доверенный издатель), типа VeriSign, GlobalSign ну или самим Microsoft, а тестовый подписан самопальным сертификатом типа от Васи Пупкина.

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

  1. Сгенерить сам сертификат и установить его. Это можно сделать с помощью тулзы makecert, например так:
    Makecert -r -pe -ss PrivateCertStore -n «CN=TestCertforWDK» TestCert.cer
    где
    PrivateCertStore — название хранилища
    TestCertforWDK — название самого сертификата
    TestCert.cer — имя файла с сертификатом
    (эта тулза входит в комплект WDK 6000/6001 и расположена bin/SelfSign, в WDK 7600 она почему то не входит. )
  2. Добавить этот сертификат в хранилище с доверенным корневыми CA. Открываем в mmc консоль Сертификаты (Run->mmc->File->Add/Remove Snap-in->Certificates) там находим свой сертификат (например в хранилище PrivateCertStore), копируем его в доверенные корневые издатели (Trusted Root Certification Authorities).
  3. Разрешить тестовые подписи. Для этого прописываем в администраторской консоли:
    bcdedit.exe –set TESTSIGNING ON
    и перезагружаемся, в итоге на десктопе, после перезагрузки, по углам красоваться соответствующие надписи.

Настоящий сертификат
Тут тоже не все так просто. Дело в том, что не любой CA может выдавать сертификаты для подписи драйверов Windows, а только те, которые авторизованы самой Microsoft, это значит, что корневые сертификаты этих издателей должны быть подписаны Microsoft — что, как раз и выражается в виде этого кросс-сертификата. Вот именно из-за отсутствия кросс-сертификата — тестовая подпись, никогда не будет работать как настоящая. Список доверенных CA, которые обладают такими кросс-сертификатами — представлен тут, там же можно скачать и сами кросс-сертификаты.
После того, как вы выложите несколько сотенок $$$ доверенному центру сертификации, они выдадут вам .pfx файл в котором будут содержаться публичный и приватный ключи. Вы его запустите и с помощью нехитрого диалога (как на рисунке ниже), установите в систему.

Подпись драйвера
Процесс подписи для тестового и настоящего сертификата во многом похожи, различия состоят лиш в том, что:

  • для тествой подписи не нужен кросс-сертификат
  • для тествой подписи можно не делать таймстамп

Итак приступим

  1. Качаем тулзу для подписи — signtool (тоже входит в комплект WDK6000/6001)
  2. Подписываем, с тестовым сертификатом:
    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-файла и его подписи нам понадобится:

  1. Корректный inf-файл (запасайтесь бубнами ребятки)
  2. Тулза которая генерит этот cat-файл из inf-файлов — inf2cat (эта тулза входит в комплект WDK6001/7600, и написана, как не странно, на .NET)
  3. После чего генерим cat-файл, например так
    inf2cat.exe /driver:release\amd64 /os:Vista_x64,Server2003_x64,Server2008_x64
    где
    release\amd64 — папка в которой находится inf-файл и драйверы
    Vista_x64,Server2003_x64,Server2008_x64 — список ОС, на которых должен работать драйвер
  4. Подписываем его точно также, как и драйвер
    signtool sign /v /ac MSCV-GlobalSign.cer /s PrivateCertStore /n «YourTrueCertName» /t http://timestamp.globalsign.com/scripts/timstamp.dll catalog.cat
    сам драйвер при этом подписывать не обязательно.
  5. Проверяем, что все хорошо подписалось, для этого открываем свойство .cat файла (или драйвера) и смотрим вкладку Digital Signatures — если есть то можем полюбоваться на результат, если нет, то где-то накосячили.
    Также более достоверно можно проверить с помощью командной строки
    signtool verify /pa /v /c catalog.cat

EasySign
В результате всех моих исследований на предмет САБЖ-а, я некатал по-быстрому простенькую программку EasySign, которая может подписывать дрова без дополнительного гимора с командной строкой и bat-файлами. Возможно кому-то будет полезно.

Саму прогу можно скачать тут, а мануалку почитать ниже:

  1. Вбиваем в Inf Dir путь к папке где лежит сам .inf файл и все необходимые файлы к нему прилагающиеся.
  2. Выбираем ОСи где работает драйвер.
  3. Cross Cert — указываем путь к кросс-сертификату, если нужно подписать драйвер по-настоящему
  4. Cert Store — названия хранилища, где лежит наш сертификат (например PrivateCertStore)
  5. Cert Name — название сертификата (например TestCertforWDK), если сертификат один в хранилище, то можно и не заполнять это поле.
  6. Time Stamp — адрес таймстампингового центра, для тестового сертификата — можно оставить пустым
  7. Файлы которые надо подписать, тут нужно обязательно добавить cat файл (если еще не создан, то прописать его имя вручную), а также можно добавить все файлы драйверов
  8. Generate Catalog Only — если подписывать не надо, а только создать .cat файл
  9. Жмем Sign — чтобы создать cat-файл и подписать, жмем Log — чтобы почитать что произошло, часто бывают ошибки, например неправильно составлен inf-файл, либо signtool чего-то не нашел и т.п.

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

Как отключить проверку цифровой подписи драйверов в Windows 10

В этой инструкции — три способа отключить проверку цифровой подписи драйвера в Windows 10: один из них работает однократно при загрузке системы, два других отключают проверку подписи драйверов навсегда, но не всегда. Это может пригодиться в тех случаях, когда драйвер не устанавливается, а ОС сообщает, что INF стороннего производителя не содержит информации о подписи или о других проблемах подписи, приводящих к ошибке при установке устройства.

Надеюсь, вы знаете, зачем вам потребовалось отключать эту функцию, потому как такие изменения настроек Windows 10 могут привести к повышению уязвимости системы перед вредоносным ПО. Возможно, существуют иные способы установить драйвер вашего устройства (либо другой драйвер), без отключения проверки цифровой подписи и, если такой способ имеется, лучше воспользоваться им. Если вы хотите серьезно подойти к вопросу, то можно также самостоятельно подписать драйвер цифровой подписью (не для начинающих).

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

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

  1. Для того, чтобы воспользоваться способом, зайдите в «Параметры» — «Обновление и безопасность» — «Восстановление». Затем, в разделе «Особые варианты загрузки» нажмите «Перезагрузить сейчас».
  2. После перезагрузки, пройдите по следующему пути: «Поиск и устранение неисправностей» (или «Диагностика») — «Дополнительные параметры» — «Параметры загрузки» и нажмите кнопку «Перезагрузить».
  3. После перезагрузки появится меню выборов параметров, которые будут использоваться в этот раз в Windows 10.
  4. Для того, чтобы отключить проверку цифровой подписи драйверов, выберите соответствующий пункт, нажав клавишу 7 или F7 (или Fn+F7 на некоторых ноутбуках).

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

Видео инструкция по отключению проверки цифровой подписи драйверов

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

С помощью командной строки

Этот способ должен отключить проверку цифровой подписи драйверов навсегда — с использованием командной строки для редактирования параметров загрузки. Ограничения способа: у вас либо должен быть компьютер с BIOS, либо, если у вас UEFI, требуется отключить Secure Boot (это обязательно). К сожалению, в последних версиях Windows 10 описываемое обычно не срабатывает, но попробовать можно.

Действия следующие — запустите командную строку Windows 10 от имени администратора (Как запустить командную строку от имени администратора). В командной строке по порядку введите следующие две команды:

  • bcdedit.exe -set loadoptions DISABLE_INTEGRITY_CHECKS
  • bcdedit.exe -set TESTSIGNING ON

После того, как обе команды будут выполнены, закройте командную строку и перезагрузите компьютер. Проверка цифровых подписей будет отключена, с одним лишь нюансом: в правом нижнем углу вы будете наблюдать уведомление о том, что Windows 10 работает в тестовом режиме (чтобы убрать надпись и вновь включить проверку, введите в командной строке bcdedit.exe -set TESTSIGNING OFF).

И еще один вариант отключения проверки подписи с помощью bcdedit, который по некоторым отзывам срабатывает лучше (проверка не включается снова автоматически при следующих загрузка Windows 10):

  1. Загрузить компьютер в безопасном режиме (см. Как зайти в безопасный режим Windows 10).
  2. Открыть командную строку от имени администратора и ввести следующую команду (нажав Enter после нее).
  3. bcdedit.exe /set NOINTEGRITYCHECKS ON
  4. Перезагрузить Windows 10 в обычном режиме.

В дальнейшем, если требуется снова включить проверку, сделайте это тем же способом, но вместо on в команде используйте off.

Отключение проверки в редакторе локальной групповой политики

Проверку подписи драйверов ранее можно было отключить (на сегодня метод не работает) с помощью редактора локальной групповой политики, однако эта возможность присутствует только в Windows 10 Pro (нет в домашней версии). Для запуска редактора локальной групповой политики, нажмите клавиши Win+R на клавиатуре, а затем введите gpedit.msc в окно «Выполнить», нажмите Enter.

В редакторе перейдите к разделу Конфигурация пользователя — Административные шаблоны — Система — Установка драйвера и дважды кликните по параметру «Цифровая подпись драйверов устройств» в правой части.

Откроется оно с возможными значениями данного параметра. Отключить проверку можно двумя способами:

  1. Установить значение «Отключено».
  2. Установить значение «Включено», а затем, в разделе «Если Windows обнаруживает файл драйвера без цифровой подписи» установить «Пропустить».

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

А вдруг и это будет интересно:

Почему бы не подписаться?

Рассылка новых, иногда интересных и полезных, материалов сайта remontka.pro. Никакой рекламы и бесплатная компьютерная помощь подписчикам от автора. Другие способы подписки (ВК, Одноклассники, Телеграм, Facebook, Twitter, Youtube, Яндекс.Дзен)

15.03.2019 в 23:17

bcdedit.exe /set nointegritychecks ON
после уходит на восстановление, запускается только, в режиме отключения подписи драйверов

16.03.2019 в 11:24

Не могу объяснить такого поведения, не должно так происходить.. Разве что каким-то образом сразу после отключения проверки подписи и именно при загрузке (при ней же на восстановление уходит?) ставится какой-то сбойный драйвер.

06.07.2020 в 23:38

Попробуйте в БИОСЕ отключить Секюрити бут

16.03.2019 в 20:49

Здравствуйте Дмитрий! Может быть Вам будет интересно.
После обновления Windows с билда 18353 на 18356 на ноутбуке MSI MS-16P6 отключилась видеокарта Intel (R) UHD Graphics 630. (Осталась только NVIDIA GeForce G7X 1050, но она в этой конфигурации не позволяет увеличивать насыщенность цвета). Драйвер вдруг стал неподписанным! Обновление до билда 18358 ничего не изменило.
Групповая политика не помогла, командная строка отказалась выполнять вторую команду, и только параметры загрузки давали результат. Но на один раз! После перезагрузки естественно всё ломалось.
Помогло отключение Serure Boot в UEFI, о чём упоминается в комментариях. Спасибо им и Вам, разумеется!
Ноутбук покупался без системы и все билды до этого шли без проблем.
Кто бы мог подумать, что так может повлиять обновление операционной системы?!

16.08.2019 в 10:40

Спасибо за инструкцию, но виндоус 10 как всегда, все обновила, и теперь картинки совсем другие, искать дольше, люди мучаются, а ваша статья — одна из первых в поисковике. Можете обновить скрины?
п.с. на новых ноутах ни один пункт не работает, все запрещено. остается пока что только одноразовый запуск

16.08.2019 в 10:59

Здравствуйте.
Спасибо, перепроверю скриншоты, обновлю там, где это нужно.

22.08.2019 в 12:38

Здравствуйте. На Win10Ent_1809LTSC_2019_Russian_x64 хорошо срабатывает действие с помощью командной строки от имени администратора : bcdedit -set TESTSIGNING ON с последующей перезагрузкой компьютера. Правда, в правом нижнем углу на экране появляется надпись: Тестовый режим, которую можно срыть при помощи утилиты Universal Watermark Disabler v.1.0.0.6

22.08.2019 в 12:44

Здравствуйте.
Спасибо, что поделились.

05.08.2020 в 12:31

Сделал все дела, какие нужно и вырубаешь тестовый режим bcdedit -set TESTSIGNING OFF …

05.10.2020 в 11:27

С валорантом приходится навсегда отключать, а то у многих, как и у меня не будет запускаться

10.09.2019 в 17:40

В групповой политике нет такого пункта. В командной строке нет доступа к такой команде.

11.09.2019 в 13:14

А Secure Boot в биос предварительно отключили? Что команда в результате выдает? И какую именно команду указываете?

01.11.2019 в 17:36

Здравствуйте, Дмитрий! Вы не поверите но у меня не сработал ни один из перечисленных вами способов. При использовании способа с особыми вариантами загрузки у меня не появляется пронумерованный список с вариантами загрузок. Есть просто список с точкой перед каждым пунктом, но при нажатии на кнопку с действием компьютер не перегружается в режим с активным списком, просто черный экран и всё. Все остальные способы с командами из командной строки тоже не помогают. При выполнении всё успешно, но попытка установить драйвер монитора не увенчивается успехом. Может, всё дело в том, что у меня монитор с VGA подключен к видеокарте через конвертер HDMI/VGA? Но другая модель монитора с подписанным драйвером встаёт без проблем. Помогите, пожалуйста.

10.11.2019 в 21:57

Спасибо большое мне статья помогла отключить цифровую подпись драйвера)

10.01.2020 в 10:45

Чтобы раскрыть «Редактор реестра» используем то же окно «Выполнить» — пишем в строчке
«Открыть» команду regedit и выполняем её. Даём согласие на внесение изменений.
Сначала создадим на всякий случай копию реестра — это будет мера предосторожности.
Если что-то пойдёт не так, вы всегда сможете восстановиться с помощью созданного файла.
Кликаем по меню «Файл», а затем по функции экспорта.

Даём любое имя файлу и сохраняем в любой папке — можно использовать и «Рабочий стол».

Раскрываем третий каталог в левой зоне — HKEY_LOCAL_MACHINE. В нём открываем папку SOFTWARE.

Запускаем вложенные друг в друга блоки с параметрами:
Microsoft — Windows — CurrentVersion — Policies — System.

Находим в конечном каталоге запись EnableLUA — дважды кликаем по ней.
В сером окошке ставим 0 в качестве значения.
Жмём на ОК — закрываем все окна и интерфейсы.
Перезагружаем ПК и открываем ранее заблокированный файл.

15.12.2020 в 18:21

Как относится UAC к данной статье?

29.02.2020 в 19:49

Перепрошиваю андроиды, и вот каждый раз приходится юзать отключение подписи… Тестовый режим результатов не приносит, групповая политика тоже. Боже, какое бомбалейло каждый раз в таких ситуациях, когда с одними только драйверами часа по три проводишь

18.03.2020 в 16:36

Бесполезняк. Не ставится без подписи.

19.03.2020 в 11:20

Вообще должен бы ставиться. Но можно и подписать: https://remontka.pro/sign-driver-windows/

07.04.2020 в 11:19

Спасибо, помогло на win10home, воспользовался загрузкой системы без проверки подписей драйверов.

27.06.2020 в 21:56

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

12.02.2021 в 11:56

Здравствуйте , Dmitry. Я увидел в Параметрах загрузки пункт «Отключить ранний запуск антивредоносной защиты» отключил ранний запуск антивредоносного драйвера не здесь , а в загруженной системе ( постоянно руки чешутся у меня что-нибудь отключить ) через командную строку от имени администратора командой
bcdedit /set disableelamdrivers yes
и перезагрузил компьютер . ( всё равно ж Защитник Windows 10 у меня отключен ранее) Как отключение раннего запуска этого драйвера влияет на систему ( например , на скорость загрузки ОС) ? Это ничего страшного, что я его отключил ?

12.02.2021 в 12:12

Здравствуйте.
Не могу сказать: не отключал. Так что только вы можете пронаблюдать)

13.02.2021 в 09:03

Вроде бы ничего особенного не заметил …Но, показалось, что система быстрее загружаться стала … А может это эффект «плацебо» )

Читайте также:  Что будет если удалить one driver windows 10
Оцените статью