999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于JAVA平臺的移動代碼安全性探討

2009-04-29 00:00:00劉夢飛
電腦知識與技術(shù) 2009年15期

摘要:該文對Java平臺中Applet安全性方面的問題,從1.0 版本至今的發(fā)展過程進行了討論。詳細(xì)討論了Java 2 平臺對移動代碼安全性的解決方案及Java 6.0平臺安全性的增強,對于在java平臺下進行移動代碼開發(fā)有一定指導(dǎo)意義。

關(guān)鍵詞:Java;Applet;SunPKCS11;SunMSCAPI;沙箱;簽名

中圖分類號:TP309 文獻標(biāo)識碼:A 文章編號:1009-3044(2009)15-3874-02

JAVA Platform Based on the Mobile Code Security of Investigate

LIU Meng-fei

(Shandong Yingcai College, Department of Computer, Jinan 250100, China)

Abstract: This paper discusses the history of the security of java applets in java platform. This paper emphasizes discusses the security solution of java applets in Java 2 platform and the Security Enhancements of Java 6 platform. The developer on mobile programs may under this paper's directing.

Key words: Java; Applet; SunPKCS11; SunMSCAPI; Sandbox; Signature

1 移動代碼的安全性

隨著Java平臺的廣泛使用,Java平臺下移動代碼的安全性受到越來越多人的關(guān)注。Java 平臺的安全模型從JDK1.0 到現(xiàn)在的Java 6.0,Java平臺的安全體系不斷改進,整體安全性也不斷得到加強。

網(wǎng)上程序在動態(tài)性上是令人滿意的,但它們在安全性和可移植性方面也顯示出嚴(yán)重的缺陷。在Java產(chǎn)生以前,當(dāng)前賽百空間有一半的對象實體無法進入網(wǎng)絡(luò)世界,是Java為它們打開了便利之門,而且在這個過程中定義了一種全新的程序形式:Applet(Java小應(yīng)用程序)。

Java可用來生成兩類程序:應(yīng)用程序(Applications)和Java Applet(小應(yīng)用程序)。應(yīng)用程序是可以在你的計算機的操作系統(tǒng)中運行的程序。小應(yīng)用程序是可以在Internet中傳輸并在兼容Java的Web瀏覽器中運行的應(yīng)用程序。小應(yīng)用程序?qū)嶋H上就是小型的Java程序,能像圖像文件、聲音文件和視頻片段那樣通過網(wǎng)絡(luò)動態(tài)下載,它與其他文件的重要差別是,小應(yīng)用程序是一個智能的程序,能對用戶的輸入作出反應(yīng),并且能動態(tài)變化,而不是一遍又一遍地播放同一動畫或聲音。

Java移動代碼是一種可以通過網(wǎng)絡(luò)從一臺計算機傳到另一臺計算機上運行的Java程序(如:Java Applet),在現(xiàn)代網(wǎng)絡(luò)計算及電子商務(wù)中具有廣泛應(yīng)用。

Java 平臺的安全模型經(jīng)歷了一個不斷發(fā)展的過程,從JDK1.0 到現(xiàn)在的Java 2 SDK v1.4,再到Java 6.0。Java平臺的安全體系不斷演變,新的安全模型和機制不斷提出,而整體安全性也不斷得到加強[1]。由此使得Java移動代碼的安全性也不斷演變。

2 JDK1.1安全模型

在Sun Java平臺最初的版本———Java開發(fā)包(Java Development Kit,JDK)1.0.x中,引入了基于沙箱(Sandbox)的安全模型。該模型主要支持安全地下載和運行Java Applet,并規(guī)避所有針對用戶資源的潛在風(fēng)險。

沙箱模型的實質(zhì)是本地代碼對重要的系統(tǒng)資源有全部的訪問權(quán)限,而下載的代碼(例如Applet)則不被信任并且僅能夠訪問沙箱提供的有限資源。沙箱模型如圖1所示。

