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

 

 

大家好,我是吳洪聲。

在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服務商,推出中國人自己的網絡加密技術產品,保衛中國人自己的機密信息,隱私安全,填補了我國國產化自主可控安全產品的技術空白和產品空白,某種程度上,這是作爲開拓者的一種使命感。

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

 

 

 

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章