Как подписать драйвер Windows 10, 8.1 и Windows 7 x64 и x86

Как подписать драйвер

По умолчанию все последние версии Windows запрещают устанавливать драйверы устройств, которые не подписаны действительной цифровой подписью. Такие драйверы блокируются системой. Цифровая подпись гарантирует (в некоторой степени), что драйвер был выпущен определенным разработчиком или поставщиком, и его код не был изменен после того, как он был подписан.

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

Как подписать драйвер для работы устройств на Windows 10 или Windows 7

Разных причин отсутствия подписи много, и раз Вы это читаете, то скорее всего столкнулись с одной из таких причин. В этом примере попробуем установить довольно старый драйвер для звуковой карты, для которого уже истек срок активности сертификата. Архив с драйверами был загружен с веб-сайта производителя ноутбуков, укомплектованных соответствующей видеокартой (нам удалось найти версию драйвера для Windows XP). Чтоб было удобнее работать с драйвером, он был перемещён в специально созданную под него папку: c:drv (папка с названием “drv” на диске “C”). Пробуем установить драйвер путем добавления его через консоль в хранилище драйверов, с помощью стандартного инструмента pnputil:
Pnputil –a c:drvHDALC2.inf

Для этого впишите “cmd.exe” в поисковой строке рядом с кнопкой “Пуск” и нажмите “Запустить от имени администратора”. Если у Вас на этом этапе открывается окно с предупреждением, нажмите “Да”.
Можете или скопировать адрес из примера и вставить в консоль нажатием правой кнопки мышки, или ввести вручную. Только не забудьте поменять название файла драйвера из примера на название файла Вашего драйвера, а также поменять адрес, если Вы распаковали драйвер в другую папку.

Ожидаемо, получаем ошибку, указывающую на то, что в INF-файле не удаётся обнаружить информацию о цифровой подписи.
То же сообщение мы получим если попробуем нажать на файле драйвера ПКМ и выбрать “Установить”.

Настало время попробовать подписать драйвер свежесозданным сертификатом.

Необходимые инструменты

Чтобы сгенерировать подпись и подписать драйвер, вам необходимо загрузить и установить следующие инструменты разработки приложений (с настройками по умолчанию):

  • .NET Framework 4 — нужен для работы нижеуказанных инструментов;
  • Windows SDK (можно не скачивать, если у Вас есть Visual Studio 2005 или новее) для вашей версии Windows. В комплект входит набор инструментов для подписания, в котором и находится нужное средство — signtool.exe;
  • WDK 7.1.0.

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

  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. Теперь нужно создать папку C:DrvCerthda и скопировать в неё все файлы из папки, в которую первоначально был извлечен драйвер из архива (c:drv). Среди этих файлов обязательно должны быть файлы форматов .sys и .inf (в примере: RTKHDAUD.sys и HDALC2.inf).
  2. Вернитесь в консоль и введите cd C:WinDDK7600.16385.1binselfsign
  3. Создайте файл CAT (в нём находится информация о расположении файлов в пакете драйвера) на основе файла INF с помощью средства inf2cat.exe (входит в комплект WDK). Для этого запустите следующую команду: inf2cat.exe /driver:”C:DrvCerthda” /os:7_X86 /verbose .

Подписание драйвера

  1. Введите cd C:Program Files (x86)Windows Kits10binx64
  2. Теперь набор файлов драйверов нужно подписать сертификатом, который вы создали ранее, используя службу Globalsign.

Следующая команда подпишет файл CAT цифровой подписью, используя сертификат, хранящийся в файле PFX, защищенный введенным ранее паролем: signtool sign /f C:DrvCertmyDrivers.pfx /p 0rPr0RpR /t http://timestamp.verisign.com/scripts/timstamp.dll /v C:DrvCerthdahda32.cat , где в конце — название .cat файла который появился в папке
Если всё прошло успешно то появится сообщение:
Successfully signed: C:DrvCertxgHDALC2.cat

