La idea detrás de las políticas de certificado es que una política se aplica al proceso de certificación completo, desde la raíz hasta la entidad final, y esto se refleja en el certificado al incluir el OID de la política en all the Certificados en la cadena. Las políticas son "verticales". Se supone que un validador (alguien que valida la cadena de certificados) tiene en su almacén de confianza la definición de políticas aceptables, por cada raíz. Para visualizar esto en palabras simples: una entrada típica de un almacén de confianza debería ser algo como "Confío en esto CA (nombre + clave pública) para verificar los certificados que cumplen con la política 1.2.3.4". Si la política 1.2.3.4 no aparece en todos los certificados de la cadena, el validador rechazará la cadena.
Sin embargo, en PKI jerárquica como lo que admite X.509, es común tener aislamiento horizontal: las entidades que controlan CA y sub-CA operan en distintos niveles y cada nivel tiene sus propios requisitos y convenciones. Por lo tanto, se ha incluido un mecanismo para tratar tales cambios basados en niveles, y esa es la asignación de certificados . Cuando aparece un mapeo "1.2.3.4 a 1.5.6.7" en un certificado de CA en algún lugar de la cadena, significa "lo que se conoció como política 1.2.3.4 en los niveles superiores, se llama 1.5.6.7 desde este punto hacia abajo". Nuestro validador, que inicialmente requiere la política 1.2.3.4, toma nota de que lo que ahora debe buscar en los certificados posteriores es 1.5.6.7.
Este proceso se hace más complejo por las siguientes características:
- Puede asignar un OID a varios OID.
- Hay un OID especial llamado "anyPolicy" que es un comodín: coincide con todas las políticas.
- Cada certificado en la cadena puede prohibir la política any, o requerir una política explícita desde algún punto de la ruta.
- Una gran cantidad de CA ampliamente implementadas se equivocan por completo y usan las políticas como un tipo de comentario (en particular, le otorgan a cada CA una única OID de política específica de CA, que la CA incluye en su certificado, sin ningún tipo de asignación).
Entonces, la triste situación es que las políticas de certificados, como se implementan actualmente, no funcionan como se pretendía. Los almacenes de Trust solo contienen CA raíz sin ningún conjunto de políticas (es decir, se aceptan todas las políticas para las rutas que comienzan con estas raíces y no se requiere una política explícita: el "árbol de políticas" puede estar vacío).
Root CA en sí mismos no contienen asignaciones de políticas. No son certificados reales. Una CA raíz, conocida en el estándar como ancla de confianza , es la a a priori conocimiento de un nombre y clave pública asociada. Una tradición generalizada es codificar la CA raíz como certificados, a menudo autofirmados (porque hay un campo de "firma" no opcional en un certificado). El formato del certificado es simplemente conveniente para eso. Sin embargo, los certificados pueden contener muchas características (en particular muchas extensiones) que no tienen sentido para la CA raíz; las asignaciones de políticas son tales características.