驱动程序签名策略
注意
从 Windows 10 版本 1607 开始,Windows 不会加载任何未由开发门户签名的新内核模式驱动程序。 若要对驱动程序进行签名,请先 注册 Windows 硬件开发人员中心计划。 请注意,需要 EV 代码签名证书才能建立仪表板帐户。
可通过多种不同方式将驱动程序提交到门户。 对于生产驱动程序,应提交 HLK/HCK 测试日志,如下所述。 若要在仅限客户端Windows 10系统上进行测试,可以提交驱动程序进行证明签名,这不需要 HLK 测试。 或者,可以提交驱动程序进行测试签名,如 创建新硬件提交 页中所述。
异常
如果存在以下任一情况,仍允许使用交叉签名驱动程序:
- 电脑已从早期版本的 Windows 升级到Windows 10版本 1607。
- 安全启动在 BIOS 中处于关闭状态。
- 驱动程序使用 2015 年 7 月 29 日之前颁发的最终实体证书进行签名,该证书链接到支持的交叉签名 CA。
为了防止系统无法正确启动,不会阻止启动驱动程序,但程序兼容性助手会删除它们。
为 Windows 客户端版本的驱动程序签名
若要为Windows 10为驱动程序签名,请执行以下步骤:
- 对于要认证的每个版本的Windows 10,下载适用于该版本的 Windows HLK (Hardware Lab Kit) ,并针对该版本的客户端运行完整的证书传递。 每个版本都会获得一个日志。
- 如果有多个日志,请使用最新的 HLK 将它们合并到单个日志中。
- 将驱动程序和合并的 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 驱动程序进行签名的信息,请参阅 提前启动反恶意软件。