Как подписать драйвер Windows 7 x64
Обновлено: 21.11.2024
Из соображений безопасности для загрузки 64-разрядных версий Windows Vista и более поздних версий требуется наличие цифровой подписи драйверов. Эта строгая политика подписи драйверов приводит к одному из следующих результатов:
- Драйвер должен содержать встроенную подпись драйвера.
- Драйвер должен распространяться вместе с INF-файлом и подписанным файлом каталога.
В целях разработки и тестирования требование подписи можно обойти несколькими способами. В этом руководстве основное внимание уделяется использованию тестового сертификата и тестового режима для установки и загрузки самозаверяющих драйверов.
- Windows 7 x64. (бесплатная загрузка из Центра загрузки Майкрософт).
После того, как вы ознакомитесь с инструментами для подписи драйверов и требованиями, вы сможете обновить предыдущую конфигурацию для других платформ.
Загрузите ISO-файл WDK, распакуйте его на жесткий диск (я рекомендую использовать 7-Zip), затем запустите KitSetup.exe, чтобы установить его в C:\WinDDK\7600.16385.1. \ (папка по умолчанию).
Моя рабочая папка — C:\Briolidz\MyDrivers.
Тестовый режим позволяет загружать любой тип кода режима ядра с тестовой подписью, добавляя параметр конфигурации загрузки TESTSIGNING.
Чтобы активировать тестовый режим, вам необходимо запустить командную строку с правами администратора, а затем выполнить следующую команду (используйте переключатель off, чтобы отключить ее):
Перезагрузите компьютер, чтобы изменения вступили в силу.
После перезагрузки вы заметите, что водяной знак тестового режима присутствует на рабочем столе. Если вы не можете видеть этот водяной знак, вы можете удалить его с помощью функции «Удалить водяные знаки». Я настоятельно рекомендую создать резервную копию исходного файла user32.dll.mui в вашей системе, прежде чем он будет исправлен.
– Откройте с правами администратора командную строку WDK: Пуск -> Наборы драйверов Windows -> WDK 7600.16385.1 -> Среды сборки -> Windows 7 -> Бесплатная среда сборки x64< /я>. Затем перейдите в рабочую папку:
– Убедитесь, что сертификат правильно установлен в «Хранилище сертификатов Briolidz» -> Сертификаты:
– Подпишите драйвер (например, MyDriverNoInf.sys) сертификатом:
– Проверка подлинности подписанного драйвера:
– Установите драйвер.
– Перейдите в рабочую папку и откройте файл INF (например, MyDriverWithInf.inf) в текстовом редакторе:
Убедитесь, что в разделе [версия] есть запись, указывающая файл .cat (см. ключ «CatalogFile»). Также убедитесь, что формат даты правильный. Ниже образец:
– Создать файл .cat (каталог):
CAT-файлы — это файлы каталогов, содержащие информацию о пакете драйверов. Их необходимо сгенерировать из файлов INF, чтобы можно было выполнить подписание.
При успешном запуске будет создан файл MyDriverWithInf.cat (обратите внимание, что в файле CAT для установки указана Windows 7 x64). Обновите переключатель «/os», чтобы настроить его на другие операционные системы.
– Подпишите файл каталога:
– Некоторые драйверы имеют несколько INF-файлов. Они могут находиться в папке драйвера или в его подпапках. В этом случае НЕОБХОДИМО ПОВТОРИТЬ ПРЕДЫДУЩИЕ КОМАНДЫ для каждого INF-файла.
Начиная с Windows 10 версии 1607, Windows не будет загружать новые драйверы режима ядра, не подписанные порталом разработки. Чтобы получить подписанный драйвер, сначала зарегистрируйтесь в программе Windows Hardware Dev Center. Обратите внимание, что для создания учетной записи панели мониторинга требуется сертификат подписи кода EV.
Существует множество способов отправки драйверов на портал. Для производственных драйверов вы должны отправить журналы тестирования HLK/HCK, как описано ниже. Для тестирования только на клиентских системах Windows 10 вы можете отправить свои драйверы для аттестационной подписи, которая не требует тестирования HLK. Или вы можете отправить свой драйвер для тестовой подписи, как описано на странице отправки нового оборудования.
Исключения
Драйверы с перекрестной подписью по-прежнему разрешены, если выполняется одно из следующих условий:
- Компьютер был обновлен с более ранней версии Windows до Windows 10 версии 1607.
- Безопасная загрузка отключена в BIOS.
- Драйверы были подписаны сертификатом конечного объекта, выпущенным до 29 июля 2015 года, который привязан к поддерживаемому ЦС с перекрестной подписью.
Чтобы система не загружалась должным образом, загрузочные драйверы не будут блокироваться, но будут удалены помощником по совместимости программ.
Подписание драйвера для клиентских версий Windows
Чтобы подписать драйвер для Windows 10, выполните следующие действия:
- Для каждой версии Windows 10, которую вы хотите сертифицировать, загрузите Windows HLK (Hardware Lab Kit) для этой версии и запустите полный сертификат на клиенте для этой версии. Вы получите один журнал для каждой версии.
- Если у вас несколько журналов, объедините их в один, используя самый последний HLK.
- Отправьте свой драйвер и объединенные результаты теста HLK на портал информационной панели Windows Hardware Developer Center.
Для получения подробной информации о конкретной версии ознакомьтесь с политикой WHCP (Программа совместимости оборудования Windows) для версий Windows, на которые вы хотите настроить таргетинг.
Чтобы подписать драйвер для Windows 7, Windows 8 или Windows 8.1, используйте соответствующий HCK (комплект сертификации оборудования). Дополнительные сведения см. в Руководстве пользователя комплекта сертификации оборудования для Windows.
Подписание драйвера для более ранних версий Windows
До Windows 10 версии 1607 для следующих типов драйверов требовался сертификат Authenticode, используемый вместе с перекрестным сертификатом Microsoft для перекрестной подписи:
- Драйверы устройств в режиме ядра
- Драйверы устройств пользовательского режима
- Драйверы для потоковой передачи защищенного контента. Сюда входят аудиодрайверы, использующие защищенный аудиорежим пользователя (PUMA) и защищенный аудиопуть (PAP), а также драйверы видеоустройств, которые обрабатывают команды управления защитой защищенного видеопути-вывода (PVP-OPM). Дополнительную информацию см. в разделе Подписание кода для защищенных мультимедийных компонентов.
Требования к подписи по версии
В следующей таблице показаны политики подписи для версий клиентских операционных систем.
Обратите внимание, что безопасная загрузка не применяется к Windows Vista и Windows 7.
Применимо к: | Windows Vista, Windows 7; Windows 8+ с отключенной безопасной загрузкой | Windows 8, Windows 8.1, Windows 10, версии 1507, 1511 с включенной безопасной загрузкой | Windows 10, версии 1607, 1703, 1709 с безопасной загрузкой в | Windows 10 версии 1803+ с безопасной загрузкой |
---|---|---|---|---|
Архитектуры: | 64- только бит, подпись не требуется для 32-разрядных | 64-разрядных, 32-разрядных | 64-разрядных, 32-разрядных | 64-разрядных, 32 -bit |
Требуется подпись: | Встроенный файл или файл каталога | Встроенный файл или файл каталога | Встроенный или файл каталога | Встроенный файл или файл каталога |
Алгоритм подписи: | SHA2 | SHA2 | SHA2 | SHA2 |
Сертификат: | Стандартные корни, которым доверяет целостность кода | Стандартные корни доверяет целостности кода | Корневой центр Microsoft 2010, Корневой центр сертификации Microsoft, Корневой центр Microsoft | Корневой центр Microsoft 2010, Корневой центр сертификации Microsoft, Mi Крософт Корневой центр |
Помимо подписи кода драйвера, для установки драйвера также необходимо выполнить требования к подписи устройства PnP. Дополнительную информацию см. в статье Требования к подписи для установки устройства Plug and Play (PnP).
Что такое драйверы с цифровой подписью? Драйверы с цифровой подписью — это подписанные драйверы от своих поставщиков, которые обеспечивают целостность драйвера и контрольную сумму, чтобы гарантировать, что устанавливаемый файл драйвера не будет изменен каким-либо образом, кроме того, что разрешено или изменено центром подписи.
Ошибка «Windows требует драйвер с цифровой подписью» возникает, когда Windows блокирует установку драйвера, если он не имеет цифровой подписи.
Как исправить Windows, для которой требуется драйвер с цифровой подписью
Windows позволяет продолжить установку, отключив проверку цифровой подписи, что не рекомендуется, но иногда необходимо, когда драйвер не подписан, но является оригинальным драйвером. Мы собрали и протестировали несколько исправлений, которые устранят эту проблему. Это руководство относится к устранению ошибки «Требуется драйвер с цифровой подписью» в Windows 10, Windows 8 или Windows 7
Отключить подписывание драйверов
Подписание драйверов, как упоминалось ранее, включено по умолчанию в операционной системе Windows, чтобы гарантировать, что на вашем компьютере не установлено вредоносное программное обеспечение, замаскированное под драйверы. Это добавляет дополнительный уровень безопасности для вашего компьютера. Однако, если это вызывает ошибки и не позволяет установить сторонние драйверы, вы можете отключить подписывание драйверов, выполнив следующие действия:
- Нажмите Windows + R, введите «gpedit.msc» в диалоговом окне и нажмите Enter.
- В редакторе групповой политики перейдите по следующему пути: ол>
- Выберите параметр «Включено» и в раскрывающемся списке выберите «Игнорировать» (в разделе «Когда Windows обнаруживает файл без драйверов»).
- Нажмите OK, чтобы сохранить изменения и выйти. Теперь проверьте, решена ли проблема.
- Нажмите Windows + S, введите «командная строка» в диалоговом окне, щелкните приложение правой кнопкой мыши и выберите «Запуск от имени администратора».
- В командной строке выполните следующую команду:
- Теперь правильно перезагрузите компьютер. После перезапуска снова войдите в систему и попробуйте установить драйвер.
- Если вы когда-нибудь захотите отключить тестовый режим, выполните следующую команду:
- Нажмите Windows + R, введите «командная строка» в диалоговом окне, щелкните приложение правой кнопкой мыши и выберите «Запуск от имени администратора».
- В командной строке выполните следующую команду:
- Если вы когда-нибудь захотите снова включить принудительный механизм, выполните следующую команду:
- Запустите оболочку командной строки с повышенными привилегиями (Vista и более поздние версии).
- makecert.exe -r -pe -ss my -n "CN=MyTestCertificate" mytestcert.cer
- certmgr.exe -add mytestcert.cer -s -r localMachine root
- Запустите certmgr.exe и убедитесь, что "MyTestCertificate" указан как в разделе "Личные", так и в разделе "Доверенные корневые центры сертификации".
- Храните файл mytestcert.cer в надежном месте.
- Запустите оболочку командной строки с повышенными привилегиями (Vista и более поздние версии).
- Запустите Bcdedit.exe -set TESTSIGNING ON в командной строке cmd.exe с повышенными привилегиями.
- certmgr.exe -add mytestcert.cer -s -r localMachine root
- certmgr.exe -add mytestcert.cer -s -r localMachine trustpublisher
- Перезагрузить.
- Vista: «Тестовый режим» появится во всех четырех углах рабочего стола, а «Microsoft (R) Windows (R) (сборка 6000)» — вверху. Windows 7: в правом нижнем углу появится надпись «Тестовый режим Windows 7Build 7600».
Включение TESTSIGNING
TESTSIGNING определяет, будет ли Windows устанавливать какой-либо код режима ядра с тестовой подписью, который не имеет цифровой подписи соответствующих компаний-разработчиков программного обеспечения. Это еще одна надежная защита, которая действует как брандмауэр, предотвращая установку любых драйверов уровня ядра, если они не находятся в белом списке. Если вы действительно хотите установить драйвер, несмотря на меры безопасности Windows, вы можете включить TESTSIGNING.
Постоянное отключение принудительной подписи драйверов
Еще один вариант, который вы можете попробовать, если все вышеперечисленные методы не сработали, — это постоянное отключение проверки подписи драйверов на вашем компьютере. Вам придется вручную снова включить механизм, и никаких предохранителей для драйверов, установленных на вашем компьютере, не будет. Убедитесь, что вы используете этот метод в крайнем случае.
Полностью перезагрузите компьютер и попробуйте установить драйвер.
Примечание. Обычно все проверенные и подлинные драйверы имеют цифровую подпись. Перед установкой убедитесь, что вы полностью уверены в драйвере.
У меня есть драйвер режима ядра, и мне нужно установить t в 64-разрядной версии Windows 7. Он должен иметь цифровую подпись. Я поставил цифровую подпись с помощью dseo13b.exe. Но когда я загружаю драйвер, я получаю сообщение об ошибке в журнале системных событий:
Драйвер не запустился из-за следующей ошибки:
Windows не может проверить цифровую подпись для этого файла. В результате недавних изменений в оборудовании или программном обеспечении мог быть установлен неправильно подписанный или поврежденный файл, либо это могло быть вредоносное ПО из неизвестного источника.
Я не хочу использовать режим тестовой подписи. Как решить эту проблему? Нужно ли мне получать сертификат от Microsoft?
Я разработал драйвер и сейчас заставляю его работать на 64-битной машине.
Я думаю, что это действительно актуальный вопрос для разработчиков драйверов — речь идет о среде разработки. Чем это отличается от вопросов о «сделать»? Таким образом, повторное голосование.
3 ответа 3
Только для 64-битных сборок: настройка самоподписания
Часть 1: создание и установка тестового сертификата
Часть 2. Настройка системы для запуска тестового подписанного кода (Vista и более поздние версии)
Два полезных ресурса для подписи драйверов
1. Получите сертификат RSA (Digicert или Verisign или где угодно в рамках вашего бюджета) или создайте сертификат самостоятельно, если вам нужно установить его только на свой компьютер
2.Когда у вас есть сертификат, у вас также будет закрытый ключ
3. Чтобы распространять драйвер, вам нужен этот сертификат, чтобы его можно было отследить, Microsoft использует систему под названием Trusted Root Certification Authority. Теперь есть и другие центры, которые выдают сертификаты помимо этих, но им потребуется обновление Windows для их проверки. введите certmgr.msc, чтобы получить список. И ищите тех, у кого есть разрешение на подпись кода
4.Либо добавьте сертификат в этот список, либо получите сертификат из этого списка
5.Подпишите драйвер сертификатом[подробности в ссылках выше]
6.Теперь распространите драйвер
В Интернете есть много руководств по подписанию драйвера. NB: WHQL — это дорогой вариант, который вы можете рассмотреть, если ваша компания сможет заплатить
Читайте также: