淺析基于公鑰技術的DNSSEC
DNSSEC采用公鑰技術對DNS 信息進行數字簽名,DNSSEC提供兩方面的驗證:DNS源發送方身份認證;DNS數據包完整性驗證。
DNS 數據認證需要用請求者接收的公鑰對接收的DNS 數據進行解密比對以保證數據完整性與正確性,DNSSEC采用委托信任鏈機制實現公鑰的分發與認證,DNSSEC 建立一個信任鏈表,使得ZONE 父區對子區的公鑰進行認證,保證解析請求者本地DNS 獲得正確的公鑰。
DNSSEC在原有的DNS域名解析體系上加入公鑰技術為ZONE區域產生一個公鑰/私鑰對并存放于權威域名服務器中,權威DNS服務器利用私鑰對DNS 數據進行數字簽名,域名解析請求者本地DNS 服務器利用得到的公鑰對接收到的加密DNS 數據進行解密,如果驗證通過則確定DNS 數據是由正確的權威DNS發送,同時保證了DNS 數據傳輸中沒有被篡改。
圖 發送方對DNS數據進行數字簽名
圖中為DNS消息發送方先使用Hash函數對要發送的DNS信息進行Hasn 計算得到相應的的Hash 信息摘要,然后發送方利用非對稱私鑰對其數字簽名,最后將經簽名后的摘要數據和DNS原數據一起發送至接收方。
圖 接收方對簽名后的DNS數據進行解密
圖中為接收方利用先前接收到的非對稱公鑰對接收到的DNS數據包中加密過的數據進行解密得到Hash摘要,然后利用與發送方相同的Hash函數對接收到的DNS原始數據進行Hash 計算,得到Hash摘要,將此Hash摘要與解密后得到的Hash摘要進行比對,如果兩者相同則接收發送方的身份,同時確認接收到的DNS信沒有被篡改。
在以上通信過程中,DNS數據包發送前經過了一次Hash計算和一次非對稱加密計算,DNS 數據包在接收后再次進行了一次Hash計算和一次非對稱加密計算,兩次對DNS信息的非對稱密鑰計算在一定程度上加大了雙方CPU 計算時間和負載。
更多相關資料請閱讀:
【編輯推薦】