Algoritmo de validação do caminho de certificação - Certification path validation algorithm
O algoritmo de validação do caminho de certificação é o algoritmo que verifica se um determinado caminho de certificado é válido em uma determinada infraestrutura de chave pública (PKI). Um caminho começa com o certificado do Assunto e prossegue através de vários certificados intermediários até um certificado raiz confiável , normalmente emitido por uma autoridade de certificação (CA) confiável .
A validação de caminho é necessária para que uma parte confiável tome uma decisão de confiança informada quando apresentado a qualquer certificado que ainda não seja explicitamente confiável. Por exemplo, em uma PKI hierárquica, uma cadeia de certificados começando com um certificado de servidor da web pode levar a uma pequena CA, depois a uma CA intermediária e a uma grande CA cuja âncora de confiança está presente no navegador da Web da parte confiável . Em uma PKI com ponte, uma cadeia de certificados começando com um usuário na Empresa A pode levar ao certificado CA da Empresa A, depois a uma CA ponte, depois ao certificado CA da empresa B, e então à âncora de confiança da empresa B, que é uma parte confiável na empresa B poderia confiar.
RFC 5280 define um algoritmo de validação de caminho padronizado para certificados X.509 , dado um caminho de certificado. (A descoberta de caminho, a construção real de um caminho, não é coberta.) O algoritmo recebe as seguintes entradas:
- O caminho do certificado a ser avaliado;
- A data / hora atual;
- A lista de identificadores de objeto de política de certificado (OIDs) aceitáveis para a parte confiável (ou qualquer outro);
- A âncora de confiança do caminho do certificado; e
- Indicadores se o mapeamento de políticas é permitido e como / quando / se "qualquer" OID de política deve ser tolerado.
No algoritmo padronizado, as etapas a seguir são executadas para cada certificado no caminho, a partir da âncora de confiança. Se alguma verificação falhar em qualquer certificado, o algoritmo será encerrado e a validação do caminho falhará. (Este é um resumo explicativo do escopo do algoritmo, não uma reprodução rigorosa das etapas detalhadas.)
- O algoritmo e os parâmetros da chave pública são verificados;
- A data / hora atual é verificada em relação ao período de validade do certificado;
- O status de revogação é verificado, seja por CRL , OCSP ou algum outro mecanismo, para garantir que o certificado não seja revogado;
- O nome do emissor é verificado para garantir que seja igual ao nome do assunto do certificado anterior no caminho;
- As restrições de nome são verificadas para garantir que o nome do assunto esteja na lista de subárvores permitidas de todos os certificados CA anteriores e não na lista de subárvores excluídas de qualquer certificado CA anterior;
- Os OIDs de política de certificado declarados são verificados em relação aos OIDs permitidos a partir do certificado anterior, incluindo quaisquer equivalências de mapeamento de política declaradas pelo certificado anterior;
- Restrições de política e restrições básicas são verificadas para garantir que quaisquer requisitos de política explícitos não sejam violados e que o certificado seja um certificado CA, respectivamente. Este passo é crucial para prevenir alguns ataques de intermediários ;
- O comprimento do caminho é verificado para garantir que não exceda qualquer comprimento máximo do caminho declarado neste ou em um certificado anterior;
- A extensão de uso de chave é verificada para garantir que tem permissão para assinar certificados; e
- Quaisquer outras extensões críticas são reconhecidas e processadas.
Se este procedimento atingir o último certificado da cadeia, sem restrição de nome ou violação de política ou qualquer outra condição de erro, o algoritmo de validação do caminho do certificado será encerrado com êxito.