域名系统分析互联网网站的名称及其底层IP地址,并在此过程中提高效率和安全性。
来源:linux.cn作者:KeithShaw,JoshFruhlinger译者:Xingyu。王
(本文字数4772,阅读时间8分钟左右。)
域名系统)(DNS DNS)是互联网的基础之一,但大多数不了解互联网的人可能不知道,他们每天都用它来工作、查收邮件或在智能手机上浪费时间。
本质上,DNS是一个匹配数字的名称目录。这里的这些数字指的是计算机用来相互通信的IP地址。DNS的大部分描述都是拿电话簿来比较,对于30岁以上的人来说没问题,因为他们知道电话簿是什么。
如果你不到30岁,你可以把DNS想象成你智能手机的联系人列表。它将人们的名字与他们的电话号码和电子邮件地址进行匹配,然后联系人列表就和地球上的人一样多了。
随着互联网的发展,这种情况显然是不可持续的,尤其是费因勒只在加州时间下午6点前处理请求,他还要请假过圣诞节。1983年,南加州大学的研究员PaulMockapetris被要求在各种建议中提出一个折中方案来处理这个问题。但他基本上忽略了所有的建议,开发了自己的系统,他称之为DNS。虽然从那时起它明显改变了很多,但在基本层面上,它仍然以近40年前的方式工作。
此目录的分布式性质的另一个原因是,如果此目录仅在一个地方在数百万,也许数十亿同时寻找信息的人中共享,当你寻找一个网站时,需要多长时间才能得到响应?——这就像排队使用电话簿一样。
一般来说,当您连接到互联网时,您使用的DNS服务器将由您的网络提供商自动建立。如果您想知道哪些服务器是您的主名称服务器(通常是递归解析器,如上所述),有一些网络实用程序可以提供有关您当前网络连接的信息。Browserleaks.com是一个很好的工具,它提供了很多信息,包括你当前的DNS服务器。
如果您想要一个替代方案,您可以将您的计算机指向一个公共DNS服务器作为递归解析器。最著名的公共DNS服务器之一是Google的,它的IP地址是8。
8.8.8和8.8.4.4。Google的DNS服务往往是快速的,虽然对Google提供免费服务的别有用心的动机有一定的质疑,但他们无法真正从你那里获得比他们从Chrome浏览器中获得的更多信息。Google有一个页面,详细说明了如何配置你的电脑或路由器连接到Google的DNS。DNS的组织结构有助于保持事情的快速和顺利运行。为了说明这一点,让我们假设你想访问linux.cn。
如上所述,对IP地址的初始请求是向递归解析器提出的。递归解析器知道它需要请求哪些其他DNS服务器来解析一个网站(linux.cn)的名称与其IP地址。这种搜索会传递至根服务器,它知道所有顶级域名的信息,如.com、.net、.org以及所有国家域名,如.cn(中国)和.uk(英国)。根服务器位于世界各地,所以系统通常会将你引导到地理上最近的一个服务器。
一旦请求到达正确的根服务器,它就会进入一个顶级域名(TLD)名称服务器,该服务器存储二级域名的信息,即在你写在.com、.org、.net之前的单词(例如,linux.cn的信息是“linux”)。然后,请求进入域名服务器,域名服务器掌握着网站的信息和IP地址。一旦IP地址被找到,它就会被发回给客户端,客户端现在可以用它来访问网站。所有这一切都只需要几毫秒的时间。
因为DNS在过去的30多年里一直在工作,所以大多数人都认为它是理所当然的。在构建系统的时候也没有考虑到安全问题,所以黑客们充分利用了这一点,制造了各种各样的攻击。
DNS反射攻击可以用DNS解析器服务器的大量信息淹没受害者。攻击者使用伪装成受害者的IP地址来向他们能找到的所有开放的DNS解析器请求大量的DNS数据。当解析器响应时,受害者会收到大量未请求的DNS数据,使其不堪重负。
DNS缓存投毒可将用户转移到恶意网站。攻击者设法在DNS中插入虚假的地址记录,这样,当潜在的受害者请求解析其中一个中毒网站的地址时,DNS就会以另一个由攻击者控制的网站的IP地址作出回应。一旦访问了这些假网站,受害者可能会被欺骗,泄露密码或下载了恶意软件。
DNS资源耗尽攻击可以堵塞ISP的DNS基础设施,阻止ISP的客户访问互联网上的网站。攻击者注册一个域名,并通过将受害者的名称服务器作为域名的权威服务器来实现这种攻击。因此,如果递归解析器不能提供与网站名称相关的IP地址,就会询问受害者的名称服务器。攻击者会对自己注册的域名产生大量的请求,并查询不存在的子域名,这就会导致大量的解析请求发送到受害者的名称服务器,使其不堪重负。
DNS安全扩展是为了使参与DNS查询的各级服务器之间的通信更加安全。它是由负责DNS系统的互联网名称与数字地址分配机构(InternetCorporationforAssignedNamesandNumbers)(ICANN)设计的。
ICANN意识到DNS顶级、二级和三级目录服务器之间的通信存在弱点,可能会让攻击者劫持查询。这将允许攻击者用恶意网站的IP地址来响应合法网站的查询请求。这些网站可能会向用户上传恶意软件,或者进行网络钓鱼和网络欺骗攻击。
DNSSec将通过让每一级DNS服务器对其请求进行数字签名来解决这个问题,这就保证了终端用户发送进来的请求不会被攻击者利用。这就建立了一个信任链,这样在查询的每一步,请求的完整性都会得到验证。
此外,DNSSec可以确定域名是否存在,如果不存在,它就不会让该欺诈性域名交付给寻求域名解析的无辜请求者。
随着越来越多的域名被创建,越来越多的设备继续通过物联网设备和其他“智能”系统加入网络,随着更多的网站迁移到IPv6,将需要维持一个健康的DNS生态系统。大数据和分析的增长也带来了对DNS管理的更大需求。
最近,随着WindowsDNS服务器缺陷的发现,全世界都看到了DNS中的弱点可能造成的混乱。这个潜在的安全漏洞被称为SIGRed,它需要一个复杂的攻击链,但利用未打补丁的WindowsDNS服务器,有可能在客户端安装和执行任意恶意代码。而且该漏洞是“可蠕虫传播”的,这意味着它可以在没有人为干预的情况下从计算机传播到计算机。该漏洞被认为足够令人震惊,以至于美国联邦机构被要求他们在几天时间内安装补丁。
截至本报告撰写之时,DNS正处于其历史上最大的一次转变的边缘。谷歌和Mozilla共同控制着浏览器市场的大部分份额,他们正在鼓励向DNSoverHTTPS(DoH)的方向发展,在这种情况下,DNS请求将被已经保护了大多数Web流量的HTTPS协议加密。在Chrome的实现中,浏览器会检查DNS服务器是否支持DoH,如果不支持,则会将DNS请求重新路由到谷歌的8.8.8.8。
这是一个并非没有争议的举动。早在上世纪80年代就在DNS协议上做了大量早期工作的PaulVixie称此举对安全来说是“灾难”:例如,企业IT部门将更难监控或引导穿越其网络的DoH流量。不过,Chrome浏览器是无所不在的,DoH不久就会被默认打开,所以让我们拭目以待。
via:www.networkworld.com
作者:KeithShaw,JoshFruhlinger选题:lujun9972译者:wxy校对:wxy
本文由LCTT原创编译,Linux中国荣誉推出