??? 摘 要:? 隨著移動設(shè)備" title="移動設(shè)備">移動設(shè)備與有線通信網(wǎng)之間數(shù)據(jù)交互的需求不斷增加,移動增值服務(wù)中數(shù)據(jù)安全的重要性也在不斷提高。提出了一種移動數(shù)據(jù)通信的無條件安全加密方案,設(shè)計中既滿足了移動平臺的有限計算和網(wǎng)絡(luò)性能,又具有良好的安全性。最后給出了方案的性能分析和實驗結(jié)果。
??? 關(guān)鍵詞:? 移動數(shù)據(jù)通信; 無條件安全; 密鑰發(fā)布
?
??? 隨著移動設(shè)備的用途由單一的語音通信向語音與數(shù)據(jù)通信相結(jié)合轉(zhuǎn)變,移動增值服務(wù)平臺中移動設(shè)備或便攜設(shè)備之間以及移動設(shè)備與有線數(shù)據(jù)通信網(wǎng)之間的數(shù)據(jù)交換越來越頻繁,移動通信系統(tǒng)" title="移動通信系統(tǒng)">移動通信系統(tǒng)中的安全問題正在受到國際上高度的重視和廣泛的研究。但由于受到移動設(shè)備計算性能的限制和目前無線通信網(wǎng)絡(luò)的帶寬限制,將有線網(wǎng)絡(luò)和計算機平臺上使用的信息加密算法直接應(yīng)用于移動通信系統(tǒng)是不實際的。通過對已有的信息加密體制的研究和移動平臺的開發(fā)實踐,針對移動通信系統(tǒng)的數(shù)據(jù)交換,本文提出一種應(yīng)用層的移動數(shù)據(jù)傳輸無條件安全加密方案。它在執(zhí)行效率上有相當(dāng)?shù)膬?yōu)勢,并能滿足系統(tǒng)的安全要求。
1 移動數(shù)據(jù)通信的無條件安全加密方案
1.1 狀態(tài)機制
??? 在移動設(shè)備與中心服務(wù)器的交互中,出于通用性和擴展性的考慮,通常采用HTTP通信方式。但由于HTTP是無狀態(tài)協(xié)議,為滿足數(shù)據(jù)交互的需要,必須引入一種用以在客戶端" title="客戶端">客戶端與服務(wù)器之間保持狀態(tài)的解決方案。為了盡可能地減輕客戶端工作量,筆者使用基于服務(wù)器端的Session機制,即在中心服務(wù)器上,使用一種類似散列表的結(jié)構(gòu)保存信息。
??? 當(dāng)程序需要為某個客戶端的請求創(chuàng)建一個Session時,服務(wù)器首先檢查該客戶端提交的表單里是否已包含一個Session標(biāo)識,即Session ID,并檢索服務(wù)器上是否存有對應(yīng)的Session,如有則說明已經(jīng)為此客戶端創(chuàng)建過Session,且可用(未過期),服務(wù)器就按照Session ID將對應(yīng)的Session檢索出來使用;如不符合則返回錯誤信息;如果客戶端請求不包含Session ID,則為此客戶端創(chuàng)建一個Session,并且生成一個與此Session相關(guān)聯(lián)的Session ID,在本次響應(yīng)中返回給客戶端保存。
對于每個特定移動用戶而言,由于其對數(shù)據(jù)交換的要求往往集中在一定時間之內(nèi),出于安全性和節(jié)約資源的考慮,可在服務(wù)器腳本中設(shè)置相對較短的Session在無響應(yīng)狀態(tài)下的保持時間,在一定時間(如十分鐘)內(nèi)如果客戶端與服務(wù)器無交互,則Session自動取消,服務(wù)器不再保留這次執(zhí)行過程的狀態(tài)信息。
1.2?加密算法
??? 信息加密的目的在于將可讀信息(明文)經(jīng)過一組規(guī)則變換為無法識別的內(nèi)容(密文),使得惡意攻擊者即使截獲也無法閱讀。這種變換的規(guī)則即稱之為加密算法。以密鑰為基準(zhǔn),密碼體制可分為對稱密鑰(私鑰)加密體制和非對稱密鑰(公鑰)加密體制[1-2]。由于對稱密鑰加密與非對稱密鑰加密各有所長,目前網(wǎng)絡(luò)中的密鑰加密普遍采用混合加密體制,即密鑰傳送采用非對稱密鑰加密,而數(shù)據(jù)加密" title="數(shù)據(jù)加密">數(shù)據(jù)加密則采用對稱密鑰加密。移動通信系統(tǒng)有其固有的特點,其加密算法比一般通信網(wǎng)絡(luò)有更高的要求,可以歸納如下:
??? (1) 良好的安全性能;
??? (2) 較高的算法執(zhí)行效率;
??? (3) 有限的密文長度;
??? (4) 較低的計算負荷和通信負荷。
??? 非對稱密鑰加密雖然不存在密鑰管理問題,但算法復(fù)雜、軟件實現(xiàn)效率很低,且移動設(shè)備與服務(wù)器之間敏感數(shù)據(jù)的傳輸(如用戶注冊、登錄、提交訂單等)在一次連接過程中往往只需有限次數(shù)甚至1次,因此本文在保證安全性的基礎(chǔ)上采用了基于對稱密鑰加密的“一次一密”數(shù)據(jù)加密方案。根據(jù)信息論的觀點,對手觀察密文和前后明文的不確定性相等,即觀察密文不會為之提供任何有助于破譯密碼的信息,因此“一次一密”的對稱密鑰加密方案可稱為是無條件且安全的[3]。經(jīng)過對現(xiàn)有算法的比較和實驗,實現(xiàn)方案時選擇了AES算法和XXTEA算法。
??? 高級加密標(biāo)準(zhǔn)(AES)是在數(shù)據(jù)加密標(biāo)準(zhǔn)(DES)應(yīng)用二十年后已無法適應(yīng)當(dāng)前分布式開放網(wǎng)絡(luò)對數(shù)據(jù)加密的要求的情況下,通過公開征集和篩選,于2000年10月最終確定的。該算法是比利時人Joan Daeman和Vincent Rijmen提交的Rijndael算法,算法充分運用了擴散和混淆技術(shù),并使用128/192/256位這三種可變長度的密鑰,對128位分組數(shù)據(jù)進行加密。算法包括:根據(jù)不同的分組長度確定的輪變化和非線性層、線性混合層及密鑰加密層組成的圈變化[4]。對于窮舉攻擊而言,128位長度的密鑰在目前已經(jīng)達到了計算安全性的要求。
??? 1994年劍橋計算機實驗室的 David Wheeler 和 Roger Needham 設(shè)計了TEA 算法,使用128位的密鑰為 64 位的信息塊進行加密,并使用一個來源于黃金比率的常數(shù)δ為倍數(shù),以保證每一輪加密各不相同。之后設(shè)計者針對其缺陷提出了TEA 的升級版本XTEA(也被稱為“tean”)和Block TEA,并于1998年給出了Block TEA 算法的修訂版,即 XXTEA。XXTEA 使用與Block TEA相似的結(jié)構(gòu),但在處理塊中每個字時使用相鄰字,并利用一個更復(fù)雜的即使用兩個輸入函數(shù)的MX函數(shù)代替 XTEA輪循函數(shù)[5-6]。
??? 在候選方案中選擇AES和XXTEA作為對稱加密算法,是由于AES算法作為新一代的數(shù)據(jù)加密標(biāo)準(zhǔn)匯聚了強安全性、高性能、高效率、易用和靈活等優(yōu)點,并已證明在嵌入式系統(tǒng)中表現(xiàn)優(yōu)秀;而XXTEA 算法安全性較高,且由于無需查表或S盒,因此初始化時間短、算法快速,適用于Web開發(fā)中,但在實際開發(fā)中目前應(yīng)用尚少。選擇這兩種算法確保了加密操作和解密操作能在客戶端的有限空間環(huán)境中和服務(wù)器端有效執(zhí)行,有較高實驗價值和實用價值。
1.3 密鑰發(fā)布與管理
??? 密鑰是控制信息加解密算法實現(xiàn)的關(guān)鍵信息。對稱密鑰加密的薄弱環(huán)節(jié),亦即需要解決的問題,是共享密鑰的發(fā)布和管理。
??? 在該無條件安全加密方案中,服務(wù)器端與所有客戶端共享n種加解密方式,依次為C0, C1, …, Cn-1。令待發(fā)布的密鑰為K,則服務(wù)器端密鑰發(fā)布過程可描述如下:
??? (1) 收到客戶端請求后,服務(wù)器為其隨機生成0~26 535之間的整數(shù)r,得到m = r mod n。
??? (2) 選取m對應(yīng)的加密方式,即Cm。如果該加密方式需要參數(shù),則隨機生成,并用Cm加密K,令參數(shù)為P,加密后的密鑰為Ke。
??? (3) 將(r, P, Ke)的長度按約定補足至C0, C1, …, Cn-1所對應(yīng)的序列(隨機數(shù)" title="隨機數(shù)">隨機數(shù),參數(shù),密鑰)的固定長度,其中補足的部分隨機生成。令補足后的序列為I1,并將I1傳送到客戶端。
??? 客戶端獲取密鑰的算法為以上算法的逆操作,可描述如下:
??? (1) 從服務(wù)器端獲取I1序列并讀取隨機數(shù)r。
??? (2) 得到m = r mod n,獲得其對應(yīng)的加密方式為Cm,如果該加密方式需要參數(shù),則從服務(wù)器端獲取的序列中讀取參數(shù)P。
??? (3) 以參數(shù)P的加密方式Cm 解密Ke 得到K。
??? 客戶端獲取密鑰后,以某種事先商定的加密算法加密敏感數(shù)據(jù)信息,將加密后的序列I2傳送到服務(wù)器端。服務(wù)器端通過Session ID檢驗客戶端臨時身份,然后使用剛才約定的密鑰解密敏感數(shù)據(jù)信息。
?? 在本文所述的密鑰發(fā)布方案中,有n種方式供隨機選擇。在具體實現(xiàn)中,C0、C1、C2、C3分別設(shè)為XXTEA固定密鑰、XXTEA可變密鑰(可變密鑰由服務(wù)器隨機生成,即密鑰發(fā)布中的參數(shù)P)、AES固定密鑰、AES可變密鑰。當(dāng)然,也可以采用此方案的構(gòu)架根據(jù)實際情況選擇具體加密方式。
2?性能分析
2.1?安全性分析
??? (1)在該方案中,明文中不出現(xiàn)任何用戶關(guān)鍵字,且在一次執(zhí)行過程中先后出現(xiàn)在無線接口上的兩個序列(I1和I2)對于攻擊者而言無法提供任何可關(guān)聯(lián)的信息,因此,攻擊者無法關(guān)聯(lián)同一次執(zhí)行過程中的消息,由于一次性隨機數(shù)的存在,更無法關(guān)聯(lián)不同執(zhí)行過程中的消息,從而有效地保護了用戶的身份和位置匿名性。
??? (2)根據(jù)所選加密算法的不同以及選擇使用固定密鑰或可變密鑰,對不同的加解密方案,參數(shù)的長度可能不同,最后發(fā)送給客戶端的字節(jié)數(shù)也可能不同,這樣可能降低密碼分析的難度,引入安全漏洞,為此,將長度較短的傳輸長度補足為固定長度再進行加密。
??? (3) 由于方案中傳輸?shù)男畔⒉恢苯影蚕砻荑€,而I1中的隨機數(shù)又是一次性的,可保證密鑰的新鮮性,所以敵手即使獲得了上次的共享密鑰,也無法通過其推測當(dāng)前和以后的密鑰,因此該方案可以提供無條件前向安全性。
??? (4) 由于一次性隨機數(shù)的引入和Session ID的檢驗,敵手無法通過偽裝客戶端或重發(fā)密文攻擊獲得認證。
??? (5) 由于方案中共享密鑰并不儲存在手機中,也不保存在服務(wù)器數(shù)據(jù)庫內(nèi),而是在每次數(shù)據(jù)交換執(zhí)行過程中隨機生成,因此,即使用戶設(shè)備(假定為手機)失竊或者服務(wù)器被入侵,安全性也能夠得到較好的保證。
2.2? 執(zhí)行效率分析
??? 與混合加密體制相比,這里所述的方案無需可信第三方的參與,且避免了大素數(shù)生成等費時操作,因此大大提高了效率,增加了在移動平臺上的可用性,而方案中包含的操作,如簡單算術(shù)操作和對稱密鑰加解密操作,對于服務(wù)器和移動設(shè)備而言都是容易實現(xiàn)的,且計算量也是可以接受的。
??? (1) 計算量:移動客戶端需要一次移位操作,一次對稱密鑰解密操作,一次對稱密鑰加密操作;服務(wù)器端一次隨機數(shù)生成,需要一次移位操作,一次對稱密鑰加密操作,一次對稱密鑰解密操作。
??? (2) 交互次數(shù):移動客戶與服務(wù)網(wǎng)絡(luò)需要進行兩次交互。
??? (3) 消息數(shù)目:需要2條不同的消息。
3 實驗及結(jié)果
??? 實驗中,客戶端用J2ME實現(xiàn),模擬器為Sony Ericsson公司提供的WTK2.2。服務(wù)器工作站的CPU為Intel Xeon 3.00GHz,實現(xiàn)算法的編程語言為C#。對于密鑰發(fā)布過程的執(zhí)行進行多次測試,并統(tǒng)計了其中幾種加密方式各自發(fā)布過程的平均響應(yīng)時間。測試結(jié)果如表1和表2所示。
?