在JDK1.0沙箱安全模型中,所有的Applet 都被認(rèn)為是不可信的,被限制在沙箱模式中運行。這種限制對于計算機環(huán)境的安全非常有利,但卻太苛刻了。JDK1.1引入了“Signed Applet”的概念,如圖2所示。在該版本中,允許在驗證Applet簽名者的信息后,將Applet作為可信代碼下載并執(zhí)行。為支持簽名Applet,JDK1.1.x還新增了對加密算法的支持以便提供數(shù)字簽名功能。有了這些支持,就可以對Java Applet類進行數(shù)字簽名,生成Java(Java Archive Format,JAR)歸檔格式文件。被簽名的Applet和他們的簽名一起以JAR的格式發(fā)送,未簽名的Applet仍然運行在沙箱環(huán)境中。如果某個Applent的簽名者被驗證為可信,那么這個Applent就可以像本地資源一樣自由的訪問系統(tǒng)了。

3 Java 2安全模型

從JDK1.2開始,Sun將Java平臺升級為Java 2平臺,Java 2安全模型彌補早期安全模型的局限性(此問題的詳細(xì)論述可參閱文獻[2]),并且在Java 2平臺提出了全新的安全體系結(jié)構(gòu),如圖3所示。

引入新的安全體系結(jié)構(gòu)的重大優(yōu)勢:

1) 細(xì)致的訪問控制。這種能力一開始就存在于JDK中,但是使用它需要程序開發(fā)人員做大量的編程工作,例如繼承(Subclassing)和定制SecurityManager和ClassLoader類。HotJava瀏覽器1.0就是這樣的應(yīng)用程序,因為它允許瀏覽器用戶選擇不同的安全級別。然而,這種編程方法具有極端的安全敏感性,并且要求高超的技術(shù)和深厚的計算機安全知識。新的安全體系結(jié)構(gòu)使得這個過程比較簡單和安全。

2) 容易配置的安全策略。這種能力也較早出現(xiàn)在JDK中并且不易使用,更為重要的是編寫安全代碼不夠直觀,讓程序開發(fā)人員和用戶不需要編程只需配置安全策略,這才是大家所期望的。

3) 容易擴展的訪問控制結(jié)構(gòu)。新的體系結(jié)構(gòu)允許類型化的許可權(quán)限(每一個許可權(quán)限代表著對一個系統(tǒng)資源的訪問)以及對正確類型的所有許可權(quán)限的自動處理(包括還沒有定義的許可權(quán)限)。

4) 安全檢查擴展到所有的Java程序。不再有內(nèi)在的“所有本地代碼都是可信” 的概念。盡管,需要的話可以讓本地代碼具有最自由的安全政策——使得那些代碼完全被信任并且有效的運行,但是在新的安全體系結(jié)構(gòu)里面,本地代碼(例如非系統(tǒng)代碼,安裝在本地文件上的應(yīng)用程序包)象Applet一樣受到嚴(yán)格的安全控制。

5) 對安全類(包括SecurityManager和ClassLoader)的設(shè)計中作內(nèi)部調(diào)整以減少在未來編程中存在細(xì)小安全漏洞的風(fēng)險等。

4 移動代碼安全性在Java 6中的增強

在Java 6的安全部分,又增加了 XML-Digital Signature (XML-DSIG) APIs, 整合了GSS/Kerberos的操作API、LDAP上的JAAS認(rèn)證。現(xiàn)在Sun公司的Java 6平臺,更是提供了一整套安全有效的移動代碼安全性解決方案,我們通過使用Java 6 平臺,可以使自己開發(fā)的移動代碼獲得足夠高的安全性,以及足夠的靈活性。既可以達(dá)到安全使用的目的,同時又不喪失移動代碼可以進行的工作以及進行操作的簡易性。

4.1 算法支持

1) SunPKCS11支持橢圓曲線算法(Elliptic Curve Cryptography)。

如果底層PKCS#11接口支持ECC算法,SunPKCS11可以在Java平臺提供ECC的支持,包括了ECDSA簽名、驗證,ECDH密鑰協(xié)商,以及EC密鑰對生成。

ECC是美國家安全局所選擇的下一代安全技術(shù),其宗旨是保護美國政府的機密信息。Java System Web Server中的組件可大大減少完成安全在線處理的時間,因此可提高系統(tǒng)的性能和縮放能力。同時,ECC加密技術(shù)也提高了Java System Web Server的安全性能。

