Как отключить проверку цифровой подписи драйвера в Windows 7 и нужно ли это делать?



    Проверка цифровой подписи драйвера является одним из важнейших средств обеспечения работоспособности операционной системы. Цифровая подпись гарантирует, что устанавливаемое программное обеспечение является легальным и имеет конкретного разработчика. Особенно важно, чтобы в системе было невозможно установить драйвер или системный сервис от неизвестного производителя, что может иметь негативные последствия как для самой ОС, так и для пользователя, который может пострадать, например, от хакерской атаки. Стоит заметить, что изредка встречаются случаи, когда подлинный драйвер может оказаться без соответствующей цифровой подписи. Подчеркну, что это бывает очень редко, гораздо чаще проблема кроется в том, что цифровая подпись имеется, но возникли проблемы в процессе ее проверки. Обычно, с этим явлением сталкиваются пользователи Windows 7, при чем, как правило, - при установке современных драйверов от производителей оборудования, которые просто не могут выпустить драйвер без цифровой подписи. И подобные случаи практически не наблюдаются по отношению к операционным системам Windows 8.x и Windows 10-11, что наводит на мысль об определенных недостатках именно ОС Windows 7.

Сначала – немного теории. Обработка цифровых подписей базируется на инфраструктуре открытых ключей (ИОК , или на английском, PKI — Public Key Infrastructure), которая предполагает обработку сообщений парой ключей (открытому и приватному) по определенному математическому алгоритму, обеспечивающему преобразование, например, обычного текста, изображения, программного кода и т.п. в уникальную комбинацию символов, называемую хэш-кодом или хэшем (hash). Два разных исходных сообщения ни в коем случае не будут преобразованы в одинаковый хэш, а два одинаковых сообщения всегда должны возвращать один и тот же хэш. Таким образом, имеется возможность, определить достоверность исходного сообщения (файла драйвера), путем обработки его по криптографическому алгоритму хэширования. Таким алгоритмом является так называемый безопасный алгоритм хэширования SHA (Secure Hash Algorithm), представленный двумя версиями – SHA-1 и SHA-2.

Вплоть до 2017 года SHA-1 был самым популярным алгоритмом, используемым для цифровых подписей, не смотря на то, что он устарел и по мере роста производительности компьютерной техники вполне допускал возможность взлома хэша за разумное время, что и продемонстрировано здесь. Другими словами – использование алгоритма SHA-1 для цифровых подписей стало невозможным, и индустрия открытых ключей (PKI) довольно поспешно перешла на использование SHA-2. Поддержка этого алгоритма сейчас реализована практически всеми сервисами, устройствами, операционными системами и т.п. Операционные системы Windows 8x / 10 имели такую поддержку изначально, а вот Windows 7 получает ее только после установки обновления kb4474419, выпущенного Microsoft в конце сентября 2019 года. Другими словами, до установки kb4474419, драйвер, имеющий цифровую подпись на базе SHA-2, в среде Windows 7, а также Windows Server 2008, 2008R2 являлся драйвером ”не имеющим цифровой подписи” и попытка его установки завершается кодом ошибки 52. В качестве решения проблемы, подавляющее большинство пользователей использует не совсем оптимальный прием, основанный на отключении проверки цифровой подписи. На первый взгляд кажется, что такое решение вполне приемлемо, однако не учитывается тот факт, что алгоритм SHA-2 используется не только для обработки цифровых подписей файлов, но и во многих приложениях, где проверяется, например достоверность удаленного сервера, файла произвольного формата и т.п. Решение проблемы с установкой драйвера без проверки цифровой подписи может обернуться другими, далеко не очевидными, проблемами в работе прикладного программного обеспечения и проявиться это может спустя какое-то, возможно даже продолжительное время. Поэтому, прием, основанный на отключении проверки цифровой подписи должен рассматриваться как крайний случай, когда требуется установка реально надежного драйвера из проверенного источника, в самом деле, не имеющего цифровой подписи и вы убеждены, что в системе присутствует поддержка алгоритма SHA-2.

О поддержке алгоритма SHA2 в Windows 7, Server 2008

Обновление kb4474419 на сайте Microsoft

Как проверить наличие конкретных обновлений



Проверить наличие конкретных обновлений можно с помощью Панель управления - Программы и компоненты - Установленные обновления. А также по журналу обновлений в Центре обновления Windows или с помощью утилиты командной строки dism.exe:

dism /Online /Get-Packages

Или с выводом результатов в текстовый файл, например D:\Get-Packages.txt:

dism /Online /Get-Packages > D:\Get-Packages.txt

В текстовом файле Get-Packages.txt каждому установленному обновлению соответствует своя запись:

Удостоверение пакета : Package for KB4474419~ 31bf3856ad364e35 ~amd64~~6.1.3.2
Состояние : Установлен
Тип выпуска : Security Update
Время установки : 16.03.2021 1:45

В случае, когда обновление отсутствует, нужно установить его с использованием Центра обновления. В тех случаях, когда обновление невозможно установить, например, при использовании современных процессоров, которые якобы не поддерживаются ОС Windows 7, можно воспользоваться той же утилитой dism.exe:

