《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 一個(gè)用Java改進(jìn)SSL加密模式的新方案

一個(gè)用Java改進(jìn)SSL加密模式的新方案

2008-12-27
作者:趙榛,李民政,鮑飛,劉克鈞
1 引言
??? 網(wǎng)絡(luò)的飛速發(fā)展在給人們生活帶來便利的同時(shí),,也給網(wǎng)絡(luò)安全帶來了越來越多的問題,。為了保障網(wǎng)絡(luò)的安全通訊,,各項(xiàng)研究針對安全通訊的不同方面提出了多種協(xié)議,,其中,,網(wǎng)景公司開發(fā)的SSL協(xié)議較好地解決了點(diǎn)對點(diǎn)的安全通訊,,并在其產(chǎn)品Navigator的推動下迅速發(fā)展成為安全協(xié)議的工業(yè)標(biāo)準(zhǔn)之一,。
??? 然而,由于美國出口法律的限制,,對中國出口的各項(xiàng)SSL的實(shí)現(xiàn)產(chǎn)品都只能完成SSL的弱加密模式,。這種弱加密模式已經(jīng)在研究中被證實(shí)存在諸多漏洞,,這些漏洞將會給點(diǎn)對點(diǎn)的通訊帶來隱患。針對這個(gè)問題,,我們提出使用Java來實(shí)現(xiàn)獨(dú)立的SSL強(qiáng)加密模式連接的新方案。我們的新方案不依賴于操作系統(tǒng)而獨(dú)立完成SSL的128位強(qiáng)加密模式,,并且可以避免通常Java通訊編程中不能跨越防火墻的問題,。在數(shù)據(jù)通訊過程中,我們的數(shù)據(jù)先利用自身的128位強(qiáng)加密模式加密,,然后通過瀏覽器的40位弱加密方式進(jìn)行傳輸,,實(shí)際效果比單純的128位強(qiáng)加密模式更加安全。
??? 本文下面的" title="面的">面的內(nèi)容是這樣安排的:第2節(jié)描述了現(xiàn)有SSL存在的問題" title="存在的問題">存在的問題,;在第3節(jié)中,,我們提出了利用Java Applet改進(jìn)現(xiàn)有SSL加密模式,實(shí)現(xiàn)強(qiáng)加密連接的新方案,;新的實(shí)現(xiàn)方案" title="實(shí)現(xiàn)方案">實(shí)現(xiàn)方案與現(xiàn)有的加密模式實(shí)現(xiàn)方案的比較在第4節(jié)中進(jìn)行了說明,;最后,第5節(jié)給出了結(jié)論,。
2?現(xiàn)有SSL存在的問題
??? 由網(wǎng)景公司開發(fā)出的SSL協(xié)議[5],,即安全套接字層協(xié)議,非常適用于網(wǎng)絡(luò)上點(diǎn)對點(diǎn)的安全通訊,。目前,,通用的SSL被分為強(qiáng)加密模式、國內(nèi)加密模式,、弱加密模式,。但是由于美國出口法律的限制,強(qiáng)加密模式被禁止向中國出售,。對于Linux系統(tǒng),,影響并不大,因?yàn)镾SL的加密產(chǎn)品供應(yīng)商位于加拿大,,不必受美國法律的限制,。但是我國目前有80%的操作系統(tǒng)使用的是Windows系統(tǒng),16%使用的是如AIX, Sco Unix, BSD Unix等Unix的美國產(chǎn)品,。因此,,在國內(nèi)大多數(shù)的網(wǎng)絡(luò)應(yīng)用一般使用的128位的SSL加密都是弱加密。現(xiàn)在,,已經(jīng)有了相當(dāng)多的研究表明弱加密模式的SSL存在諸多漏洞,,這對于那些安全性要求較高的通訊系統(tǒng)來說是非常危險(xiǎn)的。
3?改進(jìn)的SSL實(shí)現(xiàn)方案
??? 針對SSL在國內(nèi)無法實(shí)現(xiàn)強(qiáng)加密所帶來的問題,,我們提出了一個(gè)用Java改進(jìn)安全套接層加密模式的新方案,。新方案使用獨(dú)立的Java Applet[1]-[4]來實(shí)現(xiàn)SSL的強(qiáng)加密模式,,并且可以跨越防火墻,加密的效果比現(xiàn)有的SSL的128位強(qiáng)加密的實(shí)現(xiàn)更加安全,。
3.1?改進(jìn)方案的設(shè)計(jì)思路
??? 為了實(shí)現(xiàn)SSL強(qiáng)加密的連接,,我們必須解決以下4個(gè)問題,新的改進(jìn)方案正是基于這4個(gè)方面的考慮提出的,。
1)?不同操作系統(tǒng)中的SSL可能有不同版本,,如SSL2.0,SSL3.0,。由于目前國內(nèi)的大多數(shù)操作系統(tǒng)中的SSL協(xié)議只有弱加密模式的實(shí)現(xiàn),,因此,我們不能直接利用基于操作系統(tǒng)的通訊方式,,比如通訊組件,,而必須使SSL實(shí)現(xiàn)獨(dú)立于操作系統(tǒng)以避開操作系統(tǒng)弱加密模式的通訊限制。這樣,,改進(jìn)方案必須不依賴于操作系統(tǒng),。我們提出使用Java Applet。
2)?對于Java Applet的SSL連接的實(shí)現(xiàn),,最直接的方式就是使用瀏覽器來實(shí)現(xiàn),。這里我們采用統(tǒng)一的XML格式,實(shí)現(xiàn)方法如下:
target=https://Communication.CAP/servlets/GetData>
Value:

