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

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

Читайте также:
Как сбросить настройки Microsoft Edge

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

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

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

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

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

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

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

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

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

  1. Создайте в корне диска C какую-либо папку (так к ней проще будет обращаться в дальнейшем), например, C:cert, где мы будем работать с сертификатами и драйверами.
  2. Запустите командную строку от имени администратора (нужны для 18-го шага). Далее используем следующие команды по порядку. Файлы драйвера пока не потребуются. Во время выполнения второй команды вас попросят ввести пароль, я использую password в окне запроса и далее в командах, вы можете использовать свой.
  3. До этого этапа всё должно пройти как на скриншоте ниже, командную строку не закрываем.
  4. В папке C:cert создайте вложенную папку, например, drv и поместите туда свои файлы драйвера. Но: если вам требуется драйвер только для x64, не копируйте .inf файл для x86 систем в эту папку и наоборот. В командной строке используем следующие команды:
  5. В предыдущей команде для драйвера 32-бит укажите X86 вместо X64. Если будет предложено скачать .NET Framework, согласитесь, установите, а затем заново выполните команду. В идеале вы должны будете получить сообщение об успешном создании .cat файла для подписи. Однако, возможны ошибки, о наиболее частых — следующие два пункта. После исправления ошибок повторите команду из пункта 10.
  6. DriverVer set to incorrect date — возникает при дате в файле драйвера до 21 апреля 2009 года. Решение: откройте файл .inf из папки drv в текстовом редакторе (можно в блокноте) и в строке DriverVer установите другую дату (формат: месяц/день/год).
  7. Missing AMD64 CatalogFile entry (для 64-бит) или Missing 32-bit CatalogFile entry. Решение: откройте файл .inf из папки drv в текстовом редакторе и в разделе [Version] добавьте строку CatalogFile=catalog.cat
  8. В итоге вы должны получить сообщение: Catalog generation complete с указанием пути к файлу каталога, в моем случае – C:certdrvcatalog.cat. Далее используем следующие команды (требуется подключение к Интернету).
  9. Результат подписи файла драйвера без ошибок на скриншоте ниже. Следующий шаг — добавить самоподписанный сертификат в список доверенных в системе, сделать это можно следующими двумя командами по порядку
  10. В результате вы должны получить сообщение «CertMgr Succeeded». Если Failed или certmgr.exe не является внутренней или внешней командой — убедитесь, что командная строка запущена от имени администратора, а вы находитесь в нужной папке (см. 15 шаг).

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

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

А вдруг и это будет интересно:

  • Windows 11
  • Windows 10
  • Android
  • Загрузочная флешка
  • Лечение вирусов
  • Восстановление данных
  • Установка с флешки
  • Настройка роутера
  • Всё про Windows
  • В контакте
  • Одноклассники

10.01.2021 в 13:40

Спасибо за инструкцию, имеется вебка A4Tech PK-52MF драйвера на х64 не ставятся (хоть с диска в комплекте) делал поэтапно, столкнулся с ошибкой, была на :

Читайте также:
Как изменить пароль Windows 10

«SignTool Error: An unexpected internal error has occurred.
Error information: «SignerTimeStamp() failed.» (-2147012865/0x80072eff)»
Заменил на

, прошло успешно.
В итоге драйвер подписался, установился но в состоянии устройства писало : Не удается проверить цифровую подпись драйверов необходимых для данного устройства.. могла быть произведена установка неправильно подписаного или повреждённого файла либо вредоносной программы неивз.происхождения (код 52)
Я так понял что в моём случае с этим драйвером так не пройти? Всё равно надо будет отключать проверку подписи и устанавливать только так?
Спасибо

11.01.2021 в 14:17

Похоже на то, но не факт что и с отключенной проверкой подписи установится.

11.01.2021 в 18:55

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

03.02.2021 в 00:04

cd C:WinDDK7600.16385.1binselfsign нету этой папки хотя рядом везде искал не нашел inf2cat.exe

16.02.2021 в 11:49

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

29.05.2021 в 15:35

У меня заработал только этот, я проверял вообще все что нашёл в сети

29.05.2021 в 15:33

Спасибо за инструкцию, хотя пути файлов у меня другие, но сами команды правильные, и сервер временной метки заработал у меня другой, не тот что в статье, а так всё доступно и понятно!

16.07.2021 в 14:59