Установка самоподписанного сертификата

Поскольку созданный только-что сертификат является самоподписанным, по умолчанию система ему не доверяет. Добавьте свой сертификат в хранилище сертификатов локального компьютера:
certmgr.exe -add C:DrvCertmyDrivers.cer -s -r localMachine ROOT
certmgr.exe -add C:DrvCertmyDrivers.cer -s -r localMachine TRUSTEDPUBLISHER

Установка драйвера

Вводим команду: Pnputil –i –a C:DrvCerthdaHDALC2.inf
Теперь ошибка как при первой попытке не появляется, а вместо неё видим сообщение об успешной установке драйвера.

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

[Решено] Установка MultiKey на Windows 10 x64 1903 / 1909

Принесли компьютер с проблемой: «не устанавливается MultiKey на Windows 10 64bit». Провозился пол дня, хотя проблема решается за 5 минут.

Процесс установки MultiKey состоит из двух пунктов:

  • Установка Sentinel HASP драйвера
  • Установка Multikey (пароль на архив testprotect.com)

С Sentinel HASP проблем не возникло. А вот сам МультиКей заставил пошуршать форумы.

Devcon Failed

Основная проблема заключается в том, что Multikey в Windows 10 никак не может подменить драйвер HASP. Получаем ошибку devcon failed.

Devcon failed

Что не помогло:

  • включение тестового режима (bcdedit -set TESTSIGNING ON)
  • включение режима «без проверки целостности файлов» (bcdedit -set loadoptions DISABLE_INTEGRITY_CHECKS)

Что помогло:

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

Дополнительные параметры загрузки Windows 10

Чтобы попасть в этот режим, нужно с зажатой клавишей SHIFT перезагрузить компьютер (Пуск -> Перезагрузка). Перед перезагрузкой появится меню:

Дополнительные параметры загрузки Windows 10

Если всё сделано правильно, то после перезагрузки появится еще одно меню, непосредственно в котором нужно выбрать режим запуска Windows 10:

Дополнительные параметры загрузки Windows 10

Нужная нам клавиша — 7 (или F7).

Установка не подписанного драйвера MultiKey

Windows запущена в нужном режиме. Запускаем нужный нам файл install.cmd от имени администратора.

Windows ругается на не подписанный драйвер

Windows 10 ругается на то, что подменяемый драйвер не имеет цифровой подписи. Выбираем «Все равно установить этот драйвер». Windows снова ругается и говорит о том, что Требуется драйвер с цифровой подписью.

Требуется драйвер с цифровой подписью

Жмем закрыть Видим, что драйвер успешно установлен (Drivers installed successfully).

Подписываем драйвер цифровой подписью

Следующим пунктом необходимо подписать наш драйвер. Для этого используем программу Driver Signature Enforcement Overrider (DSEO). Сайт разработчика — ngohq.com.

Запускаем скачанный файл от имени администратора. Выбираем пункт меню «Sign a System File». Жмем Next.

Подписываем драйвер цифровой подписью (dseo)

Вводим путь к установленному новому драйверу. c:WindowsSystem32driversmultikey.sys (возможно c:WindowsSystem32multikey.sys или c:WindowsSysWOW64multikey.sys, или еще что-то: пользуйтесь поиском).


Подписываем драйвер цифровой подписью (dseo)

Жмем ОК. Dseo подписывает драйвер и предлагает перезагрузить компьютер. Жмем «ОК». Перезагружаем компьютер.

Исправляем ошибку (код 52)

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

bcdedit -set TESTSIGNING ON

Перезагружаемся. Ошибка исчезла, но появилось предупреждение о том, что windows работает в тестовом режиме. Если надпись не мешает жить — тогда на этом всё. Если надпись напрягает — тогда можно убрать ее при помощи программы Universal Watermark Disabler.

Читайте также:  Как изменить 32-бит Windows 10 на 64-бит

