HTTPS 连接是否会因为恶意 DNS 服务器而受到威胁

信息安全 tls 公钥基础设施 dns
2021-08-09 00:23:02

如果我正在访问(只是台式电脑,客户端)具有有效 HTTPS 证书/连接的站点,如果我使用流氓 DNS 服务器(不是故意的,我担心攻击),它可能会受到损害在 DNS 服务上)?

我正在考虑例如:CA 的站点(用于检查 HTTPS 连接)由我的名称服务器(受损的站点)解析?

4个回答

为了连接到任何网站,无论是否通过 https,您都需要该网站的 IP 地址,并使用您网站的域名向您的 DNS 服务器请求它。如果您的 DNS 服务器没有缓存答案,它将尝试通过询问一系列 DNS 服务器(根 dns 服务器、顶级域处理程序......直到对域具有授权的 dns 服务器)来解决您的请求.

控制任何这些服务器的攻击者可以使用该网站的虚假 IP 地址来响应您,这就是您的浏览器将尝试访问的内容。在一般情况下,此 IP 地址将拥有托管网站的副本,以使其看起来与原始网站相同,或者在捕获所需内容后充当您连接到正确站点的静默转发器。

现在了解更多细节:如果网站受 HTTPS 保护,将会有很多陷阱。普通网站将颁发证书,将域名的详细信息绑定到网站,但这是使用非对称加密完成的。

这意味着通过 SSL 握手过程,网站必须证明它知道与证书中的公钥相关联的私钥。现在,当您尝试在正确的主机名下访问错误的 IP 时,恶意方可以很好地为您提供网站的原始证书,但他不知道私钥,因此 SSL 握手永远不会完成。

但是拦截器有办法让整个事情发挥作用,我能想到四种:

1)最简单的解决方案是为您提供自签名证书而不是普通证书。这将由攻击者自己发出。通常你的浏览器会警告你,如果你运行最新的浏览器版本,警告会到处都是,但用户倾向于点击那种东西。

2) Stuxnet 攻击中使用的另一种方法是从您要冒充的组织窃取用于有效证书的私钥。

3)在几个案例中发生的另一种解决方案(我们这里不是在谈论普通攻击者)是他利用证书颁发机构(或注册机构)使用的注册过程中的一些错误,并设法颁发证书对于一个不属于他的网站。在某些情况下,RA 根本没有做足够的检查并为 google.com 颁发证书。

4) 与上述类似:有能力的攻击者“破解”证书或注册机构,并设法以他想要的任何名称颁发一些证书。它发生在 2011 年 5 月(著名的 comodo-hack)和 2011 年 7 月(DigiNotar hack)。查看更多详细信息,请参阅CA 被黑客入侵的可行性如何?我应该删除哪些默认的受信任根证书?- IT 安全

5)最后,最可怕的技术是三信机构和类似方可以使用的技术:如果政府控制证书颁发机构,理论上它可以强制它随意为任何站点颁发证书。现在认为证书颁发机构遍布世界各地,其中一些位于看起来很有可能的国家。这里值得关注的一个例子是由阿联酋电信公司 (Etisalat) 运营的 CA,该公司 60% 的股份由阿拉伯联合酋长国 (UAE) 政府拥有。Etisalat 曾经推出了一个看似无害的黑莓补丁,该补丁将间谍软件插入 RIM 设备,从而实现对电子邮件的监控。

此外,如果客户端仍然支持旧的 SSL 2.0 协议,MITM 可以降级 SSL 连接并使用较弱的对称加密算法或较弱的密钥交换。

综上所述,如果攻击者控制了 DNS 服务器,他可以做一些非常恶意的事情,但要拦截 SSL 加密流量,他需要做的还不止这些。

并回答您的最后一个问题:每次访问站点时都不需要解析 CA 的站点:该网站通常为您提供它自己使用的公共证书,但您也可以从 CA 获得它。不过,这不会改变上面提到的任何事情。

应该是不可能的。如果攻击者能够控制您的 DNS,他可能会将您重定向到受感染的服务器。但是您的浏览器会(如果配置正确)警告您证书损坏。

但确实有可能在服务器没有有效证书的情况下,当您连接到真实服务器以及连接到攻击者机器时,您的浏览器会发出警告。您无法确定此警告是否重要。
在另一种情况下,攻击者能够获取服务器的有效证书(请参见此处的示例)。因此,他能够将您重定向到受感染的服务器,并且您的浏览器不会说任何内容..

除了@John 的出色回答之外,除了对当前 HTTPS 连接的任何影响之外,流氓 DNS 服务器还可能造成其他损害(尽管这完全超出了您的问题范围,但我认为它仍然是相关的)。除了试图窃听您当前的连接外,它还可以造成多种类型的损害。

如果您要求恶意 DNS 服务器为您解析地址,它可以为您提供您没有要求的答案,从而影响您创建的任何其他连接 -即使在您停止使用流氓 DNS 之后也是如此
例如使用DNS 中毒技术(另见我对这个问题的回答。)

此外,恶意 DNS 可以故意将您重定向到另一台服务器,例如现在将被虚假请求淹没的受害服务器。

除此之外,谁保证你真的建立SSL 连接?大多数用户不打扰输入"aich tee tee pee ESS(!) colon whack whack... "...他们只需输入域名(例如“mybank”)并按 ctrl+enter,或者让搜索引擎弹出它,或者...在所有这些情况下,很可能用户的初始请求根本就不是HTTPS。(当然,如果您确实专门输入了它,那就不同了,所以在这一点上是 YMMV)。

我还建议看看“接管别人的域名涉及什么?”中的一些答案。

一些公司代理(通过 DNS 重定向或各种其他方式运行)可能会检查 SSL 连接的内容。此外,如果 MITM 证书已安装到本地存储中,托管桌面的用户将不会收到浏览器警告。

根据谁在管理代理,以及它的日志是如何使用的,从您的角度来看,这可能是可以接受的,也可能是一件坏事。

有关如何完成 SSL 拦截的更多信息,请参阅此链接

当 SSL 代理拦截 SSL 连接时,它会向客户端浏览器提供一个模拟的服务器证书。客户端浏览器向最终用户发出安全弹出窗口,因为浏览器不信任 ProxySG 使用的发布者。如果 SSL 代理使用的颁发者证书作为受信任的根导入客户端浏览器的证书存储区,则不会出现此弹出窗口。

ProxySG 可通过其管理控制台下载所有已配置的证书。您可以要求最终用户通过 Internet Explorer 或 Firefox 下载颁发者证书,并将其作为受信任的 CA 安装在他们选择的浏览器中。这消除了模拟证书的证书弹出窗口......

更多信息...