通过证明对 Windows 驱动程序进行签名
创作时间:
作者:
@小白创作中心
通过证明对 Windows 驱动程序进行签名
引用
1
来源
1.
https://learn.microsoft.com/zh-cn/windows-hardware/drivers/dashboard/attestation-signing-a-kernel-driver-for-public-release
本文介绍如何使用证明签名对驱动程序进行签名。 有关证明签名的详细信息和要求,请参阅Windows 10 证明签名的驱动程序。
先决条件
创建 CAB 文件
在本部分中,我们会逐步完成创建 CAB 文件提交的过程。 我们将使用echo 驱动程序示例来演示该过程。
典型的 CAB 文件提交必须包含:
- 驱动程序本身,例如 Echo.sys
- 驱动程序 INF 文件,仪表板使用它来简化签名过程。
- 符号文件,用于调试信息。 例如,Echo.pdb。 Microsoft 自动崩溃分析工具需要使用 .pdb 文件。
- 目录 .CAT 文件是必需的,仅用于公司验证。 Microsoft 会重新生成目录文件,并替换已提交的任何目录文件。
注意
CAB 文件中的每个驱动程序文件夹都必须支持同一组体系结构。 例如,它们必须支持 x86、x64,或者全都必须同时支持 x86 和 x64。
当引用驱动程序位置 (\\server\share) 时,请勿使用 UNC 文件共享路径。 必须使用映射的驱动器号才能使 CAB 有效。
若要创建 CAB 文件,请执行以下操作:
- 将要签名的二进制文件收集到一个目录中。 在本例中,我们使用 C:\Echo 。
- 以管理员身份打开命令提示符窗口。
- 输入 MakeCab /? 以查看 MakeCab 选项:
C:\Echo> MakeCab /?
Cabinet Maker - Lossless Data Compression Tool
MAKECAB [/V[n]] [/D var=value ...] [/L dir] source [destination]
MAKECAB [/V[n]] [/D var=value ...] /F directive_file [...]
source File to compress.
destination File name to give compressed file. If omitted, the
last character of the source file name is replaced
with an underscore (_) and used as the destination.
/F directives A file with MakeCAB directives (may be repeated). Refer to
Microsoft Cabinet SDK for information on directive_file.
/D var=value Defines variable with specified value.
/L dir Location to place destination (default is current directory).
/V[n] Verbosity level (1..3).
- 准备一个 cab 文件 DDF 输入文件。 对于我们的 Echo 驱动程序,它可能像是这样:
;*** Echo.ddf example
;
.OPTION EXPLICIT ; Generate errors
.Set CabinetFileCountThreshold=0
.Set FolderFileCountThreshold=0
.Set FolderSizeThreshold=0
.Set MaxCabinetSize=0
.Set MaxDiskFileCount=0
.Set MaxDiskSize=0
.Set CompressionType=MSZIP
.Set Cabinet=on
.Set Compress=on
;Specify file name for new cab file
.Set CabinetNameTemplate=Echo.cab
; Specify the subdirectory for the files.
; Your cab file should not have files at the root level,
; and each driver package must be in a separate subfolder.
.Set DestinationDir=Echo
;Specify files to be included in cab file
C:\Echo\Echo.Inf
C:\Echo\Echo.Sys
- 输入以下命令以创建 CAB 文件:
C:\Echo> MakeCab /f "C:\Echo\Echo.ddf
MakeCab 的输出应显示创建的 CAB 文件中的文件数。 在本例中,应该有两个文件。
C:\Echo> MakeCab /f Echo.ddf
Cabinet Maker - Lossless Data Compression Tool
17,682 bytes in 2 files
Total files: 2
Bytes before: 17,682
Bytes after: 7,374
After/Before: 41.70% compression
Time: 0.20 seconds ( 0 hr 0 min 0.20 sec)
Throughput: 86.77 Kb/second
- 在 Disk1 子目录中找到 CAB 文件。 可以在文件资源管理器中选择 CAB 文件,以验证它是否包含所需的文件。
使用 EV 证书对 CAB 文件进行签名
- 要通过 EV 证书对 CAB 文件进行签名,请使用 EV 证书提供商推荐的过程。 例如,要使用 SHA256 证书/摘要算法/时间戳对 CAB 文件进行签名,请输入以下命令:
C:\Echo> SignTool sign /s MY /n "Company Name" /fd sha256 /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td sha256 /v "C:\Echo\Disk1\Echo.cab"
重要
切记使用行业最佳做法管理 EV 代码签名过程的安全性。
使用合作伙伴中心提交 EV 签名的 Cab 文件
- 转到合作伙伴中心硬件仪表板并使用凭据登录。
- 选择“提交新硬件”。
- 在“包和签名属性”部分,输入驱动程序提交的产品名称。 此名称可用于搜索和整理驱动程序提交。
注意
如果与其他公司共享你的驱动程序,他们会看到该名称。
- 取消选中这两个测试签名选项。
- 对于“请求的签名”,选择希望包含在驱动程序包中的签名。
- 向下浏览页面,然后选择“提交”。
签名过程完成后,请从硬件仪表板下载已签名的驱动程序。
验证驱动程序是否已正确签名
完成以下步骤以确保驱动程序已正确签名。
- 下载提交文件后,解压缩驱动程序文件。
- 以管理员身份打开命令提示符窗口。
- 输入以下命令来验证驱动程序是否已按预期签名:
C:\Echo> SignTool verify Echo.Sys
- 若要列出其他信息,并让 SignTool 验证包含多个签名的文件中的所有签名,请输入以下命令:
C:\Echo> SignTool verify /pa /ph /v /d Echo.Sys
- 要确认驱动程序的 EKU,请完成以下步骤:
- 打开 Windows 资源管理器,找到二进制文件。 选择并按住(或右键单击)该文件并选择“属性”。
- 在“数字签名”选项卡上,选择签名列表中列出的项目。
- 选择“详细信息”,然后选择“查看证书”。
- 在“详细信息”选项卡上,选择“增强型密钥用法”。
当驱动程序由仪表板重新签名时将遵循以下过程:
- 追加 Microsoft SHA2 嵌入式签名。
- 如果客户使用自己的证书对驱动程序二进制文件进行嵌入式签名,将不会覆盖这些签名。
- 创建新目录文件并用 SHA2 Microsoft 证书签名。 此目录将替换客户提供的任何现有目录。
在 Windows 上测试驱动程序
按照以下说明安装示例驱动程序。
- 以管理员身份打开命令提示符窗口。 转到你的驱动程序包文件夹,然后输入以下命令:
C:\Echo> devcon install echo.inf root\ECHO
- 确认驱动程序安装过程不会显示“Windows 无法验证该驱动程序软件的发布者。”Windows 安全对话框。
创建包含多个驱动程序的提交
若要同时提交多个驱动程序,请执行以下操作:
- 为每个驱动程序创建一个子目录。
- 准备一个引用子目录的 CAB 文件 DDF 输入文件。 它应如下所示:
;*** Submission.ddf multiple driver example
;
.OPTION EXPLICIT ; Generate errors
.Set CabinetFileCountThreshold=0
.Set FolderFileCountThreshold=0
.Set FolderSizeThreshold=0
.Set MaxCabinetSize=0
.Set MaxDiskFileCount=0
.Set MaxDiskSize=0
.Set CompressionType=MSZIP
.Set Cabinet=on
.Set Compress=on
;Specify file name for new cab file
.Set CabinetNameTemplate=Echo.cab
;Specify files to be included in cab file
; First Driver
.Set DestinationDir=DriverPackage1
C:\DriverFiles\DriverPackage1\Driver1.sys
C:\DriverFiles\DriverPackage1\Driver1.inf
; Second driver
.Set DestinationDir=DriverPackage2
C:\DriverFiles\DriverPackage2\Driver2.sys
C:\DriverFiles\DriverPackage2\Driver2.inf
本文原文来自微软官方文档
热门推荐
如何补交个人医保费用?这种补交有哪些方式方法?
《哪吒2》元宵海报,当国漫美学邂逅千年剪纸非遗,帅炸了!
无固定期限劳动合同≠职场保命符 公司因员工投诉不予续签合同是否违法
阴阳师新SSR歌留多深度解析:机制、强度与培养指南
招聘市场趋势分析:六大维度全面洞察
《北京长城文化辞典》出版,1170多个条目细说长城故事
F92耐热钢的特性与应用
明查·工具箱|你获取信息的网站靠谱吗?看下DNS信息吧
基金涨幅和跌损的历史数据对比,了解基金的过去表现
Excel计算名字笔画数的三种方法
SPSS下载指南:版本选择与安装步骤详解
哪吒2跟美国队长4北美市场深度分析,北美市场我们输在哪儿?
空调税法折旧年限研究
小众旅游目的地“热”起来
在武汉工作的薪资水平如何?它如何影响生活质量?
腰椎保养全攻略:7个避免+6个加强,远离腰痛困扰
汽车发动机使用注意事项全解析
常规大便检查能查出什么病
成为引航员,探索海洋引路的职业之旅
博士论文常见的问题及解决建议
朱棣登基后的合法性证明之路
中国联通反诈中心:每天拨出8000多通劝阻电话,每月避免直接经济损失7亿余元
108款大模型完成备案!DeepSeek火爆让长三角AI企业坐不住了
最好的养生:不抱怨,不较劲,不偏执
为室内空间质感增色,仿真植物市场“生机勃勃”
中国联通反诈中心:高效精准劝阻,全力守护群众财产安全
结婚后外国人如何申请中国的绿卡
狗狗的怀孕周期及生产时间表(了解狗狗的怀孕期和分娩时间,助你更好地照顾你的毛孩)
王者荣耀雅典娜技能介绍
印堂穴:位置、功效与应用全解析