我需要做什么以及获得 Windows Vista / 7(32 和 64 位)签名的设备驱动程序需要多少钱?

问题描述 投票:0回答:5

我有一些基本上是 LibUSB-Win32 的驱动程序,带有一个新的 .inf 文件来描述产品/供应商 ID 和描述我的硬件的字符串。这对于 32 位 Windows 工作正常,但 64 位版本有问题;也就是说,微软明智地要求所有驱动程序都进行数字签名。

所以我的问题是:

  1. 是否有我可以使用的已签名的 LibUSB-Win32 驱动程序版本?
  2. 如果还没有一些我可以拆分的签名,那么我到底需要做什么才能让我的驱动程序签名。
  3. 我需要单独签署 64 位和 32 位版本吗?这会花费更多吗?
  4. 是让他们签名的免费替代方案吗?
  5. 除了要求我的客户每次启动机器时启动到测试模式之外,我还应该考虑任何其他选项(我不会考虑这个选项)。
  6. 除了 Verisign 之外,还有其他代码签名选项吗?显然,像 OpenID 这样的免费/开源计划会很棒;-)
windows-7 windows-vista 64-bit driver-signing
5个回答
4
投票

手头有两个单独的问题:

  1. 对映像文件(即 driver.sys 文件)进行签名以满足内核模式代码签名 (KMCS)
  2. 对驱动程序包进行签名以满足驱动程序安装(即 driver.cat 文件)。

如果您使用由另一个实体签名的现有驱动程序(无论是 Microsoft 的 WinUSB 或 libusb-win32),这将满足 KMCS。

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

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


2
投票

您也许可以尝试使用 libusb 的 libusb-winusb 版本,它尝试围绕 winusb 驱动程序实现大部分现有功能(这是一个签名的 MS 二进制文件,因此您不需要自己动手) 。然而,YMMV 作为 winusb 并不能 100% 映射到 libusb 中所需的所有功能。


1
投票

您可以使用本教程忽略未签名的驱动程序。我认为您不想付费,因为它的成本约为 400 美元!

这是另一个教程

您还可以以管理员身份运行 CMD 并运行以下命令:

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

1
投票

根据我的研究,签署设备驱动程序的成本可能低至 266 美元。我的理解是只有公司才能签署驱动程序。他们不会为个人做这件事。

参考:CERTUM 代码签名证书


0
投票

我找到了一些免费加载驱动程序的方法:

  1. 手动映射驱动程序https://github.com/TheCruZ/kdmapper
  2. 禁用驱动程序签名强制 - info

我个人使用KD映射器

© www.soinside.com 2019 - 2024. All rights reserved.