HTTPS加密 可以有效帮助服务器应对DNS欺骗、DNS劫持、ARP攻击等安全威胁。DNS是什么?DNS如何被利用?HTTPS如何防止DNS欺骗?
DNS如何工作?
如果您想访问www.example.com,您的浏览器需要找到该特定Web服务器的IP地址。它首先要查询系统的hosts文件,这是一个文本文件,其中包含任何域名的IP地址,这些域名被有效地“硬编码”到该系统中。但是,大多数时候该网址不在系统的hosts文件中,那您的浏览器将询问DNS服务器(可能是一个在您组织网络上的解析器,也可能是由ISP运营或由Google、OpenDNS等组织运营的外部公共解析器)。
简而言之,如果解析器最近被要求提供该域名的IP地址,它将在其缓存中包含该信息,并将直接提供该信息。但是如果它没有在缓存中(或者因为它之前从未被要求提供该信息,或者因为信息已“过期”并从缓存中删除),那么它会将请求引用到根服务器,可以告诉解析器在哪里获取有关.com顶级域的信息。
然后它会询问服务器从哪里获取有关example.com的信息,然后转到称为权威服务器的服务器上,该服务器将为其提供example.com域中任何服务器的IP地址(例如Web和电子邮件服务器)。
什么是DNS欺骗
DNS欺骗就是攻击者冒充域名服务器的一种欺骗行为。原理:如果可以冒充域名服务器,然后将查询的IP地址设为攻击者的IP地址,这样的话用户上网就只能看到攻击者的主页,而想要取得的example.com网站主页了,这就是DNS欺骗的基本原理。
DNS欺骗就是利用DNS协议设计时的一个非常重要的安全缺陷。首先欺骗者向目标机器发送构造的APR应答包,ARP欺骗成功后,嗅探到对方发出的DNS请求数据包,分析数据包取得ID和端口号后,向目标发送自己构造后的一个DNS返回包,对方收到DNS应答包,发现ID和端口号全部正确,即把返回数据包中的额域名和对应的IP地址保存近DNS缓存表中,而后来当真实的DNS应答包返回时则被丢弃。
HTTPS如何防止DNS欺骗?
有效的HTTPS证书表示,该服务器在获取证书时就已经由受信任的证书颁发机构(如:沃通CA)验证域名所有权。为了确保攻击者无法使用DNS欺骗将用户引导到http:// 可以截获流量的普通连接,网站可以使用HTTP严格传输安全(HSTS)来指示浏览器始终要求其域的HTTPS连接。这意味着想要成功欺骗DNS解析的攻击者,还必须创建有效的HTTPS连接。这使得DNS欺骗与攻击HTTPS一样具有挑战性和昂贵性。
如果攻击者欺骗DNS但不破坏HTTPS,则用户将从其浏览器收到明显的警告消息,以防止他们访问可能的恶意站点。如果该站点使用HSTS,则访问者将无法选择忽略并单击警告。
HTTPS和HSTS协同工作以保护域免受DNS欺骗。
攻击HTTPS连接有多难?
对HTTPS连接的攻击通常分为3类:
通过密码分析或其他协议弱点来破坏HTTPS连接的质量。
攻破客户端计算机,例如将恶意根证书安装到系统或浏览器信任库中。通常通过操纵或破坏证书颁发机构来获取主要浏览器信任的“流氓”证书。
这些都是可能的,但对于大多数攻击者而言,这些攻击都非常困难并且需要大量费用。重要的是,它们都是有针对性的攻击,并且不能随时对任何连接到任何网站的用户执行。相比之下,普通的HTTP连接可以被网络连接中涉及的任何人轻易拦截和修改,因此攻击可以大规模且低成本地进行。