如何验证 Microsoft 签名
本文演示如何验证一个提交的 Microsoft 签名。
在几种情况下,你可能希望验证提交的 Microsoft 签名:
- 你不确定某个驱动程序是否有 Microsoft 的签名,因此想检查一下。
- 你有两个驱动程序。 你需要确定哪一个是认证签名,哪一个是在向仪表板提交 HLK/HCK 结果后签名的。
步骤 1:下载已签名的驱动程序文件
下载验证 Microsoft 签名所需的签名文件。
注意
驱动程序提交文件夹位于包文件中。 这些文件由 Microsoft 签名。 合作伙伴无需对返回的有效负载进行签名。 Microsoft 总是会在批准提交后返回一个 .cat 文件。 如果合作伙伴包含自己的 .cat 文件。 Microsoft 会丢弃它并返回自己签名的 .cat 文件。
过去,Microsoft 仅对 .cat 文件进行签名。 从 Windows 10 开始,Microsoft 现在会对返回有效负载中的所有可移植可执行文件进行签名。 例如,.dll 文件也由 Microsoft 签名:
下载驱动程序签名文件:
- 查找硬件提交,该提交中包含要为其下载签名文件的驱动程序。
- 选择“专用产品 ID”以打开驱动程序详细信息。
- 在“驱动程序详细信息”页面上的“包和签名属性”下,选择“更多”。
- 选择“下载签名文件”。
步骤 2:检查增强型密钥用法 (EKU)
下载签名的文件后,通过检查 EKU 来验证 Microsoft 签名。 EKU 属于 Microsoft 用于对提交进行签名的证书。
检查 EKU:
右键单击 .cat 文件。
选择“属性”,然后选择“数字签名”选项卡。
选择证书名称,然后选择“详细信息”。
在“详细信息”选项卡上,选择“增强型密钥用法”。 在这里,可以看到证书的 EKU 和相应的对象标识符 (OID) 值。 在此情况下,“Windows 硬件驱动程序验证 OID”会以 5 结尾,这意味着该驱动程序没有经过认证签名:
如果驱动程序经过了认证签名,则 OID 会以 1 结尾: