圖1SSL協(xié)議棧

握手協(xié)議在SSL數(shù)據(jù)傳輸中具有重要的作用,通過握手協(xié)議可實現(xiàn)數(shù)據(jù)的加密和身份驗證,確保端到端的安全傳輸,能有效阻止外部對Web的攻擊。

2.3SSLVPN

SSLVPN通過SSL協(xié)議,利用PKI的證書體系,在傳輸過程中使用DES、3DES、AES、RSA、MD5、SHA1等多種密碼算法保證數(shù)據(jù)的機密性、完整性、不可否認性,實現(xiàn)在Internet上進行安全的信息交換。如今幾乎所有的瀏覽器都內建有SSL功能,它正成為企業(yè)應用、無線接入設備、Web服務以及安全接入管理的關鍵協(xié)議。

基于SSL的VPN為嵌入式系統(tǒng)提供了許多有利條件,主要有:

1)可以使用標準的軟件(如:Web瀏覽器)對嵌入式系統(tǒng)進行訪問。

2)SSL允許在嵌入式系統(tǒng)中沒有存儲口令的情況下進行客戶鑒定。這特別有益于需要進行遠程操作的嵌入式系統(tǒng)。

3)SSL提供了多種加密標準,系統(tǒng)設計者可以在安全風險、加密強度之間進行平衡。

4)SSL提供了客戶端和服務器端的認證。

SSLVPN的核心是SSL協(xié)議,目前已有多種基于標準SSL協(xié)議實現(xiàn)的工具箱,但因其龐大的數(shù)據(jù)結構、功能全面的系統(tǒng)管理而無法在嵌入式環(huán)境下很好地運行。另一個主要缺陷是產生對稱密鑰需要大量計算且不能由簡單有效的硬件來實現(xiàn);另外,設計系統(tǒng)時,要充分考慮對客戶端的認證,因此必須對常規(guī)的 SSL協(xié)議進行針對性的裁剪與優(yōu)化,以適應嵌入式應用的需要。

3SSL嵌入式優(yōu)化設計

為保證在有限的嵌入式資源環(huán)境下使用SSL技術,必須要對標準SSL協(xié)議進行裁剪與優(yōu)化。優(yōu)化的主要方面有:重新設計SSL內部模塊,引入會話重用模塊;采用只對服務器單向認證的RSA模式;對加密算法進行選擇,使之適應嵌入式計算的特點。

3.1會話重用

SSL協(xié)議的核心是握手協(xié)議,其連接過程如圖2所示:

圖2SSL協(xié)議握手過程

從上述的SSL連接流程不難看出SSL握手過程中需要耗費較多的系統(tǒng)時間(CPU處理)和空間(內存),所以利用會話重用實現(xiàn)服務器和瀏覽器的再次SSL連接,對于嵌入式瀏覽器十分必要。

會話重用的過程是:客戶與服務器通過完整的握手過程建立第一次會話,然后握手雙方將該會話保存。當客戶采用會話重用時,則將session_id作 為本次會話的session_id,否則置空。服務器收到客戶的client_hello消息后,查看session_id,如果為空則不進行會話重用, 服務器生成新session_id,在server_hello中發(fā)給客戶,否則服務器從session_id中查找session_id會話,并恢復該 會話參數(shù)作為當前參數(shù)??蛻羰盏絪erver_hello消息后,檢驗服務器發(fā)來session_id是否與重用session_id一致,一致則會話重 用,否則雙方重新協(xié)商會話參數(shù)。通過會話重用,服務器和瀏覽器就可以省略公鑰和認證操作,還可以重用以前的私鑰。

3.2單向認證

單向SSL服務器認證。作為SSL客戶端運行的應用程序,能夠驗證作為SSL服務器運行的應用程序的身份,而不提供反向的認證。這樣可以將客戶端認 證的步驟去掉,減少握手次數(shù)以降低系統(tǒng)開銷,并節(jié)省了使用PKI對授權用戶分發(fā)證明,同時也能夠滿足大多數(shù)實際應用對安全的要求。

