Подтвердить что ты не робот

Могу ли я установить самозаверяющие драйверы на 64-битную Windows без тестового режима, если самозаверяющий корневой сертификат CA будет импортирован в хранилище машин?

Вот отличный ответ SO, который охватывает создание самозаверяющего ЦС, а затем подписание исполняемых файлов с полученными сертификатами: Как создать самозаверяющий сертификат для подписи кода Windows?.

Я прочитал много дискуссий в Интернете о том, как работает подпись драйвера, и ответ кажется почти недвусмысленным, что вы не можете загружать неподписанные или самозаверяющие драйверы, не включив режим тестирования. Тем не менее, ответ, который я связал с особенно одним комментарием Роджера Липскомба, кажется, представляет собой противоречивое мнение:

Если вы хотите использовать это для подписания драйверов, вам необходимо импортировать CA сертификат в магазин. Мой пример импортирует его в пользовательский магазин, который подходит для большинства программ, для тестирования/внутреннего целей.

Мне кажется, что я смогу установить драйверы с самозаверяющими сертификатами (выпущенными самозаверяющим ЦС), пока сертификат CA будет импортирован в хранилище. Мне не нужно будет вносить какие-либо другие изменения в систему (отключив тестовый режим, нажав F8 в меню загрузки, возиться с флагами конфигурации загрузки, такими как TESTSIGNING или NOINTEGRITYCHECKS).

Правильно ли я? Каковы препятствия, если таковые имеются, что этот метод не используется более широко, когда людям необходимо загружать драйверы, у которых нет надлежащих цифровых подписей (таких как старые драйверы принтера и т.д.). Вместо этого люди полагаются на загрузку в тестовый режим или стороннее программное обеспечение (DSEO), которое подталкивает ваши системные файлы для запуска таких драйверов.

Каковы недостатки этого метода? Процесс, описанный в вышеуказанном вопросе SO, требует прав администратора, но установка драйверов им в любом случае нуждается. Доверие к самозаверяющему ЦС может быть угрозой безопасности - но не приведет к отключению всех проверок подписи еще большим риском для безопасности?

4b9b3361

Ответ 1

Нет, это, к сожалению, невозможно, начиная с Windows Vista и Windows Server 2008.

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

Требования к подписке на драйверы для Windows

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

Компоненты должны быть подписаны сертификатом, который Windows "доверяет", как описано в документах на этом сайте.

Одна из упомянутых белых документов - Цифровые подписи для модулей ядра в Windows, в котором описывается процесс загрузки и объясняется, почему самоподписывание не будет достаточным:

Когда драйвер загружается в память ядра, Windows Vista проверяет цифровую подпись файла образа драйвера. В зависимости от типа драйвера это может быть либо подписанное хеш-значение в файле каталога, либо встроенная подпись в самом файле изображения. Перекрестные сертификаты, которые используются при подписании пакета драйвера ядра, используются для проверки подписи времени загрузки; каждый сертификат в пути проверяется на доверенный корень в ядре. Проверка подписи времени загрузки не имеет доступа к хранилищу сертификатов доверенных корневых сертификатов. Вместо этого он должен зависеть от корневых полномочий, встроенных в ядро ​​Windows Vista.

Как упоминалось ранее, это также описано на странице Требования к подписке и размещению драйверов устройств:

64-разрядные версии Windows 7 и Windows Server 2008 R2 имеют специальные требования к сигнатуре для драйверов устройств в режиме ядра. Если вы используете 64-разрядную версию Windows, вы не можете создать свой собственный сертификат для подписания. Вместо этого вы должны использовать сертификат публикации ПО, который подключается к утвержденному центру сертификации (CA).

Действительные ЦС для подписания драйверов режима ядра можно найти на следующей странице:

Перекрестные сертификаты для подписи кода режима ядра

Ответ 2

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

  • Безопасная загрузка не будет работать для вас.
  • Это нарушение безопасности, если кто-то завладеет сертификатом, им придется запускать код режима ядра в вашей системе.

Другой вариант - купить сертификат подписи доверенного кода из GoDaddy:)