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

Обновлено: 03.07.2024

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

Итак, прежде всего, я бы хотел выделить два типа сертификатов, которые я буду рассматривать в рамках данной статьи — тестовый и настоящий. Разница состоит в том, что настоящий сертификат подписан доверенным CA (Certification Authorities — доверенный издатель), типа VeriSign, GlobalSign ну или самим Microsoft, а тестовый подписан самопальным сертификатом типа от Васи Пупкина.

image

  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
    и перезагружаемся, в итоге на десктопе, после перезагрузки, по углам красоваться соответствующие надписи.

image

Настоящий сертификат
Тут тоже не все так просто. Дело в том, что не любой CA может выдавать сертификаты для подписи драйверов Windows, а только те, которые авторизованы самой Microsoft, это значит, что корневые сертификаты этих издателей должны быть подписаны Microsoft — что, как раз и выражается в виде этого кросс-сертификата. Вот именно из-за отсутствия кросс-сертификата — тестовая подпись, никогда не будет работать как настоящая. Список доверенных CA, которые обладают такими кросс-сертификатами — представлен тут, там же можно скачать и сами кросс-сертификаты.
После того, как вы выложите несколько сотенок $$$ доверенному центру сертификации, они выдадут вам .pfx файл в котором будут содержаться публичный и приватный ключи. Вы его запустите и с помощью нехитрого диалога (как на рисунке ниже), установите в систему.

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

Утилита sigverif.exe

В Windows 10 имеется специальный служебный инструмент, позволяющий выполнить необходимую проверку. Чтобы добраться к нему, в окне «Выполнить» (Win+R) вводим sigverif.exe.


Открывается главное окно мастера с предложением начать сканирование системы или изменить параметры проверки.


По нажатию на кнопку «Дополнительно» открывается окно с дополнительными параметрами. Здесь можно оставить все как есть, ибо данные опции относятся только к ведению журнала итогов работы утилиты.


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


По окончании проверки (у меня она длилась чуть больше минуты) вы получите такое системное уведомление:


Теперь, если мы снова нажмем кнопку «Дополнительные» в главном окне мастера и перейдем в окно «Дополнительные параметры проверки подписи файла», кнопка «Просмотр журнала станет уже активной».


Щелкаем ее,– открывается лог-файл проверки.

Данный файл называется sigverif.txt, его вы можете также найти в Проводнике Windows по адресу C:\Users\Public\Documents.


В этом файле отчета вы найдете все необходимые данные:

  • В шапке – краткие данные об операционной системе и результатах проверки;
  • В таблице – список файлов, с подробной информацией о них и указанием статуса наличия цифровой подписи.

При обнаружении поврежденных файлов рекомендуем произвести проверку системы с помощью команды sfc /scannow в окне командной строки с правами администратора.


Вместо послесловия

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

Цифровые подписи обычно используются производителями оборудования для подписывания драйверов устройств. Драйвер, имеющий цифровую подпись – это драйвер, который опубликован доверенным издателем и протестирован на предмет совместимости с операционной системой, установленной на компьютере.

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

Проверка цифровой подписи

В Windows 7 для проверки цифровой подписи есть специальная утилита sigverif.exe. Для ее запуска нужно в поисковой строке меню Пуск набрать sigverif.exe и нажать Ввод

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

Результат проверки сохраняется в текстовый файл sigverif.txt. Хранится он в папке Общие документы, также его можно посмотреть прямо из окна программы, щелкнув по кнопке Дополнительно.

Отключение проверки цифровой подписи

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

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

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

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

И последовательно вводим 2 команды:

bcdedit -set loadoptions DDISABLED_INTEGRITY_CHECKS

bcdedit -set TESTSIGNING ON

Для отключения тестового режима нужно ввести в командной строке команды:

bcdedit -set loadoptions ENABLE_INTEGRITY_CHECKS

bsdedit -set loadoptions TESTSIGNING ON

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

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

Во всех современных версиях Windows важные системные файлы и драйвера имеют цифровую подпись, гарантирующую их оригинальность и целостность. Кроме того, использование цифровых подписей позволяет быстро находить неподписанные драйвера и поврежденные или модифицированные файлы системы. В Windows 10 отыскать их можно с помощью специальной встроенной утилиты sigverif.exe. Работа с ней не представляет сложностей.

Откройте окошко Run (Win + R) или командную строку и выполните в ней команду sigverif.exe .

Выполнить

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

Проверка подписи файла

Или кнопку «Дополнительно», чтобы изменить параметры сохранения журнала.

Дополнительно

Процедура сканирования занимает меньше минуты.

Процедура сканирования

После ее завершения.

SigVerif

Вам нужно будет открыть файл лога SIGVERIF.TХT непосредственно из окошка дополнительных параметров или перейдя в расположение C:\Users\Public\Documents , где он и обретается.

Расположение папки

Содержимое журнала будет представлено краткими сведениями об операционной системе и списком проверенных файлов с указанием статуса (подписано/не подписано) , даты установки, версии и каталога.

SIGVERIF.TXT - Проверка подписи (Microsoft)

Что делать, если в логе обнаружены неподписанные системные файлы?

В этом случае рекомендуется выполнить проверку на предмет поврежденных или модифицированных файлов командой sfc /scannow .

Что касается неподписанных драйверов, далеко не всегда они указывают на проблему.

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

Читайте также: