Para conectarse a cualquier sitio web, a través de https o no, necesita la dirección IP del sitio y le solicita a su servidor DNS que use el nombre de dominio de su sitio. Si su servidor DNS no ha guardado la respuesta, intentará resolver su solicitud preguntando a toda una serie de servidores DNS (el servidor dns raíz, el controlador de dominio de nivel superior ... hasta el servidor dns que es autoritario para el dominio) .
Un atacante que controla cualquiera de esos servidores puede responderle con una dirección IP falsa para ese sitio web, y esto es lo que su navegador intentará visitar. Esta dirección IP en el caso general tendrá una réplica del sitio web alojado, para que tenga el mismo aspecto que la original, o simplemente actuará como un reenviador silencioso de su conexión al sitio correcto después de capturar lo que necesita.
Ahora a más detalles: si el sitio web está protegido por HTTPS, habrá muchos escollos. El sitio web normal tendrá un certificado emitido que vincula los detalles del nombre de dominio con el sitio web, pero esto se realiza mediante cifrado asimétrico.
Lo que esto significa es que a través del proceso de protocolo de enlace SSL, el sitio web debe demostrar que tiene conocimiento de la clave privada asociada con la clave pública en el certificado. Ahora, la parte maliciosa puede proporcionarle el certificado original del sitio web cuando intente acceder a la IP incorrecta con el nombre de host correcto, pero no tendrá conocimiento de la clave privada, por lo que el protocolo de enlace de SSL nunca se completará.
Pero hay formas en que el interceptor puede hacer que todo funcione, puedo pensar en cuatro:
1) La solución más sencilla es entregarle un certificado autofirmado en lugar de uno normal. Esto será emitido por el propio atacante. Normalmente, tu navegador te lo advertirá, y si ejecutas una versión reciente del navegador, las advertencias estarán por todos lados, pero los usuarios tienden a hacer clic en ese tipo de cosas ...
2) Otro enfoque, utilizado en los ataques de Stuxnet, es robar las claves privadas utilizadas para un certificado válido de la organización que desea suplantar.
3) Otra solución, que ha ocurrido en un par de casos (no estamos hablando del atacante promedio aquí) es que explota alguna falla en el procedimiento de registro que usan las autoridades de certificación (o autoridades de registro), y se las arregla para emitir un certificado para un sitio web que no le pertenece. Ha habido casos en que las RA simplemente no hicieron suficientes controles y emitieron certificados para google.com ..
4) Similar a lo anterior: un atacante competente 'piratea' un certificado o autoridad de registro y logra emitir algunos certificados con el nombre que quiera. Ocurrió en mayo de 2011 (el famoso comodo-hack) y en julio de 2011 (el hack de DigiNotar). Ver más detalles en ¿Qué tan factible es que una CA sea hackeada? ¿Qué certificados raíz de confianza predeterminados debo eliminar? - Seguridad de TI .
5) Finalmente, la técnica más aterradora es la que pueden usar agencias de tres letras y partes similares: si un gobierno controla una Autoridad de Certificación, en teoría puede forzarla a emitir certificados a voluntad, para cualquier sitio. Ahora piense que las Autoridades de Certificación se extienden por todo el mundo, algunas de ellas en países donde esto puede parecer muy posible. Un ejemplo que se puede ver aquí es la CA operada por la Corporación de Telecomunicaciones de Emiratos (Etisalat), que pertenece en un 60% al gobierno de los Emiratos Árabes Unidos (EAU). Etisalat una vez lanzó un parche de BlackBerry de aspecto inocuo que insertó spyware en los dispositivos RIM, lo que permite el monitoreo del correo electrónico.
Además, si el cliente aún admite el antiguo protocolo SSL 2.0, un MITM puede degradar la conexión SSL y usar un algoritmo de cifrado simétrico más débil o un intercambio de claves más débil.
Para resumir, si el atacante controla el servidor DNS, puede hacer cosas muy maliciosas, pero para interceptar el tráfico cifrado SSL necesita algo más que eso.
Y para responder a su última pregunta: el sitio de la CA no necesita resolverse cada vez que visita un sitio: el sitio web generalmente le entrega el certificado público que usa, pero es posible que lo obtenga de la CA . Esto no cambia ninguna de las cosas mencionadas anteriormente, sin embargo.