Профит. MultiKey установлен и работает на Windows 10 64 bit.

В данной заметке использовались следующие файлы (скачаны с сайта разработчика, залиты на мой хостинг):

[Решено] Установка MultiKey на Windows 10 x64 1903 / 1909 : 4 комментария

Добрый день! multikey_20.0.0.7z пароль от архива подскажите !?

Да, упустил
Пароль на архив: testprotect.com
Такой же, как и у разработчика на сайте

У Вас телефон все время занят, перезвоните как будет время. 8 (953) 367-35-45 Антон

Не удалось дозвониться, вот мой телефон. 8(994)436-21-08 Виктор

Инструкция: подписывание драйверов для Windows 10 (EV)

Эта статья – быстрый онлайн-помощник для тех, кто переходит на новое
подписывание драйверов в Windows 10 (EV, WHDC-портал). Здесь я постараюсь
дать основные рекомендации, чтобы помочь избежать глупых ошибок и, не
теряя времени, скорее адаптировать свои проекты под новые требования.

Для того, чтобы начать подписывать драйверы по-новому, вам потребуется:

* EV-сертификат, приобретенный у Symantec, DigiCert, GlobalSign, WoSign
или Entrust. В тот момент, когда пишутся эти строки, поддерживаются только
сертификаты, приобретенные в перечисленных выше организациях. В будущем список,
вероятно, будет дополняться.

По тексту ниже подразумевается, что сертификат уже установлен на вашем компьютере.

* Аккаунт на Microsoft (LiveID). Регистрация там бесплатная и занимает несколько минут.

* Утилита signtool с поддержкой SHA256. Утилиту лучше взять из последних версий WDK
(8 и выше), так как старые версии не поддерживают SHA256 и некоторые другие возможности,
которые вам потребуются.

* Несколько часов свободного времени.

Первое, что вам нужно сделать – зарегистрировать свою компанию на портале WHDC.
Идем сюда:

жмем ‘Dashboard’ и логинимся в свой аккаунт Microsoft.

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

Для вашего сертификата опции могут быть немного другие. Обратите внимание на ключи /fd и /td –
они указывают, что и для цифровой подписи, и для timestamp-сервера следует использовать
SHA256, а не SHA1. EV-сертификаты используют только SHA2. Также обратите внимание,
что здесь и далее больше не будут использоваться никакие кросс-сертификаты (ключ /ac),
так как для ‘attestation signing’ (подписывание драйверов через веб-портал) это не требуется.

Точно такой же командой вы будете подписывать submission (архив с файлами для подписи).

Подписав и загрузив winqual.exe, вы попадете на страницу, где вам предложат указать
сведения о компании – название, юридический адрес, почтовый индекс, телефон, e-mail.
Судя по всему, эта информация не проверяется и нужна только “для галочки”.
Но указывать откровенно “липовые” данные, разумеется, не стоит.

Вот и все, теперь вы успешно зарегистрированы на веб-портале WHDC.
Осталось немного – дать нужные разрешения (permissions), а также подписать несколько
соглашений, которые предлагает вам Microsoft (по поводу Anti-Malware, DRM и остальные в
таком же духе, всего штук 10). Я не буду подробно описывать нужные шаги, т.к. они
достаточно очевидны.

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

Сначала вам нужно создать cab-архив с файлами для подписи внутри.
Если пакет драйверов только один, cab-файл должен иметь такую структуру:

Я сразу советую проверять, валиден ли ваш INF-файл, используя утилиту inf2cat из WDK.
Например:

Файл cat, который сгенерировала утилита inf2cat.exe, в архив класть не нужно,
он все равно будет проигнорирован и портал при подписи создаст новый.

Важный момент: все пакеты драйверов в архиве должны быть под какую-то одну
архитектуру – или x64, или x86. На MSDN пишут, что Driver Package может
быть под обе архитектуры, но как правильно их упаковать в cab-архив – я
так и не понял. Попытки добавить еще один уровень в дереве папок внутри
архива (32/64, x86/x64, i386/amd64) успехом не увенчались.
Видимо, самый простой путь – делать две submission, одну чисто под x64,
вторую чисто под x86.

