龐 峰,竇立君
(南京林業大學網絡安全和信息化辦公室,江蘇 南京 210037)
雖然信息技術的發展便捷了人類的工作與生活,但是隨著網絡交互的頻繁性增加,網絡安全形勢變得愈加嚴峻。Web服務系統逐漸增多,使得身份認證系統存在眾多安全隱患,如何保證信息安全成為了關鍵性的問題,訪問控制是確保數據完整性與保密性的主要手段[1]。現如今有效提高密鑰建立過程的通信性能,實現無線局域網中可信網絡的接入,阻止惡意軟件對密鑰進行篡改一直以來都是業內研究的重點。
文獻[2]采用角色和信任度關聯的方法,用角色等級定義的角色權重與角色行為計算出信任度值,進而調節權重值來評價綜合信任度,完成系統的細粒度訪問控制。該方法具有較高的安全性,但沒有對混合云這種情況加以考慮,具有一定的局限性。文獻[3]為了加強新交換機與不相鄰交換機間的密鑰協商過程,生成了新交換機與服務器間的主密鑰,并在預共享密鑰鑒別與協商過程中增加了一種可信環境下的安全關聯方案,用來加強設備平臺的認證,有效增強網絡的安全性。該方法可有效減少密鑰建立過程的計算量,但兼容性較低。文獻[4]通過傳統保準協議中保留字段發送隨機數的方法,結合圖像密碼系統,增加密鑰的暴力破解難度,完成PSK的自動更新,該方法可以滿足網絡安全需求,但密鑰的更新方法較為復雜。
基于以上研究,針對無線局域網安全問題,本文提出關于無線局域網多安全域間共享密鑰生成方法。通過系統標簽假名標識符對通信中的信息進行加密計算,減少存儲空間的占用,并引入隨機數增加攻擊者的破解難度。
無線局域網可分為無轉移、散步和漫游三種移動方式,在移動過程中,常常會伴隨越區切換的情況。移動IP[5]協議推薦用戶使用IPSec協議[6,7],但實際使用過程中IPSec協議并不適合移動IP,因此設計一種多安全域間的共享密鑰協議。當存在跨安全域訪問時,分別針對本地用戶和移動用戶與異地安全域的共享密鑰問題提出解決方案。
協議中將跨域訪問分為本地跨域訪問和移動IP跨域訪問兩種形式。如圖1所示。

圖1 跨域訪問形式
本地跨域訪問是指用戶歸屬本地安全域內,而通信范圍超出本地安全域想訪問其它安全域用戶的情況。移動IP跨域訪問是指無線用戶的移動性會使無線用戶漫游到其它安全域,這種情況需要使用一個IP地址完成對主機的識別。方案在設計過程中不僅要考慮無線局域網的安全性,還要考慮用戶使用的設備與本地異地認證服務器間存在的不對稱性,為解決本地與異地認證服務器的不對稱性,協議中采用對稱密碼體制與公鑰密碼體制相結合的方法。其中本地與異地認證服務器間采用數字簽名交換共享密鑰,用戶與異地認證服務器間采用對稱密碼實現共享密鑰。

X=bxmoda
(1)


