如何用Java Applet來實現(xiàn)SSL的128位強加密

針對SSL在國內(nèi)無法實現(xiàn)強加密所帶來的問題,我們提出了一個用Java改進安全套接層加密模式的新方案.新方案使用獨立的Java Applet來實現(xiàn)SSL的強加密模式,并且可以跨越防火墻,加密的效果比現(xiàn)有的SSL的128位強加密的實現(xiàn)更加安全。

一、用Java Applet來實現(xiàn)SSL的128位強加密的設計思路

為了實現(xiàn)SSL強加密的連接,必須解決以下4個問題,此方案正是基于這4個方面的考慮提出的。

1、不同操作系統(tǒng)中的SSL可能有不同版本,如SSL2. 0 ,SSL3. 0。由于目前國內(nèi)的大多數(shù)操作系統(tǒng)中的SSL協(xié)議只有弱加密模式的實現(xiàn),因此,不能直接利用基于操作系統(tǒng)的通信方式,比如通信組件,而必須使SSL實現(xiàn)獨立于操作系統(tǒng)以避開操作系統(tǒng)弱加密模式的通信限制。

這樣,改進方案必須不依賴于操作系統(tǒng)。我們提出使用JavaApplet.

2、對于Java Applet的SSL連接的實現(xiàn),最直接的方式就是使用瀏覽器來實現(xiàn)。這里采用統(tǒng)一的XML格式,實現(xiàn)方法如下:

〈form method =”POST”name =”SECURE”

target = https:∥Communication. CAP/servlets/ GetData〉

Value:〈input type =”XML”size =”20”name =”Value”〉〈/form〉

①HTTP , W3C , http :∥www. w3.org/ Protocols/

這個方法使用https指明是通過SSL連接的http。顯然,這種方法的安全性依賴于瀏覽器的SSL。雖然Linux下面的Mozilla和Kopera等瀏覽器可以實現(xiàn)128位的強加密模式,但是就目前國內(nèi)的情況而言,這些瀏覽器使用的范圍較小,因此這種直接利用瀏覽器實現(xiàn)128位強加密的連接方式并不通用。

另一方面,國內(nèi)使用最為廣泛的Navigator ,IE等瀏覽器由于同樣受到美國法律限制,也都只能提供40位的加密器。這樣,這種直接的簡單實現(xiàn)顯然不能滿足我們的要求;另外,直接利用瀏覽器對傳輸?shù)奈募愋蛷娂恿讼拗?,這對有些試圖通過獨立的通信文件格式在客戶段和服務器間進行通信的情況也是不適用的。為此,我們提出的改進方案必須獨立完成SSL而不能依賴于瀏覽器。

3、為獨立完成SSL實現(xiàn),使用Java的Socket類,這樣又遇到了防火墻的問題,為了安全和效率方面的考慮,很多服務器都會放在防火墻之后。這樣,當試圖通過Applet直接連接時,無法繞過這個防火墻而打開在防火墻后面的連接服務。解決防火墻的一個常用辦法就是使用可信賴的代理,可是Socket類無法接入配置信息,也就是說不能在Socket類中設置代理。為了解決這個矛盾,在改進的SSL連接方案中,必須考慮使用其他類以便配置連接。

4、在Applet實現(xiàn)SSL強加密模式的連接方案中,使用URLConnection類建立到服務器的連接,具體URLConnection類的連接如下:

URL serv-con = new URL(https:∥Com2munications. CAP/ sccure”);

URLConnection serv-fork1 = serv-con.open2Connection();

InputStream instr = serv-fork1. getInput2Stream();

OutputStream outstr = serv-fork1. getOutput2Stream();

綜合上面所述的這些因素,我們提出了一個新的SSL強加密模式的Java實現(xiàn)方案,該方案改進了目前國內(nèi)的SSL的加密模式,充分考慮到了SSL連接的通用性和安全性。

二、用Java Applet來實現(xiàn)SSL的128位強加密的具體實現(xiàn)過程

假設要越過防火墻使用SSL的128位強加密模式連接其后面的CAP服務器,使用Applet自身完成的128位強加密加上瀏覽器40位的弱加密來共同實現(xiàn)改進的SSL實現(xiàn)方案,具體方案圖如圖所示。

如何用Java Applet來實現(xiàn)SSL的128位強加密

首先,利用類java. net. URLConnection通過一個可信賴的代理來跨越防火墻打開CAP的連接服務;然后,通過Applet的SSLConnection完成128位的SSL強加密模式;接著,利用瀏覽器的40位弱加密方式的SSL對加密后的數(shù)據(jù)進行傳送。這樣的雙重加密不但可以實現(xiàn)128位強加密(實際上的加密性能優(yōu)于128位的強SSL加密模式)而且可以通過可信賴的代理服務器跨越防火墻,無論在方案的普適性或是其安全性方面都比通常的SSL連接要好得多。當然,這些優(yōu)點也是以犧牲了一定的系統(tǒng)資源為代價的。改進方案的一些特性如下:

1、以128位IDEA作為對稱加密器;

2、以RSA作為交換密匙算法;

3、設置會話緩存加快連接;

4、 MD5作為內(nèi)部哈希算法;

5、不大于40 Kbyte的jar文件,如果為了系統(tǒng)運行的更快,可以按需要根據(jù)各個客戶端所在的操作系統(tǒng)利用J IT重新編譯成本地代碼以提高性能;

6、可以在任何操作平臺上運行。

小知識之JavaApplet:

JavaApplet就是用Java語言編寫的小應用程序,可以直接嵌入到網(wǎng)頁中,并能夠產(chǎn)生特殊的效果。