SSL/TLS的原理以及互連網究竟是如何工作的(5)—DNS和他的兄弟

來源:互聯網
上載者:User

標籤:dns   tcpip   端到端   gfw   

我:話說上次好不容易送走了TLS,這次......

DNS:(突然蹦出來)這次當然是我的專場啦!大家好,我叫DNS(Domain Name System,網域名稱系統),我出生於1987年,在我出生之前電腦科學家們是用hosts.txt檔案解決主機名稱與對應IP地址的對應問題的,但隨著互連網中主機數量的增長,hosts檔案變得越來越臃腫,也越來越使用者不友好,我就橫空出世啦!(不過各作業系統中的hosts檔案依舊保留至今,曆史的遺迹啊)
我主要工作在UDP/IP協議之上,實質是一個分布式的公開資料庫系統,儲存著各網站網域名稱和IP地址對應的資料,又稱作RRsets(Resourse Record,資源記錄集合),這裡面網域名稱和對應IP地址形成了映射......

我:D!N!S!為什麼你們這些協議都有著愛打斷別人的話的毛病啊?還有,你不必在這嘰裡呱啦了,我已經讓你出場過兩次了!

DNS:不行,我這次還就不走了,因為:1,你在這大肆嘲笑我,說我傻乎乎的工作在不可靠不需連線的UDP之上從而讓GFW很輕易的就能鑽空子;2,我有一個兄弟你沒有提到,今天我一定要把他介紹給大家,讓大家看看我們DNS家族沒有你想象的那麼弱不經風!

我:關於第一點,我想我說的一點都沒錯:你工作在不可靠的UDP之上,沒有任何安全機制,的確是很傻啊:)

DNS:難道你就沒有想過我為什麼主要工作在UDP之上呢?

我:很簡單,因為連線導向的TCP工作時需要經曆複雜的建立串連和拆除串連的過程,建立一條邏輯上的“專線”(Virtual circuit,虛電路,或者直接叫做Connection)以保證資料轉送的可靠性,而UDP就沒有這些工作步驟了,只管發送不管到達。而你這個懶鬼不肯經曆TCP那些麻煩的工作步驟,所以就選擇了UDP啊......

DNS:住口!我才不是什麼懶鬼呢!你想過沒有,TCP那複雜的串連建立與拆除過程是要消耗相當數量的資源的? 你想過沒有,每一個Resolver(網域名稱解析伺服器,負責和用戶端通訊)和Name Server(網域名稱權威伺服器,儲存有RRsets,負責和Resolver通訊)每天都要面對著極大量的查詢請求?你想過沒有,網域名稱解析是一個非常短暫的過程,如果採用TCP,那麼很多時候串連建立和拆除的過程都比查詢過程要長!

我:......如果採用TCP,那麼每一個相關的伺服器消耗的計算資源都會瘋漲,而1987年伺服器的計算能力怕是連今天的PC都趕不上,再加上串連建立與拆除的時間,使用者體驗會變得極為糟糕的,伺服器維護成本也會暴增......OK,我明白了,對不起,DNS。

DNS:你明白就好。說起來,我沒有任何安全機制很大程度上也是因為效能。不過我的創造者們也的確太欠考慮了,我在互連網中是極為關鍵的一環,沒有任何安全機制的確是說不過去,所以我這回把我的兄弟DNSSEC叫來了。

我:DNSSEC?DNS Security Extension Protocol(DNS安全擴充協議)?

DNSSEC:正是本人。我出生於1999年,可惜迄今為止還是沒有被大規模部署,懶惰的人類啊,一個個拖延症都那麼重!

我:(汗)哈哈,是的,不過言歸正傳吧,上次我在這裡]就提到了幾條應對針對DNS的攻擊的思路,你實現了幾條呢?

DNSSEC:讓我看看......我添加了身份認證機制,還有就是端到端的完整性校正了,我沒有加密,也沒有基於TCP工作......

我:添加了身份認證機制?這樣倒是可以使GFW偽造查詢結果的手段失效了,可是如果說沒有加密的話,還是無法防止真正的查詢結果被篡改啊......

DNSSEC:不,我可以防止真正的查詢結果被篡改的!

我:怎麼說?

DNSSEC:重點在於我實現了“端到端的完整性校正”,聽說過數位簽章嗎?我就是利用了數位簽章的機制進行完整性校正的,從而保證了伺服器傳回的查詢結果沒有被篡改。

我:我不清楚“端到端”是什麼意思。

DNSSEC:所謂的“端到端(end-to-end)”是和“跳板到跳板(hop-to-hop)”對應的,hop-to-hop是指這樣一種機制:在電腦網路中一個路由器p收到了一條分組(massage)m,p可以確定分組m的確來自於合法通訊方路由器q,而且m既沒有被篡改也不是被攻擊者重放的舊訊息(有空我會介紹一下重放攻擊);p和q都是負責儲存轉寄的路由器,起到了資訊跳板的作用,所以叫做“跳板到跳板”。
而end-to-end則是指用戶端可以確認收到的分組的確是來自於目標伺服器的,沒有被篡改也不是重放的訊息;用戶端和目標伺服器都是通訊終端,所以被稱作“端到端”。

我:這樣啊。我看了一下,數位簽章和散列值是用來進行檔案完整性校正的,也能用於查詢結果啊?

DNSSEC:當然可以啦!我的身份認證機制也是通過數位簽章實現的,GFW可出示不了等價的有效數位簽章呢!包括在進行緩衝動態更新的時候,我也可以通過同樣的機制來防止緩衝投毒!

我:聽起來不錯,但你能對付流氓ISP的DNS劫持嗎?

DNSSEC:這......我對付不了,因為DNS是公開的分散式資料庫......

我:“公開的”意思就是沒有許可權限制,任何人都能查看修改資料是吧!好吧,這一點都不奇怪。不過如果伺服器本身就不靠譜,那麼其他安全機制再完善都沒用了。

DNSSEC:不是這樣的!沒有許可權限制和隨便什麼人都能查看修改資料可不是一回事!我的意思是,我可以通過檢驗緩衝中的RRsets的數位簽章來確認伺服器緩衝是否被投毒了,但這前提是伺服器已經運行了一段時間了!第一次啟動並執行時候,我可沒地方去比對數位簽章!

我:看來你離完美很遠呢......

DNSSEC:這個世界上沒有完美!

我:我知道,但你為什麼不加密呢?就你這樣,雖說GFW無法玩偽造和篡改的花招了,但使用者請求內容還是被GFW知道了啊!

DNSSEC:這我也沒辦法,當初我的設計者出於效能考慮放棄了加密了,而且也沒讓我工作在TCP之上。

我:真的應該好好改造你!我還以為以不靠譜著稱的DNS家族終於有了一個例外呢,原來還是個水貨!行了,你們DNS家族的出場機會用光了,回應用程式層工作室去吧!

TLS:下次是不是應該講講我的兄弟DTLS了?

我:對不起,不行!下次是IP的專場!

(IP:終於想起我來了,感動啊!)

SSL/TLS的原理以及互連網究竟是如何工作的(5)—DNS和他的兄弟

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.