Подписать драйвер windows 10 x64 онлайн

Как самостоятельно подписать драйвер цифровой подписью для последующей установки в Windows 10, 8.1 и Windows 7. Пошаговая инструкция.

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

В этой инструкции подробно о том, как самостоятельно подписать драйвер для Windows 10, 8.1 или Windows 7 x64 или 32-бит (x86) для последующей установки в системе на постоянной основе без отключения проверки цифровой подписи драйверов, избежав при этом ошибок наподобие «INF стороннего производителя не содержит информации о подписи».

Что потребуется для подписи драйвера

Для того, чтобы выполнить все описанные далее шаги, скачайте и установите следующие инструменты с сайта Майкрософт:

  • Microsoft Windows SDK for Windows 7 https://www.microsoft.com/en-us/download/details.aspx?id=8279
  • Windows Driver Kit 7.1.0 https://www.microsoft.com/en-us/download/details.aspx?id=11800

Из первого набора достаточно будет установить Tools, из второго (представляет собой ISO-образ с установщиком, с которого нужно запустить KitSetup.exe) — выбрать Build Environments и Tools.

Обратите внимание: это не последние версии наборов инструментов, но они в равной степени подойдут для самостоятельной подписи драйверов для последующей установки во всех ОС от Windows 10 до Windows 7, при этом в инструкции не потребуется вдаваться в некоторые дополнительные нюансы.

Процесс самостоятельной подписи драйвера

В процессе для того, чтобы подписать драйвер самостоятельно, нам потребуется: создать сертификат, подписать драйвер этим сертификатом, установить сертификат в системе и установить драйвер. Начнем.

  1. Создайте в корне диска C какую-либо папку (так к ней проще будет обращаться в дальнейшем), например, C:cert, где мы будем работать с сертификатами и драйверами.
  2. Запустите командную строку от имени администратора (нужны для 18-го шага). Далее используем следующие команды по порядку. Файлы драйвера пока не потребуются. Во время выполнения второй команды вас попросят ввести пароль, я использую password в окне запроса и далее в командах, вы можете использовать свой.
  3. cd "C:Program FilesMicrosoft SDKsWindowsv7.1bin"
  4. makecert -r -sv C:certdriver.pvk -n CN="remontka" C:certdriver.cer
  5. cert2spc C:certdriver.cer C:certdriver.spc
  6. pvk2pfx -pvk C:certdriver.pvk -pi password -spc C:certdriver.spc -pfx C:certdriver.pfx -po password
  7. До этого этапа всё должно пройти как на скриншоте ниже, командную строку не закрываем. Создание файла сертификата для подписи драйвера
  8. В папке C:cert создайте вложенную папку, например, drv и поместите туда свои файлы драйвера. Но: если вам требуется драйвер только для x64, не копируйте .inf файл для x86 систем в эту папку и наоборот. файлы драйвера для подписыванияВ командной строке используем следующие команды:
  9. cd C:WinDDK7600.16385.1binselfsign
  10. inf2cat.exe /driver:"C:certdrv" /os:7_X64 /verbose
  11. В предыдущей команде для драйвера 32-бит укажите X86 вместо X64. Если будет предложено скачать .NET Framework, согласитесь, установите, а затем заново выполните команду. В идеале вы должны будете получить сообщение об успешном создании .cat файла для подписи. Однако, возможны ошибки, о наиболее частых — следующие два пункта. После исправления ошибок повторите команду из пункта 10.
  12. DriverVer set to incorrect date — возникает при дате в файле драйвера до 21 апреля 2009 года. Решение: откройте файл .inf из папки drv в текстовом редакторе (можно в блокноте) и в строке DriverVer установите другую дату (формат: месяц/день/год).
  13. Missing AMD64 CatalogFile entry (для 64-бит) или Missing 32-bit CatalogFile entry. Решение: откройте файл .inf из папки drv в текстовом редакторе и в разделе [Version] добавьте строку CatalogFile=catalog.cat
  14. В итоге вы должны получить сообщение: Catalog generation complete с указанием пути к файлу каталога, в моем случае – C:certdrvcatalog.cat. Далее используем следующие команды (требуется подключение к Интернету). Файл каталога создан успешно
  15. cd "C:Program FilesMicrosoft SDKsWindowsv7.1bin"
  16. signtool sign /f C:certdriver.pfx /p password /t http://timestamp.verisign.com/scripts/timestamp.dll /v C:certdrvcatalog.cat
  17. Результат подписи файла драйвера без ошибок на скриншоте ниже. Следующий шаг — добавить самоподписанный сертификат в список доверенных в системе, сделать это можно следующими двумя командами по порядку Подписать драйвер с помощью signtool
  18. certmgr.exe -add C:certdriver.cer -s -r localMachine ROOT
    certmgr.exe -add C:certdriver.cer -s -r localMachine TRUSTEDPUBLISHER
  19. В результате вы должны получить сообщение «CertMgr Succeeded». Если Failed или certmgr.exe не является внутренней или внешней командой — убедитесь, что командная строка запущена от имени администратора, а вы находитесь в нужной папке (см. 15 шаг).

И вот теперь можно закрыть командную строку и установить драйвер из папки C:certdrv с помощью диспетчера устройств, или нажав правой кнопкой по .inf файлу и выбрав пункт «Установить». Потребуется подтвердить установку драйвера в окне «Не удалось проверить издателя этих драйверов» — нажать «Все равно установить этот драйвер».

