¿Cómo detecta la transparencia de certificados los registros falsos o bifurcados?

5

Estoy intentando entender Transparencia del certificado .

Digamos que quiero husmear en el correo electrónico de alguien. Así que voy a piratear o sobornar a una CA, hacer que emitan un certificado para google.com , y luego lo presento cuando mitigo la conexión de los usuarios a Gmail. Esta es la situación que CT está intentando detectar y permite que Google descubra el certificado falso.

Con la Transparencia del certificado, el navegador de los usuarios requerirá que adjunte una marca de tiempo del certificado firmado (SCT) para comprobar que el certificado se ha agregado a un registro.

  • Primero, ¿qué me impide configurar mi propio registro, crear el SCT, y nunca contarle a Google ni a nadie más?
  • ¿Puede el navegador saber si un registro es legítimo?
  • ¿El navegador o su componente Auditor envían el SCT a los monitores?

Alternativamente, podría hackear / sobornar a un operador de registro para emitir un SCT con los hashes de árbol juntos con todos los certificados anteriores. Luego, cuando Google y otros consultan el registro para su cadena de certificados, podría fingir que la SCT incorrecta nunca existió. Esto sería un tenedor en el registro. Una vez más, Google solo averiguará si el navegador (Auditor) envía el SCT a Google u otros Monitores.

El sitio web de CT menciona que "los auditores y monitores intercambian información sobre registros a través de un protocolo de chismes" , pero nunca entra en detalles sobre cómo o cuándo.

  • Específicamente, ¿cómo sabe el navegador (auditor) con qué monitores hablar?
pregunta Tor Klingberg 29.10.2015 - 12:45
fuente

2 respuestas

2
  

Primero, ¿qué me impide configurar mi propio registro, crear el SCT y nunca decírselo a Google ni a nadie más?

Nada.

  

¿Puede el navegador saber si un registro es legítimo?

Es dejado sin especificar en el RFC :

  

Los clientes TLS [...] deben validar el SCT utilizando [...] la clave pública del registro correspondiente. Tenga en cuenta que este documento no describe cómo los clientes obtienen las claves públicas de los registros.

(Nota: esta oración fue eliminado de la sección 5.3, el nuevo RFC que está actualmente en desarrollo. No sé si lo reemplazaron con algo más específico)

Pero Chrome, por ejemplo, por defecto solo confiará en un puñado de registros codificados por hardware :

  

De forma predeterminada, Chrome verificará los SCT provenientes de una lista de registros de CT predefinidos reconocidos por Chrome.

.

  

¿El navegador o su componente Auditor envían el SCT a los monitores?
  [...]   Específicamente, ¿cómo sabe el navegador (auditor) con qué monitores hablar?

Depende. Según el Gossip RFC draft este sería el Trusted Relación de auditor tipo de chisme. (Que es 1 de los 3 tipos de chismes propuestos. Y todos estos mecanismos pueden usarse en paralelo).

Y el borrador de RFC continúa diciendo que :

  

Se espera que la relación de auditor de confianza sea el mecanismo de chismes más raro, ya que un cliente HTTPS proporciona un informe sin adulterar de su historial de navegación a un tercero. Si bien existen razones válidas y comunes para hacerlo, no hay una forma adecuada de establecer esta relación sin recuperar el consentimiento informado del usuario.

Así que supongo que se configurará manualmente o que provenga de una parte confiable (supongo que el fabricante del navegador).

Actualización 2018-01-26Fri .: @__ agwa-Blog.

Hay una publicación de blog reciente sobre este tema:

  • Andrew Ayer, 2018-01-10, ¿Cómo se auditarán los registros de transparencia de certificados en la práctica? (Archivado aquí .)

    Es una lectura técnica en profundidad. El TLDR es este último párrafo aquí:

      

    Todo esto está lejos. CTv2 todavía no está estandarizado. Chrome todavía no realiza ninguna auditoría de SCT y, en consecuencia, su política de CT requiere que al menos un SCT provenga de un registro operado por Google, ya que, obviamente, Google confía en sus propios registros para no romper sus promesas. Afortunadamente, incluso sin una auditoría generalizada de los registros, la Transparencia del Certificado ha sido un gran éxito, limpiando el ecosistema de la autoridad de certificación y haciendo que todos estén más seguros. Sin embargo, creo que sería una pena que la capacidad de auditoría de la Transparencia del Certificado nunca se realizara por completo, y espero que podamos encontrar una manera de hacer que funcione.

respondido por el StackzOfZtuff 29.10.2015 - 17:47
fuente
1
  
  • Primero, ¿qué me impide configurar mi propio registro, crear el SCT, y nunca contarle a Google ni a nadie más?
  •   

Mirando la documentación, parece que este es un requisito para resolver eso:

Desde la página hace referencia a: "Cada registro de certificado debe anunciar públicamente su URL y su clave pública (entre otras cosas). Cualquiera puede interactuar con un registro a través de los mensajes GET y POST de HTTPS"

Los monitores capturan el estado de estos registros y se aseguran de que sean coherentes con su historial. Presumiblemente, si el auditor no está al tanto del registro, lo relacionará de inmediato con el navegador [Más abajo].

  
  • ¿Puede el navegador saber si un registro es legítimo?
  •   
  • ¿El navegador o su componente Auditor envían el SCT a los monitores?
  •   

De nuevo, desde la página a la que hace referencia: "La mayoría de los auditores probablemente estarán integrados en los navegadores. En esta configuración, un navegador envía periódicamente un lote de SCT a su componente de auditoría integrado y pregunta si los SCT (y los certificados correspondientes) han sido legítimamente agregado a un registro. El auditor puede entonces ponerse en contacto de forma asincrónica con los registros y realizar la verificación ".

Si intentas crear tu propio registro o corromperlo, los monitores podrían detectar eso. Estoy un poco incierto sobre el término "periódicamente" arriba. No estoy seguro de entender los lotes o SCTs. ¿Significaría eso que los navegadores supondrían que los SCT eran buenos hasta que se les informara lo contrario? Me parece un agujero. Creo que desearía verificar inmediatamente cualquier certificado nuevo cuando se presentara.

    
respondido por el JimmyJames 29.10.2015 - 16:45
fuente