驱动程序代码签名要求

在将驱动程序提交到硬件仪表板之前,必须先使用证书对驱动程序进行签名。 你的组织可以将任意数量的证书与其仪表板帐户相关联,并且每个提交都必须使用其中任意一个证书进行签名。 没有限制与您的组织关联的证书数量(包括扩展验证(EV)和标准证书)。

本文提供有关驱动程序可用的代码签名类型以及这些驱动程序的相关要求的一般信息。

有关驱动程序签名要求的详细信息,请参阅以下页面:

EV 代码签名证书的获取途径

可以从以下证书颁发机构之一购买 EV 代码签名证书:

EV 证书签名驱动程序

硬件开发人员中心仪表板帐户必须至少具有一个 EV 证书,才能提交二进制文件进行证明签名或提交用于 HLK 认证的二进制文件。

下列规则适用:

  • 注册的 EV 证书必须在提交时有效。
  • 虽然Microsoft强烈建议使用 EV 证书对单个提交进行签名,但也可以使用也注册到合作伙伴中心帐户的 Authenticode 签名证书对提交进行签名。
  • 所有证书都必须是 SHA2,并使用 /fd sha256 SignTool 命令行开关进行签名。

如果已有来自证书颁发机构的已批准的 EV 证书,则可以使用它来建立合作伙伴中心帐户。 如果没有 EV 证书,请选择一个证书颁发机构并按照他们的购买说明进行操作。

证书颁发机构验证联系信息并批准证书购买后,请按照其说明检索证书。

经过 HLK 测试并通过控制台签名的驱动程序

已通过 HLK 测试的仪表板签名驱动程序适用于 Windows Vista 及更高版本,包括 Windows Server 版本。 HLK 测试是驱动程序签名的建议方法,因为它为所有 OS 版本对驱动程序进行签名。 HLK 测试的驱动程序表明,制造商严格测试其硬件,以满足所有Microsoft对可靠性、安全性、电源效率、可服务性和性能的要求,以提供出色的 Windows 体验。 测试包括符合行业标准,并遵循技术特定功能的Microsoft规范,帮助确保正确安装、部署、连接和互作性。 若要了解如何为仪表板提交创建经过 HLK 测试的驱动程序,请参阅 Windows HLK 入门

用于测试场景的 Windows 10 认证签名驱动程序

Windows 设备安装使用数字签名来验证驱动程序包的完整性以及提供驱动程序包的软件发布者的身份。

仅用于测试目的,可以提交驱动程序进行认证签名,这不需要进行 HLK 测试。

证明签名具有以下限制和要求:

  • 无法将已签名的驱动程序发布到零售受众的 Windows 更新。 若要将驱动程序发布到零售受众的 Windows 更新,必须通过 Windows 硬件兼容性计划(WHCP)提交驱动程序。 通过选择 CoDev测试注册表项/Surface SSRK 选项,支持将鉴定签名的驱动程序发布到 Windows 更新用于测试。

  • 证明签名仅适用于 Windows 10 桌面版和更高版本的 Windows。

  • 证明签名支持 Windows 10 桌面内核模式和用户模式驱动程序。 尽管用户模式驱动程序不需要由 Windows 10 Microsoft签名,但同一证明过程可用于用户和内核模式驱动程序。 对于需要在早期版本的 Windows 上运行的驱动程序,应 提交 HLK/HCK 测试日志以进行 Windows 认证

  • 证明签名不会为 ELAMWindows Hello PE 二进制文件返回正确的 PE 级别。 必须将这些二进制文件作为 .hlkx 包进行测试并提交,才能接收额外的签名属性。

  • 证明签名需要使用 扩展验证(EV)证书 将驱动程序提交到合作伙伴中心(硬件开发人员中心仪表板)。

  • 证明签名要求驱动程序文件夹名称不包含特殊字符、无 UNC 文件共享路径,且长度少于 40 个字符。

  • 当驱动程序收到认证签名时,这并不意味着它已通过 Windows 认证。 来自Microsoft的证明签名指示驱动程序受 Windows 信任。 但是,由于驱动程序尚未在 HLK Studio 中进行测试,因此无法保证兼容性、功能等。 无法通过 Windows 更新将接收证明签名的驱动程序发布给零售用户。 如果要将驱动程序发布到零售受众,则必须通过 Windows 硬件兼容性计划(WHCP)提交驱动程序。

  • DUA (驱动程序更新可接受)不支持使用声明签名的驱动程序。

  • 可以通过验证处理以下 PE 级别和二进制文件:

    • PeTrust
    • DrmLevel
    • HAL
    • .exe
    • .cab
    • .dll
    • .ocx
    • .msi
    • .xpi
    • .xap

有关如何为 Windows 10+ 驱动程序创建证明签名驱动程序的信息,请参阅 证明签名 Windows 10+ 驱动程序

Windows Server 签名驱动程序

  • Windows Server 2016 及更高版本不接受经过证明的设备并筛选驱动程序签名提交。
  • 仪表板仅对成功通过 HLK 测试的设备和筛选器驱动程序进行签名。
  • Windows Server 2016 及更高版本仅加载成功通过 HLK 测试的仪表板签名驱动程序。

Windows Defender 应用程序控制

企业可以使用 Windows 10 企业版实施策略来修改驱动程序签名要求。 Windows Defender 应用程序控制(WDAC)提供企业定义的代码完整性策略,该策略可配置为至少需要证明签名的驱动程序。 有关 WDAC 的详细信息,请参阅 Windows Defender 应用程序控制部署过程的规划和入门

Windows 驱动程序签名要求

下表总结了 Windows 的驱动程序签名要求:

版本 证明仪表板已签名 HLK 测试已通过仪表板签名 使用 2015 年 7 月 29 日之前颁发的 SHA-1 证书进行交叉签名
Windows Vista 是的 是的
Windows 7 是的 是的
Windows 8 / 8.1 是的 是的
Windows 10 是的 是的 否(从 Windows 10 1809 起)
Windows 10 - 已启用 DG *配置相关 *配置相关 *配置相关
Windows Server 2008 R2 是的 是的
Windows Server 2012 R2 是的 是的
Windows Server >= 2016 是的 是的
Windows Server>= 2016 – DG 已启用 *配置相关 *配置相关 *配置相关
Windows IoT 企业版 是的 是的 是的
Windows IoT Enterprise - DG 已启用 *配置相关 *配置相关 *配置相关
Windows IoT 核心版(1) 是(不需要) 是(不需要) 是(交叉签名也适用于 2015 年 7 月 29 日之后颁发的证书)

*配置依赖 – 使用 Windows 10 企业版,组织可以使用 Windows Defender 应用程序控制(WDAC)来定义自定义签名要求。 有关 WDAC 的详细信息,请参阅 Windows Defender 应用程序控制部署过程的规划和入门

(1) 使用 IoT Core 构建零售产品(即非开发用途)的制造商需要驱动程序签名。 有关批准的证书颁发机构(CA)的列表,请参阅 内核模式代码签名的跨证书。 如果启用了 UEFI 安全启动,则必须对驱动程序进行签名。