Установка самостоятельно подписанного драйвера

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

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

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

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

Содержание статьи

  • 1 Как подписать драйвер для работы устройств на Windows 10 или Windows 7
  • 2 Необходимые инструменты
  • 3 Создание самоподписанного сертификата и приватного ключа
    • 3.1 Создание Файла Каталога
    • 3.2 Подписание драйвера
    • 3.3 Установка самоподписанного сертификата
  • 4 Установка драйвера

Как подписать драйвер для работы устройств на 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
Теперь ошибка как при первой попытке не появляется, а вместо неё видим сообщение об успешной установке драйвера. Как подписать драйвер

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

Загрузка…

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

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

Сегодня мы покажем, как можно самостоятельно подписать любой неподписанный драйвер для x64 битной версии Windows (инструкция применима для Windows 11, 10, 8.1 и 7).

Содержание:

  • Создаем самоподписанный сертификат драйвера
  • Генерируем CAT файл драйвера
  • Подписываем драйвер самоподписанным сертификатом
  • Установка драйвера, заверенного самоподписанным сертификатом
  • Драйверы Kernel-Mode и User-Mode

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

Pnputil –a "C:toolsdrv1xg20gr.inf"

Примечание. Эта и все последующие команды выполняются в командной строке, запущенной с правами администратора.

При установке драйвера в Windows 7 появляется предупреждение о том, что ОС не может проверить цифровую подпись драйвера.

Windows 7 ошибка при установе драйвера без цифровой подписи

В Windows 10 (21H1) появляется предупреждение:

Не удалось добавить пакет драйвера: INF стороннего производителя не содержит информации о подписи.
Adding the driver package failed : The third-party INF does not contain digital signature information.

Не удалось добавить пакет драйвера: INF стороннего производителя не содержит информации о подписи

Такая же ошибка появляется при установке драйвера из проводника Windows (щелкните ПКМ по inf файлу драйвера и выберите Install / Установить):

Установить драйвер из inf файла

The third-party INF does not contain digital signature information.
INF стороннего производителя не содержит информации о подписи.

INF файл драйвера стороннего производителя не содержит информации о подписи

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

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

  • Windows SDK (или Microsoft Visual Studio 2005 или выше) для вашей версии Windows. В состав этих пакетов входит Windows SDK Signing tools for Desktop, в которую включена необходимая нам утилита —
    signtool.exe
    ;установка windows wdk signing tool
  • Windows Driver Kit (WDK) — https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk

Совет. Перед установкой этих инструментов, проверьте, что в Windows установлен .NET Framework 4.

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

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

Для создания самоподписанного сертификата типа Code Signing можно использовать PowerShell командлет New-SelfSifgnedCertificate. В этом примере мы создадим самоподписанный сертификат со сроком действия 3 года.

$todaydate = Get-Date
$add3year = $todaydate.AddYears(3)
$cert = New-SelfSignedCertificate -Subject "Winitpro” -Type CodeSigningCert -CertStoreLocation cert:LocalMachineMy -notafter $add3year

Затем нужно экспортировать данный сертификат в pfx файл с паролем:

$CertPassword = ConvertTo-SecureString -String “[email protected]” -Force –AsPlainText
Export-PfxCertificate -Cert $cert -FilePath C:DriverCertmyDrivers.pfx -Password $CertPassword

powershell создать сертфикат типа code signing для подписи драйвера

Теперь нужно добавить сертификат в доверенные корневые сертификаты и в сертификаты доверенных издателей:

$certFile = Export-Certificate -Cert $cert -FilePath C:DriverCertdrivecert.cer
Import-Certificate -CertStoreLocation Cert:LocalMachineAuthRoot -FilePath $certFile.FullName
Import-Certificate -CertStoreLocation Cert:LocalMachineTrustedPublisher -FilePath $certFile.FullName

В предыдущих версиях Windows для создания сапомодписанных сертификатов нужно использовать утилиту makecert.exe из Windows Software Development Kit (SDK). В этом случае команды для создания сертификата будут выглядеть так:

cd “C:Program Files (x86)Microsoft SDKsWindowsv7.1bin”
makecert -r -sv C:DriverCertmyDrivers.pvk -n CN="Winitpro" C:DriverCertMyDrivers.cer

Укажите пароль для ключа (например,
[email protected]
).

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

cert2spc C:DriverCertmyDrivers.cer C:DriverCertmyDrivers.spc

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

pvk2pfx -pvk C:DriverCertmyDrivers.pvk -pi [email protected] -spc C:DriverCertmyDrivers.spc -pfx C:DriverCertmyDrivers.pfx -po [email protected]

Добавьте сертификат в доверенные:

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

В домене вы можете централизованно распространить этот сертификат на рабочие станции с помощью групповой политики. Запустите консоль управления локальными сертификатами компьютера и убедитесь, что ваш сертификат есть в хранилищах Trusted Publishers и Trusted Root Certification Authorities локальной машины).

Примечание. При проверке хранилища сертификатов с помощью утилиты Sigcheck этот сертификат будет отображаться как недоверенный, т.к. он отсутствует в списке со списком корневых сертификатов Microsoft (этот список нужно периодически обновлять).

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