Errors:
22.9.1: mukeydrv.sys in [drivers_dir] of mukeydrv.inf is missing or cannot be decompressed from source media. Please verify all path values specified in SourceDisksNames, SouceDisksFiles, and CopyFiles sections resolve to the actual location of the file, and are expressed in terms relative to the location of the inf.

16.07.2021 в 15:52

Сообщает, что не найден необходимый файл mukeydrv.inf в папке drivers_dir и если он где-то еще находится, то нужно пути в разделах SourceDisksNames, SouceDisksFiles и CopyFiles прописать (но наверное проще будет просто скопировать в указанную папку)

16.07.2021 в 16:29

Так я и скопировал их с С:certdrv там 2 файла sys и inf.
Как вы и писали

16.07.2021 в 16:35

Processing directory (C:certdrv) file (mukeydrv.inf)
Processing directory (C:certdrv) file (mukeydrv.sys)
Parsing INF: C:certdrvmukeydrv.inf
Finished parsing INFs
Processing INF: C:certdrvmukeydrv.inf
Finished processing INFs
Testing driver package…
Testing driver package…
Testing driver package…
Testing driver package…
Testing driver package…
Testing driver package…
Testing driver package…
Testing driver package…
Testing driver package…
Testing driver package…
Testing driver package…
Testing driver package…
Testing driver package…
Testing driver package…

Signability test failed.

Errors:
22.9.1: mukeydrv.sys in [drivers_dir] of mukeydrv.inf is missing or cannot be decompressed from source media. Please verify all path values specified in SourceDisksNames, SouceDisksFiles, and CopyFiles sections resolve to the actual location of the file, and are expressed in terms relative to the location of the inf.

16.07.2021 в 20:08

Теперь вроде как ругается на отсутствие mukeydrv.sys (или невозможность его декомпрессии) в drivers_dir, указанной в mukeydrv.inf
Да, я прочел комментарий, что всё на месте, но точнее вот так не видя ситуацию не могу что-то сказать.

13.09.2021 в 23:34

Здравствуйте!
После команды:

Выдает следующее:
Signability test failed.

Errors:
22.9.8: Windows 7/Windows Server 2008 R2 file redistribution violation (sdbus.sys —> sdbus.sys).

Не подскажете решение? Спасибо.

14.09.2021 в 19:32

Здравствуйте.
Решение не подскажу и причин не могу назвать самостоятельно… но: сейчас погуглил и на американских форумах пишут что суть такова: если пробовать подписать драйвер, который является системным драйвером Windows, то «это не разрешается» и будет та самая ошибка.

05.10.2021 в 18:28

Здравствуйте, на 10 пункте сначала выдавал ошибку о несоответствии даты в файлах .inf, после смены даты (по 12 пункту) и повторного запуска команды 10, командная строка начала выдавать ошибку:
Each driver package must be selected separately and must contain an installation INF.
appackvista32sisagp.inf does not have NTAMD64 decorated model sections
appackwin7_32sisagp.inf does not have NTAMD64 decorated model sections
Не подскажите что нужно сделать?

05.10.2021 в 21:13

Здравствуйте.
В секции Manufacturer есть строка

после знака равно измените то, что там есть на

Но: есть риск, что не сработает или после установки работать драйвер не будет.

Подписываем драйвер в Windows 7

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

Способ 1: Импорт цифровой подписи

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

Читайте также:
Как изменить или удалить аватар Windows 10

    Перейдите в папку с драйвером и отыщите там файл формата INF, который и должен быть установлен в ОС. Щелкните по нему ПКМ, чтобы вызвать контекстное меню.

Переместитесь на вкладку «Безопасность».

Полностью выделите имя файла и скопируйте его клавишами Ctrl + C или вызвав контекстное меню нажатием ПКМ.

Введите там команду pnputil.exe –a и через пробел вставьте скопированное ранее имя. Можно поступить и по-другому, используя cd . Тогда через нее нужно переместиться к каталогу с драйвером и вписать pnputil.exe –a + название файла .

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

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

Способ 2: Ручное создание подписи

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

Шаг 1: Предварительные действия

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

    Откройте ссылку выше, чтобы открыть страницу скачивания Microsoft Windows SDK, где нажмите по кнопке «Download».

Загрузка инсталлятора начнется в автоматическом режиме: ожидайте ее окончания, а затем запустите исполняемый файл.

При появлении окна контроля учетных записей разрешите внесение изменений.

Следуйте отобразившейся на экране инструкции и переходите далее.

