OPM 証明書の失効

出力保護マネージャー (OPM) 証明書は、Microsoft によって取り消すことができます。 失効した証明書の一覧は、グローバル失効リスト (GRL) に格納されます。 GRL の形式は次のとおりです。

セクション 説明
ヘッダー GRL_HEADER構造体。
コア 次の失効リストが含まれています。
  • カーネル バイナリ失効
  • ユーザー モードのバイナリ失効
  • 証明書の失効
  • 信頼されたルート (予約済み)
信頼されたルートの一覧は現在使用されておらず、今後使用するために予約されています。
拡張可能なエントリ 他のコンポーネントで使用される情報が含まれます。 このセクションは OPM には関係ありません。
更新: Windows Update識別子を定義する GUID が含まれます。 このセクションには、次の一覧の識別子が含まれています。
  • カーネル バイナリ失効
  • ユーザー モードのバイナリ失効
  • 証明書の失効
アプリケーションは、これらの識別子を使用して、取り消されたバイナリの更新されたバージョン (使用可能な場合) を要求できます。
署名: [コア] セクション ヘッダー セクションとコア セクションに署名します。
署名: [拡張可能] セクション ヘッダーと拡張可能なセクションに署名します。

 

GRL ヘッダーは 、GRL_HEADER 構造体です。 構造体の dwSequenceNumber メンバーには、GRL バージョン番号が含まれています。 この数値は、GRL が更新され、ユーザーのコンピューターに新しいバージョンが配置されるたびにインクリメントされます。

失効した OPM 証明書は、Core セクションの証明書失効リストに一覧表示されます。 GRL の各 Core エントリは、失効した証明書の公開キーの SHA-1 ハッシュを含む 20 バイトの配列です。

[署名] セクションには、GRL が改ざんされていないことを確認するために使用できる署名が含まれています。 各 Signature セクションには、am MF_SIGNATURE 構造体が含まれています。 最初の署名は、ヘッダーと Core セクションに署名します。 2 番目の署名は、ヘッダーと 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. ハッシュがリーフ証明書の署名と一致することを確認します。

Output Protection Manager

GRL_HEADER

MF_SIGNATURE