Когда cab-архив будет готов, вам нужно подписать его своим сертификатом.

Далее на веб-портале идем в раздел ‘File signing services’ и выбираем
пункт ‘Create driver signing submission’. После этого все очень просто:
вы указываете название своей submission (произвольное, это нужно только
для информативных целей), является ли ваш драйвер универсальным (см. концепцию
‘Universal Driver’ в MSDN), а также платформы, под которые собран драйвер,
их в настоящий момент четыре:

Microsoft Windows 10 AU Client family, x86
Microsoft Windows 10 AU Client family, x64
Microsoft Windows 10 Client family, x86
Microsoft Windows 10 Client family, x64

C x64/x86 все понятно, а вот разницу между Client и AU Client я не нашел –
подпись в конечном итоге получается одинаковая.

После этого вы загружаете свой cab-архив и жмете ‘Submit’. Все.

Обработка submission (процесс называется review) занимает некоторое время, у
меня было где-то около 15 минут, иногда может затянуться, как пишут, на
часы или даже сутки. Но обычно слишком долгий процесс обработки submission –
признак того, что что-то пошло не так и процесс будет завершен с ошибкой.

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

Кстати, можно запостить сразу несколько submission – они обрабатываются
параллельно и в некоторых случаях можно сэкономить немного времени.

В сведениях о цифровой подписи файлов, которые вам вернет портал, вы с удивлением
(а кто-то, возможно, и с радостью) обнаружите, что вместо ‘OOO Vasya Pupkin’ будет
вписано безликое и ужасное ‘Microsoft Windows Hardware Compatibility Publisher’.

Теперь драйвер можно ставить и запускать на Windows 10 – 1607 и никакие
Secure Boot, Device Guard и т.п. не помеха.

Теперь вопросы чисто практического плана.

Q: Как быть с предыдущими версиями Windows (Vista, Windows 7, Windows 8, Windows 8.1)?

A: К сожалению, здесь без вариантов: либо вам придется купить еще один сертификат SHA1 и
использовать его, либо попробуйте пройти HLK-тесты через веб-портал и тогда получите
подпись, которую понимают все указанные выше версии Windows.

Прохождение HLK-тестов – достаточно большой и серьезный “квест”, затрагивать эту
тему здесь я не буду.

Q: Как быть с Windows Server 2016 (vNext)? Его ведь нету в списке при отправке
submission на веб-портале.

A: Для Windows Server 2016 прохождение HLK-тестов для драйвера – единственный
легальный способ поддержки, другие типы цифровых подписей система принимать
не будет. Так что ждите через некоторое время очередную статью от меня про HLK.

Q: Как обстоят дела с двойными сигнатурами?

A: Портал добавляет свою подпись, не затирая старую. Поэтому можно, например,
подписать .sys-файл сначала стандартным сертификатом с SHA1 старым способом с
кросс-сертификатом (cross-signing), а затем отправить его на веб-портал, где
ему будет добавлена вторая подпись SHA256 для Windows 10 (attestation signing).
Такой драйвер сможет запускаться на любых версиях Windows.

Однако в случае с cat-файлами это не сработает, потому что, как уже писалось выше,
портал генерирует свой cat-файл, игнорируя тот, что лежит внутри cab-архива.

Читайте также:  Запросите разрешение от СИСТЕМА на изменение этой папки или файла — как исправить

Поэтому, если ваш драйвер ставится через INF-файл и вы хотите поддерживать
максимально возможный диапазон версий Windows, придется иметь несколько
пакетов драйвера, один для систем до Windows 10, второй для Windows 10 и выше.

Q: Что делать с модулями, которые собираются с ключом /INTEGRITYCHECK и,
согласно MSDN, должны подписываться с опцией /ph (generate page hashes)?
Например, драйвер, использующий Object Callbacks (ObRegisterCallbacks)?