По ссылке, ведущей на страницу приложения, загрузите Windows Driver Kit.

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

После запуска диска через виртуальный привод откройте EXE-файл для начала инсталляции.

Укажите версию операционной системы.

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

Затем откройте корень системного логического тома жесткого диска, где создайте папку с названием «DriverCert». В нее будут помещены все зависящие от драйвера объекты для удобства взаимодействия с ними.

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

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

Шаг 2: Генерация ключа и сертификата

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

    Запустите «Командную строку» от имени администратора.

Введите команду cd C:Program Files (x86)Microsoft SDKsWindowsv7.1bin , чтобы перейти к папке с объектами SDK. Если вы изменяли директорию при установке, замените путь на актуальный. Активируйте команду нажатием по клавише Enter.

Задействуйте утилиту, входящую в состав SDK, чтобы сгенерировать сертификат, вписав в консоль команду makecert -r -sv C:DriverCertmyDrivers.pvk -n CN=”NameCompany” C:DriverCertMyDrivers.cer . Замените NameCompany на название изготовителя драйвера или впишите произвольное.

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

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

После автоматического закрытия окна ознакомьтесь с содержимым консоли: если в конце вы видите уведомление «Succeeded», значит, генерация прошла удачно и можно двигаться далее.

Следующий обязательный этап заключается в создании публичного ключа, и он будет доступен всем желающим внедрить драйвер в программное обеспечение. Для этого вставьте команду cert2spc C:DriverCertmyDrivers.cer C:DriverCertmyDrivers.spc .

Сообщение в консоли должно свидетельствовать об успешном создании публичного ключа.

Закрытый и публичный ключ должны быть объединены в один компонент, а для этого используется команда pvk2pfx -pvk C:DriverCertmyDrivers.pvk -pi P@ss0wrd -spc C:DriverCertmyDrivers.spc -pfx C:DriverCertmyDrivers.pfx -po PASSWORD . Замените PASSWORD на ранее созданный пароль закрытого ключа.

Читайте также:
Как узнать размер файла обновления Windows 10

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

Шаг 3: Создание конфигурационного файла

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

    Для использования следующей утилиты снова придется переместиться в папку с набором инструментов от Майкрософт, а для этого задействуйте команду cd C:WinDDK7600.16385.1binselfsign .

Предварительно откройте каталог с драйвером и убедитесь, что там есть два файла с расширениями INF и SYS, ведь они будут задействованы для следующего формирования конфигурационного файла. После введите inf2cat.exe /driver:”C:DriverCertDRIVER” /os:7_X64 /verbose , заменив DRIVER на название ранее созданной папки с файлами. Подтвердите выполнение команды нажатием на Enter.

Следите за состоянием «Командной строки» и ожидайте появления на экране уведомлений «Signability test complete» и «Catalog generation complete». Во время процедуры создания файла настоятельно не рекомендуется выполнять других действий на компьютере, поскольку это может вызвать сбои в функционировании утилиты.

Отдельно отметим самую частую ошибку, которая появляется при создании конфигурационного файла. Ее текст выглядит примерно так: «22.9.7: DriverVer set to incorrect date (must be postdated to 4/21/2009 for newest OS) in XXXXX.inf», а вызывает ее некорректно установленная дата создания объекта. Если такая проблема возникла, откройте целевой файл, имя которого и указано в ошибке, через стандартный «Блокнот», где отыщите строку «DriverVer=» и поменяйте ее значение на 05/01/2009,9.9.9.9 . Сохраните изменения и повторно выполните создание конфигурационного файла.

Шаг 4: Создание подписи для драйвера

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

    Откройте консоль от имени администратора и напишите команду cd “C:Program Files (x86)Windows Kits10bin10.0.17134.0×64” .

Далее вставьте содержимое signtool sign /f C:DriverCertmyDrivers.pfx /p PASSWORD /t http://timestamp.globalsign.com/scripts/timstamp.dll /v “C:DriverCertxgxg20gr.cat” , заменив PASSWORD на пароль закрытого ключа, который создавался ранее. Во время данной операции будет задействован онлайн-сервис Globalsign, отвечающий за установку штампа времени, поэтому убедитесь в наличии подключения к интернету. Появившаяся в консоли строка Successfully signed: C:DriverCertxgxg20gr.cat Number of files successfully Signed: 1 уведомит об успешном завершении процесса.

По очереди вставьте две команды ниже, устанавливающие сертификат.

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

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

