Dos raíces para un certificado SSL

3

Considere el siguiente escenario:

  1. Tengo un certificado de finalización de SSL emitido por una autoridad conocida (por ejemplo, COMODO).

  2. Tengo mi propia raíz autofirmada y certificados intermedios que son utilizados por las aplicaciones cliente (no web, uso de API web) para hacer conexiones basadas en SSL.

(1) es útil para hacer que los navegadores se conecten al servidor sin advertencias (ya que los navegadores conocen la raíz). (2) es mejor para la seguridad, ya que las aplicaciones solo confían en algo encadenado a mi certificado raíz y no es posible la falsificación de certificados / direcciones.

¿Es posible firmar adicionalmente (1) con mi certificado intermedio para que puedan usar clientes de cualquier tipo? Tengo una alternativa de hospedar componentes web y API en hosts separados, pero los clientes basados en navegador aún deberán alcanzar las API que tengan (2) lo que arruina la idea completa.

TIA.

    
pregunta port443 19.07.2016 - 17:59
fuente

1 respuesta

2

Un poco de teoría

Técnicamente es posible que un solo certificado tenga múltiples cadenas, sin embargo, no es su caso.

Se pueden producir múltiples cadenas cuando se realiza una certificación cruzada, cuando servidor de CA tiene dos o más certificados firmados por diferentes emisores y todos estos certificados se instalan en la tienda del cliente para construir la cadena.

Esta situación es común para Microsoft CA (ADCS), cuando renueva el certificado de CA raíz y reutiliza el par de claves. En este caso, la CA raíz tiene dos certificados con (opcionalmente) configuraciones diferentes (por ejemplo, validez de certificado), pero con el mismo asunto e información de clave pública. Cuando el cliente construye una cadena, termina con dos certificados raíz coincidentes. Es responsabilidad del cliente seleccionar la cadena correcta.

alternativamente, la CA extranjera puede firmar su certificado de CA intermedio (o raíz) e instalar este certificado en la tienda del usuario. Cuando el cliente construye una cadena, puede pasar por diferentes certificados intermedios de CA (firmados por sus raíces extranjeras) y, dependiendo de la configuración de confianza, el cliente puede elegir la mejor cadena a través de alguna lógica.

Un escenario más sofisticado de certificación cruzada es el llamado Puente de Certificación Cruzada, que es útil cuando varias organizaciones ejecutan sus propias PKI privadas y desean establecer una confianza mutua entre cada organización.

A tu pregunta Según tengo entendido, hay clientes que no confían en Comodo, mientras confían en sus CA privadas. Si esto es correcto, entonces puedes hacer una certificación cruzada. Firme la CA emisora de Comodo con su CA interna y ponga este certificado a todos los clientes que no confíen en Comodo. En este caso, cuando los clientes construyan la cadena, obtendrán dos cadenas: hasta la raíz Comodo no confiable y su raíz privada de confianza. Si la selección de la cadena en los clientes es buena, seleccionarán la cadena adecuada y confiable.

Desafortunadamente, no sé cómo hacerlo en OpenSSL, sin embargo, recomendaría leer el documento técnico de Microsoft sobre el tema: Planificación e implementación de certificación cruzada y subordinación calificada con Windows Server 2003 Aquí recibirá una explicación detallada sobre cómo funciona la certificación cruzada.

    
respondido por el Crypt32 19.07.2016 - 18:50
fuente

Lea otras preguntas en las etiquetas