Совет. Несмотря на то, что сертификат имеет ограниченный срок действия, истечение срока действия сертификата CodeSigning означает, что вы не сможете создавать новые сигнатуры. Срок действия драйвера, уже подписанного этим сертификатом, бессрочен (либо старые сигнатуры действуют в течении указанного timestamp).

Генерируем CAT файл драйвера

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

md C:DriverCertxg
xcopy c:toolsdrv1 C:DriverCertxg /i /c /k /e /r /y

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

cd “C:Program Files (x86)Windows Kits10bin10.0.22000.0x86”

На основе inf файла с помощью утилиты inf2cat.exe (входит в состав Windows Driver Kit -WDK) сгенерируйте cat файл (содержит информацию о всех файлах пакета драйвера).

inf2cat.exe /driver:"C:DriverCertxg" /os:7_X64 /verbose

Генерируем cat файл драйвера на основе inf файла

Чтобы убедитесь, что процедура прошла корректно, проверьте, что в каталоге появился файл C:DriverCertxgxg20gr.cat, и в логе есть сообщения:

Signability test complete.

и

Catalog generation complete.

Совет. В моем случае команда Inf2Cat.exe вернула ошибку:

Signability test failed.
Errors:
22.9.7: DriverVer set to incorrect date (must be postdated to 4/21/2009 for newest OS) in hdx861a.inf

DriverVer set to incorrect date (must be postdated to 4/21/2009 for newest OS)

Для исправления ошибки нужно в секции [Version] найти строку с DriverVer= и заменить ее на:

DriverVer=05/01/2009,9.9.9.9

DriverVer=05/01/2009,9.9.9.9

Если у вас появится ошибка
Missing AMD64 CatalogFile entry
(для 64-бит) или
Missing 32-bit CatalogFile entry
. Нужно в секцию [Version] .inf файла добавить строку
CatalogFile=xg20gr.cat
.

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

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

cd "C:Program Files (x86)Windows Kits10bin10.0.22000.0x64"

Подпишите комплект файлов драйвера созданным сертификатом. В качестве сервиса таймстампа (штамп времени) воспользуемся ресурсом Globalsign. Следующая команда подпишет CAT файл цифровой подписью с помощью сертификата, хранящегося в PFX-файл, защищенном паролем.

signtool sign /f C:DriverCertmyDrivers.pfx /p [email protected] /t http://timestamp.globalsign.com/scripts/timstamp.dll /v "C:DriverCertxgxg20gr.cat"

В современных версиях Windows 10 и Windows 11 при выполнении этой команды появится ошибка:

SignTool Error: No file digest algorithm specified. Please specify the digest algorithm with the /fd flag. Using /fd SHA256 is recommended and more secure than SHA1. Calling signtool with /fd sha1 is equivalent to the previous behavior. In order to select the hash algorithm used in the signing certificate's signature, use the /fd certHash option.

Нужно использовать другую команду:

signtool sign /tr http://timestamp.digicert.com /td SHA256 /v /f C:DriverCertmyDrivers.pfx /p [email protected] "C:DriverCertxgxg20gr.cat"

sigtool подписать CAT файл драйвера своим сертификатом

Если при выполнении команды появляется ошибка
SignTool Error: An unexpected internal error has occurred, или Error information: SignerTimeStamp() failed. (-2147012865/0x80072eff)
, попробуйте другой URL адрес сервера. Попробуйте любой из списка:

http://timestamp.verisign.com/scripts/timstamp.dll
http://timestamp.globalsign.com/scripts/timstamp.dll
http://timestamp.comodoca.com/authenticode
http://www.startssl.com/timestamp
http://tsa.starfieldtech.com

Если файл подписан успешно, должна появится надпись:

Successfully signed: C:DriverCertxgxg20gr.cat
Number of files successfully Signed: 1

Цифровая подпись драйвера содержится в .cat файле, на который ссылается .inf файл драйвера. С помощью следующей команды можно проверить цифровую подпись драйвера в cat файле:

SignTool verify /v /pa c:DriverCertxgxg20gr.cat

SignTool verify - проверить cat файл

Также можно увидеть информацию о сертификате в свойствах CAT файла на вкладке Digital Signatures.

показать сертфикат cat файла

Если сертификат не доверенный (или не был добавлен в хранилище корневых доверенных сертификатов), то при выполнении команды SignTool verify появится ошибка:

SignTool Error: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.

CAT файл содержит цифровые подписи (отпечатки / thumbprints) всех файлов, которые находятся в каталоге драйвера (файлов, которые указаны в INF файле в секции CopyFiles). Если любой из этих файлов был изменен, то контрольная сумма файлов не будет совпадать с данными в CAT файле, в результате установка такого драйвера закончится ошибкой.

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

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

Pnputil –i –a C:DriverCertxg20xg20gr.inf

Successfully installed the driver on a device on the system.
Driver package added successfully.

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

В Windows 10 и 11 появляется предупреждение о том, уверены ли вы, что хотите установить этот драйвер. Нажав Install, вы установите драйвер в системе.

Если по каким-то причинам драйвер не устанавливается, подробный лог установки драйвера содержится в файле C:Windowsinfsetupapi.dev.log. Этот лог позволит вам получить более подробную информацию об ошибке установки. В большинстве случаев возникает ошибка
Driver package failed signature validation
. Скорее всего это означает, что сертификат драйвера не добавлен в доверенные сертификаты.

setupapi.dev.log

