2011-04-26 17 views
14

Estas dos acciones parecen hacer lo mismo:¿Cuál es la diferencia entre las extensiones x.509 V3 Restricciones básicas y Uso de clave para crear un certificado de CA?

  • utilizando el Restricciones básicas extensión en un certificado X.509 para significar que se trata de un certificado de CA y
  • utilizando la clave de extensión de uso por ejemplo, para indicar que la clave pública se puede usar para la firma de certificados.

¿Cuál es la diferencia entre estas extensiones?
¿Sirven para el mismo propósito o se complementan entre sí?

+0

¿Se ha solucionado su problema? Entonces por favor acepta la mejor respuesta. De lo contrario, mencione lo que falta aquí. –

Respuesta

14

"Uso de la clave" define qué se puede hacer con la clave contenida en el certificado. Ejemplos de uso son: cifrado, firma, firma de certificados, firma de CRL.

"Restricciones básicas" identifica si el sujeto de los certificados es una CA a la que se le permite emitir certificados secundarios.

Para un certificado que se puede utilizar para firmar certificados, la información es, en cierto sentido duplicado: Limitaciones

  • X509v3 básica: CA: TRUE --- Puede firmar certificados
  • X509v3 Uso de la clave: Key Cert Sign --- Puede firmar certificados

Pero las "Restricciones básicas" también especificarán la profundidad máxima de la cadena de certificación válida.

Aunque está duplicado, debe especificar ambos, de acuerdo con RFC 3280 --- X.509. Este es el apartado correspondiente de la RFC (página 29):

El bit keyCertSign se afirma que la clave pública es objeto utilizada para verificar una firma de certificados de clave pública. Si se afirma el bit keyCertSign, entonces el bit cA en la extensión de restricciones básica (sección 4.2.1.10) DEBE también ser afirmado.

+0

"la información está en cierto sentido duplicada" ¿Sabe si la implementación que realiza la validación acepta limitaciones básicas o uso de claves para indicar CA al realizar la validación de la ruta cert? – Cratylus

+0

@ user384706: No, necesitas ambos. He actualizado mi respuesta con la información. –

+0

También hay certificados que pueden ser emitidos por certificados que no sean CA: vea [RFC 3820 - no 3280] (http://tools.ietf.org/html/rfc3820) – Bruno

1

Uso de la clave describe los fines previstos del certificado.

La extensión Restricciones básicas describe cuán profunda puede ser la cadena de certificados que tiene el certificado. En otras palabras, las CA utilizan esta extensión para restringir la actividad de sus CA secundarias cuando se emite el certificado de CA inferior. Si toplevel CA obtiene una subcandidatura, permite que la subcandidata CA emita certificados de usuario final, pero no permite que la subcandidatura tenga sus propias subcategorías.

+0

@Eugene: ¿Podemos tener un certificado que tenga la extensión Key Usage, que pueda firmar certificados, pero falta la restricción básica? ¿Es esto lo mismo que tener un certificado con restricción básica para ser CA con una ruta de certificado infinte? – Cratylus

+0

@ user384706 De RFC 5280, sección 4.2.1.9: "Las CA que cumplen DEBEN incluir esta extensión en todos los certificados de CA que contienen claves públicas utilizadas para validar firmas digitales en certificados y DEBEN marcar la extensión como crítica en dichos certificados." Entonces parece que la respuesta a su pregunta es "esto sería una violación del estándar".Sin embargo, vi certificados sin esa extensión. –

+0

@Eugene: las API de PKIX de Java (comprobadas con Java6u23) aceptan certificados de CA con solo KeyUsage (no restricciones básicas). ¿Esto significa que Java viola el RFC? – Cratylus

Cuestiones relacionadas