驱动程序签名策略

注意

从 Windows 10 版本 1607 开始,Windows 不会加载任何未由开发门户签名的新内核模式驱动程序。 若要对驱动程序进行签名,请先 注册 Windows 硬件开发人员中心计划。 请注意,需要 EV 代码签名证书才能建立仪表板帐户。

可通过多种不同方式将驱动程序提交到门户。 对于生产驱动程序,应提交 HLK/HCK 测试日志,如下所述。 若要在仅限客户端Windows 10系统上进行测试,可以提交驱动程序进行证明签名,这不需要 HLK 测试。 或者,可以提交驱动程序进行测试签名,如 创建新硬件提交 页中所述。

异常

如果存在以下任一情况,仍允许使用交叉签名驱动程序:

  • 电脑已从早期版本的 Windows 升级到Windows 10版本 1607。
  • 安全启动在 BIOS 中处于关闭状态。
  • 驱动程序使用 2015 年 7 月 29 日之前颁发的最终实体证书进行签名,该证书链接到支持的交叉签名 CA。

为了防止系统无法正确启动,不会阻止启动驱动程序,但程序兼容性助手会删除它们。

为 Windows 客户端版本的驱动程序签名

若要为Windows 10为驱动程序签名,请执行以下步骤:

  1. 对于要认证的每个版本的Windows 10,下载适用于该版本的 Windows HLK (Hardware Lab Kit) ,并针对该版本的客户端运行完整的证书传递。 每个版本都会获得一个日志。
  2. 如果有多个日志,请使用最新的 HLK 将它们合并到单个日志中。
  3. 将驱动程序和合并的 HLK 测试结果提交到 Windows 硬件开发人员中心仪表板门户

有关特定于版本的详细信息,请查看要面向的 Windows 版本的 WHCP (Windows 硬件兼容性计划) 策略

若要为 Windows 7、Windows 8 或 Windows 8.1 的驱动程序签名,请使用相应的 HCK (硬件认证工具包) 。 有关详细信息,请参阅 Windows 硬件认证工具包用户指南

为早期版本的 Windows 的驱动程序签名

在Windows 10版本 1607 之前,以下类型的驱动程序需要将 Authenticode 证书与 Microsoft 的交叉证书一起使用进行交叉签名:

  • 内核模式设备驱动程序
  • 用户模式设备驱动程序
  • 流式传输受保护内容的驱动程序。 这包括使用受保护的用户模式音频 (PUMA) 和受保护的音频路径 (PAP) 的音频驱动程序,以及处理受保护视频路径输出保护管理 (PVP-OPM) 命令的视频设备驱动程序。 有关详细信息,请参阅 受保护媒体组件的代码签名

按版本排序的签名要求

下表显示了客户端操作系统版本的签名策略。

请注意,安全启动不适用于 Windows Vista 和 Windows 7。

适用于: Windows Vista,Windows 7;关闭安全启动的 Windows 8+ Windows 8、Windows 8.1、Windows 10版本 1507、1511 且安全启动 Windows 10,版本 1607、1703、1709(启用安全启动) Windows 10版本 1803+ 且启用安全启动
架构: 仅限 64 位,32 位不需要签名 64 位、32 位 64 位、32 位 64 位、32 位
需要签名: 嵌入文件或目录文件 嵌入文件或目录文件 嵌入文件或目录文件 嵌入文件或目录文件
签名算法: SHA2 SHA2 SHA2 SHA2
证书: 代码完整性信任的标准根 代码完整性信任的标准根 Microsoft 根证书颁发机构 2010、Microsoft 根证书颁发机构、Microsoft 根证书颁发机构 Microsoft 根证书颁发机构 2010、Microsoft 根证书颁发机构、Microsoft 根证书颁发机构

除了驱动程序代码签名外,还需要满足安装驱动程序的 PnP 设备安装签名要求。 有关详细信息,请参阅 即插即用 (PnP) 设备安装签名要求

有关对 ELAM 驱动程序进行签名的信息,请参阅 提前启动反恶意软件

另请参阅