Если установка драйвера прошла успешно, в файле setupapi.dev.log будут примерно такие строки:

>>>  [Device Install (DiInstallDriver) - C:WINDOWSSystem32DriverStoreFileRepositoryxg20gr.inf_amd64_c5955181485ee80axg20gr.inf]
>>>  Section start 2018/07/22 23:32:57.015
cmd: Pnputil  -i -a c:DriverCertxgxg20gr.inf
ndv: Flags: 0x00000000
ndv: INF path: C:WINDOWSSystem32DriverStoreFileRepositoryxg20gr.inf_amd64_c5955181485ee80axg20gr.inf
inf: {SetupCopyOEMInf: C:WINDOWSSystem32DriverStoreFileRepositoryxg20gr.inf_amd64_c5955181485ee80axg20gr.inf} 23:32:57.046
inf:      Copy style: 0x00000000
inf:      Driver Store Path: C:WINDOWSSystem32DriverStoreFileRepositoryxg20gr.inf_amd64_c5955181485ee80axg20gr.inf
inf:      Published Inf Path: C:WINDOWSINFoem23.inf
inf: {SetupCopyOEMInf exit (0x00000000)} 23:32:57.077
<<<  Section end 2018/07/22 23:32:57.155
<<<  [Exit status: SUCCESS]

Драйверы Kernel-Mode и User-Mode

Напомню, что в Windows драйвер могут выполнятся либо в режиме ядра (kernel-mode), либо в режиме пользователя (user-mode). Драйверы режима ядра, подписанные таким образом не будут загружаться при загрузке Windows в режиме UEFI Secure Boot с ошибкой:

Event ID: 7000
ERROR_DRIVER_BLOCKED
1275 (0x4FB)
This driver has been blocked from loading.

ошибка 7000 при загрузк драйвера. windows заблокировала драйвер

Проверить, включен ли режим Secure Boot можно с помощью команды:

Confirm-SecureBootUEFI

Confirm-SecureBootUEFI

Все драйвера, режима ядра, загружаемые при включенном SecureBoot, должны быть подписаны в ходе процесса сертификации Microsoft (WHQL — Windows Hardware Quality Lab). Причина в том, что при загрузке ядра, UEFI не может проверить сертификаты в локальном хранилище Windows.

SignTool Error: Signing Cert does not chain to a Microsoft Code Verification Root.

Microsoft ввела обязательную сертификацию сторонних драйверов по программе Windows Hardware Compatibility Program начиная с Windows 10 1607.

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

Для kernel-mode драйверов придется отключить проверку цифровой подписи при загрузке и загружаться в тестовом режиме с помощью bcdedit.exe, как описано здесь:

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

12.08.2016, 21:32. Показов 36615. Ответов 41


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

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

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

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

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

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

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

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

Microsoft Hardware Dev Center
https://developer.microsoft.co… s/hardware

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

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

Код

signtool.exe sign /n "My EV Certificate Name" /a /fd SHA256 /tr http://timestamp.globalsign.com/?signature=sha2 /td SHA256 winqual.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-файл должен иметь такую структуру:

Код

DriverPackage
    mydriver.sys
    mydriver.inf

Если пакетов драйверов несколько, тогда добавляется нумерация:

Код

DriverPackage1
    drv1.sys
    drv1.inf
DriverPackage2
    drv2.sys
    drv2.inf
...
DriverPackageN
    drvN.sys
    drvN.inf

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

Кликните здесь для просмотра всего текста

Код

;
; TODO: Add copyright info here.
;

[Version]
Signature                = "$Chicago$"
Provider                 = %Provider%
Class                    = "LegacyDriver"
ClassGuid                = {8ECC055D-047F-11D1-A537-0000F8753ED1}
DriverVer                = 07/24/2015,1.0.0.0
DriverPackageType        = KernelService
DriverPackageDisplayName = %PackageDisplayName%
CatalogFile              = setup.cat

[DefaultInstall]
CopyFiles = Setup.CopyFiles

[DefaultInstall.Services]
AddService = mydriver,,Setup.AddService

[SourceDisksFiles]
mydriver.sys = 1

[SourceDisksNames]
1 = "Disk"

[DestinationDirs]
DefaultDestDir = 12 ; "system32drivers" directory.

[Setup.CopyFiles]
mydriver.sys

[Setup.AddService]
ServiceName   = mydriver
DisplayName   = %DrvDisplayName%
Description   = %DrvDescription%
ServiceType   = 1 ; SERVICE_KERNEL_DRIVER
StartType     = 1 ; SERVICE_SYSTEM_START
ErrorControl  = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%mydriver.sys ; 12 - "system32drivers" directory.

[Strings]
Provider           = "My Driver Provider Name"
PackageDisplayName = "My Driver Package Display Name"
DrvDisplayName     = "MyDriver"
DrvDescription     = "My Driver Description"

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

Код

inf2cat.exe /v /DRV:C:MyDriverPackage /OS:XP_X64

Для создания cab-архива можно использовать разные программы, но проще всего
задействовать штатную утилиту Windows под названием makecab:

Код

makecab.exe /f путь-к-файлу-ddf

В файле ddf описываются директивы для создания cab-архива.
Я использую примерно такой шаблон:

Код

