章峰 蔣文保 費禹
摘 要:美國廢除了網絡中立原則,由此引發了很多人對于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.