3.3算法選擇

在SSL握手過程中,服務器CPU時間大部分用在解密私用密鑰和計算主密鑰上,同時SSL連接性能在很大程度上也依賴于使用的算法,因此算法對嵌入 式系統(tǒng)中的SSL有重要的影響。在嵌入式瀏覽器上,可以選擇512位RSA公鑰算法,RSA模式只對服務器進行認證,可減少握手次數(shù);采用適合嵌入式環(huán)境 的對稱加密算法RC4-128對所傳輸?shù)臄?shù)據(jù)進行加密;創(chuàng)建信息鑒定碼的摘要算法,可采用運行速度最快的哈希函數(shù)MD5128來計算消息檢驗碼MAC。

4SSLVPN應用方案與實現(xiàn)

我們設計了基于SSLVPN技術的應用方案,構架了SSL協(xié)議的實現(xiàn)體。其實現(xiàn)原理為:在客戶端和服務器之間通過協(xié)商,采用RSA算法加密,建立起 安全通道,在此通道內傳輸?shù)男畔⒔涍^RC4加密運算,保證數(shù)據(jù)的機密性;利用MD5函數(shù)對所傳輸?shù)男畔⑻崛∠Ⅱ炞C碼,確保信息的完整性;利用證書交換技 術,實現(xiàn)客戶端和服務器的識別和認證,實現(xiàn)身份的可認證性。

該方案可分為客戶端和服務器端兩個部分實現(xiàn)SSL協(xié)議,其程序框架如下:

傳輸過程中需要的證書和密鑰文件:

1)生成服務器端的私鑰(key文件):opensslgenrsa-des3-outserver.key512;

2)生成證書簽署請求CSR:opensslreq-new-keyserver.key-outserver.csr;

3)生成CA的key文件:openssl-des3-outca.key1024;

4)生成CA自簽名證書:opensslreq-new-x509-keyca.key-outca.crt;

5)用生成的CA的證書為剛才生成的server.csr,client.csr文件簽名:./sigh.shserver.csr。

在程序中我們選用RC4做加密,MD5做消息摘要(先進行MD5運算,后進行RC4加密),由SSL_CTX_set_cipher_list(ctx,"RC4-MD5")實現(xiàn)。

我們在S3C2410硬件平臺的嵌入式LinuxWeb瀏覽器應用中,實現(xiàn)了上述SSL優(yōu)化方案。實際應用測試的結果,符合我們的設計目標。在嵌入 式產品中使用精簡優(yōu)化后的SSL是切實可行的方案,通過簡化握手流程、減少新連接的次數(shù)、會話重用、精選加密算法等方法,使之更適合嵌入式系統(tǒng)的實際應 用。其不足是SSLVPN在現(xiàn)階段只能訪問基于Web的應用,遠程用戶還不能進行基于非Web界面的應用。此外,由于SSLVPN并不對通信雙方的整個通 道進行加密,只能為訪問資源提供有限的安全保障,在Web頁面中呈現(xiàn)的文件,無法保證只出現(xiàn)類似于上傳文件和郵件附件等簡單的文件,這樣就很難保證其它文 件不被暴露在外部,存在一定的安全隱患。這是SSLVPN面臨的一個挑戰(zhàn),也是我們今后要重點研究并解決的問題。

5結束語

嵌入式系統(tǒng)處理器和其它硬件性能的提升,使得基于SSL和TLS的VPN變?yōu)榭赡?,SSL采用通信數(shù)據(jù)加密、身份驗證等安全技術,較好地保證了數(shù)據(jù) 傳送過程中的保密性、身份鑒別、不可否認和完整性,防止了竊聽、欺騙、篡改、會話劫持等多種Web攻擊手段。隨著嵌入式網絡安全的重要性越發(fā)突出,相信 SSLVPN的應用將更加廣泛。

分享到

zhangcun

相關推薦