El algoritmo de validación de la ruta de certificación es el algoritmo que verifica que una ruta de certificado determinada es válida bajo una determinada infraestructura de clave pública (PKI). Una ruta comienza con el certificado del sujeto y continúa a través de varios certificados intermedios hasta un certificado raíz de confianza , normalmente emitido por una autoridad de certificación (CA) de confianza .
La validación de la ruta es necesaria para que una parte que confía pueda tomar una decisión de confianza informada cuando se le presente un certificado que no sea de confianza explícita. Por ejemplo, en una PKI jerárquica, una cadena de certificados que comienza con un certificado de servidor web puede conducir a una CA pequeña, luego a una CA intermedia y luego a una CA grande cuyo ancla de confianza está presente en el navegador web de la parte que confía. En una PKI puenteada, una cadena de certificados que comienza con un usuario en la Compañía A puede conducir al certificado CA de la Compañía A, luego a una CA puente, luego al certificado CA de la compañía B, luego al ancla de confianza de la compañía B, que es una parte de confianza en la compañía B podía confiar.
RFC 5280 [1] define un algoritmo de validación de ruta estandarizado para certificados X.509 , dada una ruta de certificado. (El descubrimiento de ruta, la construcción real de una ruta, no está cubierto). El algoritmo toma las siguientes entradas:
- La ruta del certificado que se va a evaluar;
- La fecha / hora actual;
- La lista de identificadores de objetos de política de certificados (OID) aceptables para la parte que confía (o cualquiera);
- El ancla de confianza de la ruta del certificado; y
- Indicadores de si se permite el mapeo de políticas y cómo / cuándo / si se tolerará el OID de política "cualquiera" .
En el algoritmo estandarizado, se realizan los siguientes pasos para cada certificado en la ruta, comenzando desde el ancla de confianza. Si alguna comprobación falla en algún certificado, el algoritmo termina y falla la validación de la ruta. (Este es un resumen explicativo del alcance del algoritmo, no una reproducción rigurosa de los pasos detallados).
- Se comprueban el algoritmo y los parámetros de la clave pública;
- La fecha / hora actual se compara con el período de validez del certificado;
- El estado de revocación se verifica, ya sea mediante CRL , OCSP o algún otro mecanismo, para garantizar que el certificado no se revoque;
- Se verifica el nombre del emisor para asegurarse de que sea igual al nombre del sujeto del certificado anterior en la ruta;
- Se verifican las restricciones de nombre para asegurarse de que el nombre del sujeto esté dentro de la lista de subárboles permitidos de todos los certificados de CA anteriores y no dentro de la lista de subárboles excluidos de cualquier certificado de CA anterior;
- Los OID de política de certificados declarados se cotejan con los OID permitidos del certificado anterior, incluidas las equivalencias de mapeo de políticas afirmadas por el certificado anterior;
- Se comprueban las restricciones de la política y las restricciones básicas para garantizar que no se infrinjan los requisitos explícitos de la política y que el certificado sea un certificado de CA, respectivamente. Este paso es crucial para prevenir que algún hombre en el medio ataque ; [2]
- La longitud de la ruta se verifica para asegurarse de que no exceda la longitud máxima de la ruta declarada en este certificado o en un certificado anterior;
- Se comprueba la extensión de uso de la clave para garantizar que se le permita firmar certificados; y
- Cualquier otra extensión crítica es reconocida y procesada.
Si este procedimiento llega al último certificado de la cadena, sin restricciones de nombre o violaciones de políticas o cualquier otra condición de error, el algoritmo de validación de la ruta del certificado finaliza correctamente.