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

💖 Нравится? Поделись с друзьями ссылкой

Windows 8.1 блокируют установку драйверов без действительной цифровой подписи (или измененных после ее нанесения). Это делается в целях безопасности, так как установка не подписанных драйверов или подделаны (возможно, с помощью вируса), может привести к непредсказуемым последствиям, вплоть до переустановки системы.

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

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

Устанавливать драйвера без цифровой подписи или с ней?

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

Как отключить проверку подписи?

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

1. Перемещаем курсор в нижний правый угол экрана выбираем пункт "Параметры" или нажимаем клавиши Win + I . Нажимаем клавишу shift ,и держа нажатой, выбираем .

2. После перезагрузки в выпавшем меню выбираем "Диагностика "

3. В окне "Диагностика " выбираем ""

4. В окне "" выбираем ""


5. В окне "" жмем ""


6. Теперь самое главное. В окне "" надо выбрать нужную клавишу, в нашем случае это F7 или цифра 7


Заключение

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

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

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

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

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

Настоящий сертификат
Тут тоже не все так просто. Дело в том, что не любой 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 чего-то не нашел и т.п.

Метки: драйвера, windows, цифровая подпись

73459

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



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


При этом компьютер уйдет на перезагрузку, и вы попадете в меню выбор действия. Жмем Диагностика —> ;


> ;



Еще раз перезапускаем компьютер нажатием кнопки .


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


Для загрузки Windows с этим параметром нажмите клавишу 7 или F7 . Теперь если вы попробуете запустить установку левого драйвера, ОС также выведет сообщение, но на этот раз это будет простое предупреждение системы безопасности. Просто выберите и упрямый драйвер станет в обычном режиме, по крайней мере, так должно быть, ну а вам лишь останется еще раз перезагрузиться и проверить его работоспособность.


При этом, однако, нельзя исключать, что установить не сертифицированный драйвер таким способом не получится. В таком случае можно попробовать еще один метод. В Windows 8 присутствует особый «тестовый режим работы» . Работая в этом режиме, вы можете устанавливать практически любое программное обеспечение, в том числе не имеющие сертификата Microsoft драйвера. Активировать его можно следующим образом. Откройте командную строку от имени администратора и одну за другой выполните вот эти две команды (для 64-разрядной системы):

bcdedit.exe /set nointegritychecks ON
bcdedit.exe /set testsigning ON


Каждая выполненная команда должна сопровождаться сообщением «Операция успешно завершена» . Теперь закройте консоль, и перезагрузить компьютер. Если всё сделано правильно, в нижнем правом углу на часами вас должна появиться надпись «Тестовый режим» . Теперь можете попробовать инсталлировать неподписанный драйвер еще раз. После установки и проверки драйвера не забудьте выйти из тестового режима. Для этого необходимо выполнить те же команды, но только флаг ON (включено ) заменить на OFF (выключено ) .

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

Если к компьютеру с операционной системой Windows 10 (x86 или x64) надо подключить какое-либо устройство (например, сканер, принтер, камеру), необходимо также установить соответствующее программное обеспечение (ПО) для его функционирования – драйвер.

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

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

Чтобы справиться с данной проблемой, можно воспользоваться одним из трех способов.

Способ 1

Способ 2

Внимание! Этот вариант подходит только для ПК с базовой программой Basic Input/Output System (BIOS).

Если компьютер снабжен интерфейсом Unified Extensible Firmware Interface (UEFI), надо сначала отключить опцию Secure Boot.



Чтобы вернуться к предыдущим настройкам, в командную строку ввести bcdedit.exe -set TESTSIGNING OFF и подтвердить (Enter ). Когда выполнение заданной операции завершится, перезагрузить ПК.

Способ 3

Внимание! Данный вариант не сработает для Windows 10 Home.



Видео по теме

Представьте ситуацию, когда вы, счастливый пользователь «самой надёжной , стабильной и безопасной » операционной системы Windows 10, радостно приносите домой новенький гаджет, подключаете его к USB-порту, а вместо обычного сообщения о том, что новое устройство готово к работе получаете вот это «INF стороннего производителя не содержит информации о подписи»:

Таким нехитрым способом Microsoft пытается оградить своих клиентов от использования некошерных (по мнению самой Microsoft) устройств. Точнее, драйверов для них. Обычно драйвер, как и обычный официальный документ, содержит подпись. Только цифровую, удостоверяющую, что он прошёл тестирование на совместимость с системой и безопасен для компьютера пользователя. Но нередки случаи, когда этой подписи у драйвера нет. Часто такое наблюдается у гаджетов китайского происхождения либо у слегка устаревших устройств.
Но если вы всё-таки не вняли предостережениям Microsoft и твёрдо решили установить драйвер, конечно же, это можно «очень просто» сделать – всего несколько шагов. Приступим.

Установка неподписанных драйверов в Windows 10

1) Идём Пуск > Параметры > Обновление и безопасность, открываем вкладку Восстановление и в разделе Особые варианты загрузки нажимаем кнопку «Перезагрузить сейчас «.


2) Система попросит нас немного подождать и выдаст следующее меню, где нужно выбрать Поиск и устранение неисправностей .


3) На следующем экране выбираем пункт Дополнительные параметры .



5) Дождавшись перезагрузки компьютера, в появившемся меню выбираем пункт Параметры загрузки .


6) В следующем разделе нас интересует пункт № 7, поэтому, внимательно прочитав инструкции, нажимаем клавишу F7 .


7) Дожидаемся полной загрузки системы и пытаемся снова установить драйвер устройства. Система пытается в последний раз заставить нас одуматься.


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

Заключение

Разрешение на установку неподписанных драйверов действует до перезагрузки системы. Затем, при установке другого «несертифицированного» оборудования, процедуру придётся повторить.
В принципе, есть возможность отключить проверку цифровой подписи полностью (через правку реестра), но я не советую этого делать, т.к. безопасность от этого страдает, а часто устанавливать неподписанные драйвера вам вряд ли придётся.



Рассказать друзьям