移動代理安全傳輸模型如何通過混合加密實現(xiàn)

移動代理安全問題的解決是決定其能否廣泛應(yīng)用的關(guān)鍵問題,為此我們在現(xiàn)有保護方案的基礎(chǔ)上提出了一種基于混合加密的移動代理安全傳輸模型——HESTM。該模型能有效地保護移動代理的安全,從而有效地提高了整個系統(tǒng)的安全性和穩(wěn)健性。

一、移動代理的安全問題及現(xiàn)有的保護方案

1、移動代理的安全問題

移動代理在目標機器中可能遭受以下兩種攻擊:來自惡意服務(wù)器(或運行環(huán)境)的攻擊和來自其它代理和實體的攻擊。而移動代理在網(wǎng)絡(luò)中遷移時,其代碼和數(shù)據(jù)也有可能成為攻擊的對象。因此,移動代理的安全問題可以歸納為以下3個方面:

(1)主機或代理執(zhí)行環(huán)境受惡意代理攻擊問題。

(2)移動代理受惡意主機或代理執(zhí)行環(huán)境攻擊問題。

(3)移動代理在傳輸過程中受攻擊問題。

2、現(xiàn)有的移動代理保護方案

(1)主機或代理執(zhí)行環(huán)境保護方案

由于移動代理系統(tǒng)中的服務(wù)器允許不同的代理程序在其上運行,這使得它不得不面臨惡意代理可能帶來的攻擊,如偷竊敏感資料、破壞服務(wù)器系統(tǒng)資源、擾亂性攻擊、拒絕服務(wù)攻擊等等。

對此,研究人員提出了沙盒模型,簽名、認證、授權(quán)和資源分配,Proof-carrying code,代碼檢驗,限制技術(shù),核查記錄等保護方案。

(2)現(xiàn)有移動代理保護方案

移動代理程序必須在服務(wù)器上運行,因此,其代碼和數(shù)據(jù)對于服務(wù)器主機來說都是暴露的。當一個服務(wù)器是惡意的,或是被攻擊者侵占或偽裝的時候,它可能對代理程序進行如下幾種攻擊:破壞代理使其無法完成任務(wù),從代理中竊取有用信息,修改代理攜帶的數(shù)據(jù),修改代理的執(zhí)行代碼,使其在其它的宿主和代理的所有者中運行時做惡意操作等等。

對此,相關(guān)的研究人員提出了加入狀態(tài)評價函數(shù),加密跟蹤法,有限的黑匣子安全法,配置可信賴且能抵御攻擊的硬件等保護方案。

(3)移動代理傳輸保護方案

當在開放型網(wǎng)絡(luò)中(如Internet)中傳遞信息時,固有的一個缺點就是不安全。因而當代理程序在網(wǎng)絡(luò)中漫游時,它的程序碼和數(shù)據(jù)都是不安全的。在數(shù)據(jù)傳遞和通信鏈接中都存在著不安全威脅。

主動攻擊:攻擊者截獲并修改網(wǎng)絡(luò)層的數(shù)據(jù)報,甚至將原數(shù)據(jù)報刪除,而用偽造的數(shù)據(jù)取代。另外,身份偽裝也可看作一種主動攻擊,攻擊者偽裝成系統(tǒng)的一個合法參與者A,截取并處理發(fā)給A的數(shù)據(jù)。

被動攻擊:在這種攻擊模式下,攻擊者并不干預(yù)通信流量,只是嘗試從中提取有用的信息。

二、HESTM模型的實現(xiàn)

由于目前很多移動代理平臺更多考慮的是服務(wù)器和移動代理在平臺中的安全問題,而沒有考慮到移動代理在網(wǎng)絡(luò)上安全傳輸和加密方面的問題,所以我們提出一種基HESTM算法就是在這兩個方面對移動代理系統(tǒng)的安全性進行擴展,增強它的安全性和穩(wěn)健性。

HESTM算法主要分成兩部分,即利用混合加密算法加密移動代理和利用傳輸層安全(nansport Layer Security,TLS)加密通信信道。經(jīng)過混合加密的移動代理在經(jīng)過TLS加密通信信道中傳輸。

