無條件安全加密之移動(dòng)數(shù)據(jù)通信

隨著移動(dòng)設(shè)備與有線通信網(wǎng)之間數(shù)據(jù)交互的需求不斷增加,移動(dòng)通信系統(tǒng)中的安全問題正在受到國際上高度的重視和廣泛的研究。但目前由于受到移動(dòng)、設(shè)備計(jì)算性能的限制和目前無線通信網(wǎng)絡(luò)的帶寬限制,如果將有線網(wǎng)絡(luò)和計(jì)算機(jī)平臺(tái)上使用的信息加密算法直接應(yīng)用于移動(dòng)通信系統(tǒng)是不實(shí)際的。為此,我們提出了一種用于移動(dòng)數(shù)據(jù)通信的無條件安全加密方案。

一、移動(dòng)數(shù)據(jù)通信的無條件安全加密方案

1、移動(dòng)數(shù)據(jù)通信的無條件安全加密方案狀態(tài)機(jī)制

出于通用性和擴(kuò)展性的考慮,在移動(dòng)設(shè)備與中心服務(wù)器的交互中,通常采用HTTP通信方式。但由于HTTP是無狀態(tài)協(xié)議,為滿足數(shù)據(jù)交互的需要,必須引入一種用以在客戶端與服務(wù)器之間保持狀態(tài)的解決方案。這樣操作的缺點(diǎn)就是客戶端的工作量太大,為了盡可能地減輕客戶端工作量,我們只有使用基于服務(wù)器端的Session機(jī)制,即在中心服務(wù)器上,使用一種類似散列表的結(jié)構(gòu)保存信息。

當(dāng)程序需要為某個(gè)客戶端的請(qǐng)求創(chuàng)建一個(gè)Session時(shí),服務(wù)器首先檢查該客戶端提交的表單里是否已包含一個(gè)Session標(biāo)識(shí),即Session ID,并檢索服務(wù)器上是否存有對(duì)應(yīng)的Session,如有則說明已經(jīng)為此客戶端創(chuàng)建過Session,且可用(未過期),服務(wù)器就按照Session ID將對(duì)應(yīng)的Session檢索出來使用;如不符合則返回錯(cuò)誤信息;如果客戶端請(qǐng)求不包含Session ID,則為此客戶端創(chuàng)建一個(gè)Session,并且生成一個(gè)與此Session相關(guān)聯(lián)的Sesnion ID,在本次響應(yīng)中返回給客戶端保存。

對(duì)于每個(gè)特定移動(dòng)用戶而言,由于其對(duì)數(shù)據(jù)交換的要求往往集中在一定時(shí)間之內(nèi),出于安全性和節(jié)約資源的考慮,可在服務(wù)器腳本中設(shè)置相對(duì)較短的Session在無響應(yīng)狀態(tài)下的保持時(shí)間,在一定時(shí)間(如十分鐘)內(nèi)如果客戶端與服務(wù)器無交互,則Session自動(dòng)取消,服務(wù)器不再保留這次執(zhí)行過程的狀態(tài)信息。

2、移動(dòng)數(shù)據(jù)通信無條件安全加密方案使用的加密算法

信息加密的目的在于將可讀信息經(jīng)過一組規(guī)則變換為無法識(shí)別的內(nèi)容,使得惡意攻擊者即使截獲也無法閱讀。這種變換的規(guī)則即稱之為加密算法。以密鑰為基準(zhǔn),密碼體制可分為對(duì)稱密鑰加密體制和非對(duì)稱密鑰加密體制。由于對(duì)稱密鑰加密與非對(duì)稱密鑰加密各有所長(zhǎng),目前網(wǎng)絡(luò)中的密鑰加密普遍采用混合加密體制,即密鑰傳送采用非對(duì)稱密鑰加密;而數(shù)據(jù)加密則采用對(duì)稱密鑰加密。移動(dòng)通信系統(tǒng)有其固有的特點(diǎn),其加密算法比一般通信網(wǎng)絡(luò)有更高的要求,可以歸納如下:

(1)良好的安全性能;

(2)較高的算法執(zhí)行效率;

(3)有限的密文長(zhǎng)度;

(4)較低的計(jì)算負(fù)荷和通信負(fù)荷。

非對(duì)稱密鑰加密雖然不存在密鑰管理問題,但算法復(fù)雜、軟件實(shí)現(xiàn)效率很低,且移動(dòng)設(shè)備與服務(wù)器之間敏感數(shù)據(jù)的傳輸(如用戶注冊(cè)、登錄、提交訂單等)在一次連接過程中往往只需有限次數(shù)甚至1次,因此本文在保證安全性的基礎(chǔ)上采用了基于對(duì)稱密鑰加密的一次一密數(shù)據(jù)加密方案。根據(jù)信息論的觀點(diǎn),對(duì)于觀察密文和前后明文的不確定性相等,即觀察密文不會(huì)為之提供任何有助于破譯密碼的信息,因此一次一密一的對(duì)稱密鑰加密方案可稱為是無條件且安全的。經(jīng)過對(duì)現(xiàn)有算法的比較和實(shí)驗(yàn),實(shí)現(xiàn)方案時(shí)選擇了AES加密算法和XXTEA加密算法。

