OPM 证书吊销

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

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

 

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

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

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

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

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

输出保护管理器

GRL_HEADER

MF_SIGNATURE