Подписать драйвер Windows x64 - система не может найти указанный файл

У меня есть токен SafeNet, содержащий 2 сертификата (закрытый ключ которых не экспортируется), один - сертификат кода sha256 EV, а другой - сертификат кода sha1 EV.

Я подписал свои драйверы с помощью signtool:

Signtool sign / v / s my / n "my_company" / sha1 my_sha256_hash / t http://timestamp.verisign.com/scripts/timestamp.dll mydriver.sys

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

Когда я запускаю signtool verify mydriver.sys, я получаю следующую ошибку: Ошибка SignTool: цепочка сертификатов обработана, но завершена корневым сертификатом, которому не доверяет поставщик доверия.

Я попытался подписать свой файл cat также связанными с ним двоичными файлами, но мне все равно не повезло.

Я читал, что есть программа под названием WHQL, которая, в конце концов, предоставляет мне мои «хорошие» подписанные драйверы, только для распространения Windows Update? или нет необходимости запускать мой драйвер в Windows 7 x64 и выше?


person user1341970    schedule 03.02.2018    source источник


Ответы (2)


С globalsign мне нужно использовать корневой сертификат для драйверов ядра с параметром / ac (дополнительная информация здесь https://support.globalsign.com/customer/portal/articles/1491089-kernel-mode-driver-signing-%E2%80%93-windows-7-8) Может нужно подобное с верисайном.

«... Windows 7 x64 и выше»: это зависит от API, которые вы используете в своем драйвере, и от того, является ли он x64. Для win32 вам нужно собрать драйвер win32. В большинстве версий Windows вы можете отключить проверку подписи драйвера в параметрах загрузки. Это покажет вам, действительно ли это связано с подписанием. Запустите это с неподписанным и подписанным драйвером.

«когда я пытался загрузить драйвер ...»: сначала проверьте реестр (HKLM: \ system \ currentcontrolset \ services \).

person Norbert Wietschorke    schedule 13.02.2018

Вам нужно, чтобы Microsoft подписала ваш драйвер, чтобы он запускался везде, но если вы правильно подпишете его сами, вы можете запускать почти везде. Для Windows 10 / Server 2016, работающей в режиме безопасной загрузки, потребуется драйвер, подписанный MSFT, для чего потребуется либо использование WHQL, либо подписание аттестации Windows 10. Взгляните на панель управления на sysdev.microsoft.com для получения дополнительной информации по обоим из них.

Неподписанный драйвер обычно не выдает ошибку «файл не найден», поэтому вы можете искать там не то. Убедитесь, что ваш драйвер правильно зарегистрирован для загрузки с правильного пути. Используйте procmon, чтобы убедиться, что он может правильно найти файл.

Если вы уверены в этом, эта ссылка может стать хорошим местом для начала подписания: https://www.osr.com/nt-insider/2016-issue1/today-in-driver-signed/

К сожалению, это долгий и болезненный путь, чтобы разобраться с подписью водителя. :(

person lordjeb    schedule 08.02.2018
comment
Однако подписание свидетельства несложно. Это не что иное, как необходимость пройти процесс HLK и получить файл каталога, подписанный Microsoft (на самом деле это файл каталога, а не драйвер, который подписывается). Что еще хуже, чем долгая болезненная дорога, так это то, что она постоянно меняется, правила различаются в зависимости от ОС, а иногда и выпускаются точки и в зависимости от даты выпуска сертификата, подписи и т. Д., А также требований в целом. ... все движущиеся цели. Я делал это как небольшую часть моей работы в предыдущей компании, но на самом деле это требует полной занятости. - person 0xC0000022L; 05.12.2019