.OPTION EXPLICIT
.Set CabinetFileCountThreshold=0
.Set FolderFileCountThreshold=0
.Set FolderSizeThreshold=0
.Set MaxCabinetSize=0
.Set MaxDiskFileCount=0
.Set MaxDiskSize=0
.Set CompressionType=MSZIP
.Set Cabinet=on
.Set Compress=on
.Set CabinetNameTemplate=submission-8.cab
.Set DestinationDir=DriverPackage1
C:SUBMISSIONSMyDriver164MyDriver1.sys
C:SUBMISSIONSMyDriver164setup.inf
.Set DestinationDir=DriverPackage2
C:SUBMISSIONSMyDriver264MyDriver2.sys
C:SUBMISSIONSMyDriver264setup.inf

Файл 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).

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

Automate Extended Validation (EV) code signing
http://stackoverflow.com/quest… de-signing

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

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

EV Cert to be Requires for EVERY sysdev submission…
http://www.osronline.com/showt… ink=278314



10



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

В этой инструкции подробно о том, как самостоятельно подписать драйвер для Windows 10, 8.1 или Windows 7 x64 или 32-бит (x86) для последующей установки в системе на постоянной основе без отключения проверки цифровой подписи драйверов, избежав при этом ошибок наподобие «INF стороннего производителя не содержит информации о подписи».

Что потребуется для подписи драйвера

Для того, чтобы выполнить все описанные далее шаги, скачайте и установите следующие инструменты с сайта Майкрософт:

  • Microsoft Windows SDK for Windows 7 https://www.microsoft.com/en-us/download/details.aspx?id=8279
  • Windows Driver Kit 7.1.0 https://www.microsoft.com/en-us/download/details.aspx?id=11800

Из первого набора достаточно будет установить Tools, из второго (представляет собой ISO-образ с установщиком, с которого нужно запустить KitSetup.exe) — выбрать Build Environments и Tools.

Обратите внимание: это не последние версии наборов инструментов, но они в равной степени подойдут для самостоятельной подписи драйверов для последующей установки во всех ОС от Windows 10 до Windows 7, при этом в инструкции не потребуется вдаваться в некоторые дополнительные нюансы.

Процесс самостоятельной подписи драйвера

В процессе для того, чтобы подписать драйвер самостоятельно, нам потребуется: создать сертификат, подписать драйвер этим сертификатом, установить сертификат в системе и установить драйвер. Начнем.

  1. Создайте в корне диска C какую-либо папку (так к ней проще будет обращаться в дальнейшем), например, C:cert, где мы будем работать с сертификатами и драйверами.
  2. Запустите командную строку от имени администратора (нужны для 18-го шага). Далее используем следующие команды по порядку. Файлы драйвера пока не потребуются. Во время выполнения второй команды вас попросят ввести пароль, я использую password в окне запроса и далее в командах, вы можете использовать свой.
  3. cd "C:Program FilesMicrosoft SDKsWindowsv7.1bin"
  4. makecert -r -sv C:certdriver.pvk -n CN="remontka" C:certdriver.cer
  5. cert2spc C:certdriver.cer C:certdriver.spc
  6. pvk2pfx -pvk C:certdriver.pvk -pi password -spc C:certdriver.spc -pfx C:certdriver.pfx -po password
  7. До этого этапа всё должно пройти как на скриншоте ниже, командную строку не закрываем. Создание файла сертификата для подписи драйвера
  8. В папке C:cert создайте вложенную папку, например, drv и поместите туда свои файлы драйвера. Но: если вам требуется драйвер только для x64, не копируйте .inf файл для x86 систем в эту папку и наоборот. файлы драйвера для подписывания В командной строке используем следующие команды:
  9. cd C:WinDDK7600.16385.1binselfsign
  10. inf2cat.exe /driver:"C:certdrv" /os:7_X64 /verbose
  11. В предыдущей команде для драйвера 32-бит укажите X86 вместо X64. Если будет предложено скачать .NET Framework, согласитесь, установите, а затем заново выполните команду. В идеале вы должны будете получить сообщение об успешном создании .cat файла для подписи. Однако, возможны ошибки, о наиболее частых — следующие два пункта. После исправления ошибок повторите команду из пункта 10.
  12. DriverVer set to incorrect date — возникает при дате в файле драйвера до 21 апреля 2009 года. Решение: откройте файл .inf из папки drv в текстовом редакторе (можно в блокноте) и в строке DriverVer установите другую дату (формат: месяц/день/год).
  13. Missing AMD64 CatalogFile entry (для 64-бит) или Missing 32-bit CatalogFile entry. Решение: откройте файл .inf из папки drv в текстовом редакторе и в разделе [Version] добавьте строку CatalogFile=catalog.cat
  14. В итоге вы должны получить сообщение: Catalog generation complete с указанием пути к файлу каталога, в моем случае – C:certdrvcatalog.cat. Далее используем следующие команды (требуется подключение к Интернету). Файл каталога создан успешно
  15. cd "C:Program FilesMicrosoft SDKsWindowsv7.1bin"
  16. signtool sign /f C:certdriver.pfx /p password /t http://timestamp.verisign.com/scripts/timestamp.dll /v C:certdrvcatalog.cat
  17. Результат подписи файла драйвера без ошибок на скриншоте ниже. Следующий шаг — добавить самоподписанный сертификат в список доверенных в системе, сделать это можно следующими двумя командами по порядку Подписать драйвер с помощью signtool
  18. certmgr.exe -add C:certdriver.cer -s -r localMachine ROOTcertmgr.exe -add C:certdriver.cer -s -r localMachine TRUSTEDPUBLISHER
  19. В результате вы должны получить сообщение «CertMgr Succeeded». Если Failed или certmgr.exe не является внутренней или внешней командой — убедитесь, что командная строка запущена от имени администратора, а вы находитесь в нужной папке (см. 15 шаг).