A: Ничего не нужно. Система подписывания остается такой же, как и для
остальных драйверов Windows 10.

Q: EV-сертификат поставляется на USB-токене, это секьюрно, но неудобно.
У нас разработчики географически удалены друг от друга, а подписывать,
получается, может только один?

A: К сожалению, здесь действительно есть ряд неудобств.
Например, токен SafeNet не работает нормально в RDP-сессии и время
от времени начинает требовать ввод пароля (PIN).

Для решения этой проблемы можно настроить параметры, как написано здесь:

А также воспользоваться приведенным кодом и утилитой RemoteSignTool
(обертка над signtool.exe, работающая через интернет).

В настоящее время ведутся дебаты о том, чтобы оставить EV только для регистрации
на веб-портале, а для подписи submission использовать “обычные” сертификаты
(т.е. без USB-токенов и тому подобного):

Все о подписи драйверов 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: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-файлами. Возможно кому-то будет полезно.

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

  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, 8.1 и Windows 7 x64 и x86

В Windows 7 x64 существует несколько способов отключить проверку цифровой подписи устанавливаемого драйвера: с помощью групповой политики или тестового режима загрузки системы (подробнее все способы описаны в статье Отключаем проверку цифровой подписи для установки неподписанных драйверов в Windows 7).

Сегодня мы покажем, как можно самостоятельно подписать любой неподписанный драйвер для 64 битной версии Windows 7.

Предположим, что у нас имеется драйвер некого устройства для Windows 7 x64, для которого отсутствует цифровая подпись (в нашем примере это будет драйвер для довольно старой видеокарты). Архив с драйверами под нашу версию Windows был скачан с сайта производителя и его содержимое распаковано в каталог c:toolsdrv1. Попробуем установить драйвер, добавив его в хранилище драйверов Windows с помощью стандартной утилиты pnputil.

Pnputil –a c:toolsdrv1xg20gr.inf

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

Попробуем подписать данный драйвер с помощью самоподписанного сертификата.

Какие инструменты нам понадобятся

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

  • Microsoft Windows SDK for Windows – распространяется в виде ISO образа GRMSDK_EN_DVD.iso, размером 595 Мб
  • Windows Driver Kit 7.1.0 — ISO образа GRMWDK_EN_7600_1.ISO размером 649 Мб

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

Создадим в корне диска каталог C:WinItProDriverCert.

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

cd C:Program Files (x86)Microsoft SDKsWindowsv7.1bin

Создадим самоподписанный сертификат и закрытый ключ, выданный, допустим, для компании Winitpro:

makecert -r -sv C:WinItProDriverCertWinitproDrivers.pvk -n CN=”Winitpro” C:WinItProDriverCertWinItProDrivers.cer

Во время создания утилита попросит указать пароль для ключа, пусть это будет P@ss0wrd.

На основе созданного сертификата создадим публичный ключ для сертификат издателя ПО (PKCS).

cert2spc C:WinItProDriverCertWinItProDrivers.cer C:WinItProDriverCertWinItProDrivers.spc

Объединим публичный ключ (.spc) и персональный ключ (.pvk) в одном файле сертификата формата Personal Information Exchange (.pfx)

pvk2pfx -pvk C:WinItProDriverCertWinitproDrivers.pvk -pi P@ss0wrd -spc C:WinItProDriverCertWinItProDrivers.spc -pfx C:WinItProDriverCertWinItProDrivers.pfx -po P@ss0wrd

Подготовка пакета драйверов

Создадим каталог C:WinItProDriverCertxg20 и скопируем в него все файлы из каталога, в который первоначально был распакован архив с драйвером (c:toolsdrv1). Убедить что среди файлов имеются файлы с расширением .sys и .inf (в нашем случае xg20grp.sys и xg20gr).

Перейдем в каталог:

