Як дозволити схрещені драйвери ядра у Windows 10 версії 1607 із включеним захищеним завантаженням?


13

Windows 10 Версія 1607 (він же Anniversary Update) тепер застосовує жорстку сертифікацію драйверів ядра, яка вже була оголошена 2015 як вимога до Windows 10. Нове правило полягає в тому, що всі драйвери Windows 10 повинні бути цифрово підписані Microsoft, більше не перехресне підписання! Тепер розробники драйверів ядра повинні використовувати сертифікат підписання розширеної валідації (EV) та подавати свої драйвери на портальну панель інформаційних систем Windows Hardware Developer Center, де драйвери будуть підписані Microsoft після проходження певних тестів.

Однак з цього правила є винятки. Повторно підписані драйвери ядра все ще приймаються в Windows 10 версії 1607, якщо щось із наступного :

  • Водій підписується посвідченням, яке було видано до 29 липня 2015 року
  • Водій - водій завантаження
  • Захищене завантаження вимкнено
  • Система Windows 10 версії 1607 була оновлена та не встановлена ​​безпосередньо
  • Встановлено секретний ключ реєстру, який дозволяє драйверам з підписами, що підписуються, навіть завантажуватись у системи із захищеною захищеною системою

У моїй компанії у нас виникла проблема, що декілька драйверів зараз відключені в системах, які отримали чисту інсталяцію Windows 10 версії 1607, і навіть певні драйвери Intel постраждали. Крім того, високозахищені віртуальні машини KVM, які використовують TianoCore UEFI BIOS із захищеним завантаженням, тепер не завантажують мережу VirtIO та драйвери повітряних куль через помилки цифрового підпису.

І я можу підтвердити, що драйвери прекрасно працюють у системах із захищеним завантаженням, а також у системах Windows 10, які були оновлені (на місці) до версії 1607, навіть із захищеним завантаженням.

Тепер мені цікаво, як називається та цінність цього секретного реєстру, який оголосив Microsoft у наступному відео за 00 год 11 м 00 с :

9 канал - Plugfest28 - Сертифікація драйверів на Windows-клієнт-сервер

... а потім, нарешті, ми маємо мати ключ реєстру ... і цей ключ реєстру ... ви знаєте ... призначений лише для тестування, тому ми точно не хочемо, щоб ви ... налаштовували цей реєстр ключ під час встановлення драйвера та ... ключ реєстру по суті імітує таку ж поведінку, як якщо б у вас була оновлена ​​система ...

Цей ключ ніколи не був оголошений корпорацією Майкрософт, і через наступне повідомлення в списку ntdev OSR я вважаю, що цього ніколи не відбудеться:

Я ненавиджу це говорити, але оскільки ви запитали: Інформація про реєстр доступна лише в NDA . Це означає, що він, можливо, з'явиться в багатьох місцях в Інтернеті, але до цього часу ми НЕ будемо обговорювати це тут .

І це залишає мене на моєму фактичному запитанні Super User:

Що це за секретний ключ реєстру, який повідомляє Windows 10 версії 1607, що він був оновлений з попередньої версії?


Якби я ризикнув здогадатися. Той самий ключ, який завжди використовувався під час оновлення попередньої версії Windows до нової версії Windows.
Рамхаунд

1
@Ramhound ... що було б?
gollum

Будь-який натяк на те, хто використовує цей ключ? Його існування дозволяє припустити, що його надають стороннім сторонам для використання в певних ситуаціях. Якщо це правда, чи не має сенсу звертатися до Microsoft, щоб попросити когось із них включити?

@Will буде використовувати цей ключ для того, щоб не застосовувати більш жорстку політику підписання драйверів у системах Windows 10, які здійснили оновлення ювілею на місці (вони не хочуть відключати системи, які працювали до оновлення). З іншого боку, існування цього ключа може вважатися ризиком для безпеки, оскільки він може звести нанівець більш жорстку політику, яку люди, можливо, захочуть провести в кінцевому підсумку.
gollum

Ви пробували цей? [HKEY_CURRENT_USER \ Software \ Policies \ Microsoft \ Windows NT \ Підпис драйвера] Змініть BehaviorOnFailedVerifyзначення ключа на " 0".
HackSlash

Відповіді:


0

ви можете спробувати варіант тестування завантаження

Bcdedit.exe -set TESTSIGNING ON

Make sure to disable the Secure Boot and boot to OS to execute bcedit commands, once done you can reboot to OS with secure boot enabled

Параметр налаштування завантаження TESTSIGNING визначає, чи завантажуватиме Windows Vista та новіші версії Windows будь-який тип тестового коду в режимі ядра. Ця опція не встановлена ​​за замовчуванням, а це означає, що драйвери в режимі ядра, підписані тестом, не завантажуватимуться за умовчанням у 64-бітних версіях Windows Vista та пізніших версіях Windows.

Примітка Після зміни параметра налаштування завантаження TESTSIGNING перезавантажте комп'ютер, щоб зміни вступили в силу.


Режим тестування не є варіантом, оскільки ядро ​​завантажує драйвери, які підписані будь-яким сертифікатом, і перевірка не потрібна для ланцюжка до надійного кореневого сертифікаційного органу. По суті, питання полягає у тому, щоб змусити щойно встановлену систему поводитись як модернізовану систему щодо політики перевірки підписів водія.
gollum
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.