Windows 7 为Windows Vista/7(32位和64位)注册设备驱动程序需要做什么?需要多少钱?

Windows 7 为Windows Vista/7(32位和64位)注册设备驱动程序需要做什么?需要多少钱?,windows-7,windows-vista,64-bit,driver-signing,Windows 7,Windows Vista,64 Bit,Driver Signing,我有一些驱动程序,基本上是一个新的.inf文件来描述产品/供应商ID和描述我的硬件的字符串。这在32位windows上运行良好,但64位版本存在问题;也就是说,微软在他们的智慧要求所有的驱动程序都要进行数字签名 因此,我的问题是: 是否有一个版本的LibUSB-Win32驱动程序已经签名,我可以使用 如果还没有一些我可以签的,我该怎么做才能让我的司机签上 我是否需要分别获得64位和32位版本的签名,这会花费更多 是一个免费的替代方案,让他们签署 除了我的客户每次启动他们的机器之外,我还需要考虑其

我有一些驱动程序,基本上是一个新的.inf文件来描述产品/供应商ID和描述我的硬件的字符串。这在32位windows上运行良好,但64位版本存在问题;也就是说,微软在他们的智慧要求所有的驱动程序都要进行数字签名

因此,我的问题是:

  • 是否有一个版本的LibUSB-Win32驱动程序已经签名,我可以使用
  • 如果还没有一些我可以签的,我该怎么做才能让我的司机签上
  • 我是否需要分别获得64位和32位版本的签名,这会花费更多
  • 是一个免费的替代方案,让他们签署
  • 除了我的客户每次启动他们的机器之外,我还需要考虑其他的选择(不是我认为的选择)。
  • 除了Verisign,还有其他代码签名选项吗?很明显,像这样的免费/开放源代码计划将非常棒;-) 您可以使用忽略未签名驱动程序的。我不认为你想支付,因为它的成本约为400美元

    您还可以以管理员身份运行CMD并运行以下操作:

    bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
    bcdedit.exe -set TESTSIGNING ON
    

    您可以尝试libusb版本,该版本尝试实现winusb驱动程序的大部分现有功能(这是一个签名的MS二进制文件,因此您无需自己执行)。但是,YMMV作为winusb并不能100%映射到libusb中所需的所有功能。

    目前有两个独立的问题:

  • 对映像文件(即driver.sys文件)进行签名以满足内核模式代码签名(KMCS)
  • 签署驱动程序包以满足驱动程序安装(即driver.cat文件)
  • 如果您使用由另一个实体(无论是Microsoft的WinUSB还是libusb-win32)签名的现有驱动程序,这将满足KMCS的要求

    至于驱动程序安装,您需要自己的代码签名证书来签署.cat文件,该文件将验证您的.inf及其引用的文件(例如.sys文件)是否未被修改,是否真正来自您。这不是什么问题,因为与KMCS(阻止驱动程序加载)不同,KMCS不会阻止安装驱动程序,而只是向用户发出警告


    代码签名证书(确保它支持KMCS!)将花费数百美元,具体取决于您选择的CA。有些人可能有计划,让你支付每一个签名活动,而不是全球每年。如果你不需要发布很多版本,这对你来说可能更便宜。

    根据我的研究,签署一个设备驱动程序只需花费266美元。我的理解是,只有公司才能让司机签字。他们不会为个人做这件事


    参考:

    我绝对不会要求客户启动到测试模式或禁用签名。首先,它会把“测试模式”标签放在他们的桌面上,这可能会让人困惑。第二,你把他们放在一个位置,在他们的系统上可以加载未签名和可能不受信任的内核代码。值得指出的是,
    bcdedit.exe-set-loadoptions-DDISABLE\u INTEGRITY\u检查
    在Vista RTM后不起作用。看起来bcdedit.exe-set-TESTSIGNING-on在win7 x64上也不起作用。从Windows 8开始,我认为INF文件也需要签名。在Windows8之前,您是正确的;可以释放使用WinUSB或usbser.sys的未签名驱动程序,但警告无法验证发布者。@DavidGrayson,INF文件也必须在Windows 7上签名,但不一定要使用来自知名CA的Authenticode证书。此策略是否更改?你能告诉我任何MSDN文档或博客吗?对不起,我没有MSDN文档可以告诉你,但我有成功地向数千名使用XP/Vista/7的客户交付完全未签名的驱动程序的经验。这个对话框在WindowsVista/7中的存在也应该很有说服力:对,对。那么Windows 8希望目录文件具有什么样的签名?请参阅kmsigning.doc。它必须链接到受信任的根证书颁发机构中的证书。