Как подписать драйвер для windows server

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

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

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

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

Разных причин отсутствия подписи много, и раз Вы это читаете, то скорее всего столкнулись с одной из таких причин. В этом примере попробуем установить довольно старый драйвер для звуковой карты, для которого уже истек срок активности сертификата. Архив с драйверами был загружен с веб-сайта производителя ноутбуков, укомплектованных соответствующей видеокартой (нам удалось найти версию драйвера для Windows XP). Чтоб было удобнее работать с драйвером, он был перемещён в специально созданную под него папку: c:\drv\ (папка с названием “drv” на диске “C”). Пробуем установить драйвер путем добавления его через консоль в хранилище драйверов, с помощью стандартного инструмента pnputil:
Pnputil –a c:\drv\HDALC2.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 Kits\10\bin\x64\
  3. Создайте самоподписанный сертификат командой makecert -r -sv C:\DrvCert\myDrivers.pvk -n CN=»Company» C:\DrvCert\myDrivers.cer , — где вместо «Company» можно ввести любое другое название условной компании, для которой издается сертификат. В процессе Вам нужно будет задать пароль. Возьмём для примера “0rPr0RpR”.
  4. Создайте публичный ключ командой cert2spc C:\DrvCert\myDrivers.cer C:\DrvCert\myDrivers.spc
  5. Совместите публичный и приватный ключи в сертификате с форматом .pfx с помощью команды pvk2pfx -pvk C:\DrvCert\myDrivers.pvk -pi 0rPr0RpR -spc C:\DrvCert\myDrivers.spc -pfx C:\DrvCert\myDrivers.pfx -po 0rPr0RpR — где в конце тот пароль, который Вы вводили ранее.

Создание Файла Каталога

  1. Теперь нужно создать папку C:\DrvCert\hda и скопировать в неё все файлы из папки, в которую первоначально был извлечен драйвер из архива (c:\drv\). Среди этих файлов обязательно должны быть файлы форматов .sys и .inf (в примере: RTKHDAUD.sys и HDALC2.inf).
  2. Вернитесь в консоль и введите cd C:\WinDDK\7600.16385.1\bin\selfsign
  3. Создайте файл CAT (в нём находится информация о расположении файлов в пакете драйвера) на основе файла INF с помощью средства inf2cat.exe (входит в комплект WDK). Для этого запустите следующую команду: inf2cat.exe /driver:»C:\DrvCert\hda» /os:7_X86 /verbose .

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

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

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

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

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

Читайте также:  Linux change to cd rom

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

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

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

Цифровая подпись драйвера в Windows

Дмитрий Корнев

В операционных системах Windows, начиная с версии Vista, все драйверы устройств должны иметь цифровую подпись. В этой публикации о том, как можно выйти из ситуации. Возможно ли подписать драйвер своими силами?

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

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

Самый доступный и очевидный — это ручной метод, предусматривающий нажатие клавиши «F8» на начальном этапе загрузки операционной системы. В появляющемся меню загрузчика присутствует пункт «Отключение обязательной проверки подписи драйверов». Конечно же, чтобы работать с неподписанными драйверами устройств в таком режиме, требуется каждый раз во время загрузки выполнять данное действие, что, согласитесь, в конечном итоге может сильно надоесть. Именно по этой причине данный метод был усовершенствован.

Как-то я уже рассказывали про программу ReadyDriver Plus, которая способна автоматизировать ручной способ. Она интегрируется в стандартный загрузчик Windows Vista, после чего во время каждой загрузки автоматически выбирает пункт меню «Отключение обязательной проверки подписи драйверов». К сожалению, применение данной программы нельзя назвать полностью безопасным, ведь одна производит модификацию системных файлов. К тому же, как выяснилось, программа не работает в новой операционной системе Windows 7, хотя возможно, что её автор в будущем выпустит совместимую версию.

К счастью, существует еще один метод, предназначенный для разработчиков драйверов. Ведь очевидно, что они не могут предоставлять каждую бету версию своих драйверов для подписи в Microsoft. Именно по этой причине в Windows Vista, а также в новой операционной системе Windows 7 встроен тестовый режим. Он позволяет разработчикам протестировать их программный код еще до того, как он будет отправлен в лабораторию Microsoft. Правда, здесь тоже есть один нюанс. Даже в тестовом режиме системные файлы драйверов должны получить свидетельство, прежде чем их можно будет установить. Благо, на помощь пришли энтузиасты со своей программой Driver Signature Enforcement Overrider (DSEO). Она позволяет создавать свои собственные непроверенные свидетельства.

Таким образом, суть метода относительно проста. Требуется лишь включить тестовый режим в операционной системе и для всех драйверов устройств, не имеющих цифровой подписи, при помощи программы Driver Signature Enforcement Overrider получить свидетельства. Радует то, что при этом полностью отсутствуют риски привести операционную систему к нерабочему состоянию. Ведь от нас не требуется изменение загрузчика или других её системных файлов. Используется штатный метод, специально предусмотренный Microsoft. Единственное неудобство, которое вы получите, будет заключаться в том, что на рабочем столе возле часов будет выводиться маленькая надпись, сообщающая версию билда операционной системы.

Программа Driver Signature Enforcement Overrider работает как с 32-битными, так и с 64-битными операционными системами. Перед использованием необходимо обязательно отключить контроль учетных записей пользователей (UAC). Инсталляция программы не требуется, просто скачайте её и запустите. Интерфейс предельно прост, и вся работа осуществляется в виде мастера.

Порядок действий

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

Читайте также:  Mac os как посмотреть установленные приложения

Включите тестовый режим, установив переключатель в положение «Enable Test Mode». Кстати, обратите внимание, что здесь же предусмотрено обратное действие «Disable Test Mode», отключающее тестовый режим.

Теперь нужно добавить подписи для непроверенных системных файлов. Для этого выберите «Sign a System File» и введите имя файла, включая полный путь. Например, если файл драйвера ATITool64.sys расположен в каталоге C:\Windows\System32\Drivers , то вам необходимо указать C:\Windows\System32\Drivers\ATITool64.sys .

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

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

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

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

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

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

    Перейдите в папку с драйвером и отыщите там файл формата 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, поэтому каждому пользователю придется выполнить следующие действия:

Читайте также:  Linux show opening port

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

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

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

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

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

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

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

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

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

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

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

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

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

Предварительно откройте каталог с драйвером и убедитесь, что там есть два файла с расширениями INF и SYS, ведь они будут задействованы для следующего формирования конфигурационного файла. После введите inf2cat.exe /driver:»C:\DriverCert\DRIVER» /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 Kits\10\bin\10.0.17134.0\x64» .

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

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

certmgr.exe -add C:\DriverCert\myDrivers.cer -s -r localMachine ROOT
certmgr.exe -add C:\DriverCert\myDrivers.cer -s -r localMachine TRUSTEDPUBLISHER

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

Оцените статью