AES加密算法作為新一代的數(shù)據(jù)加密標(biāo)準(zhǔn)匯聚了強(qiáng)安全性、高性能、高效率、易用和靈活等優(yōu)點(diǎn)。AES設(shè)計(jì)有三個(gè)密鑰長(zhǎng)度:128,192,256位,相對(duì)而言,AES的128密鑰比DES的56密鑰強(qiáng)1021倍。AES加密算法主要包括三個(gè)方面:輪變化、圈數(shù)和密鑰擴(kuò)展。

TEA(Tiny Encryption Algorithm)是一種小型的對(duì)稱加密解密算法,支持128位密碼,與BlowFish一樣TEA每次只能加密/解密8字節(jié)數(shù)據(jù)。TEA特點(diǎn)是速度快、效率高,實(shí)現(xiàn)也非常簡(jiǎn)單。XXTEA使用跟 Block TEA 相似的結(jié)構(gòu),但在處理塊中每個(gè)字時(shí)利用了相鄰字。它利用一個(gè)更復(fù)雜的 MX 函數(shù)代替了XTEA 輪循函數(shù),MX 使用2個(gè)輸入量。

在候選方案中選擇AES和XXTEA作為對(duì)稱加密算法,是由于AES算法作為新一代的數(shù)據(jù)加密標(biāo)準(zhǔn)匯聚了強(qiáng)安全性、高性能、高效率、易用和靈活等優(yōu)點(diǎn),并已證明在嵌入式系統(tǒng)中表現(xiàn)優(yōu)秀;而XXTEA算法安全性較高,且由于無需查表或S盒,因此初始化時(shí)間短、算法快速,適用于Web開發(fā)中,但在實(shí)際開發(fā)中目前應(yīng)用尚少。選擇這兩種算法確保了加密操作和解密操作能在客戶端的有限空間環(huán)境中和服務(wù)器端有效執(zhí)行,有較高實(shí)驗(yàn)價(jià)值和實(shí)用價(jià)值。

3、密鑰發(fā)布與管理

密鑰是控制信息加解密算法實(shí)現(xiàn)的關(guān)鍵信息。對(duì)稱密鑰加密的薄弱環(huán)節(jié),亦即需要解決的問題,是共享密鑰的發(fā)布和管理。

在該無條件安全加密方案中,服務(wù)器端與所有客戶端共享n種加解密方式,依次為Co,C1,…,C1-1。令待發(fā)布的密鑰為X,則服務(wù)器端密鑰發(fā)布過程可描述如下:

(1)收到客戶端請(qǐng)求后,服務(wù)器為其隨機(jī)生成0~26 535之間的整數(shù)r,得到m=r mod n。

(2)選取m對(duì)應(yīng)的加密方式,即Go如果該加密方式需要參數(shù),則隨機(jī)生成,并用G加密尺,令參數(shù)為P,加密后的密鑰為ke。

(3)將(r,P,ke)的長(zhǎng)度按約定補(bǔ)足至(C1,…,c1,…cn-1)所對(duì)應(yīng)的序列(隨機(jī)數(shù),參數(shù),密鑰)的固定長(zhǎng)度,其中補(bǔ)足的部分隨機(jī)生成口令補(bǔ)足后的序列為I,并將I1傳送到客戶端。

客戶端獲取密鑰的算法為以上算法的逆操作,可描述如下:

(1)從服務(wù)器端獲取Il序列并讀取隨機(jī)數(shù)r。

(2)得到m=r mod n,獲得其對(duì)應(yīng)的加密方式為Cn,如果該加密方式需要參數(shù),則從服務(wù)器端獲取的序列中讀取參數(shù)P。

(3)以參數(shù)P的加密方式Cm解密km得到K。

客戶端獲取密鑰后,以某種事先商定的加密算法加密敏感數(shù)據(jù)信息,將加密后的序列I2傳送到服務(wù)器端。服務(wù)器端通過Session ID檢驗(yàn)客戶端臨時(shí)身份,然后使用剛才約定的密鑰解密敏感數(shù)據(jù)信息。

在本文所述的密鑰發(fā)布方案中,有n種方式供隨機(jī)選擇。在具體實(shí)現(xiàn)中,C、C1、C2、C3分別設(shè)為XXTEA固定密鑰、XXTEA可變密鑰(可變密鑰由服務(wù)器隨機(jī)生成,即密鑰發(fā)布中的參數(shù)P)、AES固定密鑰、AES可變密鑰。當(dāng)然,也可以采用此方案的構(gòu)架根據(jù)實(shí)際情況選擇具體加密方式。

二、移動(dòng)數(shù)據(jù)通信的無條件安全加密方案性能分析

1、移動(dòng)數(shù)據(jù)通信的無條件安全加密方案安全性分析

