驱动程序签名策略

注意

从 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 (硬件实验室工具包) ,并针对该版本的客户端运行完整的证书传递。 每个版本都会有一个日志。
  2. 如果有多个日志,请使用最新的 HLK 将它们合并到单个日志中。
  3. 将驱动程序和合并的 HLK 测试结果提交到 Windows 硬件开发人员中心仪表板门户

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

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

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

在 Windows 10 版本 1607 之前,以下类型的驱动程序需要验证码证书与 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 驱动程序进行签名的信息,请参阅 早期启动反恶意软件

另请参阅