¿Cómo se encuentra el certificado del emisor para verificar un certificado dado?

3

Estoy intentando entender cómo funciona la firma digital con certificados x509. Leí algunos artículos y respuestas relacionadas en la web, pero aún me quedan algunas preguntas para confirmar mi comprensión:

  1. Esta gran respuesta del PTW-105 explica cómo se está verificando la cadena de confianza del certificado. Pero lo que falta es cómo la parte verificadora puede obtener el certificado del emisor que se utilizó para firmar algún certificado derivado . La única idea que tengo es que está incrustado en el certificado derivado como otra información. En este caso, el tamaño del certificado aumentaría con cada nivel del árbol de confianza del certificado. Esto ya se solicitó como un comentario, pero aún no se ha respondido.
  2. ¿Cómo pueden las aplicaciones cliente, como el navegador o MS Word, saber qué autoridades de certificación son autoridades raíz de confianza? ¿Están simplemente integradas en cada aplicación? ¿Qué tamaño tiene la lista de autoridades de certificación raíz y quién la administra? ¿Qué sucede si algunos desarrolladores de aplicaciones olvidan incluir una de las autoridades (o solo una nueva está registrada)? Sus certificados no se considerarán confiables, ¿verdad? Entonces, ¿es posible que se confíe en algún sitio de Chrome, pero que no sea confiable usando Firefox (puede derivarse de aquí ).
  3. ¿Qué sucede si un atacante logra incluir su certificado autoemitido en algún almacenamiento confiable? podría ser la lista de certificados raíz de confianza del equipo de la víctima o los certificados de confianza de su dominio empresarial. Sé que es un escenario poco probable, pero ¿funcionaría?
  4. Escenario similar al # 3: aplicación del cliente de parches, como MS Word (o compartir la versión parcheada en la web para que todos puedan descargarla libremente) para que considere que el certificado del atacante es una autoridad de certificación raíz. ¿Funcionaría?
pregunta Oleksandr Pshenychnyy 07.10.2016 - 16:30
fuente

1 respuesta

2
  

La parte verificadora puede obtener el certificado del emisor que se usó para firmar algún certificado derivado.

El navegador tiene una base de datos de certificados de confianza, que se sabe que verifican la identidad antes de firmar. Si el certificado derivado está firmado por uno de esos, se retira.

Sin embargo, hay algunas CA conocidas como 2do nivel. En este caso se utiliza una cadena de certificado.

  1. El servidor proporciona el certificado que necesita ser verificado.
  2. El servidor proporciona el certificado del emisor.
  3. Siguiendo la cadena, alcanzamos el certificado de nivel superior que ya se encuentra en la base de datos de certificados de confianza del navegador

Naturalmente, el emisor de certificados de nivel superior será muy cuidadoso al autorizar CAs de segundo nivel. Hay bastante proceso, pero lo importante es que las CA pueden ser firmadas por las existentes para que sean compatibles con dispositivos más antiguos.

  

La única idea que tengo es que está incrustado en el certificado derivado como otra información.

Sí, el certificado para verificar indica la huella digital o identificación similar de su certificado de CA. De esta manera, el navegador sabe qué certificado de CA debe utilizar.

En el caso de la cadena de certificación, se incluye todo el certificado. (# 2 arriba) (no solo la huella digital) Ese certificado tiene la huella digital de una CA de nivel superior (# 3 arriba) que (con suerte) ya está en el almacén de claves del navegador.

  

En este caso, el tamaño del certificado aumentaría con cada nivel del árbol de confianza de certificados.

Si hay 2-3 certificados en la cadena de certificación, entonces sí, ocupa más espacio (lo que podría considerarse 'tamaño del certificado'), pero eso no es un problema.

En cuanto al creciente almacén de certificados del navegador, en realidad solo hay un número limitado de CA, incluso las que no son de nivel superior, por lo que tampoco es un problema práctico.

  

¿Cómo pueden las aplicaciones cliente, como el navegador o MS Word, saber qué autoridades de certificación son autoridades raíz de confianza? ¿Están simplemente codificados en cada aplicación? ¿Qué tamaño tiene la lista de autoridades de certificación raíz y quién la administra? ¿Qué sucede si algunos desarrolladores de aplicaciones olvidan incluir una de las autoridades (o solo una nueva está registrada); sus certificados no se considerarán confiables, verdad? Entonces, es posible que se confíe en algún sitio de Chrome, pero que no sea confiable usando Firefox (se puede derivar de aquí).

Algunas CA de segundo nivel se pueden confiar en un navegador y no en otro. Por lo tanto, la CA que emite su certificado a menudo proporciona certificados de CA intermedios para que las aplicaciones siempre puedan rastrear a una CA de nivel superior en su tienda.

¿Quién maneja esta base de datos? No lo sé. He oído que Google ha decidido dejar de confiar en una CA en particular después de que hayan violado su clave privada.

La CA debe mantener su clave privada en secreto, o de lo contrario se puede usar para firmar cualquiera y todos los dominios. Se confía en las CA porque se sabe que

  1. Tienen buenas medidas de seguridad para proteger su clave privada.
  2. Verifican la propiedad antes de emitir un certificado.
  3. Tienen algunos medios para emitir la revocación del certificado (buen tema para una pregunta por separado)
  

¿Qué sucede si el atacante logra incluir su certificado autoemitido en algún almacenamiento de confianza? podría ser la lista de certificados raíz de confianza del equipo de la víctima o los certificados de confianza de su dominio empresarial. Sé que es un escenario poco probable, pero ¿funcionaría?

Si un atacante puede acceder a la computadora de la víctima (presumiblemente, la víctima tiene problemas más graves en ese momento) e inserta un certificado de confianza, entonces el atacante tiene medios para realizar correctamente MiTM con las conexiones https. Escuchando, o alterando las conexiones a voluntad, si puede conseguir un dispositivo entre la víctima y el servidor. (es decir, intercepción WiFi o conexión de red física)

  

Escenario similar al # 3: aplicación del cliente de parches, como MS Word (o compartir la versión parcheada en la web para que todos puedan descargarla libremente) para que considere que el certificado del atacante es una autoridad de certificación raíz. ¿Funcionaría?

Sí, pero presumiblemente si puede parchear la aplicación cliente, entonces la víctima tiene mucho más de qué preocuparse.

    
respondido por el George Bailey 07.10.2016 - 16:45
fuente

Lea otras preguntas en las etiquetas