admin 管理员组

文章数量: 887017

文章目录

  • 第一部分:windows驱动数字签名之WHQL完整流程
    • 一、驱动数字签名背景
    • 二、驱动程序数字签名解决方案—WHQL认证
      • 1. 对开发者的影响
      • 2. WHQL认证主要作用
    • 三、申请WHQL认证的主要目的
    • 四、认证周期
    • 五、申请WHQL认证流程(重要)
      • a. 申请EV代码签名证书,相当于数字的企业营业执照。
      • b. 用申请好的EV证书申请微软认证帐号
      • c. 与微软签订电子合同。和微软签订书面保证协议
      • d. 使用微软提供的测试平台测试设备,生成测试报告
      • e. 生成测试报告与驱动程序包,并用数字证书签名
      • f. 将100%通过测试并签署后的文件上传微软并等待微软审核。
      • g. 通过审核,可以使用微软交叉签署的驱动程序,同时获得微软LOGO 授权
    • 六、微软Azure AD、 Azure Active Directory
  • 第二部分:WHQL认证环境部署以及测试
    • 1. Windows Hardware Lab Kit (Windows HLK)
      • 如何查询windown版本信息
      • HLK 和 HCK区别
    • 2. HLK 测试框架环境搭建
      • 搭建 WHLK 平台
        • 管理端 程序安装
        • 客户端 程序安装
    • 3. 运行 HLK/WHQL 测试
      • HLK中无法在驱动程序列表中看到目标驱动程序
      • 安装驱动失败
      • HLK测试用例报错
        • 具体错误:WDTF_TEST : Unrecognized log format
        • 报错:Code Integrity FAILURES
    • 4. 关于证明签名
        • 使用官方命令批量驱动签名
        • 过程遇到问题总结
            • 微软验证不通过,报错:There are files at the root of the cabinet:

第一部分:windows驱动数字签名之WHQL完整流程

一、驱动数字签名背景

在WINDOWS中最严重的问题就是“蓝屏”,蓝屏通常都是由硬件设备的驱动程序造成的,驱动程序处在系统内核和应用程序的中间层,也可以使用内核的内存,因此驱动程序不稳定会直接导致系统蓝屏。

因此,驱动一般需要驱动数字签名。有了数字签名的驱动操作系统会认为它是安全的、稳定的、有版权的驱动,安装的时候也会明显更顺畅,可以让用户放心加载使用。

驱动数字签名是指运用在驱动上的数字签名,这种签名就如同文件上的签章,认证驱动程序的签发者身份。

二、驱动程序数字签名解决方案—WHQL认证

由于受微软信任的Digicert,Entrust,Sectigo,Thawte等第三方驱动代码签名交叉证书已全部过期,微软不再接受EV代码签名证书为驱动程序进行内核数字签名。取而代之的是需要对驱动程序做WHQL认证(微软徽标认证)。

WHQL认证,也叫Windows徽标认证,由美国微软公司(Microsoft)设立的认证,Windows微软徽标认证的全名为Windows Hardware Quality Labs(WHQL), 中文名称是Windows硬件设备质量实验室。

鉴于微软的最新要求,微软从2021年4月底开始不再接受代码签名证书给驱动程序进行数字签名(注意:普通非驱动类软件依然可以使用代码签名证书),取而代之的是需要对驱动程序做WHQL认证(微软徽标认证)。 换言之,驱动程序的发行机构或硬件产品生产商需要为驱动程序申请微软的WHQL认证,从而获得微软官方的数字签名证书。
WHQL认证通过使用微软的测试平台,对设备和驱动进行严格的测试,通过测试的基本上不会造成系统的故障。

简单地说,新版本windows,在 Secure Boot 打开的情况下,Windows 基本上只会接受由微软签名的驱动(其他驱动一概不认,不能安装不能启动)。

总结: 根据微软的相关要求,微软将不再支持第三方代码签名证书给驱动程序进行内核交叉签名,取而代之的便是要对驱动程序做 WHQL 认证,从而获得微软官方的数字签名。

1. 对开发者的影响

独立开发者:编写驱动并分发变得困难了一些,除非你拥有一家公司并通过 EV 认证,然后才可以让微软签署驱动。
传统内核扩展开发者:在测试环境跑一遍 HLK(WHQL),像提交 App 一样把驱动和 WHQL 报告提交给微软来签署证书并分发。

2. WHQL认证主要作用

作用对象:驱动程序、硬件设备。
主要作用:
1)解决设备和驱动与Windows系统的兼容性、稳定性、互通性,签名验证;
2)帮助客户识别那些能满足平台特性的基本定义并保证终端用户高品质的Windows体验的系统和外围设备;
3)有权在产品和包装上使用“Designed for Windows”徽标,获得微软Windows品牌及用户对产品与Windows兼容认可。

