驱动程序签名策略

注释

从 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 的跨证书一起使用的 Authenticode 证书进行交叉签名:

  • 内核模式设备驱动程序
  • 用户模式设备驱动程序
  • 流式传输受保护内容的驱动程序。 这包括使用受保护的用户模式音频(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 驱动程序的信息,请参阅 早期启动反恶意软件

另请参阅