因特网“断网停服”的技术分析及新型DNS体系研究
2018-01-15章峰蒋文保费禹
章峰 蒋文保 费禹
摘 要:美国废除了网络中立原则,由此引发了很多人对于Internet的担忧。现在的DNS架构体系,导致ICANN组织成为DNS体系的中心,担任着DNS管理者的角色。因此,一些媒体以及大众开始担忧,美国对敌对国家可能进行断网攻击,攻击其他国家的网络服务。论文将针对该问题,从技术的角度进行分析,说明断网可能产生的危害,以及提出一套自主可控、去中心化、实现网络主权平等的新型DNS架构体系。
关键词:DNS;去中心化;网络主权;断网;停服
中图分类号:TP393 文献标识码:A
Abstract: The United States abolished the principle of network neutrality, which has caused many people to worry about the Internet. The current DNS architecture system has led the ICANN to become the center of the DNS system and to act as the administrator of the DNS. Therefore, some media and the public are beginning to worry that the United States may attack the hostile countries with making their network broken and attack the network services of other countries. This paper will analyze the problem from the technical point of view, explain the possible harm caused by network disconnection, and propose a new DNS architecture system that can self-control, decentralize and achieve network sovereign equality.
Key words: DNS; decentration; network sovereignty; interent disconnection; DoS
1 引言
网上流传一种说法,“因为美国废除了网络中立原则,因此可以在需要的时机使用网络武器对特定目标进行网络攻击,甚至令中国断网”。“网络中立”这一原则于2015年6月12日(美国时间)正式实施,却在2017年12月被FCC投票废止,并于2018年6月11日(美国时间)正式停止执行,这一举措将可能导致断网停服计划的产生。
在2015年12月18日,美国国会通过了“2015年赛博安全信息共享法案”。这一法案在国内被译为“2015美国网络安全法”,为网络的断网停服提供了法律依据。
许多媒体在担忧,美国对中国的网络实施断网停服,从而达到瘫痪中国网络的目的。如果一旦发生了断网事件,那中国又该如何应对。本文将从技术的角度来给予一定的解释与建议。
本文先阐述一下,现有的DNS服务器分配情况。根域名服务器分布在世界各地,使世界上大部分DNS(Domain Name System)域名服务器都能就近找到一个编号为A~M的13台根域名服务器。根域名服务器定期从主根域名服务器同步根区文件。其中,9台根域名服务器在美国,1台在英国,1台在瑞典,一台在日本。主根服务器在美国,基本上这种管理方式就代表着美国就是整个Internet的管理者。而我国只引入了F、I、L、J四个根的镜像节点。此处所指的13台根服务器是指13个IP地址用于查询的根服务器网络。一个常见的误解是世界上只有13台根服务器。实际上还有更多,但仍然只有13个IP地址用于查询不同的根服务器网络。DNS原始体系结构的限制要求根区域中最多有13台服务器地址。
今天,13个IP地址中的每一个都有几台服务器,它们使用Anycast路由来根据负载和接近度分配请求。现在,有超过600种不同的DNS根服务器分布在地球上每个人口稠密的大陆上。
那么,谁拥有DNS根服务器的权限呢?根区域的最终权限属于美国国家电信和信息管理局(NTIA),后者是美国商务部的一部分。NTIA将根區域的管理委托给互联网域名与数字地址分配机构(ICANN)。
ICANN为根区域中的13个IP地址之一运行服务器,并将其他12个IP地址的操作委托给各种组织,包括NASA、马里兰大学和Verisign,后者是唯一一个运营两个根IP地址的组织。
域名系统(DNS)是因特网的电话簿。人类通过域名在线访问信息,如baidu.com或google.com。Web浏览器通过Internet Protocol(IP)地址进行交互。DNS将域名转换为IP地址,以便浏览器可以加载Internet资源。
连接到Internet的每个设备都有一个唯一的IP地址,其他计算机可以使用该IP地址来查找设备。DNS服务器无需人类记忆IP地址,如192.168.1.1(IPv4),或更复杂的新字母数字IP地址,如2400:cb00:2048:1::c629:d7a2(IPv6)。
根域名服务器一旦断网停服、发布虚假信息或者篡改消息实现访问的重定向,大量Internet用户将无法正常访问域名。所以,集中式的管理无法摆脱美国的控制。正因如此,我国需要积极做好相对的应对措施,才能更好地保护我国的国家以及集体利益。
2 DNS解析流程
2.1 DNS相关概念
域名服务系统(Domain Name System,DNS)是互联网的一项服务。它是一个将域名和IP地址相互映射的一个分布式数据库,使人们可以更加方便的访问Internet。DNS是基于现有的TCP/IP协议,这就意味着IP地址就是Internet中的地址。DNS使用UDP的53端口。目前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
DNS系统中,常见的共有五种记录类型:
(1)主机(A)记录;
(2)别名(CNAME)记录;
(3)邮件路由(MX)记录;
(4)IPv6(AAAA)记录;
(5)服务器资源(SRV)记录。
DNS服务器共有四种类型:递归解析器、根域名服务器、顶级域名服务器、权限域名服务器。
(1)递归解析器(DNS Recursor)。充当客户端和DNS服务器之间的中间人角色,收到Web端的DNS查询后,先进行递归查询,或者向其他域名服务器进行迭代查询。
(2)根域名服务器。根域名服务器接受包含域名的递归解析器查询,并且根域名服务器通过将递归解析器指向TLD域名服务器进行响应。
(3)TLD域名服务器,也是顶级域名服务器。其维护共享公共扩展名的所有域名的信息。TLD服务器分为两大类:
通用顶级域:这些域不是特定于国家/地区的,一些比较出名的通用顶级域名包括.com、.org、.net、.edu等;
国家/地区代码顶级域:这些域包括特定于国家/地区或州的所有域,示例包括.cn、.us、.ru等。
(4)权限域名服务器。当递归解析器收到来自TLD服务器的响应时,该响应会将解析程序指向权限域名服务器。权限域名服务器通常是递归解析器在IP地址旅程中的最后一步。权限域名服务器包含特定于它所服务的域名的信息(例如baidu.com),它可以提供递归解析器,其中包含DNS A记录中找到的该服务器的IP地址,或者域名是否具有CNAME记录(别名)它将为递归解析器提供别名域,此时递归解析器必须执行新的DNS查找以从权限域名服务器(通常是包含IP地址的A记录)获取记录。
2.2 DNS区域(DNS Zone)
DNS被分解为许多不同的区域,不同的区域区分DNS命名空间中明确的管理区域,由特定组织或管理员进行管理。域名空间是分层树的结构如图1所示,DNS根域位于顶部,DNS区域从树中开始划分,也可以向下扩展到子域,方便一个实体管理多个子域。
DNS服务器中存储着区域文件,区域文件中包含区域的实际表示形式,并包含区域中每个域的所有记录。区域文件必须始终以授权开始(SOA)记录开头。该记录包含重要信息,包括区域管理员的联系信息。
2.3 动态DNS
动态DNS(Dynamic DNS),许多Web资源(如API或网站)在Internet连接上运行,其IP地址经常更改;如果这些属性的操作者想要为托管资源提供特定域名,则必须在域名系统(DNS)记录中存储IP地址。动态DNS(DDNS)是一种服务,可以使用Web属性的正确IP地址更新DNS,即使该IP地址不断更新也是如此。
在互联网发展初期,IP地址很少发生变化,这使得域名管理变得更加简单。但是,具有互联网接入的网络和家用计算机的快速增长造成了可用IP地址的短缺。这导致了动态主机配置协议(DHCP),它允许ISP动态地为其用户分配IP。ISP通常会维护一个共享的IP地址池,并在连接期间或直到达到最大时间后,根据需要将这些IP地址分配或“租赁”给用户。这就导致了,较小的服务往往会频繁地看到其IP地址被其ISP更改,因此它们需要动态DNS解决方案来保持其DNS记录的最新状态。这些较小的服务包括小型企业网站、个人网站、DVR和安全摄像头等。
2.4 DNS解析具体流程
DNS解析流程中,本机会先查询浏览器缓存,若不存在则查看本地Hosts文件,若不存在则查询本地DNS缓存,若不存在才会向本地DNS解析器发起查询请求,即向递归解析器发起解析请求,此时递归解析器也会首先查看自身缓存是否存在记录,才会决定是否向根域名服务器发起查询请求。
其中设计一个问题就是缓存存在的时间。
(1)本机浏览器的缓存时间和TTL(Time To Live)无关,如Chrome中过期时间为1分钟,在这个期间内不会重新请求DNS解析。
(2)本機DNS缓存会参考DNS服务器响应的TTL值,但不完全等于TTL值。Windows DNS默认值是MaxCacheTTL,为86400s,即一天。
(3)如果服务器只有一台,可以设置TTL长一些,一般为3600即可。
(4)如果有备份或者多台服务器,由于可能发生宕机需要及时切换,TTL值越短切换越及时,但是也会导致DNS运营商缓存时间短,一般来说,设置TTL 600即可,如果要求严格,可设置120。百度的TTL值为55。
(5)ISPDNS的缓存时间,则是不同的运营商设置的值都不同,有些缓存服务器会忽略网站DNS提供的TTL,自己设置一个较长的TTL。这就会导致不能及时拿到新的IP地址,但是会提高解析速度。相对而言,如果设置了较短的TTL,则会影响到解析速度。
DNS的解析流程如图2所示。
如图2所示,举例说明。
(1)当我向访问www.baidu.com域名时,首先PC会查看本机缓存有无该缓存,若没有,查看Hosts文件有无记录。若都没有记录,则向本地DNS服务器发起请求。
(2)本地DNS服务器收到请求后,查看是否有该域名的记录,如果有,则返回解析记录,如果没有,则向根域名服务器,发起请求。
(3)根域名服务器收到请求后,返回该域名中顶级域名(.com)的域名服务器地址。
(4)本地域名服务器再向顶级域名服务器发起请求。
(5)顶级域名服务器收到请求后,返回该域名中二级域名(.baidu.com)的域名服务器地址。
(6)本地域名服务器会向该权限域名服务器发起请求。
(7)权限域名服务器收到请求后,就会查看存在的记录,并将其结果返回给本地域名服务器。
(8)本地域名服务器接收到回应后,会将记录存入缓存,将解析结果返回给PC,至此,可以打开百度页面。
(9)PC收到解析后的IP地址,就会访问该IP地址。
(10)www.baidu.com的服务器接受到访问后,就作出响应。
3 断网停服的结果分析
3.1未采取措施的结果分析
现在我们假设这么一种情形,我国遭遇到了断网停服攻击。在此说明一下,我国仅负责.cn域名的管理权,我国引入的四个镜像根,仅是提高了访问速度,递归服务器对根域名服务器的访问策略是初始轮询,性能择优,所以大部分的域名,都能就近访问根镜像服务器。
那么,从图3中就可以发现,递归服务器请求根域名服务器的第2、3步骤就断了,在不考虑任何措施的情形下,由于递归服务器采取的是迭代查询,所以自第2、3步骤以后的流程将全部失效。那么,就将在短期内产生两种后果。
(1)从国内用户的角度来说,我国的IP地址发出的所有请求,根域名服务器都将不会解析,这就意味着,国人将无法访问除自身以及递归服务器缓存域名以外的所有域名地址,且该缓存时间较为短暂。整个网络将陷入瘫痪状态,无法提供相应的服务。
(2)从国外用户的角度来说,国外的任意访问我国的域名请求,都将不会被根域名服务器解析,即国外将无法正常的访问我国国内的域名地址,这将会对我国以及整个世界造成极大的负面影响。
3.2 仅备份根域名服务器的结果分析
如图4所示,当访问正常备份的域名时,流程分为几个步骤。
(1)当访问www.baidu.com域名时,首先PC会查看本机缓存有无该缓存,若没有,查看Hosts文件有无记录。若都没有记录,则向本地DNS服务器发起请求。
(2)本地DNS服务器收到请求后,查看是否有该域名的记录,如果有,则返回解析记录,如果没有,则向备份根域名服务器,发起请求。
(3)备份根域名服务器收到请求后,返回该域名中顶级域名(.com)的服务器地址。
(4)本地域名服务器再向顶级域名服务器发起请求。
(5)顶级域名服务器收到请求后,返回该域名中二级域名(.baidu.com)的域名服务器地址。
(6)本地域名服务器会向该权限域名服务器发起请求。
(7)权限域名服务器收到请求后,就会查看存在的记录,并将其结果返回给本地域名服务器。
(8)本地域名服务器接收到回应后,会将记录存入缓存,将解析结果返回给我的PC,至此,将成功打开百度页面。
(9)PC收到解析后的IP地址,就会访问该IP地址。
(10)www.baidu.com的服务器接受到访问后,就作出响应。
但是,当访问新的不在备份服务器记录内的域名,解析流程如图5所示。
如图5所示,举例说明。
(1)当我访问www.example.com域名时,先PC会查看本机缓存有无该缓存,若没有,查看Hosts文件有无记录。若都没有记录,则向本地DNS服务器发起请求。
(2)本地DNS服务器收到请求后,查看是否有该域名的记录,如果有,则返回解析记录,如果没有,则向备份根域名服务器,发起请求。
(3)备份根域名服务器收到请求后,查询到不存在该记录,或者存储这已经失效的解析记录,向本地DNS解析器,返回不能解析或者错误的IP地址。
(4)本地域名服务器则向PC返回解析后的结果。
(5)由于返回的是无法解析或者是错误的IP地址,导致 PC不可以访问目标DNS。
上述的流程是考虑了,我国采取备份根域名服务器文件措施的情形。从上述流程我们可以发现,在短期内将会产生三种结果。
(1)从国内用户角度来看,当实施断网攻击后,递归解析器与根域名服务器之间的连接将会停止,但是可以和现有的备份根域名服务器正常运行、通讯、解析,基本上的各个大型网站,如百度、阿里、腾讯等都是静态IP,并不会影响正常访问以及使用。同时,.cn域名下的子域名我国是拥有着管理权的,这就意味着这些网站是可以正常访问的。但是,在只考虑本国服务器运行的同时,我们需要考虑服务器的缓存时间的问题,一旦缓存时间过短,本地缓存以及递归解析器的缓存过期,那么国内网民将只能访问 .cn域名下的各个域名,国外的域名,比如 .com和.net等顶级通用域名都将无法正常访问,要明白顶级通用域名在现有的Internet域名中占有者相当大的比重,这将直接影响国内网民的正常网络需求。
(2)从国外用户的角度来说,只有一些拥有者顶级域的国家与我国保持着良好的关系,互相提供顶级域名服务器的地址,这将会实现双方国家的正常访问。但是,其他国家将仍然无法正常访问我国的域名地址,我国也无法正常访问他们的域名地址。
(3)除此之外,一旦备份的根区文件中的顶级域名服务器的IP一经变动,根区文件将无法得到正常的更新,这就会导致国内IP地址无法访问相对应的顶级域的域名地址。
3.3 備份根服务器和顶级通用域服务器的结果分析
由于我国引入了F根、I根、J根和L根的镜像服务器以及 .com和 .net两大顶级域的镜像服务器,那么现在假设,我国备份了根服务器以及备份了相应的通用顶级域 .com和 .net下的顶级域名服务器,那么国内的DNS解析流程如图6所示。
如图6所示,举例说明。
(1)当访问www.example.com域名时,先PC会查看本机缓存有无该缓存,若没有,查看Hosts文件有无记录。若都没有记录,则向本地DNS服务器发起请求。
(2)本地DNS服务器收到请求后,查看是否有该域名的记录,如果有,则返回解析记录,如果没有,则向备份根域名服务器,发起请求。
(3)备份根域名服务器收到请求后,返回 .com的备份顶级域名服务器的地址。
(4)本地DNS解析器向备份顶级域服务器发起解析请求。
(5)备份的顶级域服务器接受请求,返回目标域名www.example.com的IP地址。
(6)本地DNS解析器接收解析结果,存入缓存,并将结果返回给PC。
(7)PC接收到IP地址,发起访问请求。
(8)目标服务器收到访问请求,并返回结果。
上述流程是考虑了,我国采取备份根域名服务器文件以及 .com和 .net顶级域名信息措施的情形。从上述流程可以发现,在短期内将会产生两结果。
(1)从国内用户的角度来看,首先,.cn下的各个域名都是可以正常运行并提供服务的。国内注册的 .com 以及 .net的域名也是可以正常运行,提供服务的。但是,一些未在国内注册的 .com以及 .net下的域名,在实施更新IP后,我国的备份顶级域服务器并不能收到相关的更新信息。这就会导致在域名更新变动后,我们都将无法访问更新后的 .com以及 .net的相关域名。
(2)从国外用户的角度来看,国外无法访问国内IP所绑定的域名地址,断网停服是从根域名服务器处进行封锁,从目前的流程来看,对于普通用户来说,这是无法绕过去的核心问题。所以,常规步骤将一直无法访问我国域名地址。其中一个规避方法就是,镜像我国的解析服务器或者将自身的本地解析器流程不再指向自身根域名,而是直接指向我国备份根域名服务器。
4 解决办法
4.1 体系结构
为了避免上述危害的产生,提出一套去中心化的、自主可控的新型DNS体系架构(DDNS),致力于实现网络主权平等、平等互联的网络世界。
这种基于区块链的去中心化根域名服务方法及系统,设置基于区块链的去中心化根域名服务系统,整体网络架构如图7所示。
基于区块链的去中心化根域名服务系统包括各国的本地域名子系统,每个本地子系统至少包括多个客户端、递归解析器、本地服务器集群以及一个本地根服务器;骨干网区域是由各个国家顶级域名,包括通用顶级域名参与其中的联盟链。联盟链包括各个本地子系统中的本地根服务器;其中,任一本地子系统中,任一客户端、本地根服务器以及联盟链之间执行顶级域名变更流程,流程分为几个步骤。
4.2 工作流程
客户端向本地根服务器发送域名变更请求。
(1)本地根服务器接收域名变更请求,验证域名变更请求的合法性。
(2)本地根服务器在域名变更请求合法的情况下,向联盟链发送决议请求。
(3)联盟链中的各个本地根服务器接收决议请求,进行决议,并在决议通过后,将域名变更写入各自的区块链。
(4)本地根服务器在决议通过后,向客户端发送决议结果。
该系统执行域名解析流程分为几个步骤。
(1)客户端向本地服务器集群发送域名解析请求。
(2)本地服务器集群接收域名解析请求,递归解析缓存,在缓存中不存在域名时,向本地根服务器发送域名解析请求。
(3)本地根服务器接收域名解析请求,解析域名解析请求,在域名存在时,向本地服务器集群发送域名位置。
(4)本地服务器集群接收域名位置,向目标服务器集群发送解析申请,接收目标服务器集群解析后发送的解析结果,并向客户端发送解析结果。
子系统中本地根服务器以及联盟链之间执行根服务器密钥变动流程分为几步。
(1)本地根服务器向联盟链发送密钥变动请求。
(2)联盟链中的各个本地根服务器接收密钥变动请求,进行决议。
(3)本地根服务器决议通过后,执行密钥变动操作,并广播本地根服务器变动后的公钥;联盟链中的各个本地根服务器接收变动后的公钥,进行记录。
本系统执行域名记录验证流程分几个步骤。
(1)客户端向目标服务器集群发送域名验证请求。
(2)本地服务器集群接收目标服务器集群发送的域名域,向本地根服务器发送验证请求。
(3)本地根服务器接收验证请求,向本地服务器集群发送验证信息。
(4)本地服务器集群接收验证信息,对验证信息进行验证,并在验证通过后,向客户端发送验证结果。
本系统考虑到通用顶级域的特殊性,特意独立通用顶级域的申请流程,该执行顶级通用域名的下属域名申请流程分为几个步骤。
(1)客户端向本地根服务器发送获取域名位置请求。
(2)本地根服务器接收获取域名位置请求,解析获取域名位置请求,向客户端发送通用域名位置。
(3)客户端接收通用域名位置,向通用域名集群发送域名申请请求,并接收通用域名集群发送的处理结果。
4.2 效果分析
(1)由于DDNS采用的是去中心化的架构模式,实现了各个根服务器的数据一致性,不再出现现有的中心化模式,打破了现有的DNS中心化管理方式,明显地削弱了美国手中的权利,避免了一家独大的可能性的出现。
(2)基于区块链技术构建的底层区块保存着DNS记录,其实现了不可更改、可追踪溯源的特性,极大地避免了出现恶意攻击的可能性,以及出现了攻击以后的责任追踪,定位到具体的时间、地点、机器。
(3)本套新型DNS系统采用的共识机制,保证了各个根节点的平等,不存在权利的不同,所有的根节点的权利全部一致,保证了参与到该DDNS的各国的网络主权。
(4)从上述的流程,可以看出,即使有个别根服务器断网,或者停止活动,也不会影响其他根服务器的正常运行,这极大地保证了各国网络的独立自主。
5 结束语
目前来讲,美国无疑是Internet的管理者,这是由现有的管理模式以及网络架构所决定的。但是,美国实施断网攻击的话,我国也不是毫无应对能力,但是这都不是根本的解决办法,如果要摆脱这样的困境,需要我国提出并架设一套自主可控、去中心化、能够实现平等互联的新型DNS网络架构。
基金项目
1. 论文得到中国科学院网络测评技术重点实验室资助;
2. 促进高校内涵发展—“信息+”—网络空间安全一级学科创新实验平台建设项目(项目编号:5111823609)资助。
参考文献
[1] 张宇,夏重达,方滨兴,等. 一个自主开放的互联网根域名解析体系[J].信息安全学报, 2017, 2(4):57-69.
[2] 朱国库,蒋文保.一种去中心化的网络域名服务系统模型[J].网络空间安全, 2017, 8(1):14-18.
[3] Mockapetris P, Dunlap K J. Development of the domain name system[M]. ACM, 1988.
[4] Arends R. DNS security introduction and requirements[J]. RFC 4033 (Proposed Standard, 2005.
[5] 呂述望,丁峤,李长红.网络停服战的法律准备——透析“美国2015网络安全法”[J]. 网络空间安全, 2017, 8(1):8-13.