Como o OCSP lida com certificados excluídos?

Como o OCSP lida com certificados excluídos?

Temos uma autoridade de certificação da Microsoft em execução no Windows Server 2019. Estamos emitindo certificados para dispositivos Android por meio de um MDM. Os usuários de dispositivos Android navegam até um aplicativo web (hospedado pelo Apache, implementado em PHP 8) usando o navegador Chrome (no Android) que requer um certificado de cliente.

Estamos instalando uma instância separada do Windows Server 2019 com a função Microsoft OCSP Responder para validar/verificar se os certificados de cliente apresentados ao servidor web Apache são válidos. O Apache possui várias diretivas para lidar com a validação OCSP. Também gostaríamos de validar os certificados em PHP para maior segurança.

Pela minha pesquisa lendo vários RFCs e documentos técnicos da Microsoft, parece que o Microsoft OCSP Responder valida certificados fazendo referência a uma CRL para status de revogação.

Como o Microsoft OCSP Responder valida certificados se eles foram excluídos da CA em vez de revogados? Se excluídos e não revogados, eles não aparecerão na CRL.

Estou faltando alguma coisa aqui? O Microsoft OCSP Responder validará o número de série no banco de dados da CA, bem como seu status de revogação?

Responder1

O Microsoft OCSP Responder validará o número de série no banco de dados da CA, bem como seu status de revogação?

por padrão, o Microsoft OCSP reportará esse número de série como "Bom". A partir do Windows Server 2008 R2, uma funcionalidade de resposta OCSP determinística foi adicionada ao Microsoft OCSP. Resumindo, a CA publica todos os números de série dos certificados já emitidos e o OCSP também está configurado para consultar esse diretório. O novo comportamento faz o seguinte:

  • se o número de série não existir na pasta, o OCSP responde com UNKNOWNstatus. Isso significa que o número de série solicitado nunca foi emitido pela CA
  • se existir número de série na pasta, uma CRL será verificada
  • se o serial estiver listado na CRL, responda com REVOKEDstatus e responda de GOODoutra forma.

Mais detalhes na base de conhecimento da Microsoft:O serviço Online Responder não retorna um GOOD determinístico para todos os certificados não incluídos na CRL

A KB contém um script que despeja todos os números de série dos certificados emitidos na pasta configurada. No entanto, o roteiro é um pouco falho. Ele exporta apenas seriais que existem no banco de dados CA no momento da execução do script. O banco de dados CA é mantido e as entradas antigas são excluídas para evitar o crescimento excessivo do banco de dados CA. Isso levará a um UNKNOWNstatus falso positivo em certificados excluídos, embora o certificado tenha sido emitido e exista em algum lugar. Prefiro manter tudo emitido independentemente da manutenção da CA e responder GOODmesmo que o certificado tenha sido excluído da CA. Para resolver essa falha, eu recomendaria remover estas linhas do script:

dir | foreach {
    remove-item $_ -force
}

isso manterá os números de série que não existem mais na CA entre as execuções do script.

informação relacionada