Цифровые подписи в Windows 7

Цифровые подписи в Windows 7 Электронная цифровая подпись

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

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

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

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

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

Содержание:

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

Все о подписи драйверов 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
    и перезагружаемся, в итоге на десктопе, после перезагрузки, по углам красоваться соответствующие надписи.
    image

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

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

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

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

  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:releaseamd64 /os:Vista_x64,Server2003_x64,Server2008_x64
    где
    releaseamd64 — папка в которой находится 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-файлами. Возможно кому-то будет полезно.
image
Саму прогу можно скачать тут, а мануалку почитать ниже:

  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 чего-то не нашел и т.п.

Литература по теме
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 без обязательной проверки цифровых подписей драйверов:

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

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

Произвести деактивацию функции проверки подписей драйверов можно с помощью командной строки. Есть целых 2 способа.

Способ 1:

  1. Запустить командную строку. Можно найти ее в поиске Windows. Или нажать сочетание клавиш Win R, ввести команду cmd и нажать Enter;
  2. В окне командной строки ввести следующую команду:
    exe /set nointegritychecks ON
    И нажать Enter;
    Отключить проверку цифровой подписи драйверов Windows - команда в командной строке
  3. Перезагрузить компьютер.

Снова включить ее можно с помощью команды:

bcdedit.exe /set nointegritychecks OFF

Способ 2:

  1. Запустить командную строку;
  2. Ввести команду:
    exe -set loadoptions DISABLE_INTEGRITY_CHECKS
    И нажать Enter;
  3. Затем, ввести еще одну команду:
    exe -set TESTSIGNING ON
    И нажать Enter;
  4. Произвести перезагрузку компьютера / ноутбука.

Включение проверки подписей драйверов производиться поочередным вводом следующих команд:

bcdedit -set loadoptions ENABLE_INTEGRITY_CHECKS

bcdedit -set TESTSIGNING OFF

Признаки проблемы с проверкой цифровой подписи

Устанавливая драйвер для необходимого вам устройства, вы можете увидеть на своем экране сообщение службы безопасности Windows.
Ошибка при установке ПО без подписи
Несмотря на то, что вы можете в появившемся окне выбрать пункт «Установить этот драйвер все равно», ПО будет инсталлировано некорректно. Поэтому решить проблему просто выбором данного пункта в сообщении не получится. Такое устройство будет помечено восклицательным знаком в «Диспетчере устройств», что свидетельствует о проблемах в работе оборудования.
Отображение неисправного устройства
Несмотря на то, что вы можете в появившемся окне выбрать пункт «Установить этот драйвер все равно», ПО будет инсталлировано некорректно. Поэтому решить проблему просто выбором данного пункта в сообщении не получится. Такое устройство будет помечено восклицательным знаком в «Диспетчере устройств», что свидетельствует о проблемах в работе оборудования.
Цифровые подписи в Windows 7

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

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

  1. Создайте папку “DrvCert” на диске “C”
  2. Вернитесь в консоль и введите cd C:Program Files (x86)Windows Kits10binx64
  3. Создайте самоподписанный сертификат командой makecert -r -sv C:DrvCertmyDrivers.pvk -n CN="Company" C:DrvCertmyDrivers.cer, — где вместо «Company» можно ввести любое другое название условной компании, для которой издается сертификат. В процессе Вам нужно будет задать пароль. Возьмём для примера “0rPr0RpR”.
  4. Создайте публичный ключ командой cert2spc C:DrvCertmyDrivers.cer C:DrvCertmyDrivers.spc
  5. Совместите публичный и приватный ключи в сертификате с форматом .pfx с помощью команды pvk2pfx -pvk C:DrvCertmyDrivers.pvk -pi 0rPr0RpR -spc C:DrvCertmyDrivers.spc -pfx C:DrvCertmyDrivers.pfx -po 0rPr0RpR — где в конце тот пароль, который Вы вводили ранее. Как подписать драйвер

Способ 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: командная строка

Используя известный многим интерфейс командной строки пользователь может отключить цифровую подпись, введя последовательно 2 команды.Этот способ работает только при стандартном интерфейсе BIOS. Владельцам материнских плат с UEFI потребуется предварительно отключить «Secure Boot».

Подробнее: Как отключить UEFI в BIOS

  1. Откройте «Пуск», введите cmd, кликните ПКМ по результату и выберите «Запустить от имени администратора».

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

    Пользователи «десятки» могут открыть командную строку либо PowerShell (в зависимости от того, как настроено их альтернативное меню) с правами администратора и через ПКМ по «Пуск».

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

  3. Скопируйте команду ниже и вставьте ее в строку:

    bcdedit.exe -set loadoptions DISABLE_INTEGRITY_CHECKS

    Нажмите Enter и впишите:

    bcdedit.exe -set TESTSIGNING ON

    Снова жмите Enter. Спустя небольшой промежуток времени вы получите уведомление «Операция успешно завершена».

  4. Отключение проверки цифровой подписи драйвера через командную строку

  5. Перезагрузите ПК и запустите инсталляцию ПО для нужного оборудования.

В любой момент можно вернуть настройки, открыв cmd методом, расписанным выше, и вписав это:

bcdedit.exe -set TESTSIGNING OFF

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

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

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

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

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

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

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

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

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

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

Читайте также:  Что делать, если первичный пароль для входа в «Личный кабинет» заблокирован | ФНС России | 09 Карачаево-Черкесская Республика
Оцените статью
ЭЦП Эксперт