?

??? 真機測試使用的測試平臺為SonyEricsson W550手機,由于需要加密的數(shù)據(jù)長度不固定,這里給出了加密1Kbit數(shù)據(jù)的平均時間。
??? 與網(wǎng)絡(luò)通信所用的時間相比,毫秒級的程序執(zhí)行時間是可以接受的,完全可以滿足實際系統(tǒng)的需要。該方案已經(jīng)應(yīng)用于一個移動個人信息服務(wù)系統(tǒng)的用戶認證模塊中,表現(xiàn)良好。
??? 筆者針對移動通信的特點和實際情況,提出了一種移動數(shù)據(jù)的無條件安全傳輸方案,并給出了方案的安全性分析、效率分析和測試數(shù)據(jù)。方案設(shè)計中注重簡潔有效,既保證了安全性能,又避免了費時運算,滿足了移動通信系統(tǒng)的實用要求。該方案既可以直接應(yīng)用于用戶認證,也可以經(jīng)過修改和擴展集成到各種移動通信增值服務(wù)平臺的數(shù)據(jù)交互模塊中。
參考文獻
[1]? ATUL K. 密碼學(xué)與網(wǎng)絡(luò)安全[M]. 北京:清華大學(xué)出版社,2005.
[2]? FERGUSON N, SCHNEIER B.密碼學(xué)實踐[M]. 北京:電子工業(yè)出版社,2005.
[3]? 孫淑玲.應(yīng)用密碼學(xué)[M]. 北京:清華大學(xué)出版社,2004.
[4]? NIST. Advanced encryption standard (AES)[S]. Federal Information Processing Standards Publication, 2001
[5]? RUSSELL M D. Tinyness:an overview of TEA and related ciphers[EB/OL]. http://www-users.cs.york.ac.uk/matthew/TEA/, 2004.
