O CommonCryptoLib (CCL) realiza a validação de certificados X.509.
A validação de certificados consiste em três passos básicos:
-
verificar a integridade dos certificados (Construir a Cadeia e Validar Assinaturas)
-
verificar a validade (Verificar Datas de Validade, Política e Uso de Chaves) e
-
verificar o estado de revogação (Consultar Autoridades de Revogação).
Para o terceiro passo, o CCL possui uma funcionalidade opcional integrada para a validação de Listas de Revogação de Certificados (CRL) que pode ser habilitada para TLS, SNC ou SSF separadamente.
Um caso de uso comum para isso seria a validação de certificados de cliente X.509 usados para SSO com SAP GUI e SAP Secure Login Client 3.0 (SLC).
Por favor, leia também os outros posts do blog desta série:
CommonCryptoLib: versões de protocolo TLS e suites de cifragem
CommonCryptoLib: versões de protocolo SNC e suites de cifragem
CommonCryptoLib: Gerenciar arquivos PSE e credenciais SSO (cred_v2)
CommonCryptoLib: validação de Lista de Revogação de Certificados
Atualizações:
2023-09-12: Algumas notas sobre Delta CRL e CRL sharding foram adicionadas. Mais detalhes sobre a obtenção e adição de CRL ao cache foram incluídos.
2023-01-10: Link de retorno
https://protect4s.com/2022/12/06/how-certificate-management-sap-security/
Lista de Revogação de Certificados (CRL)
Enquanto a integridade e validade dos certificados são verificadas na maioria dos casos, o estado de revogação é frequentemente considerado um passo opcional. Em muitos casos, não está habilitado.
Vamos dar uma olhada em um exemplo:
Um certificado de cliente X.509 - como qualquer certificado - possui uma vida útil determinada. A data válida pode manter um certificado válido mesmo que não seja mais desejado. Para garantir que certificados comprometidos não possam mais ser usados, um certificado pode ser revogado pela sua CA emissora. Imagine que um usuário deixa a empresa antes do vencimento do seu certificado de autenticação. Se ele ainda possuir o certificado, poderá usá-lo para fins de autenticação. Para resolver a situação, o certificado de cliente X.509 deve ser revogado. Como resultado, um servidor deve verificar o estado de revogação do certificado além da sua integridade e validade.
Basicamente, existem dois métodos para fazer isso:
-
consultar a CRL mantida pela CA emissora.
-
realizar uma verificação online do estado dos certificados usando o Protocolo de Estado de Certificado Online (OCSP).
Por favor, observe:
No momento da escrita, o CommonCryptoLib suporta apenas a verificação de CRL. Em outras palavras, como o Protocolo de Estado de Certificado Online (OCSP) não é suportado, vamos nos concentrar na CRL.
O certificado no nosso exemplo será revogado pela CA emissora. Todos os certificados revogados serão adicionados à CRL da CA emissora. A CRL será publicada por um ponto de distribuição de CRL (CRL DP) listado nos atributos dos certificados da CA emissora. Com tudo isso, o servidor pode validar se um certificado está revogado consultando a CRL previamente baixada (em cache).
Excursão:
Se a CA emitir muitos certificados, a CRL pode crescer consideravelmente. Nesse caso, a CA pode decidir publicar adicionalmente uma chamada delta CRL. A delta CRL inclui todos os certificados revogados desde a última CRL completa. A delta CRL é publicada com mais frequência do que a CRL completa, mas é menor em tamanho. A CRL deve ser publicada periodicamente para remover os certificados listados que entretanto tenham expirado.
Para CAs muito grandes, a CRL completa pode crescer ainda mais. Nestes casos, a CA pode decidir usar a fragmentação da CRL. E para