1、利用混合加密算法加密移動代理

將移動代理要完成的任務(wù)以及所涉及到的所有數(shù)據(jù)封裝成一個類(Object),這樣一來加密這個類的實例與加密整個移動代理是等效的,但是在編程的效率上前者顯然更簡單并且容易實現(xiàn),同時也減少了執(zhí)行加解密算法所需要的時間開銷。

Object是一個經(jīng)過抽象、封裝而成的類的實例,ObjectByte是一個表征該實例的字節(jié)數(shù)組,對稱加密算法為AES(高級數(shù)據(jù)加密標準),其密鑰為key,非對稱加密算法為RSA,其公鑰為publickey,私鑰為privatekey。

發(fā)送方的混合加密算法實現(xiàn)步驟:

(1) 利用AES算法加密類實例;

(2)利用MD5算法產(chǎn)生消息摘要;

(3) 利用RSA算法對消息摘要進行數(shù)字簽名;

(4)利用RSA算法對AES算法的密鑰進行非對稱加這樣,就可以把經(jīng)過安全措施保護的移動代理發(fā)送到目的機器。

接收方的混合解密算法實現(xiàn)步驟:

(1) 利用RSA算法得到AES算法的密鑰;

(2) 利用AES-算法解密得到類實例Object;

(3)對于步驟2得到的Object,得到表征它的字節(jié)數(shù)組ObjectByte;

(4) 利用MD5算法產(chǎn)生消息摘要;

(5)把步驟(4)得到的消息摘要與傳送過來的MD5(ObjecByte)進行比較,如果相同,則說明此移動代理在傳輸過程中沒有被篡改;否則就是已經(jīng)被篡改過的移動代理,應(yīng)予以丟棄,這是為了保證移動代理的數(shù)據(jù)完整性。

(6) 利用RSA算法解密得到數(shù)字簽名。

(7)類似步驟(5)來驗證數(shù)字簽名,如果驗證成功,則認為此移動代理的確是發(fā)送方發(fā)送過來的;否則就是非法主機發(fā)送過來的移動代理,應(yīng)予以丟棄,這是為了保證移動代理來源的可靠性。

2、利用TLS加密通信信道

我們在移動代理平臺與TCP層之間集成了-TLS,采取結(jié)合TLS的通信協(xié)議來保障通信信息的安全.TLS建立在SSL(Secure Socket Layer)的基礎(chǔ)上,它大量采用對稱加密和非對稱加密技術(shù),提供客戶機、服務(wù)器之間相互身份驗證和保密性、完整性。

(1)身份驗證

身份驗證的目的是讓通信雙方確認對方的身份.可以使用不對稱的或公用的密鑰或加密系統(tǒng)對連接進行驗證。TLS支持基于RSA和帶有X.509v3證書的Diffie-Hellman/DSS的身份認證。

(2)保密性

連接是保密的,所有的通信內(nèi)容都經(jīng)過安全套接字的處理,即用一組對稱密鑰和一個在真正的TLS會話開始之前就協(xié)商好了的加密算法進行加密。雖然IP數(shù)據(jù)包仍有被截取的可能,但加密后的數(shù)據(jù)對于截取者來說毫無用處。它支持不同的加密程度,其中包括40位、56位、128位和168位加密。

(3)完整性

連接是可靠的。消息傳輸中包括了使用鍵控消息身份認證代碼(MAC)進行的消息完整性檢查。消息在傳輸過程中被修改,不管是傳輸錯誤還是有人蓄意破壞,消息驗證碼( MACs)都能驗證出來??梢圆捎冒踩:瘮?shù)(例如,SHAI、MD5)來進行MAC計算。