认证流程:申请EV代码签名证书→建立WINDOWS徽标认证帐户→提交微软实验室,解决Windows下驱动签名验证→产品软硬件测试→获得微软的LOGO(徽标)授权。

三、申请WHQL认证的主要目的

a.提升产品在Windows平台下的兼容性和稳定性。
b.获得微软Windows LOGO使用权。
c. 驱动获得微软数字签名,使驱动能顺利安装上并无任何警告提示。
d. 分发驱动到Windows Update中心,实现驱动联网自动安装。

微软从2021年4月底开始不再接受代码签名证书给驱动程序进行数字签名(注意:普通非驱动类软件依然可以使用代码签名证书),取而代之的是需要对驱动程序做WHQL认证(微软徽标认证)。

四、认证周期

一般的认证周期为7个工作日内完成。

五、申请WHQL认证流程(重要)

以下是微软官方 L WHQL 认证的流程 :

  1. 申请 EV 代码签名证书,相当于数字的企业营业执照。
  2. 用申请好的 EV 证书申请微软认证帐号。
  3. 与微软签订电子合同。
  4. 使用微软提供的测试平台测试设备,生成测试报告。
  5. 生成测试报告与驱动程序包,并用数字证书签名。
  6. 将 100%通过测试并签署后的文件上传微软并等待微软审核。
  7. 通过审核,可以使用微软交叉签署的驱动程序,同时获得微软 LOGO

a. 申请EV代码签名证书,相当于数字的企业营业执照。

进行驱动程序WHQL认证的第一步,就是必须使用EV代码签名证书建立微软硬件开发者中心仪表板账号。如果你希望驱动程序能够正常加载,获取一张EV代码签名证书必不可少!

从微软承认的五家 CA(微软要求必须是Entrust, Symantec, Digicert, Globasign等权威CA机构颁发的EV代码签名证书) 里申请 EV 代码签名证书。(这一般需要你拥有一家公司,或者你是某个公司的雇员,你们公司已经申请了)

b. 用申请好的EV证书申请微软认证帐号

组织管理员必须注册 Windows 硬件开发人员中心计划。完成两个账户 一个是开发者账户,一个是微软Azure AD账户配置后 才能开始提交驱动程序验证。官方参考

  1. 创建Azure AD账户

根据微软要求,想要申请WHQL认证的公司必须要申请Azure AD账户。


如果账号注册过了 工作账号(Azure AD) 这里直接选择登录Azure AD

第一次,我们是没有 Azure AD 目录,我们需要点击 免费新建目录,创建一个。
可以免费创建一个。你必须有权创建目录,并代表你的公司签署法律协议。建议先咨询 IT 部门。

  1. 签署一个示例 exe 文件来证明你拥有 EV 代码签名证书
    和 App 开发者账户类似,签署一个示例 exe 文件来证明你拥有 EV 代码签名证书。
    请在开始注册过程之前查看以下要求:


3. 创建完Azure AD账户后,我们就可以登录 Microsoft 合作伙伴中心
上面步骤处理完成后,我们会有一个独立的 Azure AD账户,可以使用这个账号我们 登录Microsoft 合作伙伴中心 提交驱动。

微软合作伙伴中心网址

点击如下图标,我们就可以进入,驱动提交界面:

c. 与微软签订电子合同。和微软签订书面保证协议

d. 使用微软提供的测试平台测试设备,生成测试报告

在本地运行 HLK/WHQL 测试,在提交驱动时提交 WHQL 测试结果。

查看测试结果
测试完成后,可点击“Results”页签查看测试结果

e. 生成测试报告与驱动程序包,并用数字证书签名

微软HLK测试
参考URL: https://blog.csdn/langzi0781/article/details/117365588

在设备通过了所有必要的测试后,可以创建提交程序包(.hlkx 文件)来进行提交。
创建提交包,参考官方:https://docs.microsoft/zh-cn/windows-hardware/test/hlk/getstarted/step-8-create-a-submission-package

Windows HLK 工作室支持包创建,因此,不需要使用单独的提交工具。 它支持添加完成认证所必需的资源文件(驱动程序、符号、勘误表)。 还可以将多个包(.hlkx 文件)合并为一个包。

注意: 购买GlobaSign ev证书,并获取安装包

下图显示了 HLK 工作室的“包”选项卡。
1) 继续回到HLKStdio工具,点击”AddDriverFolder”按钮࿰

本文标签: 数字签名 流程 完整 环境 测试