??? 這個(gè)方法使用https指明是通過SSL連接的http,。顯然,,這種方法的安全性依賴于瀏覽器的SSL。雖然Linux 下面的Mozilla和Kopera等瀏覽器可以實(shí)現(xiàn)128位的強(qiáng)加密模式,,但是就目前國內(nèi)的情況而言,,這些瀏覽器使用的范圍較小,因此這種直接利用瀏覽器實(shí)現(xiàn)128位強(qiáng)加密的連接方式并不通用,。另一方面,,國內(nèi)使用最為廣泛的Navigator,IE等瀏覽器由于同樣受到美國法律限制,,也都只能提供40位的加密器,。這樣,這種直接的簡單實(shí)現(xiàn)顯然不能滿足我們的要求,;另外,,直接利用瀏覽器對傳輸?shù)奈募愋蛷?qiáng)加了限制,這對有些試圖通過獨(dú)立的通訊文件格式在客戶段和服務(wù)器間進(jìn)行通訊的情況也是不適用的,。為此,,我們提出的改進(jìn)方案必須獨(dú)立完成SSL而不能依賴于瀏覽器。
3)?為獨(dú)立完成SSL實(shí)現(xiàn),,我們使用Java的Socket類,。這樣又遇到了防火墻的問題,。我們知道,為了安全和效率方面的考慮,,很 多服務(wù)器都會放在防火墻之后,。這樣,當(dāng)我們試圖通過Applet直接連接時(shí),,我們無法繞過這個(gè)防火墻而打開在防火墻后面的連接服務(wù),。解決防火墻的一個(gè)常用辦法就是使用可信賴的代理??墒俏覀冎繱ocket類無法接入配置信息,也就是說我們不能在Socket類中設(shè)置代理,。為了解決這個(gè)矛盾,,在改進(jìn)的SSL連接方案中,我們必須考慮使用其他類使我們可以配置連接,。
4)?在我們的Applet實(shí)現(xiàn)SSL強(qiáng)加密模式的連接方案中,,我們使用URLConnection類建立到服務(wù)器的連接。具體URLConnection類的連接如下:
URL serv_con = new URL (https://Communications.CAP/sccure”);
URLConnection serv_fork1 = serv_con.openConnection();
InputStream instr = serv_fork1.getInputStream();
OutputStream outstr = serv_fork1.getOutputStream();
綜合上面所述的這些因素,,我們提出了一個(gè)新的SSL強(qiáng)加密模式的Java實(shí)現(xiàn)方案,,該方案改進(jìn)了目前國內(nèi)的SSL的加密模式,充分考慮到了SSL連接的通用性和安全性,,具體的實(shí)現(xiàn)在接下來的一節(jié)里描述,。
3.2?新方案的具體實(shí)現(xiàn)
??? 假設(shè)我們要越過防火墻使用SSL的128位強(qiáng)加密模式連接其后面的CAP服務(wù)器。我們使用Applet自身完成的128位強(qiáng)加密加上瀏覽器40位的弱加密來共同實(shí)現(xiàn)改進(jìn)的SSL實(shí)現(xiàn)方案,,具體方案圖如圖1所示:

??? 首先,,我們利用類java.net.URLConnection通過一個(gè)可信賴的代理來跨越防火墻打開CAP的連接服務(wù);然后,,通過Applet的SSLConnection完成128位的SSL強(qiáng)加密模式,;接著,我們利用瀏覽器的40位弱加密方式的SSL對加密后的數(shù)據(jù)進(jìn)行傳送,。這樣的雙重加密不但可以實(shí)現(xiàn)128位強(qiáng)加密(實(shí)際上的加密性能優(yōu)于128位的強(qiáng)SSL加密模式)而且可以通過可信賴的代理服務(wù)器跨越防火墻,,無論在方案的普適性或是其安全性方面都比通常的SSL連接要好的多" title="的多">的多。當(dāng)然,,這些優(yōu)點(diǎn)也是以犧牲了一定的系統(tǒng)資源為代價(jià)的,。改進(jìn)方案的一些特性如下:
1)以128位IDEA作為對稱加密器;2)以RSA作為交換密匙算法,;3)設(shè)置會話緩存加快連接,;4)MD5作為內(nèi)部哈希算法;5)不大于40Kbytes的jar文件,,如果為了系統(tǒng)運(yùn)行的更快,,可以按需要根據(jù)各個(gè)IDS所在的操作系統(tǒng)利用JIT重新編譯成本地代碼以提高性能,;6)可以在任何操作平臺上運(yùn)行。
4 改進(jìn)前后SSL方案的比較
??? 由于改進(jìn)的SSL連接方案是通過Applet來實(shí)現(xiàn)的,,因此,,這個(gè)方案的SSL與通常的SSL相比較也有一些不同之處,我們對這些不同的說明如下:
1)?改進(jìn)方案中將通用的SSL中由SSL服務(wù)器提供認(rèn)證的部分取消,,而直接將SSL服務(wù)器的公共密匙編碼到Applet中去,。因?yàn)橐粋€(gè)Applet在任何情況下只能也只需要連接到其下載Applet的服務(wù)器上去,所以這樣簡化并不影響通用性,,并且可以為Applet可以節(jié)省大量的空間,,去除了為解析X.509認(rèn)證的ASN.1部分,大大地減小了Applet的大小,。
2)?同理,,由于公共密匙被直接編碼到Applet中,認(rèn)證過程被取消,,從而使因公共密匙交換無效產(chǎn)生的SSL握手信息ServerKeyExchange也被取消,,這個(gè)改變不會帶來其他影響。
3)?客戶端" title="客戶端">客戶端的認(rèn)證過程也被取消了,,因?yàn)锳pplet受安全限制不能直接讀寫本地文件系統(tǒng),,因此,本地的證書和私有密匙就不能讀出,。為了認(rèn)證與CAP建立連接的各個(gè)客戶端,,我們將本地PIN碼直接提交到Applet中,由于我們使用強(qiáng)加密模式進(jìn)行所有的數(shù)據(jù)傳輸,,因此,,這樣做不會帶來安全方面的漏洞。
4)?SSL3.0提供的多會話緩存技術(shù)也被簡化了,。因?yàn)槊總€(gè)Applet只與CAP服務(wù)期建立一個(gè)連接,,所以改進(jìn)的SSL實(shí)現(xiàn)方案不必處理多連接的情況。
5?結(jié)論
??? 本文針對目前國內(nèi)大多數(shù)SSL實(shí)現(xiàn)由于受美國法律限制只能提供弱加密模式的缺點(diǎn)提出了一個(gè)新的使用Java Applet來改進(jìn)SSL強(qiáng)加密模式的方案,。該方案利用SSLConnection類實(shí)現(xiàn)128位的SSL強(qiáng)加密模式,,同時(shí)又使用瀏覽器內(nèi)部的40位弱加密模式進(jìn)行二次加密,從而使得所建立的連接更加安全,。在新的改進(jìn)方案中,,我們利用URLConnection類配置代理服務(wù)器跨越防火墻,使得該方案適用范圍更廣,,實(shí)用性更強(qiáng),。
參考文獻(xiàn)
[1]?Java Development Kit, Sun Microsystems, http://www.javasoft.com/products/jdk
[2]?JavaScript, Netscape, http://developer.netscape.com/tech/javascript/index.html
[3]?Java Applet Security, Javasoft, http://java.sun.com/security/SRM.html
[4]?Java Applets, Sun Micro, http://www.javasoft.com/applets/index.html
[5]?SSL, Netscape, http://home.netscape.com/eng/ssl3/index.html
[6]?HTTP, W3C, http://www.w3.org/Protocols/
[7]?HTML, W3C, http://www.w3.org/MarkUp/
[8]?URLConnection, JDK Doc,
[9]?Java Archive, Sun Microsystems, http://www.javasoft.com/products/jdk/1.1/docs/guide/jar/index.html
[10]?Signed JAR files, Sun Microsystems, http://java.sun.com/secuirty/signExample/
[11]?JDK Version, Sun Microsystems, http://java.sun.com/products/OV_jdkProduct.html
[12]?Java Activator, Sun Microsystems, http://www.javasoft.com/products/activator/index.html
[13]?Active X, Microsoft, http://www.microsoft.com/com/default.asp
[14]?PlugIn, Netscape, http://home.netsape.com/plugins
SSL Applet, IAIK, http://jcewww.iaik.tu-graz.ac.at/Applet/Applet.html

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]