日均請求量1.6萬億次背後,DNSPod的祕密-國密DoH篇

語言: CN / TW / HK

 

大家好,我是吳洪聲。

在2005年的時候,我做了一個和DNS有關的小產品,DNSPod

當時做這樣一個產品的背景很簡單,那還是一個 「南電信北聯通(網通)」的時代,相信很多人都會有印象:那個時候你開啟一個網站,首先看到的並不是網站的首頁,而是一個密密麻麻的「電信1」「電信2」「網通1」「網通2」…,運營商之間互設門檻,最後造成的互訪速度下降的結果還是使用者來買單。而DNSPod,就是用很優雅的方式解決這個問題,自動把使用者分流到對應的伺服器,也是因為這個方式讓很多朋友們認識了DNSPod,認識了我。

對於很多人來說,哪怕是DNSPod的長期使用者,對DNSPod的印象仍舊停留在那個最早期的階段。而實際上,今天的DNSPod,早就已經不是一個單一的域名解析產品,它已經悄然的成長成為了一個日均解析量超過1.6萬億次的巨獸。這期間我們的技術方案經歷了多次重大的升級迭代,包括底層解析技術做了長期和細緻的剖析,不斷的創新與試錯,形成了基於F-Stack/DPDK基礎框架的自研遞迴和權威伺服器架構,不斷探索著效能極限,力求為使用者提供高速穩定的解析體驗

除了技術硬實力的突飛猛進,我一直也在思考探索更多的尚未得到滿足的DNS使用需求。所以在過去的幾年,除了大家熟知的權威套餐的全面升級之外,我們還上線了移動解析(HTTPDNS)、內網解析(Private DNS)、公共解析(Public DNS)智慧流量排程(IGTM)、DoT、DoH等一系列DNS相關產品及服務,經過長達數年的底層模組灰度和打磨,完成了完整的全鏈路DNS方案的建設。

 

新DNSPod的力量,揭祕國密DoH

這個煥然一新的DNSPod到底有哪些優勢?今天主要和大家分享一下我們的國密DoH吧。

DoH全稱DNS over HTTPs,它使用HTTPs來傳輸DNS協議。DoH的安全原理與DoT一樣,使用TLS協議來傳輸DNS協議。TLS協議是目前網際網路最常用的安全加密協議之一,我們訪問HTTPs的安全基礎是基於TLS協議的。相比於之前使用無連線無加密的UDP模式, TLS 本身已經實現了保密性與完整性。

那麼 TLS 協議本身是如何實現完整性與保密性的呢?TLS協議的基本思路是證書+加密機制,雙管齊下保證安全。證書相當於申請了一個合法的身份證,當客戶端向伺服器發起連線的時候,雙方會相互校驗一下身份,伺服器把證書給客戶端,客戶端校驗證書的內容和合法性。

握手協議則是用公鑰加密法:首先,客戶端會向伺服器端索要並驗證公鑰,驗證後雙方會協商生成"對話金鑰",類似於兩個人獨有的摩斯密碼,在此之後, 雙方就會採用對話金鑰進行加密通訊。通俗的理解就是:你要和你的筆友寫信,握手協議是你和你的筆友之間商量出來一套加密通訊的方式,而證書則是保證拿到你寄出去的信的人是你的筆友本人。

DoT在專用埠上通過TLS連線DNS伺服器,而DoH是基於使用HTTP應用程式層協議,將查詢傳送到HTTPS埠上的特定HTTP端點,這裡造成的外界感知就是埠號的不同,DoT的埠號是853,DoH埠號443。

然而因為增加了握手的過程,以及資料增加了加密的步驟,前期協商帶來的時間損耗勢必會帶來傳輸速度變慢的問題。

但是!經過我們團隊的努力,通過對客戶端側改造和優化,採用本地快取,提前預取,連線複用等技術方案,積極優化了整體流程,實現了與原DNS協議相近的時延效果。實際上,這只是DNSPod硬實力的一個小小例證,我們並未止步於此。

 

發展國密產品,當屬時代所需

作為網路安全行業從業者,密碼演算法作為保障資訊保安的核心技術,然而我們國家多個等核心領域卻長期沿用3DES等國際通用的密碼演算法體系。密碼技術能夠直接作用於資料,是保護資料的核心手段,也是保障資訊產業生態安全、得以正常運營的重要基礎,在計算機和網路系統中發揮了不可替代的安全作用。推廣國產密碼技術、應用商用密碼演算法, 是建設我國網路空間安全基礎設施的必要措施之一。基於上述原因,發展國密產品發展,不僅是企業所需,更是時代所需。

於是,我們對通訊訊息中的金鑰協商部分進行國密化(SM2)適配,在節點握手過程裡,採用SM2密碼元件和SM2數字證書,於是DNSPod DoH搖身一變,成為了國密DoH。

基與SM2加密演算法的tls流程分為這樣幾個步驟:

  • 握手請求階段:客戶端向伺服器傳送hello報文,請求伺服器證書;
  • 伺服器端認證階段:伺服器端向客戶端傳送伺服器端證書;
  • 客戶端認證階段:客戶端驗證伺服器證書合法性,發起金鑰交換流程;
  • 完成握手階段:金鑰交換完成,後續資料傳輸基於協商的金鑰加密。

可以看到,和傳統的TLS握手流程的有主要的區別:

  • 在伺服器端認證階段,所述伺服器端採用的是SM2 證書,其中包含SM2公鑰。
  • 在客戶端認證階段,金鑰交換訊息中包含預主金鑰,而預主金鑰採用的伺服器端的SM2公鑰進行加密。
  • 在客戶端認證階段,客戶端曾收到客戶端證書請求,首先向伺服器端傳送客戶端 SM2證書,並且在傳送完金鑰交換訊息後,還發送客戶端SM2證書籤名;伺服器端利用收到的客戶端SM2證書籤名對客戶端進行驗證。
  • 在傳送客戶端SM2證書籤名時,在簽名原文中加入由所述伺服器端SM2證書中公鑰計算得出的雜湊值。

 

 

DNSPod的國密DoH,是國內首個支援國產密碼演算法的DoH產品。實際上,這樣的一個產品需要投入巨大的人力與精力,卻難以短時間變現成為商業上的回報。在我看來,DNSPod作為國內首屈一指的DNS服務商,推出中國人自己的網路加密技術產品,保衛中國人自己的機密資訊,隱私安全,填補了我國國產化自主可控安全產品的技術空白和產品空白,某種程度上,這是作為開拓者的一種使命感。

我也希望未來可以看到更多的企業和開發者,能投身於國密產品領域,一起把這個產業鏈建設起來。

 

 

歡迎點選一鍵訂閱《雲薦大咖》專欄,獲取更多精品內容。

看雲端技術起落,聽大咖指點迷津。