И вот теперь можно закрыть командную строку и установить драйвер из папки C:certdrv с помощью диспетчера устройств, или нажав правой кнопкой по .inf файлу и выбрав пункт «Установить». Потребуется подтвердить установку драйвера в окне «Не удалось проверить издателя этих драйверов» — нажать «Все равно установить этот драйвер».

Установка самостоятельно подписанного драйвера

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

Во время установки и подключения новых устройств в Windows 10 может появится ошибка “inf стороннего производителя не содержит информации о подписи“. Это значит, что драйвер, который пытается установиться с данным устройством не прошел проверку на совместимость с данной версией Windows 10. По мнению разработчиков операционной системы такой драйвер не должен быть установлен.

Но как же быть? Ведь устройство без драйвера не будет работать. Выход есть! Это временное отключение проверки подписи драйверов в windows 10. Как это сделать вы узнаете в данной статье.

Создание цифровой подписи

В некоторых случаях описанные методы могут не помочь. Когда не отключается проверка подписи драйверов Windows 7 или 10, придется подписать его самостоятельно. Для этой цели нам понадобится распаковать установочный пакет и найти файл с расширением INF. В нем содержится необходимая для инсталляции в системе информация. Найдя нужный файл, вызываем его свойства и переходим на вкладку «Безопасность». Копируем путь, указанный в поле «Имя объекта».

Запускаем PowerShell с повышенными правами. Вводим следующую команду: «pnputil -a C:pathname.inf». Заменяем в ней строку «C:pathname.inf» на скопированный путь к файлу.

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

Отключение подписи

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

Групповая политика

Самый простой способ отключить электронную подпись заключается в изменении политики безопасности. Запускаем редактор, используя меню «Выполнить».

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

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

Заданное правило должно начать действовать без перезагрузки.

Особые параметры загрузки

Следующий способ предполагает использование особых вариантов загрузки операционной системы. Открываем меню параметров Windows и переходим в указанный на скриншоте раздел.

В области навигации перемещаемся к пункту «Восстановление». Используем отмеченную кнопку для перезагрузки системы.

Управление мышью тут доступно, поэтому последовательно начинаем перемещаться по меню. Открываем раздел устранения неисправностей.

Выбираем дополнительные параметры.

Переходим к настройкам загрузки.

Эта область информационная и работает в ней только отмеченная кнопка.

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

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

Режим командной строки

С помощью этого метода можно также отключить проверку цифровой подписи драйвера в Windows 7. Запускаем PowerShell в режиме повышенных прав. Вводим последовательно приведенные на скриншоте команды.

После перезагрузки система не будет сообщать, что ей требуется драйвер с цифровой подписью. Для отключения режима в тексте последней команды указываем «OFF» вместо «ON».

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

По сути, наличие цифровой подписи — это один из гарантов безопасности файла. Но иногда программы бывают не подписаны. То же самое может быть у драйверов. По умолчанию в Windows 10 блокируется установка подобных приложений. Дело в том, что отсутствие подписи может говорить о том, что установка подделана. С какой целью? Кто знает. Поэтому установка таких драйверов и приложений действительно небезопасна.

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

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

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

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

Использование командной строки

  1. Если у вас UEFI вместо классического BIOS, предварительно нужно отключить функцию Secure Boot (попасть в настройки можно нажатием клавиши Del или F2 при включении компьютера).
  2. В списке приложений Windows 10 отыщите командную строку и запустите ее от имени Администратора.

  1. В окошке командной строки введите: exe -set loadoptions DISABLE_INTEGRITY_CHECKS и нажмите Enter.
  2. Теперь введите: exe -set TESTSIGNING ON и также нажмите клавишу Enter.
  3. Выполните перезагрузку.

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

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

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

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

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

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

  1. Кликнуть на значок «Пуск» (в левом нижнем углу), выбрать «Завершение работы».

  2. На клавиатуре нажать кнопку Shift , удерживать её и одновременно выбрать «Перезагрузка».
  3. В результате перезагрузки на экране появится такое меню, содержащее дополнительные параметры. Войти в папку «Диагностика».

  4. Выбрать «Дополнительные параметры».

  5. Зайти в «Параметры загрузки».

  6. Нажать Перезагрузить (справа внизу).

  7. На экране перезагрузившегося компьютера появится меню параметров загрузки Windows 10.
  8. Чтобы изменить конфигурацию запуска Windows 10 требуется нажать нужную кнопку ( F1 — F9 ). Надавить F7 .

  9. После того как система запустится вновь, может быть произведена установка неподписанных драйверов.
  10. Выполнить перезагрузку еще раз для восстановления настроек ОС.

Внимание! Этот вариант подходит только для ПК с базовой программой 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 ). Когда выполнение заданной операции завершится, перезагрузить ПК.

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

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

  7. Поставить галочку на «Отключено»

  8. Выполнить перезагрузку компьютера.
  9. Теперь программы без цифровой подписи могут быть установлены.

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

