Windows 10 x64 не может установить подписанные драйверы устройств, хотя все сообщается, что все в порядке

819
Erik

В настоящее время я борюсь с подписью драйверов устройств 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 недостаточно, почему нет сообщения об ошибке, подтверждающего этот факт?

0
Проблема в сертификате SHA1. Windows больше не доверяет сертификатам SHA1 для цифровых подписей, таких как подписанные драйверы и подписанные приложения. Это хорошо документированный факт Ramhound 7 лет назад 0
Спасибо за ответ, можете ли вы сослаться на источник для этого (как вы говорите) документированного факта? Я хотел бы прочитать об этом. Другой остающийся вопрос - почему Windows устанавливает драйверы, но затем не работает в диспетчере устройств, во время установки и проверки, он говорит, что все в порядке, что сбивает с толку Erik 7 лет назад 0
Я не мог сказать вам, когда прочитал объявление о том, что Windows перестанет доверять сертификатам SHA1, просто то, что в объявлении говорилось, что это должно произойти, и на основании того, что вы описываете, похоже, оно уже произошло. Я пойду вперёд и найду то, что смогу найти. Ramhound 7 лет назад 1

1 ответ на вопрос

1
Ramhound

Я знаю, что SHA1 - не лучший вариант, но все равно должен работать, насколько я понимаю техническую документацию от Microsoft.

Проблема в том, что текущая сборка Windows 10 не доверяет сертификатам подписи кода SHA1. Если вы хотите, вы можете переопределить это поведение, добавив всю цепочку сертификатов для вашего сертификата.

Основываясь на важном объявлении об изменении - об отказе от SHA-1 непосредственно от Comodo, Windows перестает доверять сертификатам подписи кода SHA1 еще в январе 2016 года.

1 января 2016 г. - продукты Microsoft, включая Internet Explorer и Chrome, перестанут доверять сертификатам подписи кода SHA-1

Microsoft по состоянию на май 2017 года заявила:

Сегодня мы намерены сделать больше, чтобы предупредить потребителей о риске загрузки программного обеспечения, подписанного с использованием сертификата SHA-1. Наша цель - разработать общий опыт на уровне ОС, который могут использоваться всеми приложениями для предупреждения пользователей о слабой криптографии, такой как SHA-1. В долгосрочной перспективе Microsoft намерена не доверять SHA-1 в Windows во всех контекстах. Microsoft внимательно следит за последними исследованиями возможности атак SHA-1 и будет использовать их для определения полных сроков устаревания.

Применение Windows сертификатов SHA1

Один из ответов на « Отказ от сертификатов подписи кода SHA1 в Windows» представлен в следующей таблице. Ответ на вопрос, есть некоторые безопасные для снижения рисков, использование сертификатов SHA1.

enter image description here

Хотя есть ответы на этот вопрос, которые указывают на то, что планы Microsoft SHA1 изменились, информация о дате 1 января 2016 года фактически не изменилась. Если у вас есть сертификат, срок действия которого истекает в сентябре 2018 года, это означает, что он был подписан после 1 января 2016 года. В конце концов, сами Comodo даже не поддерживают сертификаты SHA1. Ramhound 7 лет назад 0
Теперь я изменил сертификат SHA-256, а также создал отпечаток SHA 256 и метку времени. Однако этот код ошибки 52 в диспетчере устройств с недавно подписанными драйверами остается тем же, так что я думаю, что это больше не проблема SHA-1. У тебя еще есть идеи? Erik 7 лет назад 0
Еще одна вещь, которая приходит мне в голову: возможно ли, что моего сертификата, который на самом деле является сертификатом подписи кода, недостаточно? В чем разница между подписанием кода и подписью драйвера, это разные типы сертификатов? Erik 7 лет назад 0
@Erik Да, они разные, но только в процессе проверки, когда вы покупаете его Ramhound 7 лет назад 1

Похожие вопросы