(2)
本地認證服務器也會計算出會話密鑰,對接收的消息進行解密處理,同時對簽名進行驗證,然后把變量X和Y的簽名用共享密鑰加密后發送給異地認證服務器,異地認證服務器對消息進行解密處理并驗證簽名,這一整個過程便完成了本地與異地認證服務器間的交互認證工作,同時生成了共享密鑰。
無線用戶與異地安全域共享密鑰過程如下。無線用戶會向本地認證服務器發出訪問異地安全域的請求(包含用戶標識、地址和異地認證服務器的身份標識),當本地認證服務器接收到無線用戶的請求后,通過無線用戶標識和網絡IP地址在密鑰庫中查找該無線用戶的用戶密鑰,同時本地認證服務器隨機產生無線用戶訪問異地認證服務器的會話密鑰與票據,并將票據和用戶密鑰作為應答消息發送給無線用戶。票據公式可表示為
Pvas=CKses[Kvas,ID,IDvas,Dval]
(3)
其中,Kvas表示無線用戶訪問異地認證服務器的會話密鑰;ID是無線用戶標識;IDvas是異地認證服務器標識;Dval是票據有效期。無線用戶收到本地認證服務器發出的應答報文后,根據用戶密鑰進行解密,便完成本地認證服務器對無線用戶的身份認證。然后無線用戶向異地認證服務器出示票據,證明其具有訪問異地認證服務器的權限,并通過從本地認證服務器與異地認證服務器的會話密鑰生成驗證碼,驗證碼用公式可表示為
Vcode=CKvas[ID,IDvas,N3]
(4)
其中,N3表示隨機數。異地認證服務器通過會話密鑰對票據進行解密處理,通過解密驗證碼的內容驗證無線用戶的身份,若解密驗證碼一致,進而驗證時間戳,通過會話密鑰加密后作為應答報文發送給無線用戶。
家鄉域認證服務器和外地域認證服務器間的共享密鑰采用數字簽名的交換方法實現,移動中的移動主機與外地域認證服務器間的共享密鑰過程如下。
移動中的移動主機會向外地域認證服務器提交注冊請求(包含移動注意身份標識、家鄉地址、轉交地址等);當外地域認證服務器收到注冊請求后,由于不能立即確認移動主機身份,會將該請求附上自己的身份標識與隨機數轉發給家鄉域認證服務器;家鄉域認證服務器收到附加的請求后,根據移動主機的身份標識和家鄉地址查找該移動主機的用戶密鑰,生成移動主機與外地域認證服務器間的隨機會話密鑰和訪問票據,并用移動主機的用戶密鑰加密后作為應答報文,這種方法處理后的報文具有唯一性,只能真正的移動主機才能解密該應答報文,以此驗證移動主機身份的正確性。
當移動主機收到外地域認證服務器轉發的報文回應后,通過自己的用戶密鑰進行解密并出示附上認證碼的票據。外地域認證服務器對票據進行解密處理,得到與移動主機的會話密鑰,然后通過會話密鑰解密認證碼,若驗證碼一致,則用戶主機為合法用戶。
一個完整的通信識別系統由標簽、讀寫器和后臺數據庫三部分組成。系統通信過程中,讀寫器與后臺數據庫間通過安全的有限信道方式進行通信,而標簽與讀寫器間通過不安全的無線信道方式進行通信[8,9]。動態的共享密鑰生成前,標簽中包含標簽的標識符與標簽的假名兩種信息。讀寫器中包含第i個標簽的標識符與第i個標簽的假名兩種信息。可將密鑰生成過程分為3種情況討論。
讀寫器向標簽發出通信請求,標簽通過計算將消息F發送給讀寫器。消息F用公式可表示為
F=IDr⊕IDSl
(5)
其中,IDr表示無線系統中標簽標識符的右半部分;IDSl表示系統中標簽假名的左半部分。讀寫器接收到消息后,會查找存放在系統中的第i個標簽的標識符與第i個標簽的假名,判斷是否與消息F一致。若未找到,則停止查找;若找到,生成隨機數g,進一步計算消息G、H和共享密鑰,并將它們傳給標簽。消息G和H用公式可表示為

(6)
其中,IDSr表示標簽假名的右半部分;IDl表示標簽標識符的左半部分。標簽接收到消息后,對消息G和H進行驗證,若驗證通過,則計算共享密鑰Ksha;否則停止計算。共享密鑰用公式可表示為
Ksha=(g⊕ID)⊕(g⊕IDS)
(7)
其中,ID表示標簽標識符;IDS表示尋找的那個標簽的假名。
單標簽共享密鑰的生成算法主要應用在單個讀寫器與單個標簽進行通信時,生成唯一共享密鑰的情況下。因為這種算法采用動態生成密鑰的方式,所以不存在對密鑰托管的現象,可以較好地滿足用戶自定義密鑰的要求。在計算過程中采用“與”和“異或”的運算方法,不僅減少了存儲空間,還大大降低了計算量。
多標簽的密鑰生成算法與單標簽密鑰生成算法的過程類似。不同點在于:當不同標簽接收到讀寫器發送消息后,共享密鑰的生成過程需要根據不同標簽的標識符和假名信息生成屬于自身的密鑰,而其它過程一致,因此不一一闡述。
讀寫器向標簽組發出廣播通信請求后,系統中的第i個標簽通過計算將第i個消息Ji發送給讀寫器。消息Ji用公式可表示為
Ji=IDi_r⊕IDSi_l
(8)
其中,IDi_r表示第i個標簽標識符的右半部分;IDSi_l表示第i個標簽假名的左半部分。
后臺數據庫查找存放在系統中信息是否與消息Ji一致。若不一致,說明有未做出反應的標簽,發送第二次請求;若一致,生成隨機數r,進一步計算唯一的共享密鑰Ki_sha,并生成密鑰因子αi_sha,將密鑰因子發送給所有標簽。共享密鑰和密鑰因子可表示為

