6

我有一些基本上是LibUSB-Win32的驱动程序,带有一个新的 .inf 文件来描述产品/供应商 ID 和描述我的硬件的字符串。这适用于 32 位窗口,但 64 位版本有问题;即微软在他们的智慧中要求所有驱动程序都进行数字签名。

所以我的问题是:

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

4 回答 4

4

手头有两个不同的问题:

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

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

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

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

于 2012-02-12T12:29:54.520 回答
2

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

于 2010-04-29T20:38:16.727 回答
1

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

这是另一个教程

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

bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
bcdedit.exe -set TESTSIGNING ON
于 2010-04-29T18:46:48.917 回答
1

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

参考:CERTUM 代码签名证书

于 2012-05-15T16:05:04.140 回答