Révocation de certificat OPM

Un certificat de sortie Protection Manager (OPM) peut être révoqué par Microsoft. La liste des certificats révoqués est stockée dans une liste de révocation globale (GRL). Le GRL a le format suivant :

Section Description
En-tête Structure GRL_HEADER .
Core Contient les listes de révocation suivantes :
  • Révocations binaires du noyau
  • Révocations binaires en mode utilisateur
  • Révocations de certificats
  • Racines de confiance (réservées)
La liste des racines de confiance n’est pas utilisée actuellement et est réservée à une utilisation ultérieure.
Entrées extensibles Contient des informations utilisées par d’autres composants. Cette section ne concerne pas OPM.
Renouvellements contient des guid qui définissent des identificateurs de Windows Update. Cette section contient des identificateurs pour les listes suivantes :
  • Révocations binaires du noyau
  • Révocations binaires en mode utilisateur
  • Révocations de certificats
Une application peut utiliser ces identificateurs pour demander une version renouvelée d’un binaire révoqué, si celle-ci est disponible.
Signature : section principale Signe l’en-tête et les sections principales.
Signature : section extensible Signe l’en-tête et les sections extensibles.

L’en-tête GRL est une structure d' _ en-tête GRL . Le membre dwSequenceNumber de la structure contient le numéro de version GRL. Ce nombre est incrémenté chaque fois que le GRL est mis à jour et qu’une nouvelle version est placée sur l’ordinateur de l’utilisateur.

Les certificats OPM révoqués sont répertoriés dans la liste de révocation des certificats de la section principale. Chaque entrée de cœur dans le GRL est un tableau de 20 octets qui contient le hachage SHA-1 de la clé publique du certificat révoqué.

Les sections signature contiennent des signatures qui peuvent être utilisées pour vérifier que le GRL n’a pas été falsifié. Chaque section de signature contient la structure de _ signature am MF . La première signature signe l’en-tête plus la section principale. La deuxième signature signe l’en-tête plus la section extensible ; Cette signature n’est pas pertinente pour OPM.

Pour vous assurer que le GRL lui-même n’a pas été falsifié, vérifiez la signature comme suit :

  1. Recherche le début de la structure de _ signature MF . L’emplacement de la structure de _ signature MF est indiqué dans le membre cbSignatureCoreOffset de la structure d' _ en-tête GRL . L’emplacement est spécifié en tant que décalage en octets à partir du début du GRL.
  2. Analyser la structure de _ signature MF en tant que # signature PKCS 7 avec une chaîne de certificats.
  3. Vérifiez la chaîne de certificats jusqu’à une racine approuvée.
  4. Vérifiez que le certificat feuille a l’identificateur d’objet suivant dans l’EKU : « 1.3.6.1.4.1.311.10.5.4 ».
  5. Calculez un hachage des octets qui incluent l’en-tête et les sections principales du GRL.
  6. Vérifiez que le hachage correspond à la signature dans le certificat feuille.

Gestionnaire de protection de sortie

_en-tête GRL

_signature MF