这个未签名的驱动程序是如何在Windows 7 64位上安装的?

时间:2013-12-13 14:44:06

标签: windows certificate 64-bit driver

在开发我们的64位驱动程序时,我们了解到每个驱动程序都需要正确进行数字签名才能安装(测试模式除外)。

最近,我们偶然发现了一个似乎缺少有效签名的驱动程序(用于USB摄像头)。在安装过程中,我们会看到有关未签名驱动程序的红色警告屏幕,但设备可以使用此驱动程序正常运行。

我拍了照片。 对于图像墙感到抱歉,我害怕错过一个重点,因为我显然不明白这里发生了什么。

Devive Manager

Device Manager

驱动程序属性

dp

驱动程序详细信息

enter image description here

来自%system32%\ DriverStore \ FileRepository

驱动程序文件

enter image description here

证书详情

enter image description here

此测试模式已关闭(我们自己的驱动程序无法正确加载)。

他们是怎么做到的?为什么Windows加载此驱动程序?我将非常感谢文档中的一些链接来解释这种行为。

修改

使用评论中建议的详细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

4 个答案:

答案 0 :(得分:1)

您可以按如下方式禁用驱动程序签名检查。 以管理员身份打开命令提示符并键入:

bcdedit -set loadoptions DISABLE_INTEGRITY_CHECKS

bcdedit -set TESTSIGNING ON

请参阅安全风险警告。 如果由于某种原因它无法正常工作,您可以使用bcedit删除loadoptions并切换testigning。

bcdedit /deletevalue loadoptions

bcdedit -set TESTSIGNING OFF

古德勒克!

答案 1 :(得分:0)

默认情况下,Windows 7设置为拒绝未签名的驱动器。但是有许多内部选项可以改变这个属性。人们可以在不知不觉中改变这些属性。您的系统似乎就是这种情况。

有关详细信息,请参阅Windows 7 - Disable signature verification of drivers

答案 2 :(得分:0)

安装时看到的初始通知表明驱动程序未通过Microsoft Windows硬件兼容性测试。在x64中,强制执行签名驱动程序的Windows是在加载时检查驱动程序的完整性。它不会验证证书是由受信任的根签名还是时间戳有效。即使证书过期,您也可以创建驱动程序。此驱动程序由有效的证书签名,该证书已过期。我过去约会系统时间签署&加载成功。代码签名必须仅使用供应商证书列表进行,该证书在微软网站" VeriSign Class 3 Code Signing"是其中之一。

答案 3 :(得分:-1)

作为回答的方式,它可能不是您要找的答案,但它仍然是有关该主题的相关信息。

我同意帖子的最后评论(你要求发布的答案)但最重要的是我还要补充一点,让Windows 7 X64使用未签名的驱动程序相当容易(我知道这是因为我必须这样做才能使用我的DVB-T usb设备)

如果重新启动电脑并按F8键启动F8菜单,你会发现其中有一个选项可以让未签名的驱动程序运行。

如果您没有使用此选项启动,则无法阻止您安装驱动程序,但它不会运行。但是,如果您稍后再启动PC,请使用F8菜单并选择未签名的驱动程序选项,系统中安装的任何以前无法运行的未签名驱动程序将被视为运行。

我必须承认,我已经多次这样做了,因为我经常可以让我的电脑启动并一次运行3/4周,我实际上是以F8模式启动,然后忘了我已经这样做了,然后想知道为什么我有一个未签名的驱动程序在运行和加载。

我不会将此作为您问题的答案推广,但我只是根据自己在X64-W7上运行未签名驱动程序的经验将其作为您可能想要探索的替代线程发布