(9)
其中,IDSi_r表示第i個標簽假名的右半部分。第i個標簽接收到消息后,將自身的標號與密鑰因子進行對比,若不相等,則停止響應;若相等,進一步計算唯一的共享密鑰Ki_sha,共享密鑰用公式可表示為
Ki_sha=αi_sha⊕IDSi_r
(10)
算法的安全性一般從兩方面進行分析。一方面,對算法抽象處理,采用邏輯化形式進行分析。另一方面,通過攻擊方式對算法安全性進行分析。攻擊方式主要分為包含監聽的被動攻擊和包含異步、重放、追蹤等攻擊方式的主動攻擊兩種形式。攻擊者通過監聽等方式獲得用戶通信消息的形式稱為被動攻擊,被動攻擊一般是發生在用戶不知曉的情況下。因此為確保通信的安全性,共享密鑰的算法需要抵抗住攻擊者的被動攻擊,即攻擊者無法破解通信過程中有用的隱私信息。同時面對攻擊者發出的主動攻擊時,通信實體通過雙向認證可以鑒別出真偽。
對單一和多標簽密鑰算法進行被動與主動攻擊分析。攻擊者通過監聽方式獲得通信中的消息時,采用本文生成的密鑰算法,攻擊者并不能獲得想要的信息。主要原因:首先攻擊者不知道系統中標簽的標識符和假名,從而無法根據消息逆推出共享密鑰。其次在消息計算過程中,攻擊者所獲得的消息至少有兩個變量是無法判斷的。再次共享密鑰計算過程中產生的隨機數增加了破解難度。最后加密過程中涉及的參數值,在通信過程中沒有明確規定過。因此基于以上分析,攻擊者無法對單一和多標簽密鑰進行破解。
對群組標簽密鑰算法進行被動與主動攻擊分析。攻擊者通過監聽方式獲得通信中一個完整的消息時,采用本文生成的群組標簽密鑰生成算法,即使攻擊者可獲得消息和密鑰因子,也無法獲得想要的信息。主要原因:首先對第i個消息進行加密過程中,有兩個變量攻擊者無法獲得。其次密鑰因子僅是共享密鑰的一個因子,由于密鑰因子計算出的共享密鑰需要各個標簽對應的假名,因此即使攻擊者獲得該密鑰因子,也無任何用處。共享密鑰計算過程中加入的隨機數,使共享密鑰前后兩次計算的數值并不一樣,增加了破解難度。最后共享密鑰計算過程中的各個標簽假名,攻擊者無法獲得。因此基于以上分析,攻擊者無法對多群組標簽密鑰算法進行破解。
將本文算法與其它算法進行安全性分析,結果如表1所示。

表1 安全性比較結果
從表中可以看出,采用本文方法生成的密鑰可以對被動攻擊與主動攻擊進行很好地預防,大大增加了攻擊者的破解難度,具有較高的安全性能。
本文選擇單標簽密鑰算法為例進行性能分析,為了方便統計,“異或”運算用⊕表示,“與”運算用∧表示,移位運算用R表示,系統標簽的標識符和假名長度均為L。將本文算法與其它算法進行性能分析,結果如表2所示。

表2 性能比較結果
從表中可以看出,綜合三方面的性能分析,采用本文方法的計算量雖然較多,但與其它三種算法相比,在存儲空間和通信量方面有了明顯地改善,可以解決其它算法中存在的密鑰復雜度與計算缺陷問題。
本文設計的關于無線局域網多安全域間共享密鑰的生成方法主要由認證服務器與共享密鑰組成,采用對稱密碼體制與帶數字簽名的方法解決認證服務器間的不對稱性。為了避免密鑰托管問題,并滿足用戶自定義共享密鑰的需求,采取動態無線生成共享密鑰機制,按位運算對密鑰信息進行加密處理,減少整個算法的計算量,同時為了增加攻擊者的破解難度,在通信消息傳輸過程中混入隨機數,使前后消息發生改變,設計出三種不同場合的共享密鑰生成算法。同時對算法的安全性和性能進行分析比較,結果表明,本文算法能夠適應無線局域網多安全域間通信,并且具有較高的安全性,大大節省了存儲空間。