Устранение неполадок при установке подписывания драйверов

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

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

Снимок экрана: диалоговое окно

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

Примечание Система проверяет точность сведений об издателе на основе SPC, который использовался для подписывания каталога. Если уровень доверия издателя неизвестен (как и для Contoso.com), система отобразит диалоговое окно. Чтобы продолжить установку, пользователь должен нажать кнопку Установить. Дополнительные сведения о доверии и установке драйверов см. в статье Рекомендации по подписываву кода.

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

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

Убедитесь, что драйвер Release-Signed работает правильно.

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

снимок экрана, показывающий устройство тостера в диспетчере устройств.

Устранение неполадок с драйверами Release-Signed

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

  • Используйте диспетчер устройств, чтобы проверка, загружен ли драйвер и подписан ли он, как описано в разделе Проверка правильности работы драйвера Test-Signedтестовой подписи.
  • Откройте файл setupapi.dev.log, созданный в каталоге %windir%\inf после установки драйвера. Перед установкой драйвера ознакомьтесь с разделом о настройке записи реестра и переименовании файла setupapi.dev.log.
  • Проверьте журналы аудита безопасности Windows и журналы событий целостности кода.

Анализ файла Setupapi.dev.log

Как упоминалось ранее, все сведения об установке драйвера будут регистрироваться (добавляться) в файл setupapi.dev.log в каталоге %windir%\inf. Если при тестировании установки пакета драйвера файл переименован перед установкой драйвера, будет создан новый файл журнала. Новый файл журнала будет проще искать важные журналы из новой установки драйвера. Однако файл журнала не следует переименовывать в рамках рабочего сценария. Файл журнала можно открыть в любом программном обеспечении для редактирования текста.

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

При установке выпуска пакета драйвера, подписанного поставщиком ЦС, предоставленным сертификатом SPC, вы увидите следующий восклицательный знак. Это предупреждения о том, что cat-файл еще не проверен.

!    sig:                Verifying file against specific (valid) catalog failed! (0x800b0109)
!    sig:                Error 0x800b0109: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
     sig:                Success: File is signed in Authenticode(tm) catalog.
     sig:                Error 0xe0000242: The publisher of an Authenticode(tm) signed catalog has not yet been established as trusted.

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

!    sto:           Driver package signer is unknown but user trusts the signer.

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

Файл setupapi.dev.log также сообщил о следующей ошибке:

!!!  dvi:                          Device not started: Device has problem: 0x34: CM_PROB_UNSIGNED_DRIVER.

Обратите внимание, что 0x34 имеет значение Code 52.

Чтобы устранить неполадки, просмотрите файл журнала и найдите восклицательные знаки рядом с двоичным файлом драйвера. signtool verify Выполните команду в cat-файле и других внедренных двоичных файлах со знаком.

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

Использование журнала аудита Безопасность Windows

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

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

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

  1. Откройте командное окно с повышенными привилегиями.
  2. Чтобы запустить Windows Просмотр событий, выполните Eventvwr.exe. Просмотр событий также можно запустить из приложения управления компьютером панель управления.
  3. Откройте журнал аудита безопасности Windows.
  4. Проверьте журнал на наличие событий целостности системы с идентификатором события 5038.
  5. Выберите и удерживайте (или щелкните правой кнопкой мыши) запись журнала и выберите Свойства события, чтобы открыть диалоговое окно Свойства события, в котором содержится подробное описание события.

На снимке экрана ниже показано диалоговое окно Свойства события для события журнала аудита безопасности, вызванного неподписанным файлом Toaster.sys.

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

Использование журнала операционных событий событий целостности кода

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

События целостности кода можно просматривать с помощью Просмотр событий.

Проверка рабочего журнала целостности кода

  1. Откройте командное окно с повышенными привилегиями.
  2. Чтобы запустить Windows Просмотр событий, выполните Eventvwr.exe. Просмотр событий также можно запустить из приложения управления компьютером панель управления.
  3. Откройте журнал целостности кода Windows.
  4. Выберите и удерживайте (или щелкните правой кнопкой мыши) запись журнала и выберите Свойства события, чтобы открыть диалоговое окно Свойства события, в котором содержится подробное описание события.

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

снимок экрана, показывающий средство просмотра событий.

Использование информационных событий в подробном журнале целостности кода

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

Чтобы включить подробное представление целостности кода, выполните следующие действия.

  1. Запустите Просмотр событий, как показано в предыдущем примере.
  2. Переведите узел "Целостность кода", чтобы сосредоточиться на нем.
  3. Выберите и удерживайте (или щелкните правой кнопкой мыши) Целостность кода и выберите пункт Вид в контекстном меню.
  4. Выберите Показать журналы аналитики и отладки. При этом создается вложенное дерево с двумя дополнительными узлами: Операционный и Подробный.
  5. Выберите и удерживайте (или щелкните правой кнопкой мыши) узел Подробный и выберите свойства в контекстном меню.
  6. На вкладке Общие выберите Включить ведение журнала, чтобы включить режим подробного ведения журнала.
  7. Перезагрузите систему, чтобы перезагрузить все двоичные файлы в режиме ядра.
  8. После перезагрузки откройте оснастку управления компьютером MMC и просмотрите подробный журнал событий целостности кода.

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