(1)在該方案中,明文中不出現(xiàn)任何用戶關(guān)鍵字,且在一次執(zhí)行過程中先后出現(xiàn)在無線接口上的兩個(gè)序列(I1和I2)對(duì)于攻擊者而言無法提供任何可關(guān)聯(lián)的信息,因此,攻擊者無法關(guān)聯(lián)同一次執(zhí)行過程中的消息,由于一次性隨機(jī)數(shù)的存在,更無法關(guān)聯(lián)不同執(zhí)行過程中的消息,從而有效地保護(hù)了用戶的身份和位置匿名性。

(2)根據(jù)所選加密算法的不同以及選擇使用固定密鑰或可變密鑰,對(duì)不同的加解密方案,參數(shù)的長(zhǎng)度可能不同,最后發(fā)送給客戶端的字節(jié)數(shù)也可能不同,這樣可能降低密碼分析的難度,引入安全漏洞,為此,將長(zhǎng)度較短的傳輸長(zhǎng)度補(bǔ)足為固定長(zhǎng)度再進(jìn)行加密。

(3)由于方案中共享密鑰并不儲(chǔ)存在手機(jī)中,也不保存在服務(wù)器數(shù)據(jù)庫內(nèi),而是在每次數(shù)據(jù)交換執(zhí)行過程中隨機(jī)生成,因此,即使用戶設(shè)備(假定為手機(jī))失竊或者服務(wù)器被入侵,安全性也能夠得到較好的保證。

(4)由于方案中傳輸?shù)男畔⒉恢苯影蚕砻荑€,而I1中的隨機(jī)數(shù)又是一次性的,可保證密鑰的新鮮性,所以敵手即使獲得了上次的共享密鑰,也無法通過其推測(cè)當(dāng)前和以后的密鑰,因此該方案可以提供無條件前向安全性。

(5)由于一次性隨機(jī)數(shù)的引入和Session ID的檢驗(yàn),敵手無法通過偽裝客戶端或重發(fā)密文攻擊獲得認(rèn)證。

2、移動(dòng)數(shù)據(jù)通信的無條件安全加密方案執(zhí)行效率分析

與混合加密體制相比,這里所述的方案無需可信第三方的參與,且避免了大素?cái)?shù)生成等費(fèi)時(shí)操作,因此大大提高了效率,增加了在移動(dòng)平臺(tái)上的可用性,而方案中包含的操作,如簡(jiǎn)單算術(shù)操作和對(duì)稱密鑰加解密操作,對(duì)于服務(wù)器和移動(dòng)設(shè)備而言都是容易實(shí)現(xiàn)的,且計(jì)算量也是可以接受的。

(1)計(jì)算量:移動(dòng)客戶端需要一次移位操作,一次對(duì)稱密鑰解密操作。一次對(duì)稱密鑰加密操作;服務(wù)器端一次隨機(jī)數(shù)生成,需要一次移位操作,一次對(duì)稱密鑰加密操作,一次對(duì)稱密鑰解密操作。

(2)交互次數(shù):移動(dòng)客戶與服務(wù)網(wǎng)絡(luò)需要進(jìn)行兩次交互。

(3)消息數(shù)目:需要2條不同的消息。

三、實(shí)驗(yàn)分析及結(jié)果

實(shí)驗(yàn)中,客戶端用J2ME實(shí)現(xiàn),模擬器為Sony Erics-son公司提供的WTK2.2。服務(wù)器工作站的CPU為IntelXeon 3.OOGHz,實(shí)現(xiàn)算法的編程語言為C#。對(duì)于密鑰發(fā)布過程的執(zhí)行進(jìn)行多次測(cè)試,并統(tǒng)計(jì)了其中幾種加密方式各自發(fā)布過程的平均響應(yīng)時(shí)間。

真機(jī)測(cè)試使用的測(cè)試平臺(tái)為SonyEricsson W550手機(jī),由于需要加密的數(shù)據(jù)長(zhǎng)度不固定,這里給出了加密lKbit數(shù)據(jù)的平均時(shí)間。

與網(wǎng)絡(luò)通信所用的時(shí)間相比,毫秒級(jí)的程序執(zhí)行時(shí)間是可以接受的,完全可以滿足實(shí)際系統(tǒng)的需要。該方案已經(jīng)應(yīng)用于一個(gè)移動(dòng)個(gè)人信息服務(wù)系統(tǒng)的用戶認(rèn)證模塊中,表現(xiàn)良好。

小知識(shí)之?dāng)?shù)據(jù)通信

數(shù)據(jù)通信是通信技術(shù)和計(jì)算機(jī)技術(shù)相結(jié)合而產(chǎn)生的一種新的通信方式。要在兩地間傳輸信息必須有傳輸信道,根據(jù)傳輸媒體的不同,有有線數(shù)據(jù)通信與無線數(shù)據(jù)通信之分。但它們都是通過傳輸信道將數(shù)據(jù)終端與計(jì)算機(jī)聯(lián)結(jié)起來,而使不同地點(diǎn)的數(shù)據(jù)終端實(shí)現(xiàn)軟、硬件和信息資源的共享。