Как подписать драйвер цифровой подписью – пошаговая инструкция подписи драйвера

Как подписать драйвер цифровой подписью - пошаговая инструкция подписи драйвера Сертификаты

На что следует обращать внимание

  • Проверить соответствие версии HLK версиям Windows на клиентах;
  • Настроить английскую локаль на клиентских машинах;
  • Установить фильтры перед созданием проекта;
  • Сохранить результаты тестирования в пакет hlkx перед удалением тестовой машины из пула;
  • Применить плейлист нужной версии до запуска тестов;
  • Смерджить пакеты hlkx, если тестирование проводится для нескольких платформ.

Дебют или этап подготовки

Очевидным предварительным условием для сертификации является наличие следующего:

Файлы .sys и .cat должны быть подписаны EV сертификатом. Для этого используется утилита singtool из Windows SDK.

В нашем случае файлы .inf, .sys, .map, .pdb и .cat представлены в двух экземплярах для архитектур x86 и x64 соответственно.

Первым шагом к сертификации драйвера является прохождение серии тестов на совместимость оборудования для Windows. Для этих целей Microsoft предоставляет специализированный фреймворк Windows Hardware Lab Kit , ранее называвшийся Windows Hardware Certification Kit (HCK).

А еще ранее этот же фреймворк носил имя Windows Hardware Logo Kit, что доставляет неудобство в поиске информации, так как по запросу HLK нередко выпадает устаревшая. С кратким обзором концепции тестирования можно ознакомиться по ссылке .

Как это работает?

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

Допустим, Вы решили подключить к новому ПК старенький принтер, который долго пылился в кладовке (или на складе). Но теперь настал его «звездный час». При попытке выполнить инсталляцию неподписанных драйверов, Вы увидите на экране ошибку.

Как с этим справиться? Расскажу три простых способа.

Мерджинг пакетов hlkx

Этот этап выполняется, если вы проходите тестирование для нескольких платформ. В нашем случае, тестирование проводится для x86 и x64.

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

Создаем проект для следующей платформы и повторяем весь процесс тестирования.

На шаге создания пакета hlkx дополнительно вызываем меню Merge Package и указываем подготовленный hlkx пакет для платформы другой битности.

У нас готов hlkx пакет для отправки в Microsoft.

Метод №1

  • После запуска Вы увидите на экране особое диагностическое меню:
  • Внутри него стоит перейти к дополнительным параметрам:
  • Погружаемся еще глубже, выбирая настройку загрузки:
  • Чтобы узнать, как установить неподписанные драйвера на Windows 10, придется еще раз перезагрузить компьютер. Для этого нажмите кнопку в правом нижнем углу:

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

Метод №2 – как установить неподписанный драйвер

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

Про сертификаты:  Что такое ipl

bcdedit.exe -set loadoptions DISABLE_INTEGRITY_CHECKS

bcdedit.exe -set TESTSIGNING ON

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

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

bcdedit.exe -set TESTSIGNING OFF

И не забываем перезагрузиться!

Метод №3

Актуален только для Win 10 выше домашней версии, поскольку нам придется работать с редактором групповых политик.

gpedit.msc

  • Когда откроется новое окно, слева появиться перечень папок. Следует перейти по пути:

 Конфигурация польз-теля | Админ шаблоны | Система | Установка драйвера

  • Теперь справа отобразится несколько пунктов. Дважды щелкаем мышкой по «Циф-вой подписи драйверов…» для входа в параметры опции.
  • Ставим «галочку» в положение «Откл», а чуть ниже (возле сообщения: «Если Виндовс обнаруживает драйвер без…») выбираем из списка значение «Пропустить». Сохраняем изменения (ОК):
  • Как и в предыдущих случаях, перезапуск ПК обязателен.

Вот и разобрались со всеми способами. Как видите, каждый из них может быть использован только при определенных условиях. Но первый вариант, как установить неподписанный драйвер на Виндовс 10, является самым универсальным. Рекомендую начинать именно с него.

Миттельшпиль или работа с hlk

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

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

Обратите внимание!

Не применяйте данную утилиту к Рутокен ЭЦП 2.0 Flash, используемому в составе продукта Рутокен Диск. Запись образа и возврат к заводским настройкам удалят программу Рутокен Диск, включая все данные в защищенном разделе.

Подготовка и запуск проекта

На странице Projects выбираем Create project и задаем проекту произвольное имя. Активируем проект двойным кликом по нему. Каждый проект может тестироваться только на машинах одной битности.

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

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

Несмотря на всю подготовительную работу, некоторые тесты все же могут завершаться с ошибками, несвязанными напрямую с качеством тестируемого драйвера. Некоторые из них успешно проходятся со второй попытки. Успех выполнения других, в том числе весьма продолжительные тесты Concurrent Hardware And Operating System , по результатам наблюдений может зависеть от аппаратной начинки клиента. Логи результатов тестирования – основной помощник выявления проблем. Посмотреть их можно на странице Results.

Про сертификаты:  Программный комплекс Secret Net LSP 1.10 от компании «Код Безопасности» получил сертификат соответствия ФСТЭК

Финальный пакет – это файл с расширением .hlkx (zip-архив), который содержит результаты тестирования. Именно его нужно сабмитить в Microsoft через Partner Dashboard для получения цифровой подписи Microsoft Windows Hardware Compatibility Publisher.

При его создании необходимо указать:

  • Путь к директории с драйвером (в директории должны находиться inf/sys/cat файлы);
  • Путь к директории с отладочными символами (pdb/map).

После нажатия на “Create Package” потребуется отметить:

  • Целевые ОС;
  • Locales (отмечаем English).

