相關文章

68c5826a625cc700404332207c2101c3 Google在大約8年前開始提供公共DNS服務,有助於增加一般使用者使用網路、瀏覽網頁的速度,而近期Google也著手導入DNS-over-TLS服務,透過TLS加密技術,將DNS的通訊進行加密保護,讓使用者上網的隱私與安全更加有保障。

8.8.8.8 8週年了

等等,這是什麼繞口令?其實8.8.8.8是Google提供的公共DNS服務,2018年8月正好是它的8週年紀念。或許有些讀者曾經有過把電腦的DNS伺服器改成8.8.8.8,上網速度就變快了的經驗,倒底DNS是什麼呢?

DNS的全名為Domain Name System,中文翻譯為網域名稱系統,簡單地說它的功能如同網路世界的電話簿,能將網址轉譯為IP位址。

IP位址是分配給連上網路的裝置所使用的數字標籤,各裝置之間需要知道彼此的IP位址才能互相溝通。以目前比較普遍的IPv4位址為例,是由32位元的數字組成,會分成4組並以10進位方式書寫,例如「208.80.152.2」,而下一世代的IPv6位址,則是128位元的數字,並以8組16進位方式書寫,例如「2001:0db8:85a3:08d3:1319:8a2e:0370:7344」。

由於人類不容易記住這種長串數字,所以我們才會使用如「https://www.techbang.com」這樣的文字來作為連到網站時所用的網址,並透過DNS將網址轉換為IP位址。

DNS保障更上層樓

根據IETF(Internet Engineering Task Force,網際網路工程任務小組)的RFC 7858備忘錄記載,在2016年5月當時,幾乎所有的DNS流量都未經加密,容易形成資安弱點並降低隱私保障,即便有DNSSEC(Domain Name System Security Extensions,域名系統安全擴充)讓使用者能夠驗證DNS伺服器的資料,避免攻擊者竄改回傳的IP位址,進而引導至惡意網頁,但仍無法避免竊聽的問題。

DNS-over-TLS的概念相當簡單,在客戶端與主機建立連線的過程中,雙方會選用眾所周知的通訊埠,並同意透過TLS對談(Session)來保護DNS連接、傳輸資料時的安全,杜絕攻擊者竊聽的可能。Google也為了確保使用者的安全與隱私,公共DNS服務,導入這個措施。

使用者可以選擇嚴格或寬鬆等2種不同的DNS-over-TLS設定範本,前者的DNS伺服器需要遵循RFC 8310的網域名稱驗證規範,在853埠建立TLS安全連線,否則會讓DNS服務失效。後者則會透過DHCP等方式取得DNS組態設定,並會在無法建立安全連線時,自動改採UDP或TCP與標準的53埠與DNS通訊,具有通用性較高的優點,但缺點是客戶端不會驗證伺服器的真實性,讓安全性打些折扣。

為了提升服務效能,Google也參考了IETF RFC 7766備忘錄,透過使用TLS1.3(可提升連線速度與增加安全性)、TCP快速開啟(TCP Fast Open)、多重查詢管線化(Pipelining of Multiple Queries)、亂序回應等方式,降低使用TLS所造成的效能虛耗。

目前Google已經開放Android 9裝置使用DNS-over-TLS,使用者只要到「設定 -> 網路 -> 進階 -> 私密DNS」中,在伺服器名稱填入「dns.google」並存檔即可,較舊版Android則不支援DNS-over-TLS。

至於其他裝置的使用者,可以手動將IPv4的DNS伺服器設為8.8.8.8、8.8.4.4.,IPv6則為2001:4860:4860::8888、2001:4860:4860::8844,一樣也可以享受DNS-over-TLS的保障。

使用 Facebook 留言

發表回應

謹慎發言,尊重彼此。按此展開留言規則