¿Confía en las restricciones de nombre o en el anclaje de CA intermedio?

4

Se exponen dos servicios diferentes, llámelos 'servicio de gato' y 'servicio de perro'. Los "gatos" y los "perros" se autentican en los servicios a través de certificados de clientes. Los certificados de cliente tienen identidades de gato y perro en el campo Asunto (o SAN).

La jerarquía PKI es la siguiente:

           root CA
        /           \
   cat CA            dog CA
     /                 \
cat client certs     dog client certs

Quiero impedir que el operador de CA del servicio cat expida certificados de cliente perro (y al revés).

Parece que hay dos opciones para esto:

  1. use la extensión de certificado nombre restricción en las CA intermedias. En este caso, el servidor está configurado para confiar en la CA raíz. Ahora, si un cliente envía un certificado de perro firmado por la CA cat (+ cat CA como parte de la cadena de certificados), el servidor ve una contradicción y lo rechaza incluso antes de validarse contra la CA raíz.

  2. Haga que el oyente de 'cat service' coloque el pin intermedio 'cat CA' y el servicio de perro pin 'dog CA'. En este caso, el servidor no confía en la CA raíz.

  3. Como se señala en los comentarios de garethTheRed, también está la tercera opción: > > Utilice las Políticas de certificado para restringir cada ruta de CA a un OID. Haga que la CA raíz emita cada certificado de Sub CA con su propio OID y haga que el servidor lo verifique durante la verificación de la ruta del certificado del cliente.

¿Qué son las ventajas / desventajas / comparación de los tres enfoques?

Nota: esta es una pregunta diferente a ¿Dos CA intermedias firmadas por la misma CA raíz confiarán mutuamente en los certificados firmados del cliente? , ya que pregunta si hay algún inconveniente / desventaja particular para cualquiera de los dos enfoques enumerados.

    
pregunta bgd223 30.11.2017 - 17:55
fuente

1 respuesta

2

Prefiero la opción # 2, ya que es fácil de entender, fácil de implementar en diferentes pilas.

Opción # 1, necesita definir Restricciones de Nombre mutuamente excluyentes para los dos servicios, posiblemente hace que la emisión del certificado sea más difícil (se deben realizar verificaciones adicionales antes de emitir certificados de cliente de gato / perro), asegúrese de que la biblioteca de validación de la cadena de certificado es el uso correcto respeta las extensiones de Restricciones de Nombre, etc.

Sé que mencionó que la validación se realizará en el servicio, sobre el cual usted tiene más control, pero si la validación tiene que ser realizada por los navegadores, Safari / IE y posiblemente otros navegadores no la implementen correctamente.

    
respondido por el Sunil Agrawal 30.11.2017 - 18:49
fuente

Lea otras preguntas en las etiquetas