Freigeben über


OPM-Zertifikatsperrung

Ein OpM-Zertifikat (Output Protection Manager) kann von Microsoft widerrufen werden. Die Liste der widerrufenen Zertifikate wird in einer globalen Sperrliste (GRL) gespeichert. Die GRL weist das folgende Format auf:

Abschnitt Beschreibung
Kopfball Eine GRL_HEADER Struktur.
Kern Enthält die folgenden Sperrlisten:
  • Kernel-Binärsperren
  • Binäre Sperrungen im Benutzermodus
  • Zertifikatsperren
  • Vertrauenswürdige Wurzeln (reserviert)
Die Liste der vertrauenswürdigen Wurzeln wird derzeit nicht verwendet und ist für die zukünftige Verwendung reserviert.
Erweiterbare Einträge Enthält Informationen, die von anderen Komponenten verwendet werden. Dieser Abschnitt ist für OPM nicht relevant.
Erneuerungen: Enthält GUIDs, die Windows Update-IDs definieren. Dieser Abschnitt enthält Bezeichner für die folgenden Listen:
  • Kernel-Binärsperren
  • Binäre Sperrungen im Benutzermodus
  • Zertifikatsperren
Eine Anwendung kann diese Bezeichner verwenden, um eine erneuerte Version einer widerrufenen Binärdatei anzufordern, sofern eine verfügbar ist.
Signatur: Kernabschnitt Signiert die Kopf- und Kernabschnitte.
Signatur: Erweiterbarer Abschnitt Signiert die Kopfzeile und erweiterbare Abschnitte.

 

Der GRL-Header ist eine GRL_HEADER Struktur. Das dwSequenceNumber Element der Struktur enthält die GRL-Versionsnummer. Diese Zahl wird immer dann erhöht, wenn die GRL aktualisiert wird und eine neue Version auf dem Computer des Benutzers platziert wird.

Widerrufene OPM-Zertifikate sind in der Zertifikatsperrliste des Abschnitts "Core" aufgeführt. Jeder Core-Eintrag in der GRL ist ein 20-Byte-Array, das den SHA-1-Hash des öffentlichen Schlüssels des widerrufenen Zertifikats enthält.

Die Signaturenabschnitte enthalten Signaturen, die verwendet werden können, um zu überprüfen, ob die GRL nicht manipuliert wurde. Jede Signaturabschnitte enthält am MF_SIGNATURE Struktur. Die erste Signatur signiert die Kopfzeile plus den Core-Abschnitt. Die zweite Signatur signiert die Kopfzeile plus den Extensible-Abschnitt; diese Signatur ist für OPM nicht relevant.

Um sicherzustellen, dass die GRL selbst nicht manipuliert wurde, überprüfen Sie die Signatur wie folgt:

  1. Suchen Sie den Anfang der MF_SIGNATURE Struktur. Die Position der MF_SIGNATURE Struktur wird im cbSignatureCoreOffset Member der GRL_HEADER Struktur angegeben. Die Position wird als Offset in Byte vom Anfang der GRL angegeben.
  2. Analysieren Sie die MF_SIGNATURE Struktur als PKCS #7-Signatur mit einer Zertifikatkette.
  3. Überprüfen Sie die Zertifikatkette bis zu einem vertrauenswürdigen Stamm.
  4. Stellen Sie sicher, dass das Blattzertifikat den folgenden Objektbezeichner in der EKU aufweist: "1.3.6.1.4.1.311.10.5.4".
  5. Berechnen Sie einen Hash der Bytes, die die Kopfzeile und die Kernabschnitte der GRL enthalten.
  6. Stellen Sie sicher, dass der Hash mit der Signatur im Blattzertifikat übereinstimmt.

Ausgabeschutz-Manager

GRL_HEADER

MF_SIGNATURE