Подпись 64-битного драйвера Windows для одной машины, которой я владею

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

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

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

Кроме того, Требования к подписи драйверов для Windows (я не знаю, обновлен ли он) упомянул, что «Компоненты должны быть подписаны сертификатом, которому Windows« доверяет »». Что это значит? Включает ли он только корневые сертифицированные драйверы Microsoft или только сертификаты, которые знает локальный компьютер?

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


person Reflection    schedule 17.03.2015    source источник
comment
Я думаю, вы неправильно читаете таблицу на странице политики подписи драйверов. Фактически он говорит, что на x64, независимо от того, включена ли безопасная загрузка, драйверам режима ядра требуется подпись, цепочка доверия которой восходит к стандартным корням, которым доверяет CI. К сожалению, я не знаю, что означает CI, а вы?   -  person David Grayson    schedule 18.03.2015
comment
Не могли бы вы подробнее рассказать о том, что вы пытаетесь сделать? Это драйвер USB? Это просто файл INF или есть еще файл SYS? Какая версия Windows работает на вашем компьютере?   -  person David Grayson    schedule 18.03.2015
comment
Конечно же, драйвер NDIS с файлом SYS.   -  person Reflection    schedule 18.03.2015
comment
И Windows Server 2008 R2 или Server 2012 - я могу выбрать.   -  person Reflection    schedule 18.03.2015


Ответы (2)


Есть много пакетов драйверов, в которых нет файла SYS (драйвера режима ядра), и требования к подписи для них менее строгие. В вашем случае, поскольку у вас есть файл SYS, единственный тип подписи, которую Windows (начиная с 64-разрядной версии Windows Vista) примет, - это подпись сертификата, цепочка доверия которого восходит к корню проверки кода Microsoft.

Примечание. Я не тестировал Windows Server 2008 или Server 2012; мой опыт ограничен потребительскими версиями Windows.

Поскольку вы, вероятно, не захотите платить 200 долларов за такой сертификат, я бы вместо этого порекомендовал отключение принудительного применения подписи драйверов. Я считаю, что это позволит вам запускать неподписанные модули ядра, хотя я не пробовал. Он определенно позволяет устанавливать неподписанные пакеты драйверов, но это уже другая проблема.

Я проделал довольно много работы с подписью драйверов USB и написал о своем опыте в статье под названием Практический код и драйвер Windows Подписание.

person David Grayson    schedule 18.03.2015
comment
Нет ли возможности добавить локальный сертификат и сказать компьютеру, что я доверяю ему для своего драйвера? - person Reflection; 18.03.2015
comment
Если мы говорим о 64-битной Windows Vista, Windows 7 или Windows 8, то мой опыт показывает, что это невозможно. Хотя вы можете попробовать; вы можете использовать такой инструмент, как XCA, чтобы создать свой собственный сертификат и установить его в списке доверенных корневых центров сертификации, используя certmgr.msc. Хотя это вряд ли сработает; вы, вероятно, получите некоторую ошибку, например, код 52, говорящий о плохой подписи вашего драйвера. - person David Grayson; 18.03.2015

Вы можете попробовать перечисленный инструмент здесь. Это Overrider принудительного использования подписи драйверов. Убедитесь, что вы сначала включили TestMode. Я считаю, что после тестовой подписи вам нужно перезагрузиться.

person Cookie Butter    schedule 18.03.2015