¿Cómo puede Let's Encrypt verificar la identidad a través de http inseguro?

¿Cómo puede Let's Encrypt verificar la identidad a través de http inseguro?

Recién comencé a usar Let's Encrypt. El desafío http-01 es bastante simple:

Funciona de maravilla. Pero, ¿cómo se aseguran de que soy realmente el propietario de example.com utilizando una conexión http insegura?

¿No podría algún administrador en mi centro de datos (o en mi ISP) simplemente solicitar un certificado e interceptar las solicitudes http que Let's Enrypt envía para verificar la identidad del servidor?

Respuesta1

De hecho, no existe una protección infalible contra un ataque de intermediario para el desafío HTTP-01.
Alguien que pueda interceptar el tráfico entre los nodos de validación de Let's Encrypt y su servidor PUEDE superar el desafío y obtener un certificado. Si pueden realizar trucos de BGP, es posible que ni siquiera estén necesariamente en el medio en el sentido normal.
Esto se aplica al desafío HTTP-01 y, para dominios sin firmar, también al desafío DNS-01.

Vale la pena señalar que este problema no es exclusivo de Lets Encrypt; la validación realizada por las CA tradicionales para certificados DV generalmente tiene el mismo problema; Por lo general, ofrecen opciones de validación de HTTP, DNS y correo electrónico, todas las cuales son susceptibles a un ataque MITM.

QuéVamos a cifrartienehecho para mitigar el problema, consiste en ejecutar cada validación desde múltiples nodos de prueba en diferentes centros de datos, lo que requiere que todos los resultados de las pruebas coincidan para poder emitir el certificado. (Lo que sospecho que los hace menos susceptibles a este tipo de abuso que la mayoría de las CA tradicionales).
Esto al menos reduce el alcance de quién podría estar en "el medio", ya que grandes partes de "el medio" serán diferentes según se vean. de los diferentes nodos de prueba.

Se trata del comportamiento predeterminado de validación de dominio automatizada por parte de Let's Encrypt (y las CA en general), pero al propietario del dominio se le ha otorgado cierto control adicional con el requisito de que las CA públicas deben verificar CAAlos registros.

Para tomar realmente el control, el propietario del dominio puede seguir estos pasos:

  1. DNSSEC: firme la zona para garantizar que los CAAdatos no sean manipulados
    (también protege el desafío en sí en el caso de DNS-01)
  2. Agregue uno o más CAAregistros para limitar la emisión de certificados
    (particularmente CAAregistros que no solo nombren la CA que puede emitir, sino también qué cuenta con esa CA está permitida)

Con un CAAregistro que se parece a este:

example.com. IN CAA 0 issue "letsencrypt.org; accounturi=https://acme-v02.api.letsencrypt.org/acme/acct/12346789"

el problema se reduce mucho ya que un impostor no puede iniciar trivialmente el desafío en primer lugar.

Preste especial atención al accounturiparámetro en los CAAdatos, esto es lo que hace que la política sea específica para la cuenta del propietario del dominio con la CA especificada.
Un CAAregistro que solo especifique la CA pero no una cuenta, aunque sea válido, sería de ayuda limitada, ya que dicha política aún permite que cualquier otro cliente de esa CA solicite la emisión de certificados.

Respuesta2

Justificación para usar httpcuando obtener el desafío HTTP-01 está en la especificación:

Debido a que muchos servidores web asignan un host virtual HTTPS predeterminado a un usuario inquilino con pocos privilegios en particular de una manera sutil y no intuitiva, el desafío debe completarse a través de HTTP, no de HTTPS.

Este desafío es distinto de los mensajes del protocolo ACME. La especificación exige https. ACME también tieneintegridadyrepeticiónprotecciones en sus mensajes firmados. Incluso si el tráfico fuera capturado, comprometerlo implica algo más que el simple desafío de no cifrar. Por supuesto, existe cierto riesgo, pero ¿cuál es la alternativa para un mejor procedimiento de verificación de dominio?


Un enfoque más completo para el seguimiento de certificados no autorizados puede implicar la transparencia de los certificados. Busque o configure alertas en los registros CT para sus nombres. La CA emisora, el número de serie y la fecha deberían resultarle familiares.

información relacionada