DISM.exe /Online /Add-Package /PackagePath:C:\Windows-KB4474419.msu

Параметр /PackagePath: задает путь и имя файла .cab или .msu для остановки в текущей операционной системе (/Online).

Как проверить наличие цифровой подписи у файла.



В операционных системах семейства Windows имеются стандартное средство проверки цифровых подписей системных файлов - утилита sigverif.exe. Используется для поиска системных файлов без цифровой подписи. Запустить ее можно через диалог Выполнить (комбинацию клавиш Win+R) с правами Администратора системы.



Утилита контроля цифровых подписей системных файлов sigverif.exe


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

Результат проверки  цифровых подписей системных файлов sigverif.exe


Более детальную информацию можно получить из файла журнала программы Sigverif.txt, который можно просмотреть в режиме Дополнительно

Результат проверки  цифровых подписей системных файлов в журнале sigverif.txt


В данном конкретном случае, утилита обнаружила один неподписанный файл драйвера C:\Windows\system32\ neo_0014.sys. Насколько это соответствует действительности, можно проверить с помощью другой системной утилиты verifier.exe, предназначенной для проверки работоспособности драйверов в Windows 7 / 8 10. При запуске без параметров, утилита отображает окно Диспетчера проверки драйверов, где необходимо выбрать проверяемые драйверы. По умолчанию, выбираются драйверы без цифровой подписи. После нажатия кнопки Далее должен отобразиться их список. Но, в данном случае, таковых не обнаружено:

Утилита verifier.exe не обнаруживает драйверов без цифровой подписи


При чем, если выбрать файл вручную, утилита verifier.exe определяет драйвер neo_0014.sys как имеющий цифровую подпись.

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

sigcheck C:\Windows\system32\drivers\neo_0014.sys

Отобразится информация о цифровой подписи файла:

C:\Windows\System32\drivers\neo_0014.sys:
Verified: Signed
Signing date: 10:34 05.02.2018
Publisher: SoftEther Corporation
Company: SoftEther Corporation
Description: SoftEther VPN
Product: SoftEther VPN
Prod version: 4, 25, 0, 9658
File version: 4, 25, 0, 9658
MachineType: 64-bit



В итоге, утилита sigchek определила, что файл драйвера neo_0014.sys имеет цифровую подпись SoftEther Corporation.

Таким образом, бывают случаи, когда подписанный цифровой подписью файл, может быть признан не имеющим подписи. Произойти это может по нескольким причинам, в том числе и внешним по отношению к текущей ОС Windows (например, временная невозможность выстроить цепочку сертификатов удостоверяющих центров по техническим причинам). Однако, как упоминалось выше, в случаях с Windows 7 нужно обратить особое внимание на работоспособность средств поддержки алгоритма SHA-2, обеспечиваемой обновлениями Microsoft. Основным из них является kb4474419, однако не исключено, что со временем к нему добавится еще какое-нибудь новое. В любом случае, ситуация с отсутствием цифровой подписи драйвера требует детальной разборки, а не бездумного отключения проверки цифровой подписи.

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



На просторах Интернета можно найти описание нескольких способов отключения проверки цифровой подписи драйверов, как однократно, так и навсегда с использованием меню загрузчика и групповых политик. Однако надежным способом, обеспечивающим работоспособность драйвера без подписи является отключение проверки с помощью редактирования данных конфигурации загрузки (BCD – Boot Configuration Data) стандартной утилитой bcdedit.exe. Напомню, что порядок загрузки драйверов определяется параметром Start, который хранится в реестре для каждого существующего в системе драйвера, и может принимать значения:

0 (обозначается как boot загрузка). Загрузка драйвера выполняется в самом начале загрузки перед инициализацией ядра. Например, драйвер дискового контроллера.

1 (обозначается как System, системный) Загрузка драйвера осуществляется подсистемой ввода/вывода во время инициализации ядра. В качестве примера можно взять драйвер последовательного порта.

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

3 (обозначается как Load of Demand, загружаемый вручную). Драйвер или служба запускаются по мере возникновения потребности в их функционировании. Например, как Драйвер запоминающих устройств для USB.

4 ( обозначается как Disabled, отключено). Драйвер или служба отключены. Вполне естественно, что для драйвера, имеющего параметр Start в реестре, равный 0 или 1, никакие групповые политики еще не могут быть применены, поскольку средства их применения еще не существуют в системе. Поэтому отключение проверки цифровой подписи драйвера на постоянной основе выполняются редактором данных конфигурации загрузки, командой:

bcdedit.exe -set TESTSIGNING ON - отключить проверку цифровой подписи. Естественно, команда должна выполняться от имени Администратора. Действительна не только для Windows 7, но и Windows 8 / 10.

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

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

bcdedit.exe -set loadoptions DISABLE_INTEGRITY_CHECK

Хотя, из личного опыта – команда не оказывает никакого влияния на поведение загрузчика Windows.





В начало страницы     |     В раздел коротких инструкций (HowTo)



Рейтинг@Mail.ru