Recién comencé a usar Let's Encrypt. El desafío http-01 es bastante simple:
- Hacer que un servidor web responda ahttp://ejemplo.com
- Solicite a Let's Encrypt un archivo de desafío
- Proporcione el archivo debajohttp://ejemplo.com/.well-known/acme-challenge
- Reciba el certificado TLS para example.com
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 CAA
los registros.
Para tomar realmente el control, el propietario del dominio puede seguir estos pasos:
- DNSSEC: firme la zona para garantizar que los
CAA
datos no sean manipulados
(también protege el desafío en sí en el caso de DNS-01) - Agregue uno o más
CAA
registros para limitar la emisión de certificados
(particularmenteCAA
registros que no solo nombren la CA que puede emitir, sino también qué cuenta con esa CA está permitida)
Con un CAA
registro 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 accounturi
parámetro en los CAA
datos, esto es lo que hace que la política sea específica para la cuenta del propietario del dominio con la CA especificada.
Un CAA
registro 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.