Помимо этой статьи, на сайте еще 12501 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.

Отблагодарите автора, поделитесь статьей в социальных сетях.

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

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

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

Способ 1

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

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

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

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

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

  • После того как система запустится вновь, может быть произведена установка неподписанных драйверов.
  • Выполнить перезагрузку еще раз для восстановления настроек ОС.
  • Читайте также:
    Не работает Wi-Fi на ноутбуке

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

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

      Для того, чтобы воспользоваться способом, зайдите в «Параметры» — «Обновление и безопасность» — «Восстановление». Затем, в разделе «Особые варианты загрузки» нажмите «Перезагрузить сейчас».

    После перезагрузки, пройдите по следующему пути: «Поиск и устранение неисправностей» (или «Диагностика») — «Дополнительные параметры» — «Параметры загрузки» и нажмите кнопку «Перезагрузить».

    После перезагрузки появится меню выборов параметров, которые будут использоваться в этот раз в Windows 10.

  • Для того, чтобы отключить проверку цифровой подписи драйверов, выберите соответствующий пункт, нажав клавишу 7 или F7 (или Fn+F7 на некоторых ноутбуках).
  • Готово, после перезагрузки Windows 10 запустится с отключенной проверкой подписи драйверов и вы сможете установить свой драйвер без цифровой подписи.

    Видео инструкция по отключению проверки цифровой подписи драйверов

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

    Способ 2

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

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

      Навести курсор на «Пуск», нажать правую клавишу мыши. Выбрать «Командная строка (администратор)».

  • Набрать bcdedit.exe -set loadoptions DISABLE_INTEGRITY_CHECKS, затем bcdedit.exe -set TESTSIGNING ON Нажать Enter.
  • Через некоторое время в окне появится информация об успешном завершении операций. Закрыть командную строку.

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

    Как отключить проверку цифровой подписи драйверов в Windows 10

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

    Способ 3

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

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

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


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


    Надавить OK.

  • Выполнить перезагрузку компьютера.
  • Теперь программы без цифровой подписи могут быть установлены.
  • Как подписать драйвер для работы устройств на Windows 10 или Windows 7

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

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

    Читайте также:
    Как изменить имя и папку пользователя в Windows 8.1

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


    То же сообщение мы получим если попробуем нажать на файле драйвера ПКМ и выбрать “Установить”.

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

    Все о подписи драйверов 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 https://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 https://timestamp.globalsign.com/scripts/timstamp.dll catalog.cat сам драйвер при этом подписывать не обязательно.
    5. Проверяем, что все хорошо подписалось, для этого открываем свойство .cat файла (или драйвера) и смотрим вкладку Digital Signatures — если есть то можем полюбоваться на результат, если нет, то где-то накосячили. Также более достоверно можно проверить с помощью командной строки signtool verify /pa /v /c catalog.cat

    В результате всех моих исследований на предмет САБЖ-а, я некатал по-быстрому простенькую программку EasySign, которая может подписывать дрова без дополнительного гимора с командной строкой и bat-файлами. Возможно кому-то будет полезно. Саму прогу можно скачать тут, а мануалку почитать ниже:

    1. Вбиваем в Inf Dir путь к папке где лежит сам .inf файл и все необходимые файлы к нему прилагающиеся.
    2. Выбираем ОСи где работает драйвер.
    3. Cross Cert — указываем путь к кросс-сертификату, если нужно подписать драйвер по-настоящему
    4. Cert Store — названия хранилища, где лежит наш сертификат (например PrivateCertStore)
    5. Cert Name — название сертификата (например TestCertforWDK), если сертификат один в хранилище, то можно и не заполнять это поле.
    6. Time Stamp — адрес таймстампингового центра, для тестового сертификата — можно оставить пустым
    7. Файлы которые надо подписать, тут нужно обязательно добавить cat файл (если еще не создан, то прописать его имя вручную), а также можно добавить все файлы драйверов
    8. Generate Catalog Only — если подписывать не надо, а только создать .cat файл
    9. Жмем Sign — чтобы создать cat-файл и подписать, жмем Log — чтобы почитать что произошло, часто бывают ошибки, например неправильно составлен inf-файл, либо signtool чего-то не нашел и т.п.

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

    Как известно в х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 чего-то не нашел и т.п.

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

    Видео по теме

    Рейтинг
    ( Пока оценок нет )
    Понравилась статья? Поделиться с друзьями:
    Добавить комментарий

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: