openssl certificado cadena de salida

1

Estaba leyendo la guía "Seguridad con HTTPS y SSL" para desarrolladores de Android y leyendo este párrafo .

El párrafo explica el hecho de que los servidores no siempre devuelven toda la cadena de certificados durante un protocolo de enlace de SSL, a menudo solo devuelven el certificado de servidor y la CA raíz de la cadena. La cadena se muestra utilizando openssl como: openssl s_client -connect egov.uscis.gov:443

Esto me dio algunas dudas:

  • El párrafo indica que los navegadores, para administrar esta configuración de servidor, simplemente almacenan en caché las entidades de certificación intermedias cuando visitan sitios que se encuentran en servidores que proporcionan una cadena de certificados completa y cuando visitan otro sitio que se encuentra en un servidor que solo proporciona la Los certificados "de hoja" y "raíz" utilizan los certificados de CA intermedios en caché para seguir la cadena. Pero, ¿qué sucede si un navegador visita un sitio que se encuentra en un servidor que solo devuelve el servidor y los certificados de "raíces" en un momento en el que el navegador aún no ha guardado en caché los certificados de las CA intermedias? ¿Se activaría un error de autenticación?

  • ¿Cómo sigue exactamente un navegador a toda la cadena de certificación si solo recibe el servidor y el certificado de CA raíz? Por lo que sé, el proceso es algo así como una función recursiva que examina la firma del certificado, la descifra y verifica si el resultado del descifrado coincide con el certificado del paso actual. Pero, si solo se entregan el servidor y los certificados de CA raíz, el proceso debe detenerse con un error en el segundo paso, ya que (si hay más de una CA involucrada en la cadena de certificados) el certificado del servidor no fue firmado directamente por raíz CA ...

Creo que estoy malinterpretando algo en el procedimiento de verificación de PKI ... ¿Podría aclarármelo y hacerme entender dónde me equivoco?

------ EDIT

Gracias por las buenas respuestas, por lo que me está diciendo que cuando el artículo que vinculé dice "no es raro configurar un servidor para que no incluya la CA intermedia necesaria". se refiere a los certificados de la CA intermedia NO INCLUYE el derecho de la CA raíz?

    
pregunta Alessio Martorana 27.09.2018 - 18:30
fuente

2 respuestas

2
  

... a menudo devuelve solo el certificado del servidor y la CA raíz de la cadena

Si bien es un error común devolver solo los sitios de certificado del servidor, generalmente no devuelve la CA raíz (y esto tampoco lo reclama el artículo al que hace referencia). De hecho, cualquier CA raíz será ignorada por el cliente, ya que solo la CA local raíz del cliente debe usarse como un ancla de confianza y no una CA raíz enviada por el par. Consulte marco de certificado SSL 101: ¿Cómo verifica el navegador realmente la validez de un certificado de servidor dado? para obtener más información.

  

... ¿Pero qué sucede si un navegador visita un sitio que se encuentra en un servidor que solo devuelve el servidor y los certificados de "raíces" en un momento en el que el navegador aún no ha guardado los certificados de las CA intermedias? ¿Se activaría un error de autenticación?

Esto depende. Algunos navegadores no podrán validar el certificado. Otros se esfuerzan más, es decir, utilizan el acceso a la información de autoridad para encontrar la CA intermedia que falta. Consulte Obtención de AIA: solución de una mala configuración de SSL común para obtener más información.

  

¿Cómo sigue exactamente un navegador a toda la cadena de certificación si solo recibe el servidor y el certificado de CA raíz?

Nuevamente, el navegador no usa una CA raíz enviada por el servidor en absoluto, sino que solo usa CA raíz de confianza local. Si el navegador no tiene conocimiento de los certificados intermedios y no puede encontrarlos con los métodos descritos, la validación del certificado fallará.

    
respondido por el Steffen Ullrich 27.09.2018 - 18:41
fuente
1

Hay tres tipos de certificados involucrados en un protocolo de enlace TLS estándar:

  • El certificado de servidor para el servidor al que se accede, transmitido por el servidor. Esto tendrá detalles del (de los) dominio (s) para los que es válido, su caducidad, etc. Estará firmado por alguna autoridad de certificación, que tiene su propio certificado de firma.
  • Uno o más certificados raíz de confianza, también conocidos como "anclas de confianza", que se encuentran en el navegador (o cualquier cliente con el que se esté conectando). Estos representan a terceros en los que se confía para firmar certificados individuales.
  • Cero o más certificados intermedios, transmitidos por el servidor. Esto permite que el navegador cree una "cadena" de firmas si no hay un enlace directo entre el certificado del servidor y un ancla de confianza.

En el caso más simple, el certificado del servidor ha sido firmado directamente por uno de los anclajes de confianza que tiene el navegador; el navegador puede verificar esa firma e inmediatamente confiar en el certificado.

Sin embargo, si usted es una Autoridad de Certificación nueva o pequeña, los certificados no confiarán directamente en su certificado de firma, por lo que ninguno de los certificados que emita será tampoco. Para solucionar este problema, obtiene su certificado de firma firmado a la inversa por otras Autoridades de Certificación. El navegador debe ver una prueba de que lo ha hecho, en forma de un "certificado intermedio" transmitido por el servidor.

Por ejemplo:

  • Usted visita enlace utilizando MyAwesomeBrowser
  • Envía un certificado SSL firmado por Cheapo Certificates PLC
  • MyAwesomeBrowser mira el certificado y examina con quién lo firmó; luego busca en su almacén de confianza un ancla de confianza coincidente; tenga en cuenta que el servidor no envía el certificado raíz , o que lo nombre explícitamente; se deduce de la información de firma en el propio certificado del servidor
  • MyAwesomeBrowser no tiene Cheapo Certificates PLC en su almacén de confianza, por lo que, de forma predeterminada, el certificado, y por lo tanto el sitio web, no será de confianza

Para solucionar esto:

  • Cheapo Certificates PLC hace que Fancy Enterprise Security Corp firme su certificado raíz, lo que produce un certificado intermedio
  • El propietario de some-store.example.com configura su servidor para enviar este certificado intermedio, así como su certificado de servidor; si no lo hacen, no hay garantía de que el navegador descubra este certificado intermedio
  • MyAwesomeBrowser verifica que el certificado del servidor coincida con el certificado intermedio, y luego procede a verificar que el certificado intermedio es de confianza
  • MyAwesomeBrowser tiene un certificado raíz de confianza para Fancy Enterprise Security Corp, por lo que es capaz de verificar la cadena y confía en el sitio

El almacenamiento en caché descrito en el artículo que vincula, o el descubrimiento automático mencionado por Steffen Ullrich, aumenta efectivamente el conjunto de anclajes de confianza que el navegador puede usar: si el navegador ya ha recibido y verificado el certificado intermedio de Cheapo Certificates PLC, Se puede usar para confiar en otras cosas en el futuro. Al igual que el certificado raíz original no fue transmitido por el servidor bien configurado, el navegador puede calcular cuándo usar este intermediario en caché / descubierto basado en el certificado que se presenta.

    
respondido por el IMSoP 27.09.2018 - 19:00
fuente

Lea otras preguntas en las etiquetas