Windows не доверяет самозаверяющему драйверу (используя собственный самозаверяющий центр сертификации) - PullRequest
1 голос
/ 04 июля 2019

Для частного проекта я создал собственный драйвер для запоминающего устройства USB.В моей тестовой среде (проверка целостности отключена и тестовая подпись включена) все работает как положено.

Теперь я развернул виртуальную машину с базовой установкой Windows 10.

Используя OpenSSL, я создал собственный центр сертификации и сертификат подписи кодов, подписанный ранее созданным ок.

Visual Studio с радостью подписывает мой драйвер, используя опцию «Режим подписи: Тестовый знак».

Я скопировал драйвер на виртуальную машину и установил сертификат ca.Согласно вкладке «Цифровые подписи», в свойствах файла драйвера подпись существует и является доверенной.

Когда я пытаюсь зарегистрировать драйвер с помощью OSR Loader, я получаю сообщение об ошибке, в котором говорится, что «Windows не может проверить цифровую подпись для этого файла».

Моя цель - установить и установитьзапускать мой драйвер в среде «без разработки», используя самозаверяющий сертификат и сертификат.

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

Я создал VERY Basic драйвер, который будет использовать «DbgPrint» для печати «DriverEntry звонил» и «DriverUnload звонил».

Этот драйвер будет использоваться только для быстрой проверки возможных решений.

Image: My Visual Studio Settings for signing

Image: Digital Signatures (My CA is named

Как я создавал свои сертификаты:

openssl genrsa -out ca.key 4096
openssl req -new -x509 -days 1826 -key ca.key -out ca.crt
openssl genrsa -out codesign.key 2048
openssl req -new -key codesign.key -reqexts v3_req -out codesign.csr
openssl x509 -req -days 1826 -in codesign.csr -CA ca.crt -CAkey ca.key -extfile v3.cfg -set_serial 01 -out codesign.crt
openssl pkcs12 -export -out codesign.pfx -inkey codesign.key -in codesign.crt

Обновление v3.cfg: https://pastebin.com/GWF9YVBa

: я пытался использовать опцию "Производственный знак", но мой сертификат не может быть использован для подписи не тестовых знаков.

Далее: я снова переключился на тестовую подпись и включил тестовую подпись на виртуальной машине, используя: bcdedit.exe -set TESTSIGNING ON, но все еще безуспешно.: (

введите описание изображения здесь

...