龐 峰,竇立君
(南京林業(yè)大學(xué)網(wǎng)絡(luò)安全和信息化辦公室,江蘇 南京 210037)
雖然信息技術(shù)的發(fā)展便捷了人類的工作與生活,但是隨著網(wǎng)絡(luò)交互的頻繁性增加,網(wǎng)絡(luò)安全形勢(shì)變得愈加嚴(yán)峻。Web服務(wù)系統(tǒng)逐漸增多,使得身份認(rèn)證系統(tǒng)存在眾多安全隱患,如何保證信息安全成為了關(guān)鍵性的問(wèn)題,訪問(wèn)控制是確保數(shù)據(jù)完整性與保密性的主要手段[1]?,F(xiàn)如今有效提高密鑰建立過(guò)程的通信性能,實(shí)現(xiàn)無(wú)線局域網(wǎng)中可信網(wǎng)絡(luò)的接入,阻止惡意軟件對(duì)密鑰進(jìn)行篡改一直以來(lái)都是業(yè)內(nèi)研究的重點(diǎn)。
文獻(xiàn)[2]采用角色和信任度關(guān)聯(lián)的方法,用角色等級(jí)定義的角色權(quán)重與角色行為計(jì)算出信任度值,進(jìn)而調(diào)節(jié)權(quán)重值來(lái)評(píng)價(jià)綜合信任度,完成系統(tǒng)的細(xì)粒度訪問(wèn)控制。該方法具有較高的安全性,但沒(méi)有對(duì)混合云這種情況加以考慮,具有一定的局限性。文獻(xiàn)[3]為了加強(qiáng)新交換機(jī)與不相鄰交換機(jī)間的密鑰協(xié)商過(guò)程,生成了新交換機(jī)與服務(wù)器間的主密鑰,并在預(yù)共享密鑰鑒別與協(xié)商過(guò)程中增加了一種可信環(huán)境下的安全關(guān)聯(lián)方案,用來(lái)加強(qiáng)設(shè)備平臺(tái)的認(rèn)證,有效增強(qiáng)網(wǎng)絡(luò)的安全性。該方法可有效減少密鑰建立過(guò)程的計(jì)算量,但兼容性較低。文獻(xiàn)[4]通過(guò)傳統(tǒng)保準(zhǔn)協(xié)議中保留字段發(fā)送隨機(jī)數(shù)的方法,結(jié)合圖像密碼系統(tǒng),增加密鑰的暴力破解難度,完成PSK的自動(dòng)更新,該方法可以滿足網(wǎng)絡(luò)安全需求,但密鑰的更新方法較為復(fù)雜。
基于以上研究,針對(duì)無(wú)線局域網(wǎng)安全問(wèn)題,本文提出關(guān)于無(wú)線局域網(wǎng)多安全域間共享密鑰生成方法。通過(guò)系統(tǒng)標(biāo)簽假名標(biāo)識(shí)符對(duì)通信中的信息進(jìn)行加密計(jì)算,減少存儲(chǔ)空間的占用,并引入隨機(jī)數(shù)增加攻擊者的破解難度。
無(wú)線局域網(wǎng)可分為無(wú)轉(zhuǎn)移、散步和漫游三種移動(dòng)方式,在移動(dòng)過(guò)程中,常常會(huì)伴隨越區(qū)切換的情況。移動(dòng)IP[5]協(xié)議推薦用戶使用IPSec協(xié)議[6,7],但實(shí)際使用過(guò)程中IPSec協(xié)議并不適合移動(dòng)IP,因此設(shè)計(jì)一種多安全域間的共享密鑰協(xié)議。當(dāng)存在跨安全域訪問(wèn)時(shí),分別針對(duì)本地用戶和移動(dòng)用戶與異地安全域的共享密鑰問(wèn)題提出解決方案。
協(xié)議中將跨域訪問(wèn)分為本地跨域訪問(wèn)和移動(dòng)IP跨域訪問(wèn)兩種形式。如圖1所示。
圖1 跨域訪問(wèn)形式
本地跨域訪問(wèn)是指用戶歸屬本地安全域內(nèi),而通信范圍超出本地安全域想訪問(wèn)其它安全域用戶的情況。移動(dòng)IP跨域訪問(wèn)是指無(wú)線用戶的移動(dòng)性會(huì)使無(wú)線用戶漫游到其它安全域,這種情況需要使用一個(gè)IP地址完成對(duì)主機(jī)的識(shí)別。方案在設(shè)計(jì)過(guò)程中不僅要考慮無(wú)線局域網(wǎng)的安全性,還要考慮用戶使用的設(shè)備與本地異地認(rèn)證服務(wù)器間存在的不對(duì)稱性,為解決本地與異地認(rèn)證服務(wù)器的不對(duì)稱性,協(xié)議中采用對(duì)稱密碼體制與公鑰密碼體制相結(jié)合的方法。其中本地與異地認(rèn)證服務(wù)器間采用數(shù)字簽名交換共享密鑰,用戶與異地認(rèn)證服務(wù)器間采用對(duì)稱密碼實(shí)現(xiàn)共享密鑰。
X=bxmoda
(1)
(2)
本地認(rèn)證服務(wù)器也會(huì)計(jì)算出會(huì)話密鑰,對(duì)接收的消息進(jìn)行解密處理,同時(shí)對(duì)簽名進(jìn)行驗(yàn)證,然后把變量X和Y的簽名用共享密鑰加密后發(fā)送給異地認(rèn)證服務(wù)器,異地認(rèn)證服務(wù)器對(duì)消息進(jìn)行解密處理并驗(yàn)證簽名,這一整個(gè)過(guò)程便完成了本地與異地認(rèn)證服務(wù)器間的交互認(rèn)證工作,同時(shí)生成了共享密鑰。
無(wú)線用戶與異地安全域共享密鑰過(guò)程如下。無(wú)線用戶會(huì)向本地認(rèn)證服務(wù)器發(fā)出訪問(wèn)異地安全域的請(qǐng)求(包含用戶標(biāo)識(shí)、地址和異地認(rèn)證服務(wù)器的身份標(biāo)識(shí)),當(dāng)本地認(rèn)證服務(wù)器接收到無(wú)線用戶的請(qǐng)求后,通過(guò)無(wú)線用戶標(biāo)識(shí)和網(wǎng)絡(luò)IP地址在密鑰庫(kù)中查找該無(wú)線用戶的用戶密鑰,同時(shí)本地認(rèn)證服務(wù)器隨機(jī)產(chǎn)生無(wú)線用戶訪問(wèn)異地認(rèn)證服務(wù)器的會(huì)話密鑰與票據(jù),并將票據(jù)和用戶密鑰作為應(yīng)答消息發(fā)送給無(wú)線用戶。票據(jù)公式可表示為
Pvas=CKses[Kvas,ID,IDvas,Dval]
(3)
其中,Kvas表示無(wú)線用戶訪問(wèn)異地認(rèn)證服務(wù)器的會(huì)話密鑰;ID是無(wú)線用戶標(biāo)識(shí);IDvas是異地認(rèn)證服務(wù)器標(biāo)識(shí);Dval是票據(jù)有效期。無(wú)線用戶收到本地認(rèn)證服務(wù)器發(fā)出的應(yīng)答報(bào)文后,根據(jù)用戶密鑰進(jìn)行解密,便完成本地認(rèn)證服務(wù)器對(duì)無(wú)線用戶的身份認(rèn)證。然后無(wú)線用戶向異地認(rèn)證服務(wù)器出示票據(jù),證明其具有訪問(wèn)異地認(rèn)證服務(wù)器的權(quán)限,并通過(guò)從本地認(rèn)證服務(wù)器與異地認(rèn)證服務(wù)器的會(huì)話密鑰生成驗(yàn)證碼,驗(yàn)證碼用公式可表示為
Vcode=CKvas[ID,IDvas,N3]
(4)
其中,N3表示隨機(jī)數(shù)。異地認(rèn)證服務(wù)器通過(guò)會(huì)話密鑰對(duì)票據(jù)進(jìn)行解密處理,通過(guò)解密驗(yàn)證碼的內(nèi)容驗(yàn)證無(wú)線用戶的身份,若解密驗(yàn)證碼一致,進(jìn)而驗(yàn)證時(shí)間戳,通過(guò)會(huì)話密鑰加密后作為應(yīng)答報(bào)文發(fā)送給無(wú)線用戶。
家鄉(xiāng)域認(rèn)證服務(wù)器和外地域認(rèn)證服務(wù)器間的共享密鑰采用數(shù)字簽名的交換方法實(shí)現(xiàn),移動(dòng)中的移動(dòng)主機(jī)與外地域認(rèn)證服務(wù)器間的共享密鑰過(guò)程如下。
移動(dòng)中的移動(dòng)主機(jī)會(huì)向外地域認(rèn)證服務(wù)器提交注冊(cè)請(qǐng)求(包含移動(dòng)注意身份標(biāo)識(shí)、家鄉(xiāng)地址、轉(zhuǎn)交地址等);當(dāng)外地域認(rèn)證服務(wù)器收到注冊(cè)請(qǐng)求后,由于不能立即確認(rèn)移動(dòng)主機(jī)身份,會(huì)將該請(qǐng)求附上自己的身份標(biāo)識(shí)與隨機(jī)數(shù)轉(zhuǎn)發(fā)給家鄉(xiāng)域認(rèn)證服務(wù)器;家鄉(xiāng)域認(rèn)證服務(wù)器收到附加的請(qǐng)求后,根據(jù)移動(dòng)主機(jī)的身份標(biāo)識(shí)和家鄉(xiāng)地址查找該移動(dòng)主機(jī)的用戶密鑰,生成移動(dòng)主機(jī)與外地域認(rèn)證服務(wù)器間的隨機(jī)會(huì)話密鑰和訪問(wèn)票據(jù),并用移動(dòng)主機(jī)的用戶密鑰加密后作為應(yīng)答報(bào)文,這種方法處理后的報(bào)文具有唯一性,只能真正的移動(dòng)主機(jī)才能解密該應(yīng)答報(bào)文,以此驗(yàn)證移動(dòng)主機(jī)身份的正確性。
當(dāng)移動(dòng)主機(jī)收到外地域認(rèn)證服務(wù)器轉(zhuǎn)發(fā)的報(bào)文回應(yīng)后,通過(guò)自己的用戶密鑰進(jìn)行解密并出示附上認(rèn)證碼的票據(jù)。外地域認(rèn)證服務(wù)器對(duì)票據(jù)進(jìn)行解密處理,得到與移動(dòng)主機(jī)的會(huì)話密鑰,然后通過(guò)會(huì)話密鑰解密認(rèn)證碼,若驗(yàn)證碼一致,則用戶主機(jī)為合法用戶。
一個(gè)完整的通信識(shí)別系統(tǒng)由標(biāo)簽、讀寫(xiě)器和后臺(tái)數(shù)據(jù)庫(kù)三部分組成。系統(tǒng)通信過(guò)程中,讀寫(xiě)器與后臺(tái)數(shù)據(jù)庫(kù)間通過(guò)安全的有限信道方式進(jìn)行通信,而標(biāo)簽與讀寫(xiě)器間通過(guò)不安全的無(wú)線信道方式進(jìn)行通信[8,9]。動(dòng)態(tài)的共享密鑰生成前,標(biāo)簽中包含標(biāo)簽的標(biāo)識(shí)符與標(biāo)簽的假名兩種信息。讀寫(xiě)器中包含第i個(gè)標(biāo)簽的標(biāo)識(shí)符與第i個(gè)標(biāo)簽的假名兩種信息??蓪⒚荑€生成過(guò)程分為3種情況討論。
讀寫(xiě)器向標(biāo)簽發(fā)出通信請(qǐng)求,標(biāo)簽通過(guò)計(jì)算將消息F發(fā)送給讀寫(xiě)器。消息F用公式可表示為
F=IDr⊕IDSl
(5)
其中,IDr表示無(wú)線系統(tǒng)中標(biāo)簽標(biāo)識(shí)符的右半部分;IDSl表示系統(tǒng)中標(biāo)簽假名的左半部分。讀寫(xiě)器接收到消息后,會(huì)查找存放在系統(tǒng)中的第i個(gè)標(biāo)簽的標(biāo)識(shí)符與第i個(gè)標(biāo)簽的假名,判斷是否與消息F一致。若未找到,則停止查找;若找到,生成隨機(jī)數(shù)g,進(jìn)一步計(jì)算消息G、H和共享密鑰,并將它們傳給標(biāo)簽。消息G和H用公式可表示為
(6)
其中,IDSr表示標(biāo)簽假名的右半部分;IDl表示標(biāo)簽標(biāo)識(shí)符的左半部分。標(biāo)簽接收到消息后,對(duì)消息G和H進(jìn)行驗(yàn)證,若驗(yàn)證通過(guò),則計(jì)算共享密鑰Ksha;否則停止計(jì)算。共享密鑰用公式可表示為
Ksha=(g⊕ID)⊕(g⊕IDS)
(7)
其中,ID表示標(biāo)簽標(biāo)識(shí)符;IDS表示尋找的那個(gè)標(biāo)簽的假名。
單標(biāo)簽共享密鑰的生成算法主要應(yīng)用在單個(gè)讀寫(xiě)器與單個(gè)標(biāo)簽進(jìn)行通信時(shí),生成唯一共享密鑰的情況下。因?yàn)檫@種算法采用動(dòng)態(tài)生成密鑰的方式,所以不存在對(duì)密鑰托管的現(xiàn)象,可以較好地滿足用戶自定義密鑰的要求。在計(jì)算過(guò)程中采用“與”和“異或”的運(yùn)算方法,不僅減少了存儲(chǔ)空間,還大大降低了計(jì)算量。
多標(biāo)簽的密鑰生成算法與單標(biāo)簽密鑰生成算法的過(guò)程類似。不同點(diǎn)在于:當(dāng)不同標(biāo)簽接收到讀寫(xiě)器發(fā)送消息后,共享密鑰的生成過(guò)程需要根據(jù)不同標(biāo)簽的標(biāo)識(shí)符和假名信息生成屬于自身的密鑰,而其它過(guò)程一致,因此不一一闡述。
讀寫(xiě)器向標(biāo)簽組發(fā)出廣播通信請(qǐng)求后,系統(tǒng)中的第i個(gè)標(biāo)簽通過(guò)計(jì)算將第i個(gè)消息Ji發(fā)送給讀寫(xiě)器。消息Ji用公式可表示為
Ji=IDi_r⊕IDSi_l
(8)
其中,IDi_r表示第i個(gè)標(biāo)簽標(biāo)識(shí)符的右半部分;IDSi_l表示第i個(gè)標(biāo)簽假名的左半部分。
后臺(tái)數(shù)據(jù)庫(kù)查找存放在系統(tǒng)中信息是否與消息Ji一致。若不一致,說(shuō)明有未做出反應(yīng)的標(biāo)簽,發(fā)送第二次請(qǐng)求;若一致,生成隨機(jī)數(shù)r,進(jìn)一步計(jì)算唯一的共享密鑰Ki_sha,并生成密鑰因子αi_sha,將密鑰因子發(fā)送給所有標(biāo)簽。共享密鑰和密鑰因子可表示為
(9)
其中,IDSi_r表示第i個(gè)標(biāo)簽假名的右半部分。第i個(gè)標(biāo)簽接收到消息后,將自身的標(biāo)號(hào)與密鑰因子進(jìn)行對(duì)比,若不相等,則停止響應(yīng);若相等,進(jìn)一步計(jì)算唯一的共享密鑰Ki_sha,共享密鑰用公式可表示為
Ki_sha=αi_sha⊕IDSi_r
(10)
算法的安全性一般從兩方面進(jìn)行分析。一方面,對(duì)算法抽象處理,采用邏輯化形式進(jìn)行分析。另一方面,通過(guò)攻擊方式對(duì)算法安全性進(jìn)行分析。攻擊方式主要分為包含監(jiān)聽(tīng)的被動(dòng)攻擊和包含異步、重放、追蹤等攻擊方式的主動(dòng)攻擊兩種形式。攻擊者通過(guò)監(jiān)聽(tīng)等方式獲得用戶通信消息的形式稱為被動(dòng)攻擊,被動(dòng)攻擊一般是發(fā)生在用戶不知曉的情況下。因此為確保通信的安全性,共享密鑰的算法需要抵抗住攻擊者的被動(dòng)攻擊,即攻擊者無(wú)法破解通信過(guò)程中有用的隱私信息。同時(shí)面對(duì)攻擊者發(fā)出的主動(dòng)攻擊時(shí),通信實(shí)體通過(guò)雙向認(rèn)證可以鑒別出真?zhèn)巍?/p>
對(duì)單一和多標(biāo)簽密鑰算法進(jìn)行被動(dòng)與主動(dòng)攻擊分析。攻擊者通過(guò)監(jiān)聽(tīng)方式獲得通信中的消息時(shí),采用本文生成的密鑰算法,攻擊者并不能獲得想要的信息。主要原因:首先攻擊者不知道系統(tǒng)中標(biāo)簽的標(biāo)識(shí)符和假名,從而無(wú)法根據(jù)消息逆推出共享密鑰。其次在消息計(jì)算過(guò)程中,攻擊者所獲得的消息至少有兩個(gè)變量是無(wú)法判斷的。再次共享密鑰計(jì)算過(guò)程中產(chǎn)生的隨機(jī)數(shù)增加了破解難度。最后加密過(guò)程中涉及的參數(shù)值,在通信過(guò)程中沒(méi)有明確規(guī)定過(guò)。因此基于以上分析,攻擊者無(wú)法對(duì)單一和多標(biāo)簽密鑰進(jìn)行破解。
對(duì)群組標(biāo)簽密鑰算法進(jìn)行被動(dòng)與主動(dòng)攻擊分析。攻擊者通過(guò)監(jiān)聽(tīng)方式獲得通信中一個(gè)完整的消息時(shí),采用本文生成的群組標(biāo)簽密鑰生成算法,即使攻擊者可獲得消息和密鑰因子,也無(wú)法獲得想要的信息。主要原因:首先對(duì)第i個(gè)消息進(jìn)行加密過(guò)程中,有兩個(gè)變量攻擊者無(wú)法獲得。其次密鑰因子僅是共享密鑰的一個(gè)因子,由于密鑰因子計(jì)算出的共享密鑰需要各個(gè)標(biāo)簽對(duì)應(yīng)的假名,因此即使攻擊者獲得該密鑰因子,也無(wú)任何用處。共享密鑰計(jì)算過(guò)程中加入的隨機(jī)數(shù),使共享密鑰前后兩次計(jì)算的數(shù)值并不一樣,增加了破解難度。最后共享密鑰計(jì)算過(guò)程中的各個(gè)標(biāo)簽假名,攻擊者無(wú)法獲得。因此基于以上分析,攻擊者無(wú)法對(duì)多群組標(biāo)簽密鑰算法進(jìn)行破解。
將本文算法與其它算法進(jìn)行安全性分析,結(jié)果如表1所示。
表1 安全性比較結(jié)果
從表中可以看出,采用本文方法生成的密鑰可以對(duì)被動(dòng)攻擊與主動(dòng)攻擊進(jìn)行很好地預(yù)防,大大增加了攻擊者的破解難度,具有較高的安全性能。
本文選擇單標(biāo)簽密鑰算法為例進(jìn)行性能分析,為了方便統(tǒng)計(jì),“異或”運(yùn)算用⊕表示,“與”運(yùn)算用∧表示,移位運(yùn)算用R表示,系統(tǒng)標(biāo)簽的標(biāo)識(shí)符和假名長(zhǎng)度均為L(zhǎng)。將本文算法與其它算法進(jìn)行性能分析,結(jié)果如表2所示。
表2 性能比較結(jié)果
從表中可以看出,綜合三方面的性能分析,采用本文方法的計(jì)算量雖然較多,但與其它三種算法相比,在存儲(chǔ)空間和通信量方面有了明顯地改善,可以解決其它算法中存在的密鑰復(fù)雜度與計(jì)算缺陷問(wèn)題。
本文設(shè)計(jì)的關(guān)于無(wú)線局域網(wǎng)多安全域間共享密鑰的生成方法主要由認(rèn)證服務(wù)器與共享密鑰組成,采用對(duì)稱密碼體制與帶數(shù)字簽名的方法解決認(rèn)證服務(wù)器間的不對(duì)稱性。為了避免密鑰托管問(wèn)題,并滿足用戶自定義共享密鑰的需求,采取動(dòng)態(tài)無(wú)線生成共享密鑰機(jī)制,按位運(yùn)算對(duì)密鑰信息進(jìn)行加密處理,減少整個(gè)算法的計(jì)算量,同時(shí)為了增加攻擊者的破解難度,在通信消息傳輸過(guò)程中混入隨機(jī)數(shù),使前后消息發(fā)生改變,設(shè)計(jì)出三種不同場(chǎng)合的共享密鑰生成算法。同時(shí)對(duì)算法的安全性和性能進(jìn)行分析比較,結(jié)果表明,本文算法能夠適應(yīng)無(wú)線局域網(wǎng)多安全域間通信,并且具有較高的安全性,大大節(jié)省了存儲(chǔ)空間。