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, при этом в инструкции не потребуется вдаваться в некоторые дополнительные нюансы.
Процесс самостоятельной подписи драйвера
В процессе для того, чтобы подписать драйвер самостоятельно, нам потребуется: создать сертификат, подписать драйвер этим сертификатом, установить сертификат в системе и установить драйвер. Начнем.
- Создайте в корне диска C какую-либо папку (так к ней проще будет обращаться в дальнейшем), например, C:\cert, где мы будем работать с сертификатами и драйверами.
- Запустите командную строку от имени администратора (нужны для 18-го шага). Далее используем следующие команды по порядку. Файлы драйвера пока не потребуются. Во время выполнения второй команды вас попросят ввести пароль, я использую password в окне запроса и далее в командах, вы можете использовать свой.
-
cd "C:\Program Files\Microsoft SDKs\Windows\v7.1\bin"
-
makecert -r -sv C:\cert\driver.pvk -n CN="remontka" C:\cert\driver.cer
-
cert2spc C:\cert\driver.cer C:\cert\driver.spc
-
pvk2pfx -pvk C:\cert\driver.pvk -pi password -spc C:\cert\driver.spc -pfx C:\cert\driver.pfx -po password
- До этого этапа всё должно пройти как на скриншоте ниже, командную строку не закрываем.
- В папке C:\cert создайте вложенную папку, например, drv и поместите туда свои файлы драйвера. Но: если вам требуется драйвер только для x64, не копируйте .inf файл для x86 систем в эту папку и наоборот.
В командной строке используем следующие команды:
-
cd C:\WinDDK\7600.16385.1\bin\selfsign\
-
inf2cat.exe /driver:"C:\cert\drv" /os:7_X64 /verbose
- В предыдущей команде для драйвера 32-бит укажите X86 вместо X64. Если будет предложено скачать .NET Framework, согласитесь, установите, а затем заново выполните команду. В идеале вы должны будете получить сообщение об успешном создании .cat файла для подписи. Однако, возможны ошибки, о наиболее частых — следующие два пункта. После исправления ошибок повторите команду из пункта 10.
- DriverVer set to incorrect date — возникает при дате в файле драйвера до 21 апреля 2009 года. Решение: откройте файл .inf из папки drv в текстовом редакторе (можно в блокноте) и в строке DriverVer установите другую дату (формат: месяц/день/год).
- Missing AMD64 CatalogFile entry (для 64-бит) или Missing 32-bit CatalogFile entry. Решение: откройте файл .inf из папки drv в текстовом редакторе и в разделе [Version] добавьте строку CatalogFile=catalog.cat
- В итоге вы должны получить сообщение: Catalog generation complete с указанием пути к файлу каталога, в моем случае – C:\cert\drv\catalog.cat. Далее используем следующие команды (требуется подключение к Интернету).
-
cd "C:\Program Files\Microsoft SDKs\Windows\v7.1\bin"
-
signtool sign /f C:\cert\driver.pfx /p password /t http://timestamp.verisign.com/scripts/timestamp.dll /v C:\cert\drv\catalog.cat
- Результат подписи файла драйвера без ошибок на скриншоте ниже. Следующий шаг — добавить самоподписанный сертификат в список доверенных в системе, сделать это можно следующими двумя командами по порядку
-
certmgr.exe -add C:\cert\driver.cer -s -r localMachine ROOT certmgr.exe -add C:\cert\driver.cer -s -r localMachine TRUSTEDPUBLISHER
- В результате вы должны получить сообщение «CertMgr Succeeded». Если Failed или certmgr.exe не является внутренней или внешней командой — убедитесь, что командная строка запущена от имени администратора, а вы находитесь в нужной папке (см. 15 шаг).
И вот теперь можно закрыть командную строку и установить драйвер из папки C:\cert\drv с помощью диспетчера устройств, или нажав правой кнопкой по .inf файлу и выбрав пункт «Установить». Потребуется подтвердить установку драйвера в окне «Не удалось проверить издателя этих драйверов» — нажать «Все равно установить этот драйвер».
Обратите внимание, что возможные ошибки в диспетчере устройств, отображаемые для устройства с самостоятельно подписанным драйвером обычно не имеют отношения непосредственно к процессу подписи (та же ошибка для них будет появляться и без подписи, при простом отключении проверки цифровой подписи драйверов в особых вариантах загрузки). Т.е. искать причину в этом случае нужно в чем-то ещё и читать подробную инструкцию по использованию драйвера (например, в случае драйверов для FlashTool).
Многие из нас сталкивались с проблемой установки неподписанного драйвера
Например программа: Internet Lock( обеспечивающая контроль доступа для вашего интернет соединения. Она может запрещать любой программе выходить в интернет по любому TCP/IP порту.)Но ее драйвер на 64 битную версию ни с каким бубном и танцами не ляжет(Нет подписи Microsoft)
На помощь пришли энтузиасты со своей программой Driver Signature Enforcement Overrider (DSEO). Она позволяет создавать свои собственные непроверенные свидетельства.
Таким образом, суть метода относительно проста. Требуется лишь включить тестовый режим в операционной системе и для всех драйверов устройств, не имеющих цифровой подписи, при помощи программы Driver Signature Enforcement Overrider получить свидетельства. Радует то, что при этом полностью отсутствуют риски привести операционную систему к нерабочему состоянию. Ведь от нас не требуется изменение загрузчика или других ее системных файлов. Используется штатный метод, специально предусмотренный Microsoft. Единственное неудобство, которое вы получите, будет заключаться в том, что на рабочем столе возле часов будет выводиться маленькая надпись, сообщающая версию билда операционной системы.
(Лично у меня надпись не появилась)
Программа Driver Signature Enforcement Overrider работает как с 32-битными, так и с 64-битными операционными системами. Перед использованием необходимо обязательно отключить контроль учетных записей пользователей (UAC). Инсталляция программы не требуется, просто скачайте ее и запустите. Интерфейс предельно прост, и вся работа осуществляется в виде мастера.
Порядок действий:
Включите тестовый режим, установив переключатель в положение «Enable Test Mode». Кстати, сразу отмечу, что здесь же предусмотрено обратное действие «Disable Test Mode», отключающее тестовый режим.
Теперь нужно добавить подписи для непроверенных системных файлов. Для этого выберите «Sign a System File» и введите имя файла, включая полный путь. Например, если файл драйвера InetLock.sys расположен в каталоге C:\Windows\System32\Drivers, то вам необходимо указать C:\Windows\System32\Drivers\InetLock.sys. В случае если необходимо подписать несколько файлов, то просто повторите эту процедуру несколько раз.
Перезагрузите компьютер.
Вот собственно и все. После перезапуска компьютера драйверы будут работать. Если у вас остались вопросы, то вы можете обратиться с ними в наш форум.
Оф. сайт
Содержание
- Как подписать драйвер
- Как подписать драйвер для работы устройств на Windows 10 или Windows 7
- Необходимые инструменты
- Создание самоподписанного сертификата и приватного ключа
- Создание Файла Каталога
- Подписание драйвера
- Установка самоподписанного сертификата
- Установка драйвера
- Отключение проверки цифровой подписи драйверов windows 7, 8, 8.1, 10
- Что такое подписанный драйвер?
- Отключение проверки цифровой подписи драйверов Windows 10
- Способ №1 — меню перезагрузки
- Способ №2 — редактор локальной групповой политики
- Способ №3 — командная строка (тестовый режим)
- Способ №4 — командная строка (вариант загрузки Windows 7)
- Отключение проверки цифровой подписи драйверов Windows 8.1 / 8
- Способ №1 — меню перезагрузки
- Способ №2 — редактор локальной групповой политики
- Способ №4 — командная строка (вариант загрузки Windows 7)
- Отключение проверки цифровой подписи драйверов Windows 7
- Способ №1 — командная строка (постоянное отключение)
- Способ №2 — командная строка (временное отключение)
- Способ №3 — меню перезагрузки
- Как подписать драйвер в Windows x64 10/8.1/7 с помощью самоподписанного сертификата
- Утилиты, необходимые для подписывания драйвера
- Создаем самоподписанный сертификат и закрытый ключ
- Генерируем CAT файл драйвера
- Подписываем драйвер самоподписанным сертификатом
- Установка сертификата
- Установка драйвера, заверенного самоподписанным сертификатом
Как подписать драйвер
Проще говоря, если драйвер подписан, то компьютер считает, что он не менялся после того как его сделали разработчики соответствующего оборудования, и что никакие злые хакеры не вписали в драйвер вредоносный код, который мог бы украсть Ваши пароли или ещё чего плохого натворить.
Как подписать драйвер для работы устройств на Windows 10 или Windows 7
Разных причин отсутствия подписи много, и раз Вы это читаете, то скорее всего столкнулись с одной из таких причин. В этом примере попробуем установить довольно старый драйвер для звуковой карты, для которого уже истек срок активности сертификата. Архив с драйверами был загружен с веб-сайта производителя ноутбуков, укомплектованных соответствующей видеокартой (нам удалось найти версию драйвера для Windows XP). Чтоб было удобнее работать с драйвером, он был перемещён в специально созданную под него папку: c:\drv\ (папка с названием “drv” на диске “C”). Пробуем установить драйвер путем добавления его через консоль в хранилище драйверов, с помощью стандартного инструмента pnputil:
Pnputil –a c:\drv\HDALC2.inf
Для этого впишите “cmd.exe” в поисковой строке рядом с кнопкой “Пуск” и нажмите “Запустить от имени администратора”. Если у Вас на этом этапе открывается окно с предупреждением, нажмите “Да”.
Можете или скопировать адрес из примера и вставить в консоль нажатием правой кнопки мышки, или ввести вручную. Только не забудьте поменять название файла драйвера из примера на название файла Вашего драйвера, а также поменять адрес, если Вы распаковали драйвер в другую папку.
Ожидаемо, получаем ошибку, указывающую на то, что в INF-файле не удаётся обнаружить информацию о цифровой подписи.
То же сообщение мы получим если попробуем нажать на файле драйвера ПКМ и выбрать “Установить”.
Настало время попробовать подписать драйвер свежесозданным сертификатом.
Необходимые инструменты
Чтобы сгенерировать подпись и подписать драйвер, вам необходимо загрузить и установить следующие инструменты разработки приложений (с настройками по умолчанию):
Создание самоподписанного сертификата и приватного ключа
Создание Файла Каталога
Подписание драйвера
Установка самоподписанного сертификата
Установка драйвера
Вводим команду: Pnputil –i –a C:\DrvCert\hda\HDALC2.inf
Теперь ошибка как при первой попытке не появляется, а вместо неё видим сообщение об успешной установке драйвера.
Поздравляем с успешной установкой!
Можно было и избежать мороки с массой команд и установить драйвер с помощью отключения проверки сертификата, но об этом уже в другой статье.
Источник
Отключение проверки цифровой подписи драйверов windows 7, 8, 8.1, 10
Отключение проверки цифровой подписи драйверов windows 7, 8, 8.1, 10. Большинство проблем пользователей которые столкнулись с тем что ОС Windows не может определить устройство связанно с тем, что начиная с Windows 7 и до самой новой версии Windows 10 включена проверка цифровой подписи драйверов. Как обойти данную преграду и установить требуемый драйвер, читайте в этом материале!
Что такое подписанный драйвер?
Коротко говоря если драйвер не был подписан компанией MicroSoft, то такой драйвер не будет иметь цифровой подписи драйверов для Windows. С таким драйвером и возникают проблемы при установке.
В данной статье рассмотрим как отключить проверку цифровой подписи драйверов в Windows 10, Windows 8 и 8.1, а также Windows 7.
Отключение проверки цифровой подписи драйверов Windows 10
Способ №1 — меню перезагрузки
Перед тем как воспользоваться данным способ сохраните все данные ваши данные работы за компьютером и закройте программы.
1.Перейдите в «ПУСК» и выбрать «Параметры»
4. Windows вновь перезагрузиться и перед вами появиться меню с вариантами выбора загрузки, нажимаем клавишу F7
5. Проверки цифровой подписи драйверов в Windows 10 отключена на время (до следующей перезагрузки), устанавливаем необходимый драйвер.
Способ №2 — редактор локальной групповой политики
1. Зажмите одновременно клавиши WIN + R и в появившемся окне «Выполнить» напишите команду gpedit.msc и нажать Ok
3. Перевести параметр в «Отключено», если в низу в окне (Если Windows обнаруживает файл драйвера без цифровой подписи🙂 будет доступно изменения, выставить параметра «Пропустить»
4. Подтвердите изменения и перезагрузите компьютер, проверка цифровой подписи драйверов в Windows 10 отключена.
Способ №3 — командная строка (тестовый режим)
1. В меню пуск выполните поиск — введите cmd
2. Запустите командную строку от имени администратора
3. Введите поочередно следующие команды:
4. Подтвердите изменения и перезагрузите компьютер, проверка цифровой подписи драйверов в Windows 10 отключена.
Способ №4 — командная строка (вариант загрузки Windows 7)
1. В меню пуск выполните поиск — введите cmd
2. Запустите командную строку от имени администратора
4. Перезагрузите компьютер и в момент загрузки компьютера нажимайте клавишу F8
5. В меню выбрать «Отключение обязательной проверки подписи драйверов»
4. Проверка цифровой подписи драйверов в Windows 10 отключена.
Отключение проверки цифровой подписи драйверов Windows 8.1 / 8
Способ №1 — меню перезагрузки
1. Нажать одновременно клавиши WIN + I
2. В появившемся справа боковом меню выбрать «Параметры»
3. Зажимаем кнопку «Shift» и в меню выключения выбираем «Перезагрузка»
4. Windows вновь перезагрузиться и перед вами появиться меню с вариантами выбора загрузки, нажимаем клавишу F7
5. Проверки цифровой подписи драйверов в Windows 8.1 /8 отключена на время (до следующей перезагрузки), устанавливаем необходимый драйвер.
Способ №2 — редактор локальной групповой политики
1. Зажмите одновременно клавиши WIN + R и в появившемся окне «Выполнить» напишите команду gpedit.msc и нажать Ok
3. Перевести параметр в «Отключено», если в низу в окне (Если Windows обнаруживает файл драйвера без цифровой подписи:) будет доступно изменения, выставить параметра «Пропустить»
4. Подтвердите изменения и перезагрузите компьютер, проверка цифровой подписи драйверов в Windows 8.1 / 8 отключена.
1. В меню пуск выполните поиск — введите cmd
2. Запустите командную строку от имени администратора
3. Введите поочередно следующие команды:
4. Подтвердите изменения и перезагрузите компьютер, проверка цифровой подписи драйверов в Windows 10 отключена.
Способ №4 — командная строка (вариант загрузки Windows 7)
1. В меню пуск выполните поиск — введите cmd
2. Запустите командную строку от имени администратора
4. Перезагрузите компьютер и в момент загрузки компьютера нажимайте клавишу F8
5. В меню выбрать «Отключение обязательной проверки подписи драйверов»
4. Проверка цифровой подписи драйверов в Windows 8.1/8 отключена.
Отключение проверки цифровой подписи драйверов Windows 7
Способ №1 — командная строка (постоянное отключение)
1. В меню пуск выполните поиск — введите cmd
2. Запустите командную строку от имени администратора
4. Перезагрузите компьютер, проверка цифровой подписи драйверов в Windows 7 отключена.
5. Для того чтобы заново активировать проверку введите в командной строке:
Способ №2 — командная строка (временное отключение)
1. В меню пуск выполните поиск — введите cmd
2. Запустите командную строку от имени администратора
3. Введите поочередно следующие команды:
4. Подтвердите изменения и перезагрузите компьютер, проверка цифровой подписи драйверов в Windows 7 отключена.
Способ №3 — меню перезагрузки
1. Перезагрузите компьютер и в момент загрузки компьютера нажимайте клавишу F8
2. В меню выбрать «Отключение обязательной проверки подписи драйверов»
Источник
Как подписать драйвер в Windows x64 10/8.1/7 с помощью самоподписанного сертификата
Все 64 битные версии Windows, начиная с Windows 7, по умолчанию запрещают установку драйверов устройств, которые не подписаны с помощью корректной цифровой подписи. Неподписанные драйвер блокируются операционной системой. Наличие цифровой подписи гарантирует (в какой-то мере), что драйвер выпущен конкретным разработчиком или вендором, а его код не был модифицирован после того, как он был подписан.
В Windows 10/7 x64 существует несколько способов отключить проверку цифровой подписи устанавливаемого драйвера: с помощью групповой политики или тестового режима загрузки системы (подробнее все способы описаны в статье Отключаем проверку цифровой подписи для установки неподписанных драйверов в Windows).
Сегодня мы покажем, как можно самостоятельно подписать любой неподписанный драйвер для 64 битной версии Windows 10 или Windows 7.
Предположим, что у нас имеется драйвер некого устройства для x64 Windows 10 или Windows 7, у которого отсутствует цифровая подпись (в нашем примере это будет драйвер для довольно старой видеокарты). Архив с драйверами под нашу версию Windows (мне удалось найти драйвер для Windows Vista x64) был скачан с сайта производителя и его содержимое распаковано в каталог c:\tools\drv1\. Попробуем установить драйвер, добавив его в хранилище драйверов Windows с помощью стандартной утилиты pnputil.
Pnputil –a «C:\tools\drv1\xg20gr.inf»
В процессе его установки Windows 7 отобразит предупреждение о том, что система не может проверить цифровую подпись данного драйвера.
В Windows 10 такое предупреждение даже не появляется, а в консоли появляется предупреждение, что в стороннем INF файле отсутствует информация о цифровой подписи.
При попытке установить драйвер из проводника Windows, если вы щелкните ПКМ по inf файлу драйвера и выберите Install / Установить появится ошибка:
The third-party INF does not contain digital signature information.
INF стороннего производителя не содержит информации о подписи.
Попробуем подписать данный драйвер с помощью самоподписанного сертификата.
Утилиты, необходимые для подписывания драйвера
Для работы нам понадобится скачать и установить (с настройками по умолчанию) следующие инструменты разработчика приложений для Windows.
Создаем самоподписанный сертификат и закрытый ключ
Создадим в корне диска каталог C:\DriverCert.
Откроем командную строку и перейдем в следующий каталог:
cd C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1\bin
Создадим самоподписанный сертификат и закрытый ключ, выданный, допустим, для компании Winitpro:
Во время создания утилита попросит указать пароль для ключа, пусть это будет P@ss0wrd.
На основе созданного сертификата создадим публичный ключ для сертификата издателя ПО (PKCS).
cert2spc C:\DriverCert\myDrivers.cer C:\DriverCert\myDrivers.spc
Объединим публичный ключ (.spc) и персональный ключ (.pvk) в одном файле сертификата формата Personal Information Exchange (.pfx).
Затем нужно экспортировать данный сертфикат в pfx файл с паролем:
Генерируем CAT файл драйвера
Создадим каталог C:\DriverCert\xg и скопируем в него все файлы из каталога, в который первоначально был распакован архив с драйвером (c:\tools\drv1\). Убедить что среди файлов имеются файлы с расширением .sys и .inf (в нашем случае xg20grp.sys и xg20gr).
Перейдем в каталог:
inf2cat.exe /driver:»C:\DriverCert\xg» /os:7_X64 /verbose
Чтобы убедитесь, что процедура прошла корректно, проверьте, что в логе присутствуют сообщения:
Signability test failed.
22.9.7: DriverVer set to incorrect date (must be postdated to 4/21/2009 for newest OS) in \hdx861a.inf
Для исправления ошибки нужно в секции [Version] найти строку с DriverVer= и заменить ее на:
После выполнения команды в каталоге драйвера должен обновиться файл g20gr.cat
Подписываем драйвер самоподписанным сертификатом
Перейдите в каталог:
cd «C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x64»
Подпишем комплект файлов драйвера созданным нами сертификатом, в качестве сервиса таймстампа (штамп времени) воспользуемся ресурсом Globalsign. Следующая команда подпишет CAT файл цифровой подписью с помощью сертификата, хранящегося в PFX-файл, защищенном паролем.
signtool sign /f C:\DriverCert\myDrivers.pfx /p P@ss0wrd /t http://timestamp.globalsign.com/scripts/timstamp.dll /v «C:\DriverCert\xg\xg20gr.cat»
Если файл подписан успешно, должна появится надпись:
Successfully signed: C:\DriverCert\xg\xg20gr.cat
Number of files successfully Signed: 1
SignTool verify /v /pa c:\DriverCert\xg\xg20gr.cat
Лидо в свойствах файла на вкладке Digital Signatures.
CAT файл содержит цифровые подписи (отпечатки / thumbprints) всех файлов, которые находятся в каталоге драйвера (файлов, которые указаны в INF файле в секции CopyFiles). Если любой из этих файлов был изменен, то контрольная сумма файлов не будет совпадать с данными в CAT файле, в результате установка такого драйвера закончится ошибкой.
Установка сертификата
Т.к. созданный нами сертификат является самоподписанным, система по-умолчанию ему не доверяет. Добавим наш сертификат в локальное хранилище сертификатов. Сделать это можно с помощью команд:
Или из графического мастера добавления сертификатов (сертификат нужно поместить в хранилища Trusted Publishers и Trusted Root Certification Authorities локальной машины). В домене вы можете централизованно распространить этот сертификат на рабочие станции с помощью групповой политики.
Установка драйвера, заверенного самоподписанным сертификатом
Попробуем еще раз установить подписанный нами драйвер, выполнив команду:
Pnputil –i –a C:\DriverCert\xg20\xg20gr.inf
Теперь в процессе установки драйвера, окна-предупреждения об отсутствующей цифровой подписи драйвера не появится.
Successfully installed the driver on a device on the system.
Driver package added successfully.
В Windows 7 появляется такое предупреждение. о том, уверены ли вы, что хотите установить этот драйвер (в Windows 10 x64 1803 такое всплывающее окно не появляется). Нажав «Install», вы установите драйвер в системе.
Если по каким-то причинам драйвер не устанавливается, подробный лог установки драйвера содержится в файле C:\Windows\inf\setupapi.dev.log. Этот лог позволит вам получить более подробную информацию об ошибке установки. В большинстве случаем возникает ошибка «Driver package failed signature validation» — скорее всего это означает, что сертификат драйвера не добавлен в доверенные сертификаты.
Если установка драйвера прошла успешно, в файле setupapi.dev.log будут примерно такие строки:
Как вы видите, для установки самоподписанного драйвера нам даже не пришлось отключать проверку цифровой подписи драйверов с помощью bcdedit.exe, как описано здесь (команды bcdedit.exe /set loadoptions DISABLE_INTEGRITY_CHECKS и bcdedit.exe /set testsigning ON ).
Не работает! Подписываю драйвер, в его свойствах значится, что он подписан — но при установке Винда говорит: ошибка 52, не могу проверить цифровую подпись. Если б подписывание можно было так легко обойти — кто б тогда заносил бы M$ денежки за подписи?
Попробовал. Получилось отлично. У драйвера показывает цифровую подпись. Установилось через devcon без всяких всплывающих окошек.
Через pnputil тоже нормально.
Спасибо за мануал. Успешно подписал TAP драйвер к OpenVPN. Ставится без проблем
Это боты-накрутчики успешно установили? Только что сделал всё по инструкции с точностью до символа: ошибка 52. Либо у людей винда 32-битная, либо TESTSIGNING включен. Либо боты-накрутчики.
Как связаться с автором статьи? Очень нужно. Не получается, а очень нужно… [URL=http://fastpic.ru/view/59/2015/0214/5ceb244614504aae1dd1d1fe8e607b6f.png.html][IMG]http://i59.fastpic.ru/thumb/2015/0214/6f/5ceb244614504aae1dd1d1fe8e607b6f.jpeg[/IMG][/URL]
кто встретился с проблемой установки SDK, удалите MS Visual C ++ 2010 года, как и 32 так и 64 битную версии
Точнее, проблема в VC++ 2010 Redistributable!
Их можно смело удалить — SDK поставит свои.
Спасибо большое! Наконец-то установил драйвер к своему «любимому» PROTOSS AVR910.
Просто сказочное пособие.
Руслан, расскажите, как получилось (если ещё в памяти свежо). У меня драйвер отлично установился по этим рекомендациям, но с AVR910 ошибка 43 (недопустимый дескриптор usb конфигурации. Windows10.
Здравствуйте.
Сделал всё по инструкции, в свойствах драйвера числится, что он подписан. Сертификаты установил в указанное инструкцией место.
Но при попытке установить драйвер, система отображает предупреждение о том, что не может проверить цифровую подпись данного драйвера. В итоге ошибка 52.
Переустановил сертификаты с помощью «certmgr.exe», вчера делал это через «графический мастер добавления сертификатов». Красное окошко появляться перестало, но в диспетчере устройств всё равно ОШИБКА 52.
Пожалуйста, помогите решить проблему.
Ребята никто не поможет подписать драйвер для телефона FLY IQ436? Самому повторить вышеописанную процедуру слишком сложно! Помогите пожайлуста в СКАЙПЕ Я PatronDragon.
Дохожу до пункта На основе inf файла сгенерируем для нашей платформы cat файл (содержит информацию о всех файлах пакета драйвера). и не знаю какой файл у себя выбрать!? Какой не беру всё равно пишет does not exist! ЧТО ДЕЛАТЬ?
У меня в папке с моим драйвером нет файла inf! Что делать?
Без inf файла у вас ничего не получится, т.к. в именно в нем описывается порядок установки и структура исполняемых файлов драйвера. Посмотрите, возможно он у вас в каком-нибудь архиве лежит (rar, zip, cab)
А сам автор статьи пробовал данный алгоритм?
Уж слишком он непростой, а впустую не хотелось бы всё это проделать…
Послушайте, люди, не имея цифровой подписи — невозможно подписать драйвер, чтобы он нормально устанавливался! Винда признает лишь драйвер, подписанный с помощью цифровой подписи, и то не всякой — а лишь выданной центром сертификации, кросс-сертификат которого входит в дистрибутив Виндов. И всё. Механизм там заложен такой. Никакие другие танцы с бубнами не канают, пустая трата времени. Помучавшись и убедившись в этом — пошёл и купил цифровую подпись для подписывания драйвером у GoDaddy, у них дешевле всего, 8 тыр за год. И могу целый год подписывать свои драйверы, хоть для Win7 64-битной, хоть для Win10 (потому что будет и SHA1, и SHA2).
Подписал, теперь устанавливаются в любую Винду.
Хм, зачем тогда авторы пишут такие статьи?
Если купить цифровую подпись на год, то что станет с подписанными ей драйверами через год?
Они перестанут действовать или нет?
Или год — это только срок действия подписи, а всё ей подписанное действует бессрочно?
Подписанное — бессрочно. Год — срок действия ЦП, подписывать можно в течении года.
Зачем пишут такие статьи… сложно сказать. Возможно, на именно семёрке, в дебаг-режиме, чисто для себя — оно и прокатит (хоть у меня и не заработало). Но для себя можно и по F8 грузиться, отключая проверку ЦП! А чтобы устанавливалось нормально на всех весиях ОС, включая 10ку — лучше подписать. Уж коммерческий продукт — точно!
Я написал свой WDF драйвер и подписал его с помощью этого мануала, за что огромное спасибо написавшему! Написал инсталлятор на wix и дрова прекрасно ставятся на x64 Винду 10.0 без включения тестмода и проверки подписей, даже предупреждение не отображается. С другой стороны 8000 это не деньги, конечно, для фирмы средней руки
Добрый день.
Перейду сразу к делу. Есть патченный драйвер х64 программы Shadow Defender — изменены пути хранения данных. Необходимо его подписать валидной подписью для Windows 7 x64. Для других систем не нужно. Да и вообще будет использоваться только в своей системе. Не для продажи распространения далее. Драйвер бут режима. Сам разработчик на связь не выходит, а очень нужно. Драйвер используется в интернет-кафе с 2014 года с включенным тестовым режимом для цифровой подписи. Но блин с недавнего времени античиты для игр стали ругаться на включенный тестовый режим.
Подскажите пожалуйста наиболее дешевый способ подписать этот драйвер. Подойдет даже чтоб кому-то его выслал и тот чел подписал своим сертификатом. Главное чтоб 7ка его признавала любым способом но без включения тестового режима.
Как раз алгоритм подписывания в статье расписан верно, этим она ценна.
Сначала, с помощью утилиты inf2cat порождается cat-файл. Он пока без подписей, но содержит хэши всех файлов, входящих в состав драйвера.
А потом этот cat-файл подписывается утилитой signtool! Но при этом мы предъявляем не самопальный pfx, а полученный от GoDaddy pfx! Точнее, они дают другие файлы, из которых формируется pfx. Тут пришлось помудохаться, их техподдержка некомпетентна и бесполезна (зато цены низкие — как-то это, наверное, связано? 😉 Но в конце-концов разобрался.
Да, это возможно. Среди прочего, я так и делал, для драйвера PCI-контроллера PLX9054 — взял подписанный драйвер из SDK, и сделал к нему свои inf и cat.
Сергей, Вы получили сертификат с алгоритмом хеширования подписи SHA1, SHA2 или с SHA256?
Надо ли на винду ставить какие-то апдейты или пэтчи, чтобы подписанные драйверы не выдавали ошибку 52?
SHA1 и SHA2. Подписал с использованием SHA2, чтобы и Win10 охватить. По идее, Win7 должна понимать SHA2 только после патча, в реальности же на Win7 x64 драйвер встаёт (что без подписи невозможно), но Винда говорит, что подписи нет 🙂
Сергей, я могу обратить к Вам за помощью. Вы бы не смогли подписать всего один драйвер. Я бы Вам мог их скинуть на почту. Если сможете помочь прошу отзовитесь. Был бы Вам очень признателен!
Если бы это был мой личный сертификат — мог бы. Но он принадлежит компании, так что увы… Советую вам получить свой сертификат — это не так долго и сложно, как кажется!
А на 32 битной Windows 7 можно как-то подписать драйвер?
Сам отвечу, можно, на процессе создание cat файла нужно записать не x64, a x86. Спасибо, инструкция рабочая
ЗЫ: Моя подпись действительна, проверял…
exe и dll подписываются норм., так же, подписываются драйверы, которые писали сами, без проблем… а, чужие дрова — никак…
Я так и сделал, правда сначала получил какую-то ошибку, исправил, и второй раз все получилось.
Спасибо, отличная статья, подписал драйвер для эмулятора юсб ключей, теперь отлично ставятся на вин10 и вин2016, не смотря на то что все утилиты после установки лежат в совершенно других каталогах и их пришлось искать поиском, и еще в статье ошибка — создается каталог с дарйвером c:\DriverCert\Crystal, а все команды обращаются к другому каталогу c:\DriverCert\xg
Внимательнее, кто будет пользоваться.
Спасибо за отзыв! Поправил путь
Для того, чтобы драйвер был загружен на Vista-64 и выше, а также на
Windows 8 и выше в режиме Secure Boot, вне тестовых режимов и т.п.,
он должен быть подписан, причем в подписи обязательно должен быть
соответствующий кросс-сертификат от Microsoft. Таких кросс-сертификатов
существует всего порядка 20, каждый для конкретной конторы, которая
продает сертификаты — Symantec, Thawte, GlobalSign, DigiCert и т.п.
Если у вас самопальный сертификат, созданный каким-нибудь makecert.exe,
то к нему просто не существует кросса. И система такой драйвер загружать не будет.
Существует лишь 4 легальных способа загрузки драйвера на обозначенных системах:
1) Подписать драйвер настоящим сертификатом, купленным у одной из организаций типа Symantec
(с кросс-сертификатом)
2) Загружать систему в тестовом режиме, используя самопальный сертификат.
3) Нажимать при загрузке F8 и отключать проверку цифровых подписей.
4) Перевести систему в режим отладки и загружать ее с подключенным отладчиком ядра (например, WinDBG).
Других путей нет (ну если только не считать всякие там патчи ядра, уязвимости и т.п.).
Авторы этой статьи и комментаторы гонят гон. Просто из-за сложности проверки написанного создаётся иллюзия, что кто-то тут что-то сумел сделать. Если бы оно было так, тысячи пользователей не покупали бы себе право подписывать драйвера, а деньги там — немаленькие. Да и создатели вирусов бы подписывали этой ерундой самопальной свою вирусню спокойно.
Боже… Сколько жопной боли…. И ради каких-то пары строчек, с помощью которых, «злоумышленники» совершенно другими путями, всё-равно, стабильно ломают системы…. Микрософт……
Всё получилось. Инструкция рабочая.
Ставил драйвер на Win10 x64 pro.
Была ошибка
Errors:
22.9.4: Missing AMD64 CatalogFile entry (CatalogFile.ntamd64, CatalogFile.nt, CatalogFile) from [Version] section in \xxx.inf
Но она легко правиться
Вставить строку: CatalogFile=xxx.cat
в inf файле в блоке [Version] можно внизу.
Пути SDK естественно менять под свои.
Сделал все как описано. Подписал драйвер старого оборудования для сетевой карты. Все работает на сервер 2012 r2 без тестового режима.
Отличная статья, получилось сделать на Windows server 2012.
Проблемы возникли такие:
22.9.4: Missing 32-bit CatalogFile entry (CatalogFile.ntx86, CatalogFile.nt, CatalogFile) from [Version] section in \skeyusb.inf
но все решил добавлением в файл inf строчки CatalogFile(или разкоментированием).
даже установка сертификата на сервер не нужна была. Спасибо огромное. Как вы это придумываете))
Решил разобраться в технологии сертификации. Второй день читаю горы материала в интернете и нигде нет простого и четкого объяснения, как Windows работает с цифровыми подписями и сертификатами. Что с чем сравнивается и когда? Везде куски специальной информации или бесконечные переписывания одних и тех же вещей. Ощущение, что никто до конца не понимает этой темы.
Источник
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Sign up
12.08.2016, 21:32. Показов 48410. Ответов 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 затруднений вызывать не должна:
Code | ||
|
Для вашего сертификата опции могут быть немного другие. Обратите внимание на ключи /fd и /td —
они указывают, что и для цифровой подписи, и для timestamp-сервера следует использовать
SHA256, а не SHA1. EV-сертификаты используют только SHA2. Также обратите внимание,
что здесь и далее больше не будут использоваться никакие кросс-сертификаты (ключ /ac),
так как для ‘attestation signing’ (подписывание драйверов через веб-портал) это не требуется.
Точно такой же командой вы будете подписывать submission (архив с файлами для подписи).
Подписав и загрузив winqual.exe, вы попадете на страницу, где вам предложат указать
сведения о компании — название, юридический адрес, почтовый индекс, телефон, e-mail…
Судя по всему, эта информация не проверяется и нужна только «для галочки».
Но указывать откровенно «липовые» данные, разумеется, не стоит.
Вот и все, теперь вы успешно зарегистрированы на веб-портале WHDC.
Осталось немного — дать нужные разрешения (permissions), а также подписать несколько
соглашений, которые предлагает вам Microsoft (по поводу Anti-Malware, DRM и остальные в
таком же духе, всего штук 10). Я не буду подробно описывать нужные шаги, т.к. они
достаточно очевидны.
После этого вам необходимо перелогиниться на веб-портале (выйти и зайти снова), чтобы
изменения вступили в силу.
Подписывание драйвера.
Сначала вам нужно создать cab-архив с файлами для подписи внутри.
Если пакет драйверов только один, cab-файл должен иметь такую структуру:
Code | ||
|
Если пакетов драйверов несколько, тогда добавляется нумерация:
Code | ||
|
INF-файл обязателен, даже если у вас legacy-драйвер, которому INF не нужен.
Так что если вы никогда не делали INF-файлов, придется этому научиться.
Для legacy-драйверов можно использовать следующую заглушку, поставив
только правильные названия:
Кликните здесь для просмотра всего текста
Code | ||
|
Я сразу советую проверять, валиден ли ваш INF-файл, используя утилиту inf2cat из WDK.
Например:
Code | ||
|
Для создания cab-архива можно использовать разные программы, но проще всего
задействовать штатную утилиту Windows под названием makecab:
Code | ||
|
В файле ddf описываются директивы для создания cab-архива.
Я использую примерно такой шаблон:
Code | ||
|
Файл 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