ECC加密技術(shù)比起傳統(tǒng)加密技術(shù)在解密時使用的公鑰較小,但可獲得同等級的安全性能。較小的公鑰就能獲得更高的資源利用率、更長的電池壽命和更快的計算速度。

2) SunJSSE支持橢圓曲線算法。

現(xiàn)在如果JDK中存在合適的密碼算法提供者提供ECC算法(例如,有合適的底層PKCS#11庫支持的SunPKCS11),SunJSSE可支持RFC4492(傳輸層安全(TLS)的ECC密碼組)中定義的ECC算法。

4.2 對本地Microsoft Windows系統(tǒng)PKI和密碼服務(wù)的調(diào)用

增加了一個JCE提供者SunMSCAPI,SunMSCAPI使用Microsoft CryptoAPI(CAPI)提供各種RSA算法的功能實現(xiàn)。它成為Java應(yīng)用程序和通過CAPI中CSP(Cryptographic Service Provider)提供的RSA 算法服務(wù)之間的橋梁。SunMSCAPI提供了使用X.509證書和RSA密鑰對的方法,可以進行RSA加密和解密,可以創(chuàng)建和驗證RSA簽名等,同時提供密碼算法中使用的隨機數(shù)生成器。

4.3 強化了PKI證書路徑驗證的實現(xiàn)

增加了分段和重定向CRL的支持,提高了兼容PKIX 的性能(RFC3280)。

4.4 使用LDAP實現(xiàn)JAAS為基礎(chǔ)的身份鑒別

JAAS中增加了一個登錄模塊,從而用戶可以使用LDAP中儲存的證書進行身份認(rèn)證。它為JAAS為基礎(chǔ)的那些希望支持使用LDAP進行身份認(rèn)證的已有應(yīng)用程序提供了一種解決方式。

4.5 其他相關(guān)安全性改善

1) SunPKCS11支持訪問NSS(Network Security Services)

SunPKCS11提供者現(xiàn)在支持新的配置方式,使用戶可以訪問NSS(Netscape Security Services)安全庫。這種方式使得Java應(yīng)用程序可以從NSS數(shù)據(jù)庫文件中讀取密鑰,從而可以使用ECC算法,并且將NSS軟件Token做為一個兼容FIPS140的密碼算法提供者。

2) SunJSSE兼容FIPS140

SunJSSE現(xiàn)在實驗性的支持FIPS140兼容模式。當(dāng)一起激活并使用SunPKCS11提供者和經(jīng)FIPS140認(rèn)證的合適的PKCS#11接口庫,SunJSSE就可兼容FIPS140。

3) 套接字(Socket)讀取超時在SunJSSE SSLSocket中已經(jīng)可以完全支持。

前面的版本中,調(diào)用setSoTimout()可能有時導(dǎo)致不可預(yù)知的結(jié)果,現(xiàn)在已經(jīng)被修正。

4) SunJCE分組密碼中增加CTS(Cipher Text Stealing)模式。

CTS是Bruce Schneier在“應(yīng)用密碼學(xué)-第二版”中描述的,并被用在一些Kerberos實現(xiàn)中。CTS是算法的密文挪用模式,處理任意長度的明文且密文的長度匹配明文的長度。

5) Java GSS支持SPNEGO

Java GSS現(xiàn)在支持SPNEGO。SPNEGO(Simple and Protected GSS-API Negotiation)機制是一種偽安全機制,使得GSS-API端端之間可以安全的協(xié)商一個公共的安全機制來使用。

6) Java GSS/Kerberos支持新的Pre-Authentication機制。

Java GSS/Kerberos支持在最新的Kerberos規(guī)范中描述的Pre-Authentication機制。

7) Java GSS/Kerberos 支持AES加密類型

Java GSS/Kerberos現(xiàn)在可以支持AES加密類型(包括AES128和AES256)。這項改動增強了Java SE Kerberos實現(xiàn)與其他Kerberos實現(xiàn)的互操作性(例如Solaris 10 和MIT Kerberos)。

8) Java GSS/Kerberos 支持RC4-HMAC加密類型

