Hay varios proyectos como DNSSEC y DNSCrypt que tienen como objetivo prevenir el envenenamiento del DNS, etc. La adopción de este tipo de tecnologías está aumentando, pero aún no ha llegado a ese punto.
Sin embargo, diferenciemos entre el control de su servidor DNS, el control del nombre de dominio y el control del servidor web.
Si un atacante tiene el control de un servidor DNS, puede enviarlo a su servidor de ataque, pero no puede falsificar un certificado de confianza. Esto es fácil de ver, ya que obtendrá un "este sitio no es confiable".
Sin embargo, si un atacante obtuviera la información de su cuenta para el registrador de su dominio, podría registrar su propia IP con su nombre de dominio, que luego podría canalizar para obtener un certificado de confianza para ese dominio.
Si un atacante tiene el control del servidor web, podría obtener un certificado de confianza para ese dominio; esto es completamente independiente de DNS.
Para los dos ataques posteriores, es muy difícil de detectar. La monitorización de IP no es muy útil en la mayoría de los casos, ya que muchos sitios web utilizan la nube alojada (amazon, azure, google) donde su IP puede cambiar día a día. Podría controlar los certificados, un nuevo certificado tendría una huella digital diferente, que podría detectar del lado del cliente (y probablemente podría automatizarse con un complemento del navegador). Sin embargo, los certificados cambian legítimamente cada pocos años (los certificados expiran después de un período de tiempo establecido por diseño), por lo que esto podría producir muchos falsos positivos.
En resumen, si un atacante puede robar la identidad de un sitio web, ya sea secuestrando el dominio a través del registrador o simplemente accediendo al servidor web existente, es muy difícil que un cliente lo detecte. Depende de los administradores del sitio web asegurarse de que mantienen el control de su identidad.
Hasta el último punto sobre zeroSSL / vamos a cifrar / y ese tipo de proveedores de certificados automatizados. Ha habido una serie de casos de alto perfil en los que estos sistemas automatizados han estado generando certificados que no deberían ser (certificados en los que el control del dominio no se está validando correctamente). En este caso, la falla está completamente en la CA (ZeroSSL / Let's Encrypt / etc.), Y expone el problema inherente al permitir que los algoritmos manejen la validación. Es rápido y barato, pero los algoritmos pueden ser engañados de manera que los humanos saben que son trucos.