В настоящее время я борюсь с подписью драйверов устройств Windows 10, моя компания разработала некоторые драйверы для Windows 10 x86 и x64, которые я пытаюсь подписать, используя сертификат SHA1. Я знаю, что SHA1 - не лучший вариант, но все равно должен работать, насколько я понимаю техническую документацию от Microsoft.
Проблема в том, что драйверы установлены правильно, и даже если я проверю их с помощью опции проверки Signtool, они, похоже, будут в порядке. Windows 10 также говорит, что они устанавливаются нормально при установке INF-файла. Я подписал все подписываемые файлы в пакете драйвера, включая CAT-файлы, DLL-файлы, SYS-файлы и т.д.
Точка, в которой драйверы фактически не работают, находится в диспетчере устройств Windows 10, там я получаю значок восклицательного знака вместе со следующим описанием:
«Код 52 - Windows не может проверить цифровую подпись ...»
Рабочий процесс, который я использую, точно такой же, как и другие фактические данные, но остальное то же самое.
"C:\Program Files (x86)\Windows Kits\10\bin\x86\stampinf.exe" -f "P:\MyDriver\mydriver.inf" -d 08/11/2017 -v 1.0.0.1
"C:\Program Files (x86)\Windows Kits\10\bin\x86\Inf2Cat.exe" /driver:"P:\MyDriver" /os:10_X86,10_X64,7_X86,7_X64,8_X86,8_X64,XP_X86,XP_X64
"C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe" sign /f
"C:\Users\me\Documents\MyCert\MyCert.pfx" /p myVerySecretPassw0rd /d "My Drivers" /du "http://www.myveryverycompaniesurl.com" /t "http://timestamp.verisign.com/scripts/timestamp.dll" /v /ph "P:\MyDrivers\*.*"
Вот что "signtool verify" сообщает о файлах драйверов, созданных таким образом:
Verifying: P:\MyDrivers\OneOfMyDLLs.dll
Signature Index: 0 (Primary Signature)
Hash of file (sha1): *************************************************
Signing Certificate Chain:
Issued to: COMODO RSA Certification Authority
Issued by: COMODO RSA Certification Authority
Expires: Tue Jan 19 01:59:59 2038
SHA1 hash: *************************************************
Issued to: COMODO RSA Code Signing CA
Issued by: COMODO RSA Certification Authority
Expires: Tue May 09 01:59:59 2028
SHA1 hash: *************************************************
Issued to: My Company
Issued by: COMODO RSA Code Signing CA
Expires: Tue Sep 18 01:59:59 2018
SHA1 hash: *************************************************
Так что для меня все выглядит хорошо, до того момента, когда дело доходит до диспетчера устройств, у которого есть некоторые проблемы с одной из подписей, или вообще с тем, как подписываются файлы, но на самом деле это не дает мне подсказку, что происходит неправильно. Редактировать: если Microsoft считает, что SHA-1 недостаточно, почему нет сообщения об ошибке, подтверждающего этот факт?