Подготовка парка машин

Для серверной части HLK ограничением является необходимость развертывания на Windows Server 2021, Windows Server 2021 R2 или Windows Server 2021.

Начиная с релиза 1709 HLK поддерживает тестирование клиентов только соответствующей версии Windows 10 , предыдущие редакции кита предусматривали возможность работы с некоторым подмножеством обновлений этой операционной системы.

Табличка поддерживаемых версий:

HLK versionSupported versionAccepted device/componentAccepted system
1803 1803 – Client 1803 Client Device/Component 1803 Client Systems
1709 1709 – Client 1709 Client Device/Component 1709 Client Systems
1703 1703 – Client 1703 Client Device/Component1703 Client Systems
1607 – Client 1607 Client Device/Component
1607 1607 – Client 1607 Client Device/Component1607 Server Systems
1607 – Server, Azure Stack, SDDC 1607 Server Device/Component
1511 – Client 1511 Client Device/Component

Для организации тестирования нам понадобятся одна управляющая машина с серверной версией Windows и две тестовые машины с 32 и 64-битными версиями Windows 10 в одной сети. При наличии нескольких доступных клиентов одной битности их можно использовать совместно, проводя тестирование параллельно.

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

Подготовка пула тестовых машин

Пришло время подготовить пулы наших клиентских машин. Они нам понадобятся на этапе создания проекта. На вкладке Configuration все машины отобразятся в Default Pool. Нужно создать свои пулы (кнопка Create Machine Pool) и перетащить в них машины из пула по-умолчанию.

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

Поле Status у каждой машины будет Not Ready – нужно щелкнуть по ним правой кнопкой и изменить статус на Ready.

Важно: иногда студия выдает ошибку на попытку изменить статус машины.

Кроме прочего, такая ситуация появляется, когда меняется ОС на тестовом клиенте, например, в схеме с одним контроллером и одним клиентом. Решается это удалением машины из пула (пункт Delete Machine в контекстном меню), что заставляет контроллер создать новый инстанс клиента с правильными характеристиками в Defaul Pool.

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

Пролог

Начиная с версии Windows 10 1607 корпорация Microsoft ввела обязательную сертификацию сторонних драйверов по программе Windows Hardware Compatibility Program (новость об этом в блоге msdn , пост на хабре ). Работает это нововведение на чистых установках Windows 10 соответствующей версии с включенным режимом Secure Boot .

Про сертификаты:  Сертификат на пиломатериалы цена получения оформления ГОСТ - ООО «Астелс»

Несоблюдение этого условия в лучшем случае (при отключенном Secure Boot) приведет к появлению предупреждения:

В худшем – к запрету на установку драйвера:

Несмотря на наличие официальной документации по прохождению процедуры сертификации, этот процесс может быть сопровожден рядом неочевидных на первый взгляд сложностей. Ниже приводится поэтапный разбор всех подводных камней на примере прохождения сертификации драйвера веб-камеры для 32 и 64-битной версий Windows 10 с обновлением 1803.

Краткий обзор всей последовательности действий:

  • Подготовка парка машин
  • Развертывание тестового фреймворка Windows Hardware Lab Kit
  • Создание и конфигурация тестового проекта
  • Прохождение списка тестов
  • Подготовка финального пакета с результатами
  • Обработка результатов на серверах Microsoft и получение подписи

Развертывание hlk

На контроллере устанавливаем свежескаченный HLKкорректной версии. В нашем случае это HLK 1803, поскольку на клиентах будет установлена Windows 10 с обновлением 1803. Существует вариант установки одной HLK Studio, однако он полезен только для работы с финальными пакетами hlkx.

Так же на контроллере должен быть установлен EV сертификат, которым были подписаны .sys и .cat файлы. Он понадобится нам позже, на этапе подготовки пакета для сабмита в Microsoft.

Клиентская часть ставится на тестовые машины по сети с контроллера:

\контроллерHCKInstallClientsetup.exe

Ручное отключение/включение

1. Войдите в
Пуск Параметры
параметры
2. Выберите пункт
Обновление и безопасность
Обновление и безопасность
3. Выберите пункт
Восстановление Особые варианты загрузки Перегрузить сейчас
Особые варианты загрузки
4. Выберите пункт
Поиск и устранение неисправностей
Поиск и устранение неисправностей
5. Выберите пункт
Дополнительные параметры
Дополнительные параметры
6. Выберите пункт
Параметры загрузки
Параметры загрузки
7. Перед выполнением этого пункта прочтите и запомните пункт 8. Этот пункт приводит к перезагрузке компьютера, после которого надо выполнить пункт 8.

Выберите пункт
Перегрузить. Компьютер начнет перегружаться

Перегрузить
8. После перезагрузки, нажмите клавишу
“7” на клавиатуре

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

10.
ВНИМАНИЕ! После перезагрузки компьютера, снова начнется проверка подписи драйверов. Поэтому, если вы перегружали компьютер, так и не установив драйвера, процедуру придется полностью повторить.

Создание финального пакета hlkx

Можно создавать неподписанные hlkx, например, просто для последующего открытия в студии. Для сабмита в Microsoft файл hlkx необходимо подписать EV сертификатом. Проще всего импортировать сертификат в систему и выбрать его в процессе создания пакета (кнопка Create Packageна странице Package). Получаем файл hlkx с результатами пройденных тестов.

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

На каждую машину нужно установить наш подопытный драйвер. Для этих целей используется утилита hdwwiz (выполнить из Windows -> Run -> hdwwiz).

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

Оцените статью
Мой сертификат
Добавить комментарий