Этот способ должен отключить проверку цифровой подписи драйверов навсегда — с использованием командной строки для редактирования параметров загрузки. Ограничения способа: у вас либо должен быть компьютер с 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

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

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

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

4) Затем можем немного почитать, но потом всё равно нажимаем кнопку Перезагрузить.

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

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

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

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

Пролог

Начиная с версии Windows 10 1607 корпорация Microsoft ввела обязательную сертификацию сторонних драйверов по программе Windows Hardware Compatibility Program (новость об этом в блоге msdn , пост на хабре ). Работает это нововведение на чистых установках Windows 10 соответствующей версии с включенным режимом Secure Boot .

Несоблюдение этого условия в лучшем случае (при отключенном Secure Boot) приведет к появлению предупреждения:

В худшем — к запрету на установку драйвера:

Несмотря на наличие официальной документации по прохождению процедуры сертификации, этот процесс может быть сопровожден рядом неочевидных на первый взгляд сложностей. Ниже приводится поэтапный разбор всех подводных камней на примере прохождения сертификации драйвера веб-камеры для 32 и 64-битной версий Windows 10 с обновлением 1803.

Краткий обзор всей последовательности действий:

  • Подготовка парка машин
  • Развертывание тестового фреймворка Windows Hardware Lab Kit
  • Создание и конфигурация тестового проекта
  • Прохождение списка тестов
  • Подготовка финального пакета с результатами
  • Обработка результатов на серверах Microsoft и получение подписи

Дебют или этап подготовки

Очевидным предварительным условием для сертификации является наличие следующего:

  • EV сертификата;
  • Подготовленных компонентов драйвера (файлы .inf, .sys, .map, .pdb);
  • Сгенерированного утилитой inf2cat (входит в состав Windows SDK ) cat-файла .

Файлы .sys и .cat должны быть подписаны EV сертификатом. Для этого используется утилита singtool из Windows SDK.

В нашем случае файлы .inf, .sys, .map, .pdb и .cat представлены в двух экземплярах для архитектур x86 и x64 соответственно.

Первым шагом к сертификации драйвера является прохождение серии тестов на совместимость оборудования для Windows. Для этих целей Microsoft предоставляет специализированный фреймворк Windows Hardware Lab Kit , ранее называвшийся Windows Hardware Certification Kit (HCK). А еще ранее этот же фреймворк носил имя Windows Hardware Logo Kit, что доставляет неудобство в поиске информации, так как по запросу HLK нередко выпадает устаревшая. С кратким обзором концепции тестирования можно ознакомиться по ссылке . В состав HLK входят серверная часть (включает в себя менеджер тестов HLK Controller и управляющую консоль HLK Studio ) и клиентская часть (HLK Client). Таким образом, HLK предполагает наличия тестового парка из как минимум двух машин.

Подготовка парка машин

Для серверной части HLK ограничением является необходимость развертывания на Windows Server 2012, Windows Server 2012 R2 или Windows Server 2016.

Начиная с релиза 1709 HLK поддерживает тестирование клиентов только соответствующей версии Windows 10 , предыдущие редакции кита предусматривали возможность работы с некоторым подмножеством обновлений этой операционной системы.

Табличка поддерживаемых версий:

HLK version Supported version Accepted device/component Accepted system
1803 1803 – Client 1803 Client Device/Component 1803 Client Systems
1709 1709 – Client 1709 Client Device/Component 1709 Client Systems
1703 1703 – Client 1703 Client Device/Component 1703 Client Systems
1607 — Client 1607 Client Device/Component
1607 1607 – Client 1607 Client Device/Component 1607 Server Systems
1607 – Server, Azure Stack, SDDC 1607 Server Device/Component
1511 — Client 1511 Client Device/Component

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

Миттельшпиль или работа с HLK

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

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

Развертывание HLK

На контроллере устанавливаем свежескаченный HLK корректной версии. В нашем случае это HLK 1803, поскольку на клиентах будет установлена Windows 10 с обновлением 1803. Существует вариант установки одной HLK Studio, однако он полезен только для работы с финальными пакетами hlkx.

Так же на контроллере должен быть установлен EV сертификат, которым были подписаны .sys и .cat файлы. Он понадобится нам позже, на этапе подготовки пакета для сабмита в Microsoft.

Клиентская часть ставится на тестовые машины по сети с контроллера:

\контроллерHCKInstallClientsetup.exe

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

На каждую машину нужно установить наш подопытный драйвер. Для этих целей используется утилита hdwwiz (выполнить из Windows -> Run -> hdwwiz).

Стоит упомянуть о такой замечательной особенности Windows, как наличие кэша драйверов Driver Store. Если ранее в системе был установлен драйвера с версией, равной или новее той, которую вы пытаетесь поставить сейчас, существует вероятность, что Windows проигнорирует ваши попытки и возьмет копию из кэша. Для того, чтобы окончательно удалить предыдущий инстанс, можно воспользоваться приложением Driver Store Explorer .

Фильтры и плейлисты

Иногда с релизом нового обновления Windows или новой версии HLK часть тестов ломается. Результатом выполнения любого из них является ошибка, которая позже помешает нам подготовить финальный пакет hlkx. Для исключения сломанных тестов из общего списка тестирования, Microsoft выпускает специальные пакеты фильтров (HLK Filters). До начала процедуры тестирования необходимо скачать на контроллер архив самых свежих фильтров , распаковать их по пути

