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