На основе inf файла сгенерируем для нашей платформы cat файл (содержит информацию о всех файлах пакета драйвера).

inf2cat.exe /driver:”C:WinItProDriverCertxg20″ /os:7_X64 /verbose

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

После выполнения команды в каталоге драйвера должен обновиться файл xg20gr.cat

Подписываем драйвер самоподписанным сертифкатом

Перейдите в каталог

cd C:Program Files (x86)Microsoft SDKsWindowsv7.1Bin

Подпишем комплект файлов драйвера созданным нами сертификатом, в качестве сервиса таймстампа воспользуемся ресурсом Verisign.

signtool sign /f C:WinItProDriverCertWinItProDrivers.pfx /p P@ss0wrd /t http://timestamp.verisign.com/scripts/timstamp.dll /v C:WinItProDriverCertxg20xg20gr.cat

Установка сертификата

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

certmgr.exe -add C:WinItProDriverCertWinItProDrivers.cer -s -r localMachine ROOT

certmgr.exe -add C:WinItProDriverCertWinItProDrivers.cer -s -r localMachine TRUSTEDPUBLISHER

Или из графического мастера добавления сертификатов (сертификат нужно поместить в хранилища Trusted Publishers и Trusted Root Certification Authorities)

Установка драйвера, заверенного самоподписанным сертификатом

Попробуем еще раз установить подписанный нами драйвер, выполнив команду:

Pnputil –i –a C:WinItProDriverCertxg20xg20gr.inf

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

Как выполнить установку неподписанного драйвера в Windows 10

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

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

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

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

Способ 1

  1. Кликнуть на значок «Пуск» (в левом нижнем углу), выбрать «Завершение работы».
  2. На клавиатуре нажать кнопку Shift , удерживать её и одновременно выбрать «Перезагрузка».
  3. В результате перезагрузки на экране появится такое меню, содержащее дополнительные параметры. Войти в папку «Диагностика».
  4. Выбрать «Дополнительные параметры».
  5. Зайти в «Параметры загрузки».
  6. Нажать Перезагрузить (справа внизу).
  7. На экране перезагрузившегося компьютера появится меню параметров загрузки Windows 10.
  8. Чтобы изменить конфигурацию запуска Windows 10 требуется нажать нужную кнопку ( F1 — F9 ). Надавить F7 .
  9. После того как система запустится вновь, может быть произведена установка неподписанных драйверов.
  10. Выполнить перезагрузку еще раз для восстановления настроек ОС.

Способ 2

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

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

  1. Навести курсор на «Пуск», нажать правую клавишу мыши. Выбрать «Командная строка (администратор)».
  2. Набрать bcdedit.exe -set loadoptions DISABLE_INTEGRITY_CHECKS , затем bcdedit.exe -set TESTSIGNING ON Нажать Enter .
  3. Через некоторое время в окне появится информация об успешном завершении операций. Закрыть командную строку.
  4. Выполнить перезагрузку устройства. Теперь ОС будет функционировать в тестовом режиме.
  5. Установить необходимые драйверы с отсутствующей цифровой подписью.

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

Способ 3

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

  1. Одновременным нажатием клавиш «Пуск» и R запустить окно «Выполнить». В строке «Открыть» набрать gpedit.msc. Нажать OK (или Enter ).
  2. В редакторе (справа) войти в папку «Конфигурация пользователя».
  3. Затем «Административные шаблоны».
  4. Далее «Система».
  5. Выбрать раздел «Установка драйвера».
  6. Потом «Цифровая подпись драйверов устройств».
  7. Поставить галочку на «Отключено» или отметить «Включено», а в параметрах под надписью «Если Windows обнаруживает файл драйвера без цифровой подписи» выбрать пункт «Пропустить». Надавить OK .
  8. Выполнить перезагрузку компьютера.
  9. Теперь программы без цифровой подписи могут быть установлены.

Видео по теме

Ссылка на основную публикацию