Java GSS/Kerberos現(xiàn)在可以支持RC4-HMAC加密類型。這項改動增強了Java SE Kerberos實現(xiàn)與其他Kerberos實現(xiàn)的互操作性(例如Windows,Solaris 10 和MIT Kerberos)。Windows AD(Active Directory) 支持將RC4-HMAC做為Kerberos默認(rèn)加密類型。

5 結(jié)論及討論

Java平臺的安全模型是經(jīng)歷了一個發(fā)展過程才轉(zhuǎn)變?yōu)楝F(xiàn)在的形式,在這個轉(zhuǎn)變過程中Java平臺的安全性不斷得到加強,并且提供了一整套安全有效的移動代碼安全性解決方案,我們通過使用Java 平臺,可以使自己開發(fā)的移動代碼獲得足夠高的安全性,以及足夠的靈活性。既可以達(dá)到安全使用的目的,同時又不喪失移動代碼可以進行的工作以及進行操作的簡易性。Java平臺實現(xiàn)的移動代碼擁有廣闊的前景

參考文獻:

[1] Li Gong,Security on the Java Platform: Recent Developments and Future Directions, JavaOne 1998.

[2] Li Gong,Inside Java 2 Platform Security Architechture,API design and Implementation,Sun Microsystems Inc,1999.

[3] JavaTM 2 SDK.Standard Edition Documentation Version 1.4.2. Sun Microsystem,2004.

[4] JavaTM Archive (JAR) Features.Sun Microsystem,2003.

[5] jar-The Java Archive Tool.Sun Microsystem,2003.

[6] [美]CarLisle, Adams SteveLloyd(著),公開密鑰基礎(chǔ)設(shè)施—概念、標(biāo)準(zhǔn)和實施[M].馮登國,譯.北京:人民郵電出版社,2001.

主站蜘蛛池模板: 国产精品女同一区三区五区| 99热国产在线精品99| 青青草综合网| 青青青视频91在线 | 亚洲欧美综合在线观看| 91青青视频| 国产视频一二三区| 免费中文字幕在在线不卡| 欧美国产在线看| 国产第四页| 国产在线啪| 日韩久久精品无码aV| 在线观看的黄网| 亚洲成人网在线播放| 久久免费成人| 亚洲毛片网站| 色婷婷在线播放| 亚洲三级成人| 久久亚洲美女精品国产精品| 亚洲AⅤ波多系列中文字幕| 宅男噜噜噜66国产在线观看| 亚洲美女AV免费一区| 日本黄色a视频| 亚洲男人的天堂在线观看| 日本五区在线不卡精品| 精品一区二区三区波多野结衣| 99热国产这里只有精品无卡顿"| 日本黄色a视频| 亚洲无码在线午夜电影| 狠狠做深爱婷婷久久一区| 在线高清亚洲精品二区| 国产不卡国语在线| 2021精品国产自在现线看| 亚洲色大成网站www国产| 美女无遮挡免费视频网站| 波多野结衣一二三| 99青青青精品视频在线| 国产噜噜在线视频观看| 日韩一二三区视频精品| 亚洲高清国产拍精品26u| 成年人福利视频| 免费 国产 无码久久久| 国产v欧美v日韩v综合精品| 亚洲网综合| 亚洲视屏在线观看| 免费看av在线网站网址| 91精品人妻一区二区| 日韩视频福利| 亚洲日韩第九十九页| 国产精品白浆在线播放| 真人高潮娇喘嗯啊在线观看| 久久人人妻人人爽人人卡片av| 亚洲欧美日本国产综合在线| 国产综合亚洲欧洲区精品无码| 久草视频中文| 欧美日韩中文国产| 日韩性网站| 国产日韩精品一区在线不卡| 国产精品第一区在线观看| 伊人AV天堂| 找国产毛片看| 免费一看一级毛片| 亚洲黄色视频在线观看一区| 免费女人18毛片a级毛片视频| 亚洲精品黄| 99精品久久精品| 亚洲激情区| 在线观看av永久| 亚洲日韩精品伊甸| 99这里只有精品在线| 草逼视频国产| 欧美在线综合视频| 亚洲黄网视频| 国产激爽爽爽大片在线观看| 乱人伦99久久| 69综合网| 91精品视频在线播放| 欧美www在线观看| 91网在线| 亚洲国产无码有码| 午夜在线不卡| 国产69精品久久久久妇女|