Compartilhar via


Revogação de certificado OPM

Um certificado OPM (gerenciador de proteção de saída) pode ser revogado pela Microsoft. A lista de certificados revogados é armazenada em uma GRL (lista de revogação global). O GRL tem o seguinte formato:

Secção Descrição
Cabeçalho Uma estrutura GRL_HEADER.
Núcleo Contém as seguintes listas de revogação:
  • Revogações binárias do kernel
  • Revogações binárias no modo de usuário
  • Revogações de certificado
  • Raízes confiáveis (reservadas)
A lista de raízes confiáveis atualmente não é usada e é reservada para uso futuro.
Entradas extensíveis Contém informações usadas por outros componentes. Esta seção não é relevante para o OPM.
Renovações: Contém GUIDs que definem identificadores do Windows Update. Esta seção contém identificadores para as seguintes listas:
  • Revogações binárias do kernel
  • Revogações binárias no modo de usuário
  • Revogações de certificado
Um aplicativo pode usar esses identificadores para solicitar uma versão renovada de um binário revogado, se houver um disponível.
Assinatura: Seção Core Assina o cabeçalho e as seções principais.
Assinatura: Seção Extensível Assina o cabeçalho e as seções extensíveis.

 

O cabeçalho GRL é uma estrutura GRL_HEADER. O dwSequenceNumber membro da estrutura contém o número de versão GRL. Esse número é incrementado sempre que o GRL é atualizado e uma nova versão colocada no computador do usuário.

Certificados OPM revogados são listados na lista de revogações de certificado da seção Core. Cada entrada Core no GRL é uma matriz de 20 bytes que contém o hash SHA-1 da chave pública do certificado revogado.

As seções de Assinatura contêm assinaturas que podem ser usadas para verificar se o GRL não foi adulterado. Cada seção de Assinatura contém a estrutura am MF_SIGNATURE. A primeira assinatura assina o cabeçalho mais a seção Core. A segunda assinatura assina o cabeçalho mais a seção Extensível; essa assinatura não é relevante para o OPM.

Para garantir que o GRL em si não tenha sido adulterado, verifique a assinatura da seguinte maneira:

  1. Localize o início da estrutura de MF_SIGNATURE. O local da estrutura de MF_SIGNATURE é fornecido no membro cbSignatureCoreOffset da estrutura GRL_HEADER. O local é especificado como um deslocamento em bytes desde o início do GRL.
  2. Analise a estrutura de MF_SIGNATURE como uma assinatura PKCS nº 7 com uma cadeia de certificados.
  3. Verifique a cadeia de certificados até uma raiz confiável.
  4. Verifique se o certificado folha tem o seguinte identificador de objeto na EKU: "1.3.6.1.4.1.311.10.5.4".
  5. Compute um hash dos bytes que incluem o cabeçalho e as seções principais do GRL.
  6. Verifique se o hash corresponde à assinatura no certificado folha.

do Gerenciador de Proteção de Saída do

GRL_HEADER

MF_SIGNATURE