OPM 证书吊销

可以通过Microsoft吊销输出保护管理器(OPM)证书。 吊销证书的列表存储在全局吊销列表中(GRL)。 GRL 具有以下格式:

部分 描述
页眉 GRL_HEADER 结构。
核心 包含以下吊销列表:
  • 内核二进制吊销
  • 用户模式二进制吊销
  • 证书吊销
  • 受信任的根(保留)
当前未使用受信任的根列表,并保留供将来使用。
可扩展条目 包含其他组件使用的信息。 本部分与 OPM 无关。
更新: 包含定义 Windows 更新标识符的 GUID。 本部分包含以下列表的标识符:
  • 内核二进制吊销
  • 用户模式二进制吊销
  • 证书吊销
应用程序可以使用这些标识符来请求已撤销的二进制文件的续订版本(如果有)。
签名:核心部分 对标头和核心部分进行签名。
签名:可扩展部分 对标头和可扩展分区进行签名。

 

GRL 标头是 GRL_HEADER 结构。 结构 dwSequenceNumber 成员包含 GRL 版本号。 每当 GRL 更新和放置在用户计算机上的新版本时,此数字就会递增。

吊销的 OPM 证书列在核心部分的证书吊销列表中。 GRL 中的每个 Core 条目都是一个包含已吊销证书公钥的 SHA-1 哈希的 20 字节数组。

“签名”部分包含可用于验证 GRL 未被篡改的签名。 每个签名部分都包含 am MF_SIGNATURE 结构。 第一个签名对标头和 Core 部分进行签名。 第二个签名对标头和 Extensible 节进行签名;此签名与 OPM 无关。

若要确保 GRL 本身未被篡改,请验证签名,如下所示:

  1. 查找 MF_SIGNATURE 结构的开头。 MF_SIGNATURE 结构的位置在 cbSignatureCoreOffsetGRL_HEADER 结构的成员中提供。 该位置指定为 GRL 开头的偏移量(以字节为单位)。
  2. 使用证书链将 MF_SIGNATURE 结构分析为 PKCS #7 签名。
  3. 验证证书链到受信任的根。
  4. 验证叶证书在 EKU 中是否具有以下对象标识符:“1.3.6.1.4.1.311.10.5.4”。
  5. 计算包含 GRL 标头和核心部分的字节的哈希。
  6. 验证哈希是否与叶证书中的签名匹配。

Output Protection Manager

GRL_HEADER

MF_SIGNATURE