- Отключение проверки цифровой подписи драйверов в Windows 7
- Видео инструкция
- Способы деактивации проверки
- Способ 1: Переход в режим загрузки с деактивацией обязательной верификации подписей
- Способ 2: «Командная строка»
- Способ 3: «Редактор групповой политики»
- Способ 4: «Редактор реестра»
- Все о подписи драйверов Windows
Отключение проверки цифровой подписи драйверов в Windows 7
Видео инструкция
Способы деактивации проверки
Сразу следует оговориться, что деактивируя проверку цифровой подписи, вы действуете на свой страх и риск. Дело в том, что неизвестные драйвера могут быть источником уязвимости или прямой опасности, если являются продуктом разработки злоумышленников. Поэтому не рекомендуем снимать защиту при установке объектов, скачанных из интернета, так как это очень рискованно.
В то же время бывают ситуации, когда вы уверены в подлинности драйверов (например, когда они поставляются в комплекте с оборудованием на дисковом носителе), но у них по какой-то причине отсутствует цифровая подпись. Вот для таких случаев и стоит применять описанные ниже способы.
Способ 1: Переход в режим загрузки с деактивацией обязательной верификации подписей
Чтобы деактивировать верификацию подписи драйверов при их инсталляции на Виндовс 7, можно произвести загрузку ОС в особом режиме.
- Перезагрузите или включите компьютер в зависимости от того, в каком состоянии он в данный момент находится. Как только прозвучит звуковой сигнал при запуске, зажмите клавишу F8. В некоторых случаях это может быть иная кнопка или сочетание, в зависимости от версии BIOS, установленного на вашем ПК. Но в подавляющем большинстве случаев нужно применять именно вышеуказанный вариант.
Недостаток данного метода заключается в том, что как только вы запустите в следующий раз компьютер в обычном режиме, все установленные драйвера без цифровых подписей тут же слетят. Этот вариант подходит лишь для одноразового подключения, ели вы не планируете использовать устройство регулярно.
Способ 2: «Командная строка»
Отключить верификацию цифровой подписи можно при помощи введения команд в «Командную строку» операционной системы.
- Жмите «Пуск». Переходите во «Все программы».
В раскрывшейся директории ищите «Командная строка». Произведя нажатие по указанному элементу правой кнопкой мышки (ПКМ), выбирайте позицию «Запуск от имени администратора» в отобразившемся перечне.
Активируется «Командная строка», в которую нужно ввести следующее:
bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
После появления информации, говорящей об удачном завершении задачи, вбивайте такое выражение:
bcdedit.exe -set TESTSIGNING ON
Снова применяйте Enter.
Верификация подписи теперь деактивирована.
Для её повторной активации вбейте:
bcdedit -set loadoptions ENABLE_INTEGRITY_CHECKS
Применяйте нажатием Enter.
bcdedit -set TESTSIGNING ON
Снова нажимайте Enter.
Существует ещё один вариант действий через «Командную строку». В отличие от предыдущего, он требует всего лишь введения одной команды.
bcdedit.exe /set nointegritychecks ON
Проверка деактивирована. Но после инсталляции необходимого драйвера все-таки рекомендуем снова активировать верификацию. В «Командной строке» вбейте:
bcdedit.exe /set nointegritychecks ON OFF
Способ 3: «Редактор групповой политики»
Другой вариант деактивации верификации подписи осуществляется методом манипуляций в «Редакторе групповой политики». Правда, он доступен только в редакциях «Корпоративная», «Профессиональная» и «Максимальная», а вот для редакций «Домашняя базовая», «Начальная» и «Домашняя расширенная» этот алгоритм выполнения поставленной задачи не подойдет, так как в них отсутствует необходимая функциональность.
- Для активации нужного нам инструмента воспользуемся оболочкой «Выполнить». Нажмите Win+R. В поле отобразившейся формы введите:
Запускается необходимый для наших целей инструмент. В центральной части открывшегося окна щелкайте по позиции «Конфигурация пользователя».
Далее жмите «Административные шаблоны».
Теперь войдите в директорию «Система».
Затем откройте объект «Установка драйвера».
Теперь щелкайте по названию «Цифровая подпись драйверов…».
Открывается окно настройки вышеуказанного компонента. Выставьте радиокнопку в положение «Отключить», а затем жмите «Применить» и «OK».
Теперь закрывайте все открытые окна и программы, далее щелкайте «Пуск». Кликните по треугольной фигуре справа от кнопки «Завершение работы». Выбирайте «Перезагрузка».
Способ 4: «Редактор реестра»
Следующий способ решения поставленного задания выполняется через «Редактор реестра».
Активируется оболочка «Редактора реестра». В левой области оболочки кликайте по объекту «HKEY_CURRENT_USER».
Далее заходите в каталог «Software».
Откроется очень длинный перечень разделов, расположенных по алфавиту. Отыщите среди элементов наименование «Policies» и кликните по нему.
Далее жмите по названию каталога «Microsoft»ПКМ. В контекстном меню выберите пункт «Создать» и в дополнительном перечне выбирайте вариант «Раздел».
Отобразится новая папка с активным полем для наименования. Вбейте туда такое имя – «Driver Signing» (без кавычек). Щелкайте Enter.
После этого щелкайте ПКМ по наименованию только что созданного раздела. В списке щелкайте по пункту «Создать». В дополнительном перечне выбирайте вариант «Параметр DWORD 32 bit». Причем эту позицию следует выбрать независимо от того 32-битная у вас система или же 64-битная.
Теперь в правой части окна отобразится новый параметр. Произведите по нему щелчок ПКМ. Выбирайте «Переименовать».
После этого название параметра станет активным. Впишите вместо текущего наименования следующее:
После этого произведите двойной щелчок левой кнопкой мыши по этому элементу.
Открывается окно свойств. Необходимо проверить, чтобы радиокнопка в блоке «Система исчисления» стояла в позиции «Шестнадцатеричная», а в поле «Значение» была установлена цифра «0». Если все это так, то просто щелкайте «OK». Если же в окне свойств любой из элементов не отвечает вышеприведенному описанию, то необходимо произвести те установки, о которых было сказано, и только после этого нажать «OK».
В Виндовс 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:release\amd64 /os:Vista_x64,Server2003_x64,Server2008_x64
где
release\amd64 — папка в которой находится 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 чего-то не нашел и т.п.
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.