Partilhar via


Revogação do 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 de modo de usuário
  • Revogações de certificados
  • Raízes confiáveis (reservado)
A lista de raízes confiáveis não é usada no momento e está reservada para uso futuro.
Entradas extensíveis Contém informações usadas por outros componentes. Esta secçã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 de modo de usuário
  • Revogações de certificados
Um aplicativo pode usar esses identificadores para solicitar uma versão renovada de um binário revogado, se houver um disponível.
Assinatura: Secção principal Assina o cabeçalho e as seções principais.
Assinatura: Secçã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. Este número é incrementado sempre que o GRL é atualizado e uma nova versão é colocada no computador do usuário.

Os certificados OPM revogados são listados na lista de revogações de certificados 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 Assinatura contêm assinaturas que podem ser usadas para verificar se o GRL não foi adulterado. Cada seção Assinatura contém uma estrutura 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; esta assinatura não é relevante para a OPM.

Para garantir que o próprio GRL não foi adulterado, verifique a assinatura da seguinte forma:

  1. Encontre o início da estrutura MF_SIGNATURE. A localização da estrutura MF_SIGNATURE é dada no cbSignatureCoreOffset membro da estrutura GRL_HEADER. O local é especificado como um deslocamento em bytes desde o início da GRL.
  2. Analise a estrutura MF_SIGNATURE como uma assinatura PKCS #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 no EKU: "1.3.6.1.4.1.311.10.5.4".
  5. Calcule um hash dos bytes que incluem o cabeçalho e as seções principais da GRL.
  6. Verifique se o hash corresponde à assinatura no certificado de folha.

Gerenciador de Proteção de Saída

GRL_HEADER

MF_SIGNATURE