¿Validación de certificado para múltiples certificados raíz?

1

Encontré este artículo y me topé con la parte:

  

Entonces, si un cliente confía en cualquiera de los certificados G5 como una raíz confiable, confiará en cualquier certificado emitido por una CA subordinada como el G3.

En cuanto a mi comprensión de RFC5280 (Sección 6.1.1 (d)), el servidor debe indicar en qué TrustAnchor el cliente debe validar la ruta del certificado. El autor del primer artículo (a mi entender) afirma que esta indicación no es necesaria y / o que el cliente aceptará mi certificado si confía en cualquiera de las CA firmantes.

Asumiendo que tenemos un escenario como este:

Root A --> intermediate
Root B --> intermediate
intermediate --> my Cert

donde Root A y Root B firmaron intermedio y intermedio firmaron mi Cert . El Servidor está configurado para entregar intermedio y mi Cert como la ruta del certificado y sugerirá que Raíz A debería ser el Ancla de confianza.

  1. Un cliente obviamente aceptará mi Cert si tiene Root A como un ancla de confianza.
  2. ¿Un cliente aceptará mi Cert si solo tiene Root B como un ancla de confianza?
  3. ¿Un cliente aceptará mi Cert si tiene solo intermedio como un ancla de confianza?
  4. ¿Un cliente aceptará mi Cert si solo tiene una versión autofirmada de intermedio (pero con la misma clave de privacidad / publicación) como Trust Anchor?
  5. ¿Alguna respuesta cambia si la raíz A y la raíz B tienen el mismo tema?
  6. Si alguna respuesta es No, ¿cómo puede un servidor saber qué ancla de confianza tiene el cliente, como en qué RootCA debe indicar la validación de ruta?
pregunta Niklas 26.07.2017 - 16:23
fuente

1 respuesta

1

Sospecho que está hablando de validación de certificados SSL / TLS en un contexto HTTPS.

  

¿cómo puede un servidor saber qué ancla de confianza tiene el cliente, como en qué RootCA debe indicar la validación de ruta?

el servidor no sabe y no se requiere que sepa sobre los anclajes de confianza instalados en el cliente. El servidor envía certificados CA de hoja e intermedios (sin raíces) y el resto depende del cliente.

El cliente utiliza certificados recuperados y construye cadenas de certificados. Durante el proceso de certificación, se pueden producir múltiples cadenas (debido a la certificación cruzada). Es decir, el certificado de hoja tiene más de una ruta a uno o más anclajes de confianza. Dependiendo de la configuración del cliente (biblioteca criptográfica), solo la cadena única (la mejor) es elegida y utilizada para el resto del proceso de validación de certificados.

Eventualmente, podría darse el caso de que las cadenas en el servidor y el cliente sean diferentes. Por ejemplo, el servidor tiene la raíz A como ancla de confianza (pero no la raíz B), mientras que el cliente tiene la raíz B como un ancla de confianza (pero no la raíz A). Si el certificado intermedio se puede encadenar a la raíz A en el servidor y a la raíz B en el cliente, el certificado será aceptado con éxito.

  

¿Alguna respuesta cambia si la raíz A y la raíz B tienen el mismo asunto?

tienen que tener el mismo asunto, porque uno de los enlaces de certificado en las reglas de la cadena es que el campo emisor del certificado debe coincidir con el campo Asunto del certificado emisor. De lo contrario, es posible que no se encuentre el certificado del emisor.

  

¿Un cliente aceptará mi Cert si tiene solo una versión autofirmada de clave intermedia (pero con la misma clave de privacidad / publicación y tema) como Trust Anchor?

si la biblioteca crypto admite el uso de certificados no autofirmados como un ancla de confianza (Microsoft CryptoAPI, por ejemplo, sí lo hace), entonces es posible. Entonces el certificado raíz no tiene ningún efecto en la construcción de la ruta de certificación.

    
respondido por el Crypt32 26.07.2017 - 17:46
fuente

Lea otras preguntas en las etiquetas