При разработке нашего 64-битного драйвера мы поняли, что каждый драйвер должен быть правильно подписан цифрой для установки (кроме тестового режима).
В последнее время мы наткнулись на драйвер (для USB-камеры), который, похоже, не имеет действительной подписи. Во время установки мы получаем красный предупреждающий экран о неподписанных драйверах, но устройство работает правильно с использованием этого драйвера.
Я сделал фотографии. Извините за стену изображений, я боялся пропустить важный момент, так как я, очевидно, не понимаю, что происходит здесь.
Devive Manager
Свойства драйвера
Сведения о драйверах
Файлы драйверов из% system32%\DriverStore\FileRepository
Сведения о сертификате
Для этого был отключен тестовый режим (и наш собственный драйвер правильно не загрузился).
Как они это сделали? Почему Windows загружает этот драйвер? Я был бы признателен за некоторые ссылки в документации, объясняющие это поведение.
Edit:
Используя подробный журнал CodeIntegrity, как это предлагается в комментариях, я ничего не вижу. В журнале отображается строка
Code Integrity обнаружил хэш файла для файла в oem132.cat
Этот файл существует в% system32%\catroot\some-guid и идентичен файлу cat, показанному на скриншоте выше; с истекшим сертификатом.
signtool verify /v /c .\mvBlueFOX_amd64.cat .\mvBlueFOX2.sys
дает
Verifying: .\mvBlueFOX2.sys
File is signed in catalog: .\mvBlueFOX_amd64.cat
Hash of file (sha1): 19E6125B9C5F31E21EDA5DBAA5F77798F8E394C4
Signing Certificate Chain:
Issued to: Class 3 Public Primary Certification Authority
Issued by: Class 3 Public Primary Certification Authority
Expires: Thu Aug 03 00:59:59 2028
SHA1 hash: A1DB6393916F17E4185509400415C70240B0AE6B
Issued to: VeriSign Class 3 Code Signing 2009-2 CA
Issued by: Class 3 Public Primary Certification Authority
Expires: Tue May 21 00:59:59 2019
SHA1 hash: 12D4872BC3EF019E7E0B6F132480AE29DB5B1CA3
Issued to: MATRIX VISION GmbH
Issued by: VeriSign Class 3 Code Signing 2009-2 CA
Expires: Tue May 07 00:59:59 2013
SHA1 hash: 75859F3121E3852E2894E1A7B388CB9E68EBC237
File is not timestamped.
SignTool Error: A certificate chain processed, but terminated in a root
certificate which is not trusted by the trust provider.
Number of files successfully Verified: 0
Number of warnings: 0
Number of errors: 1