C:Program Files (x86)Windows Kits10Hardware Lab KitController

и запустить приложение UpdateFilters.exe, расположенное там же.

Важно: рекомендуется устанавливать фильтры до начала тестирования, так как их эффект применяется только к запущенным после установки тестам. Чтобы изменить результаты уже проведенных тестов, необходимо в проекте HLK Studio перейти на страницу Results и нажать кнопку Apply Filters.

Кроме фильтров Microsoft поставляет специализированные плейлисты (HLK Playlist), изменяющие состав базового списка тестов. Скачиваем архив с актуальными плейлистами и распаковываем его на контроллере.

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

Информацию по выпуску новых фильтров и плейлистов можно найти в блоге Windows Hardware Certification

Подготовка пула тестовых машин

Пришло время подготовить пулы наших клиентских машин. Они нам понадобятся на этапе создания проекта. На вкладке Configuration все машины отобразятся в Default Pool. Нужно создать свои пулы (кнопка Create Machine Pool) и перетащить в них машины из пула по-умолчанию.

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

Поле Status у каждой машины будет Not Ready — нужно щелкнуть по ним правой кнопкой и изменить статус на Ready.

Важно: иногда студия выдает ошибку на попытку изменить статус машины.

Кроме прочего, такая ситуация появляется, когда меняется ОС на тестовом клиенте, например, в схеме с одним контроллером и одним клиентом. Решается это удалением машины из пула (пункт Delete Machine в контекстном меню), что заставляет контроллер создать новый инстанс клиента с правильными характеристиками в Defaul Pool. Внимание, удаление машины приводит к удалению всех ассоциированных с ней результатов тестирования. Во избежание напрасной потери результатов нескольких часов работы, перед удалением машины следует подготовить финальный hlkx пакет, включающий все пройденные тесты. О подготовке файла hlkx будет рассказано далее.

Подготовка и запуск проекта

На странице Projects выбираем Create project и задаем проекту произвольное имя. Активируем проект двойным кликом по нему. Каждый проект может тестироваться только на машинах одной битности.

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

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

Несмотря на всю подготовительную работу, некоторые тесты все же могут завершаться с ошибками, несвязанными напрямую с качеством тестируемого драйвера. Некоторые из них успешно проходятся со второй попытки. Успех выполнения других, в том числе весьма продолжительные тесты Concurrent Hardware And Operating System , по результатам наблюдений может зависеть от аппаратной начинки клиента. Логи результатов тестирования — основной помощник выявления проблем. Посмотреть их можно на странице Results.

Финальный пакет — это файл с расширением .hlkx (zip-архив), который содержит результаты тестирования. Именно его нужно сабмитить в Microsoft через Partner Dashboard для получения цифровой подписи Microsoft Windows Hardware Compatibility Publisher.

При его создании необходимо указать:

  • Путь к директории с драйвером (в директории должны находиться inf/sys/cat файлы);
  • Путь к директории с отладочными символами (pdb/map).

После нажатия на «Create Package» потребуется отметить:

  • Целевые ОС;
  • Locales (отмечаем English).

Создание финального пакета hlkx

Можно создавать неподписанные hlkx, например, просто для последующего открытия в студии. Для сабмита в Microsoft файл hlkx необходимо подписать EV сертификатом. Проще всего импортировать сертификат в систему и выбрать его в процессе создания пакета (кнопка Create Packageна странице Package). Получаем файл hlkx с результатами пройденных тестов.

Мерджинг пакетов hlkx

Этот этап выполняется, если вы проходите тестирование для нескольких платформ. В нашем случае, тестирование проводится для x86 и x64.

Для конфигурации с одним контроллером и одним клиентом меняем битность тестовой ОС, повторяем шаги по настройке клиента, переинициализируем машину под соответствующий пул.

Создаем проект для следующей платформы и повторяем весь процесс тестирования.

На шаге создания пакета hlkx дополнительно вызываем меню Merge Package и указываем подготовленный hlkx пакет для платформы другой битности.

У нас готов hlkx пакет для отправки в Microsoft.

Эндшпиль или сабмит финального пакета hlkx в Microsoft

Заходим под своим аккаунтом на https://partner.microsoft.com/en-us/dashboard/.

На панели слева выбирвает Drivers. Нажимаем Submit new hardware.

Заполняем поле Product name и загружаем наш пакет hlkx.

В разблокированной секции Certification заполняем поля тип устройства, дата анонса и опционально маркетинговое имя. Нажимаем Submit.

Через некоторое время получаем результаты сертификации. Подписанные компоненты драйвера можно скачать, нажав по кнопке Download signed files.

Конечный результат всех усилий:

На что следует обращать внимание

  • Проверить соответствие версии HLK версиям Windows на клиентах;
  • Настроить английскую локаль на клиентских машинах;
  • Установить фильтры перед созданием проекта;
  • Сохранить результаты тестирования в пакет hlkx перед удалением тестовой машины из пула;
  • Применить плейлист нужной версии до запуска тестов;
  • Смерджить пакеты hlkx, если тестирование проводится для нескольких платформ.

Понравилась статья? Поделить с друзьями:
  • Подойдут ли программы от windows 7 к windows 10
  • Поднять rdp windows server 2012 r2
  • Подойдет ли пароль от windows 7 к windows 10
  • Поднять pptp сервер на windows 10
  • Подойдет ли мой компьютер для windows 11