¿Hay alguna forma de verificar los certificados en el almacén de CA raíz de un cliente?

0

Cuando un cliente se conecta a un servidor web, ¿hay alguna forma de verificar qué CA raíz tiene el cliente?

Editar: ¿Puedo usar JavaScript para enviar una solicitud GET o POST al servidor, y proporcionar un certificado que el CA que estoy buscando debe firmar? Si la conexión falla, sabré que la CA raíz no está instalada en el cliente.

    
pregunta Fred Heinecke 19.03.2015 - 00:12
fuente

3 respuestas

1

No, el servidor web no puede verificar todos los CA's que el cliente ha instalado.

Si tiene acceso al equipo cliente, puede verificarlo en el almacén de las Entidades de certificación raíz de confianza.

    
respondido por el k1DBLITZ 19.03.2015 - 03:40
fuente
1

En general, la naturaleza misma de PKI (y un buen mantenimiento del sistema) debe evitar que esto sea un riesgo para la seguridad. Pero personalmente, no estoy seguro de que realmente quisiera que cualquier sitio web pueda enumerar mi lista de CA raíz de confianza. Esto suena como una buena forma de aniquilar a los sistemas vulnerables a los ataques utilizando elementos como certificados DigiNotar o certificados de otros compromisos de CA raíz.

Considere este escenario:

Un atacante envía un correo electrónico de suplantación de identidad a un grupo de usuarios con un enlace a algún sitio bajo el control del atacante. El sitio en sí es generalmente benigno y tiene un valor de entretenimiento menor. Pero cuando los usuarios visitan el sitio, el servidor registra la visita y la asocia con la dirección de correo electrónico del usuario. El servidor luego enumera la lista de CA raíz de confianza de los usuarios, y registra si hay alguna CA de interés para el atacante dentro de esa lista.

Ahora, el atacante sabe (entre otras cosas):

  1. La cuenta de correo electrónico del usuario está activa, y el atacante puede crear un correo electrónico tal que el usuario se sienta inclinado a abrirlo y hacer clic en un enlace.
  2. El navegador del usuario confía en una o más CA raíz que el atacante considera interesantes.

El atacante podría haber marcado esas CA raíz como interesantes por varias razones. Aquí hay una pareja:

  • El atacante actualmente tiene control sobre la CA raíz, por lo que puede hacer que firme certificados arbitrarios generados por el atacante.
  • El atacante ya tiene algunos certificados de alto valor firmados por la CA raíz (ya sea a través de un control previo o truco).

Ahora el atacante tiene un grupo de víctimas que, razonablemente, puede esperar que sean susceptibles de ataques de phishing que indiquen al usuario a un sitio web bajo el control del atacante. Este sitio web podría presentarse como un sitio bancario o cualquier otro sitio en el que el usuario esté dispuesto a proporcionar autenticadores de alto valor u otra información útil. Es probable que el usuario confíe en el sitio web al hacer esto, ya que el atacante sabe que el navegador confiará en su certificado ya que está firmado por una "CA raíz de confianza".

Dado que la primera ronda de correos electrónicos podría apuntar a un sitio relativamente benigno (es decir, el sitio no sirve realmente malware ni roba información del usuario), es menos probable que alguien se dé cuenta o informe sobre él y que el atacante probablemente operar libremente mientras recopila los datos para la segunda ronda.

Sin embargo, sin la información de la primera ronda, los correos electrónicos de la segunda ronda tendrían que ir a un grupo mucho mayor y es mucho más probable que capten la atención no deseada debido a los usuarios que están más inclinados a informar los correos electrónicos del atacante que para seguir sus enlaces, o los usuarios cuyos navegadores no confían en la CA raíz que firmó el certificado del atacante.

La naturaleza de PKI generalmente debe evitar que la enumeración de CA raíz de confianza sea un problema porque el atacante todavía necesitará la clave privada de la CA raíz o un certificado firmado por la CA raíz para que esa información sea realmente valiosa. Sin embargo, como lo ejemplifican DigiNotar y otros, esto no está en absoluto más allá del ámbito de lo posible.

La actualización de su sistema también inhibirá estos ataques porque las actualizaciones del sistema operativo y del software incluyen de forma rutinaria actualizaciones de las tiendas de CA raíz de confianza. Esto hará que las CA raíz raíz comprometidas no sean válidas para su navegador, por lo que el atacante no podrá usar sus certificados para que su sitio se vea confiable.

Aún así, sigue existiendo una amenaza para los usuarios que aún no han actualizado su lista de CA raíz de confianza a raíz de un compromiso reciente. Incluso ahora, (2015) es probable que haya varios sistemas que aún no hayan recibido actualizaciones para eliminar DigiNotar (2011), debido a prácticas de mantenimiento poco estrictas.

Por lo tanto, si bien las precauciones de seguridad adecuadas y el mantenimiento del sistema evitarán que la enumeración de CA raíz de confianza sea de mucho valor para un atacante en la mayoría de los escenarios, todavía no es algo que usted quiera que su navegador solo entregue a nadie.

Dicho todo esto, no sé personalmente si hay o no una forma de hacerlo, simplemente me parece una mala idea.

    
respondido por el Iszi 19.03.2015 - 15:58
fuente
0
  

Editar: ¿Puedo usar JavaScript para enviar una solicitud GET o POST al servidor, y proporcionar un certificado que el CA que estoy buscando debe firmar? Si la conexión falla, sabré que la CA raíz no está instalada en el cliente.

Eso es probablemente lo mejor que podrías hacer. Aún puede obtener falsos negativos si el protocolo de enlace TLS falla por alguna otra razón (lo cual es poco probable si usa el mismo servidor con la misma configuración todo el tiempo). Obtendrá información incorrecta si el cliente está detrás de algún dispositivo / proxy de intercepción TLS (como firewalls o el infame SuperFish ), porque entonces obtendrás todas las CA aceptadas por este dispositivo / proxy y no por el propio navegador.

    
respondido por el Steffen Ullrich 19.03.2015 - 06:19
fuente

Lea otras preguntas en las etiquetas