微软驱动程序签名策略的小知识

发布时间:2020-08-30 11:02:15

备注

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

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

例外的情况

    如果满足以下任一条件,则仍允许交叉签名的驱动程序:

·         计算机已从 Windows 的早期版本升级到版本1607

·         安全启动在 BIOS 中处于关闭状态。

·         驱动程序已使用在2015729日之前颁发的最终实体证书进行签名,该证书链接到受支持的交叉签名 CA

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

Windows 客户端版本的驱动签名

若要签署适用于 Windows 10 的驱动程序,请执行以下步骤:

1.       对于要在其上验证的每个版本的 Windows 10,下载适用于该版本的 Windows HLK (硬件实验室包) ,并针对该版本的客户端运行完整的证书传递。 每个版本都有一个日志。

2.       如果有多个日志,请使用最新的 HLK 将它们合并到单个日志中。

3.       将驱动程序和合并的 HLK 测试结果提交给Windows 硬件开发人员中心仪表板门户。

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

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

Windows 10 1607 版之前,以下类型的驱动程序需要与 Microsoft 的交叉证书结合使用的验证码证书来进行交叉签名:

·         内核模式设备驱动程序

·         用户模式设备驱动程序

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

按版本的签名要求

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

适用于

Windows VistaWindows    7;Windows 8 +,并关闭安全启动

Windows 8Windows    8.1Windows 10、版本15071511、安全启动

Windows 10 版本160717031709、安全启动

Windows 10,版本 1803 +,启用安全启动

架构

仅限64位,无需32位的签名

64位,32

64位,32

64位,32

需要签名

嵌入文件或目录文件

嵌入文件或目录文件

嵌入文件或目录文件

嵌入文件或目录文件

签名算法

SHA2

SHA2

SHA2

SHA2

证书

受代码完整性信任的标准根

受代码完整性信任的标准根

Microsoft 根证书颁发机构2010microsoft 根证书颁发机构,Microsoft   根证书颁发机构

Microsoft 根证书颁发机构2010microsoft 根证书颁发机构,Microsoft   根证书颁发机构


除驱动程序代码签名外,还需要满足用于安装驱动程序的 PnP 设备安装签名要求。

有关对 ELAM 驱动程序签名,必须通过硬件仪表盘签名(WHQL)才能正常运行