文/單康康 江肖強(qiáng)
混合加密機(jī)制降低計(jì)算復(fù)雜度
文/單康康 江肖強(qiáng)
DNS是一個(gè)分布式的域名解析系統(tǒng),它通過(guò)緩存技術(shù)、樹(shù)狀分層授權(quán)結(jié)構(gòu)實(shí)現(xiàn)域名與IP地址及郵件服務(wù)等的相互轉(zhuǎn)換,但DNS服務(wù)與域名解析服務(wù)器之間采用無(wú)連接的UDP協(xié)議,無(wú)法確認(rèn)數(shù)據(jù)來(lái)源及是否被篡改,存在較大的安全隱患,使得DNS服務(wù)器經(jīng)常遭受各種攻擊。
目前DNS主要存在數(shù)據(jù)包截取、ID猜測(cè)、緩存中毒、DDoS分布式拒絕服務(wù)攻擊、緩存區(qū)漏洞溢出攻擊、域名無(wú)效攻擊、不安全的動(dòng)態(tài)更新和信息泄漏等多種安全威脅。
目前有一些非DNSSEC安全措施能緩解部分DNS安全問(wèn)題:
1)限制ZONE區(qū)域數(shù)據(jù)傳送;
2)服務(wù)地址限制;
3)關(guān)閉域名服務(wù)器遞歸查詢(xún)功能;
4)Split DNS;
5)TSIG機(jī)制。
但這些安全措施僅從局部緩解DNS部分安全問(wèn)題,沒(méi)有對(duì)DNS報(bào)文數(shù)據(jù)進(jìn)行源身份認(rèn)證和數(shù)據(jù)完整性檢查,沒(méi)有從DNS內(nèi)部根本解決安全問(wèn)題。
公鑰機(jī)制
公鑰機(jī)制(非對(duì)稱(chēng)加密算法)是一種強(qiáng)安全性的加密技術(shù),其優(yōu)點(diǎn)是密鑰管理方便,可實(shí)現(xiàn)數(shù)字簽名和身份認(rèn)證等功能。
公鑰機(jī)制首先生成一個(gè)公鑰/私鑰對(duì),公鑰公開(kāi),私鑰自己保留。如典型的RSA公鑰技術(shù)是一種基于大質(zhì)數(shù)的因式分解的分組密碼系統(tǒng),其中的明文和密文都是對(duì)于某個(gè)n的從0到n-l之間的整數(shù),主要是求模運(yùn)算。
圖1為公鑰加密主要流程,其中發(fā)送方使用私鑰對(duì)明文進(jìn)行加密,接收方利用公鑰對(duì)密文進(jìn)行解密得到明文,經(jīng)公鑰加密技術(shù)加密的明文能且只能通過(guò)其對(duì)應(yīng)的另一密鑰進(jìn)行解密。
基于公鑰技術(shù)的DNSSEC
DNSSEC采用公鑰技術(shù)對(duì)DNS信息進(jìn)行數(shù)字簽名,DNSSEC提供兩方面的驗(yàn)證:DNS源發(fā)送方身份認(rèn)證;DNS數(shù)據(jù)包完整性驗(yàn)證。
圖1 公鑰加密流程
圖2 發(fā)送方對(duì)DNS數(shù)據(jù)進(jìn)行數(shù)字簽名
圖3 接收方對(duì)簽名后的DNS數(shù)據(jù)進(jìn)行解密
DNS數(shù)據(jù)認(rèn)證需要用請(qǐng)求者接收的公鑰對(duì)接收的DNS數(shù)據(jù)進(jìn)行解密比對(duì)以保證數(shù)據(jù)完整性與正確性,DNSSEC采用委托信任鏈機(jī)制實(shí)現(xiàn)公鑰的分發(fā)與認(rèn)證,DNSSEC建立一個(gè)信任鏈表,使得ZONE父區(qū)對(duì)子區(qū)的公鑰進(jìn)行認(rèn)證,保證解析請(qǐng)求者本地DNS獲得正確的公鑰。
DNSSEC在原有的DNS域名解析體系上加入公鑰技術(shù)為ZONE區(qū)域產(chǎn)生一個(gè)公鑰/私鑰對(duì)并存放于權(quán)威域名服務(wù)器中,權(quán)威DNS服務(wù)器利用私鑰對(duì)DNS數(shù)據(jù)進(jìn)行數(shù)字簽名,域名解析請(qǐng)求者本地DNS服務(wù)器利用得到的公鑰對(duì)接收到的加密DNS數(shù)據(jù)進(jìn)行解密,如果驗(yàn)證通過(guò)則確定DNS數(shù)據(jù)是由正確的權(quán)威DNS發(fā)送,同時(shí)保證了DNS數(shù)據(jù)傳輸中沒(méi)有被篡改。
圖2為DNS消息發(fā)送方先使用Hash函數(shù)對(duì)要發(fā)送的DNS信息進(jìn)行Hasn計(jì)算得到相應(yīng)的的Hash信息摘要,然后發(fā)送方利用非對(duì)稱(chēng)私鑰對(duì)其數(shù)字簽名,最后將經(jīng)簽名后的摘要數(shù)據(jù)和DNS原數(shù)據(jù)一起發(fā)送至接收方。
圖3為接收方利用先前接收到的非對(duì)稱(chēng)公鑰對(duì)接收到的DNS數(shù)據(jù)包中加密過(guò)的數(shù)據(jù)進(jìn)行解密得到Hash摘要,然后利用與發(fā)送方相同的Hash函數(shù)對(duì)接收到的DNS原始數(shù)據(jù)進(jìn)行Hash計(jì)算,得到Hash摘要,將此Hash摘要與解密后得到的Hash摘要進(jìn)行比對(duì),如果兩者相同則接收發(fā)送方的身份,同時(shí)確認(rèn)接收到的DNS信沒(méi)有被篡改。
在以上通信過(guò)程中,DNS數(shù)據(jù)包發(fā)送前經(jīng)過(guò)了一次Hash計(jì)算和一次非對(duì)稱(chēng)加密計(jì)算,DNS數(shù)據(jù)包在接收后再次進(jìn)行了一次Hash計(jì)算和一次非對(duì)稱(chēng)加密計(jì)算,兩次對(duì)DNS信息的非對(duì)稱(chēng)密鑰計(jì)算在一定程度上加大了雙方CPU計(jì)算時(shí)間和負(fù)載。
對(duì)稱(chēng)加密算法
對(duì)稱(chēng)加密算法在加密和解密中共享同一密鑰,也稱(chēng)為單密鑰算法。它要求發(fā)送方和接收方在安全通信之前共同商定一個(gè)密鑰。對(duì)稱(chēng)加密算法的安全性依賴(lài)于共享密鑰,對(duì)稱(chēng)加密算法的優(yōu)點(diǎn)是算法公開(kāi)、計(jì)算量小、加密速度快、加密效率高。
圖4是典型的對(duì)稱(chēng)加密算法,其中發(fā)送方和接收方使用相同的密鑰K對(duì)信息進(jìn)行加密和解密。
混合加密機(jī)制及其在DNSSEC中的應(yīng)用
在數(shù)據(jù)加密/解密的處理效率方面,對(duì)稱(chēng)加密算法優(yōu)于非對(duì)稱(chēng)加密算法,例如DES對(duì)稱(chēng)加密算法,其密鑰長(zhǎng)度只有56bit,可以用軟硬件實(shí)現(xiàn)高速處理,在軟件實(shí)現(xiàn)時(shí)其加密效率可以達(dá)到幾兆字節(jié)/秒,適合于大量信息的快速加密解密。如RSA算法由于需要進(jìn)行大數(shù)計(jì)算,其加密解密速度比DES慢的多。
在密鑰管理方面,非對(duì)稱(chēng)加密算法優(yōu)于對(duì)稱(chēng)加密算法,例如RSA算法可以將公鑰公開(kāi),只需將自己的私鑰保密,DES算法的密鑰更新較困難。
混合加密機(jī)制利用非對(duì)稱(chēng)加密算法加密對(duì)稱(chēng)加密算法的密鑰,然后利用對(duì)稱(chēng)密鑰對(duì)DNS數(shù)據(jù)進(jìn)行加解密處理,該混合加密機(jī)制結(jié)合了非對(duì)稱(chēng)加密算法密鑰管理的快捷與對(duì)稱(chēng)加密算法加解密效率高、安全性好的優(yōu)點(diǎn),提高了DNSSEC協(xié)議整體執(zhí)行效率。
圖5為混合加密機(jī)制在DNSSEC中的主要流程示意,用戶(hù)發(fā)起對(duì)某個(gè)域名的解析請(qǐng)求后,用戶(hù)本地DNS利用信任鏈得到域名權(quán)威服務(wù)器的公鑰,ZONE所屬權(quán)威DNS利用私鑰加密對(duì)稱(chēng)密鑰后發(fā)送給本地DNS,本地DNS利用之前獲得的非對(duì)稱(chēng)公鑰解密數(shù)據(jù)得到對(duì)稱(chēng)密鑰,然后權(quán)威DNS利用對(duì)稱(chēng)密鑰加密欲傳送的DNS數(shù)據(jù)并發(fā)送給本地DNS,本地DNS利用與發(fā)送方權(quán)威DNS共享的對(duì)稱(chēng)密鑰將接收到的數(shù)據(jù)進(jìn)行解密并將解密后的DNS數(shù)據(jù)返回給請(qǐng)求用戶(hù),用戶(hù)最終得到完整的正確的域名解析結(jié)果。此后本地DNS與權(quán)威DNS之間的域名解析通信就可以利用對(duì)稱(chēng)密鑰快速處理。
圖4 對(duì)稱(chēng)加密算法流程
圖5 混合加密機(jī)制在DNSSEC的應(yīng)用流程
性能分析
在安全性方面,目前來(lái)講對(duì)稱(chēng)加密算法使用長(zhǎng)密鑰時(shí)破解困難,而非對(duì)稱(chēng)加密算法如RSA里的公鑰和私鑰是一對(duì)大素?cái)?shù)函數(shù),從一個(gè)公鑰和密文中破解出明文的難度等價(jià)于分解兩個(gè)大素?cái)?shù)之積,而分解兩個(gè)大素?cái)?shù)之積到目前為止仍然無(wú)解。所以就目前來(lái)說(shuō),基于非對(duì)稱(chēng)加密算法與對(duì)稱(chēng)加密算法的混合加密機(jī)制是比較安全的。
在執(zhí)行效率方面,對(duì)稱(chēng)加密算法時(shí)間復(fù)雜度為0(n),空間復(fù)雜度為0(n)。非對(duì)稱(chēng)加密算法要加密對(duì)稱(chēng)加密算法的密鑰,比如DES算法密鑰采用一個(gè)64bit的偽隨機(jī)數(shù),其時(shí)間復(fù)雜度與空間復(fù)雜度為O(1),因此混合加密算法的時(shí)間復(fù)雜度和空間復(fù)雜度都不超過(guò)O(n)。
因此,基于對(duì)稱(chēng)加密算法與非對(duì)稱(chēng)加密算法的混合加密機(jī)制可以在保證安全性的基礎(chǔ)上提高DNSSEC協(xié)議的整體運(yùn)行效率。
DNSSEC已推出多年,但由于其基于公鑰技術(shù)的技術(shù)方案實(shí)施復(fù)雜度大和對(duì)硬件要求高仍未被廣泛采用,我們將一種結(jié)合對(duì)稱(chēng)加密算法加解密效率高與非對(duì)稱(chēng)加密算法密鑰管理優(yōu)勢(shì)的混合加密機(jī)制引入DNSSEC并進(jìn)行相關(guān)研究,該方案可以在保證安全性的基礎(chǔ)上減小DNSSEC的整體計(jì)算復(fù)雜度,由于對(duì)稱(chēng)加密算法在破解難度上仍低于非對(duì)稱(chēng)加密算法,對(duì)稱(chēng)密鑰一旦被破解則整個(gè)DNSSEC體系將面臨威脅,雙方通信內(nèi)容將被竊聽(tīng)并可能遭篡改,因此在今后的研究工作中可以引入對(duì)稱(chēng)密鑰生存周期概念,雙方使用的對(duì)稱(chēng)密鑰超過(guò)一定期限將被強(qiáng)制更新以保證DNSSEC安全。
(作者單位為浙江大學(xué)信息中心)