域名系統(Domain Name System)(DNS)是互聯網的基礎之一,然而大多數不懂網絡的人可能并不知道他們每天都在使用它來工作、查看電子郵件或在智能手機上浪費時間。
就其本質而言,DNS 是一個與數字匹配的名稱目錄。這些數字,在這里指的是 IP 地址,計算機用 IP 地址來相互通信。大多數對 DNS 的描述都是用電話簿來比喻,這對于 30 歲以上的人來說是沒有問題的,因為他們知道電話簿是什么。
如果你還不到 30 歲,可以把 DNS 想象成你的智能手機的聯系人名單,它將人們的名字與他們的電話號碼及電子郵件地址進行匹配,然后這個聯系人名單的就像地球上的人一樣多。
DNS 簡史
當互聯網還非常、非常小的時候,人們很容易將特定的 IP 地址與特定的計算機對應起來,但隨著越來越多的設備和人加入到不斷發展的網絡中,這種簡單的情況就沒法持續多久了?,F在仍然可以在瀏覽器中輸入一個特定的 IP 地址來到達一個網站,但當時和現在一樣,人們希望得到一個由容易記憶的單詞組成的地址,也就是我們今天所認識的那種域名(比如 linux.cn )。在 20 世紀 70 年代和 80 年代早期,這些名稱和地址是由一個人指定的,她是 斯坦福大學的 Elizabeth Feinler ,她在一個名為 HOSTS.TXT 的文本文件中維護著一個主列表,記錄了每一臺連接互聯網的計算機。
隨著互聯網的發展,這種局面顯然無法維持下去,尤其是因為 Feinler 只處理加州時間下午 6 點之前的請求,而且圣誕節也要請假。1983 年,南加州大學的研究人員 Paul Mockapetris 受命在處理這個問題的多種建議中提出一個折中方案。但他基本上無視了所有提出的建議,而是開發了自己的系統,他將其稱為 DNS。雖然從那時起,現今的它顯然發生了很大的變化,但在基本層面上,它的工作方式仍然與將近 40 年前相同。
DNS 服務器是如何工作的
將名字與數字相匹配的 DNS 目錄并不是整個藏在互聯網的某個黑暗角落。截至 2017 年底, 它記錄了超過 3.32 億個域名 ,如果作為一個目錄確實會非常龐大。就像互聯網本身一樣,該目錄分布在世界各地,存儲在域名服務器(一般簡稱為 DNS 服務器)上,這些服務器都會非常有規律地相互溝通,以提供更新和冗余。
權威 DNS 服務器與遞歸 DNS 服務器的比較
當你的計算機想要找到與域名相關聯的 IP 地址時,它首先會向 遞歸(recursive) DNS 服務器(也稱為遞歸解析器)提出請求。遞歸解析器是一個通常由 ISP 或其他第三方提供商運營的服務器,它知道需要向其他哪些 DNS 服務器請求解析一個網站的名稱與其 IP 地址。實際擁有所需信息的服務器稱為 權威(authoritative) DNS 服務器。
DNS 服務器和 IP 地址
每個域名可以對應一個以上的 IP 地址。事實上,有些網站有數百個甚至更多的 IP 地址與一個域名相對應。例如,你的計算機訪問 www.google.com 所到達的服務器,很可能與其他國家的人在瀏覽器中輸入相同的網站名稱所到達的服務器完全不同。
該目錄的分布式性質的另一個原因是,如果這個目錄只在一個位置,在數百萬,可能是數十億在同一時間尋找信息的人中共享,那么當你在尋找一個網站時,你需要花費多少時間才能得到響應 —— 這就像是排著長隊使用電話簿一樣。
什么是 DNS 緩存?
為了解決這個問題,DNS 信息在許多服務器之間共享。但最近訪問過的網站的信息也會在客戶端計算機本地緩存。你有可能每天使用 google.com 好幾次。你的計算機不是每次都向 DNS 名稱服務器查詢 google.com 的 IP 地址,而是將這些信息保存在你的計算機上,這樣它就不必訪問 DNS 服務器來解析這個名稱的 IP 地址。額外的緩存也可能出現在用于將客戶端連接到互聯網的路由器上,以及用戶的互聯網服務提供商(ISP)的服務器上。有了這么多的緩存,實際上對 DNS 名稱服務器的查詢數量比看起來要少很多。
如何找到我的 DNS 服務器?
一般來說,當你連接到互聯網時,你使用的 DNS 服務器將由你的網絡提供商自動建立。如果你想看看哪些服務器是你的主要名稱服務器(一般是遞歸解析器,如上所述),有一些網絡實用程序可以提供關于你當前網絡連接的信息。 Browserleaks.com 是一個很好的工具,它提供了很多信息,包括你當前的 DNS 服務器。
我可以使用 8.8.8.8 的 DNS 嗎?
但要記住,雖然你的 ISP 會設置一個默認的 DNS 服務器,但你沒有義務使用它。有些用戶可能有理由避開他們 ISP 的 DNS —— 例如,有些 ISP 使用他們的 DNS 服務器將不存在的地址的請求重定向到 帶有廣告的網頁 。
如果你想要一個替代方案,你可以將你的計算機指向一個公共 DNS 服務器,以它作為一個遞歸解析器。最著名的公共 DNS 服務器之一是谷歌的,它的 IP 地址是 8.8.8.8 和 8.8.4.4。Google 的 DNS 服務往往是 快速的 ,雖然對 Google 提供免費服務的別有用心的動機 有一定的質疑,但他們無法真正從你那里獲得比他們從 Chrome 瀏覽器中獲得的更多信息。Google 有一個頁面,詳細說明了如何 配置你的電腦或路由器 連接到 Google 的 DNS。
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 反射攻擊可以用 DNS 解析器服務器的大量信息淹沒受害者。攻擊者使用偽裝成受害者的 IP 地址來向他們能找到的所有開放的 DNS 解析器請求大量的 DNS 數據。當解析器響應時,受害者會收到大量未請求的 DNS 數據,使其不堪重負。
DNS 緩存投毒
DNS 緩存投毒 可將用戶轉移到惡意網站。攻擊者設法在 DNS 中插入虛假的地址記錄,這樣,當潛在的受害者請求解析其中一個中毒網站的地址時,DNS 就會以另一個由攻擊者控制的網站的 IP 地址作出回應。一旦訪問了這些假網站,受害者可能會被欺騙,泄露密碼或下載了惡意軟件。
DNS 資源耗盡
DNS 資源耗盡 攻擊可以堵塞 ISP 的 DNS 基礎設施,阻止 ISP 的客戶訪問互聯網上的網站。攻擊者注冊一個域名,并通過將受害者的名稱服務器作為域名的權威服務器來實現這種攻擊。因此,如果遞歸解析器不能提供與網站名稱相關的 IP 地址,就會詢問受害者的名稱服務器。攻擊者會對自己注冊的域名產生大量的請求,并查詢不存在的子域名,這就會導致大量的解析請求發送到受害者的名稱服務器,使其不堪重負。
什么是 DNSSec?
DNS 安全擴展是為了使參與 DNS 查詢的各級服務器之間的通信更加安全。它是由負責 DNS 系統的 互聯網名稱與數字地址分配機構(Internet Corporation for Assigned Names and Numbers)(ICANN)設計的。
ICANN 意識到 DNS 頂級、二級和三級目錄服務器之間的通信存在弱點,可能會讓攻擊者劫持查詢。這將允許攻擊者用惡意網站的 IP 地址來響應合法網站的查詢請求。這些網站可能會向用戶上傳惡意軟件,或者進行網絡釣魚和網絡欺騙攻擊。
DNSSec 將通過讓每一級 DNS 服務器對其請求進行數字簽名來解決這個問題,這就保證了終端用戶發送進來的請求不會被攻擊者利用。這就建立了一個信任鏈,這樣在查詢的每一步,請求的完整性都會得到驗證。
此外,DNSSec 可以確定域名是否存在,如果不存在,它就不會讓該欺詐性域名交付給尋求域名解析的無辜請求者。
隨著越來越多的域名被創建,越來越多的設備繼續通過物聯網設備和其他“智能”系統加入網絡,隨著 更多的網站遷移到 IPv6 ,將需要維持一個健康的 DNS 生態系統。大數據和分析的增長也 帶來了對 DNS 管理的更大需求 。
SIGRed:蠕蟲病毒 DNS 漏洞再次出現
最近,隨著 Windows DNS 服務器缺陷的發現,全世界都看到了 DNS 中的弱點可能造成的混亂。這個潛在的安全漏洞被稱為 SIGRed, 它需要一個復雜的攻擊鏈 ,但利用未打補丁的 Windows DNS 服務器,有可能在客戶端安裝和執行任意惡意代碼。而且該漏洞是“可蠕蟲傳播”的,這意味著它可以在沒有人為干預的情況下從計算機傳播到計算機。該漏洞被認為足夠令人震驚,以至于美國聯邦機構 被要求他們在幾天時間內安裝補丁 。
DNS over HTTPS:新的隱私格局
截至本報告撰寫之時,DNS 正處于其歷史上最大的一次轉變的邊緣。谷歌和 Mozilla 共同控制著瀏覽器市場的大部分份額,他們正在鼓勵向 DNS over HTTPS (DoH)的方向發展,在這種情況下,DNS 請求將被已經保護了大多數 Web 流量的 HTTPS 協議加密。在 Chrome 的實現中,瀏覽器會檢查 DNS 服務器是否支持 DoH,如果不支持,則會將 DNS 請求重新路由到谷歌的 8.8.8.8。
這是一個并非沒有爭議的舉動。早在上世紀 80 年代就在 DNS 協議上做了大量早期工作的 Paul Vixie 稱此舉對安全來說是“ 災難 ”:例如,企業 IT 部門將更難監控或引導穿越其網絡的 DoH 流量。不過,Chrome 瀏覽器是無所不在的,DoH 不久就會被默認打開,所以讓我們拭目以待。
責編AJX
-
網絡
+關注
關注
14文章
7517瀏覽量
88628 -
DNS
+關注
關注
0文章
217瀏覽量
19794 -
ip地址
+關注
關注
0文章
294瀏覽量
17006
發布評論請先 登錄
相關推薦
評論