Revogação de certificado OPM
Um certificado do 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:
Seção | Descrição |
---|---|
Cabeçalho | Uma estrutura GRL_HEADER . |
Núcleo | Contém as seguintes listas de revogação:
|
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 Windows Update. Esta seção contém identificadores para as seguintes listas:
|
Assinatura: seção Core | Assina as seções de cabeçalho e núcleo. |
Assinatura: seção Extensível | Assina o cabeçalho e as seções extensíveis. |
O cabeçalho GRL é uma estrutura GRL_HEADER . O membro dwSequenceNumber 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.
Os certificados OPM revogados estã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 Assinatura contêm assinaturas que podem ser usadas para verificar se o GRL não foi adulterado. Cada seção Signature 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 Extensible; 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:
- Localize o início da estrutura MF_SIGNATURE . O local da estrutura MF_SIGNATURE é fornecido no membro cbSignatureCoreOffset da estrutura GRL_HEADER . O local é especificado como um deslocamento em bytes desde o início do GRL.
- Analise a estrutura MF_SIGNATURE como uma assinatura PKCS nº 7 com uma cadeia de certificados.
- Verifique se o certificado é encadeado até uma raiz confiável.
- Verifique se o certificado folha tem o seguinte identificador de objeto no EKU: "1.3.6.1.4.1.311.10.5.4".
- Compute um hash dos bytes que incluem o cabeçalho e as seções principais do GRL.
- Verifique se o hash corresponde à assinatura no certificado folha.
Tópicos relacionados