用于内核模式代码签名的交叉证书

此信息描述如何获取和使用交叉证书来对 Microsoft Windows 的代码签名内核模式二进制文件。

注意

请查看 Microsoft 安全公告 (2880823) "弃用 Microsoft 根证书计划的 SHA-1 哈希算法",其中描述了一项策略更改,其中 Microsoft 将不再允许根证书颁发机构在 2016 年 1 月 1 日之后出于 SSL 和代码签名目的使用 SHA-1 哈希算法颁发 X.509 证书。

注意

Microsoft 受信任的根程序不再支持具有内核模式签名功能的根证书。 有关详细信息,请参阅弃用 Software Publisher 证书、商业发布证书和商业测试证书

跨证书概述

跨证书是由一个证书颁发机构颁发 (CA) 颁发的数字证书,用于为另一个证书颁发机构根证书的公钥签名。 跨证书提供了一种创建从单个受信任根 CA 到多个其他 CA 的信任链的方式。

在Windows中,交叉证书:

  • 允许操作系统内核具有单个受信任的 Microsoft 根颁发机构。
  • 将信任链扩展到颁发软件 Publisher 证书 (SPC) 的多个商业 CA,这些 CA 用于对软件进行代码签名软件进行分发、安装和加载Windows

此处提供的跨证书与 WDK Windows驱动程序工具包 (WDK) 代码签名工具一起用于对内核模式软件进行正确签名。 对内核模式软件进行数字签名类似于为内核模式软件发布的任何软件Windows。 对内核模式软件进行签名时,开发人员或软件发布者将交叉证书添加到数字签名。 代码签名工具将跨证书本身添加到二进制文件或目录的数字签名中。

请参阅 第三方 CSP 的验证码签名,详细了解如何使用交叉证书为第三方加密服务提供商 (CSP) 。

选择正确的交叉证书

Microsoft 为颁发 SPC 的代码签名内核模式代码的每个 CA 提供特定的交叉证书。 以下列表有一个链接,指向颁发 SPC 的根颁发机构的正确交叉证书。

按照以下步骤来标识 CA,然后下载相关的交叉证书。

  1. 打开Microsoft 管理控制台 (MMC) 并添加"证书"管理单元:

    1. 选择“开始”按钮,在搜索框中键入"mmc",然后从搜索结果中选择 mmc。 如果显示"用户帐户控制"对话框,请选择"是"。
    2. 在"MMC 文件"菜单中,选择"添加/删除管理单元..."。
    3. 选择"证书"管理单元,然后选择"添加"。
    4. 选择"我的用户帐户",然后选择"完成"。
    5. 再次选择"证书"管理单元,然后选择"添加"。
    6. 选择"计算机帐户",然后选择"下一步"。
    7. 选择"本地计算机",然后选择"完成"。
  2. 在证书存储中查找 SPC,然后双击它。 证书将列在以下两个位置之一中,具体取决于证书的安装方式。

    • 当前用户、个人、证书存储或
    • 本地计算机、个人、证书存储
  3. 在" 证书 "对话框中,选择"证书 路径 "选项卡,然后选择证书路径中最顶层的证书。 这是作为 SPC 的颁发根颁发机构 CA。

  4. 通过选择"查看证书"按钮查看根颁发机构证书,然后选择新"证书"对话框的"详细信息"选项卡。

  5. 找到此证书的颁发者和指纹。 然后在下面的列表中找到此 CA 的相应条目。

  6. 下载 CA 的相关跨证书,在对内核模式代码进行数字签名时,将此跨证书与 SPC 一起使用

跨证书列表

以下列表包含一些 Microsoft 当前支持的新 CA,用于为代码签名内核模式代码颁发 SPC。

CA 根证书指纹 到期日期 下载链接
AddTrust 外部 CA 根 a7 5a c6 57 aa 7a 4c df e5 f9 de 39 3e 69 ef ca b6 59 d2 50 2023/08/15 下载
GoDaddy 类 2 证书颁发机构 d9 61 24 72 ef 0f 27 87 e2 b2 d9 e0 63 a0 6b 32 fa 5e 33 3d 2023/08/27 下载
Starfield 类 2 证书颁发机构 f8 fc 7f 3c dd 51 76 ad d2 7c f9 7f 73 96 59 09 46 6d 9a 22 2023/08/27 下载
UTN-USERFirst-Object ae 1e 25 26 01 30 a3 0b 1b c2 20 29 35 65 3b e5 a7 23 be f5 2023/08/15 下载