移動代理平臺服務(wù)器所用的協(xié)議一般都是建立在TCP/IP協(xié)議的基礎(chǔ)之上,如在Java2中TCP傳輸協(xié)議由java.net.Socket和java.net.ServerSocket類所提供,所以我們有必要對它進行改造,創(chuàng)建并安裝一個定制的TLSSocketFactory-HETLSSocketFactory將允許移動代理傳輸協(xié)議層使用一個非標準TCP的傳輸協(xié)議。其實現(xiàn)步驟如下:

(1)開發(fā)自己的Socket類型。

(2)通過提供新的實現(xiàn),擴展TLSSocketFactory類,參見步驟(3)和步驟(4)。

(3)替換TLSSocketFactory類的createSocket方法。

(4)替換TLSSocketFactory類的createServerSocket方法。

使用TLSSocketFactory類提供的setSocketFactory方法將SocketFactory設(shè)為定制的HET-LSSocketFactory,這樣移動代理平臺使用的協(xié)議層就可以與TLS無縫結(jié)合使用,從而達到保護傳輸中移動代理的目的。

三、基于混合加密的移動代理安全模型分析

1、HESTM的仿真和測試

為了證明上述理論的可行性,我們對HESTM模型進行了局域網(wǎng)內(nèi)粗略的仿真和測試,隨后對該模型的性能進行分析。

仿真平臺::一個包含三臺主機的小局域網(wǎng).主機上的操作系統(tǒng)為Red hat Linux 7.0.2,移動代理平臺為IBM Aglets2.0.1,開發(fā)平臺為J2SEl.4.0,JCE的實現(xiàn)包為Bouncy Castle
Cryptography API l.04版、其中主機Ai B上配置有自定義的混合加密算法的實現(xiàn)類AgletjCE和信用卡類CreditCard。而主機C扮演的是黑客角色,它對主機A、B之間的通信鏈路進行監(jiān)聽。

正常通信仿真:主機A欲向主機B派遣一個攜帶有信用卡卡號(敏感信息)的移動代理MA.為此主機A首先產(chǎn)生類CreditCard的一個對象,并且把信用卡的卡號置入該對象。接著利用混合加密算法的實現(xiàn)類AgletjCE對該對象進行加密,然后由MA攜帶此經(jīng)過混合加密的對象發(fā)送出去,混合加密過程如圖5中的(1)所示。在目的主機B,由于主機B擁有AgletjCE類及信用卡類,所以它可以對移動代理MA攜帶的信息進行正確的混合解密,重新構(gòu)造出被加密封裝的CreditCard對象,然后它可以訪問該對象而獲得信用卡卡號。

異常竊聽仿真:主機C一直在監(jiān)聽通信鏈路,當主機A向主機B派遣移動代理的時候它截獲了該移動代理,并且試圖在自己的移動代理平臺上對其進行解密以獲取敏感信息,如圖5中的(3)所示,但是由于它無法獲取正確的AgletjCE類以及CreditCard類,所以無法進行正常的混合解密,導(dǎo)致失敗。

2、HESTM模型的性能分析

HESTM模型主要利用TLS協(xié)議來保證通信信道的安全性和可靠性,同時利用公鑰和私鑰加密方法對移動代理的關(guān)鍵類實例進行混合加密,在移動代理接收端進行混合解密,充分保證了移動代理的數(shù)據(jù)保密性、完整性和來源的可靠性。

相對于沒有采用任何保密措施,或者僅僅采取其中一種措施的安全機制,這種雙重保護的方法顯然能起到更好的作用,與此同時混合加密方法的應(yīng)用也大大縮短了程序的時間開銷。因為私鑰加密方法既安全速度又快;公鑰加密比私鑰加密速度要慢,但是對于認證和鑰匙交換又是必不可少的。而HESTM模型利用這兩類加密方法各自的優(yōu)點,取長補短,從上面的平臺仿真可以看出,這種方法在保護傳輸中的移動代理方面能起到很好的效果。

小知識之TLS

安全傳輸層協(xié)議(TLS)用于在兩個通信應(yīng)用程序之間提供保密性和數(shù)據(jù)完整性。該協(xié)議由兩層組成: TLS 記錄協(xié)議(TLS Record)和 TLS 握手協(xié)議(TLS Handshake)。