摘 要 本文先概述了Java開發(fā)平臺的整體情況,接著,對Java開發(fā)平臺的安全性進行研究,Java開發(fā)平臺的安全性主要從體系結(jié)構(gòu)、程序語言、API功能等三個方面進行闡述,作為以后的參考。
【關(guān)鍵詞】Java開發(fā)平合 安全性 體系 程序語言 API功能
1 Java開發(fā)平臺概述
1995年,Java被Sun Micro system公司推出的,其屬于一種程序設(shè)計語言,以前作為一種Oak程序設(shè)計語言,主要對有線電視機頂盒、PDA等設(shè)備微處理器進行控制,到了1994年,把其叫做Java,其具有顯著的安全、可移植、兼容等性能。隨著Internet的發(fā)展,使Java也得到發(fā)展。其被作為一種最流行的程序開發(fā)語言使用在網(wǎng)絡上,支持Java的編程語言的開發(fā)主要是UZtraEdit、JavaDevelo pmentKit(JDK)等等。
2 Java開發(fā)平臺安全性研究
2.1 體系結(jié)構(gòu)
在Java虛擬機中運行Java的體系結(jié)構(gòu),其原理包括:編碼、運行等。在實施編譯時,將Java源代碼文件編譯為二進制的字節(jié)碼文件,在具體運行時,需要使用類加載器完成加載clan文件。其中涉及了二進制字節(jié)碼文件、原始的API clan文件等,同時,對其進行連接、初始化,接著執(zhí)行引擎運行,當字節(jié)碼校驗器校驗之后。而執(zhí)行引擎,包括有解釋器、JIT代碼生成器。通過Java的體系結(jié)構(gòu),確保其安全運行。對于Java應用程序,一旦使用標準的API功能,則可以直接應用與多種平臺,使Java開發(fā)平臺具有網(wǎng)絡移動性,進而形成一種新的軟件模式,在網(wǎng)絡的情況下,把軟件、數(shù)據(jù)輸入給客戶端,為安全性提供更好的支持。
2.2 Java程序語言
在開發(fā)Java時,Sun Micro system公司把安全性放在第一位,而Java程序語言,在層次上包括幾個方面,充分說明了Java開發(fā)平臺的安全性。
(1)語言規(guī)范和編譯器。在語言規(guī)范、編譯器的基礎(chǔ)上,源代碼更加安全,在設(shè)計Java程序語言時,需要把C,C++中具有的非安全操作及時限制,同時,程序語言禁止直接去訪問內(nèi)存,通過引用分配對象的方式來進行。而在Java程序語言中,往往具有真正的數(shù)組,為了對數(shù)組進行訪問,可以用嚴格的邊界完成檢查。關(guān)于Java源代碼文件的編譯,涉及到的轉(zhuǎn)換有必要進行合法性地檢查,通過檢查,確保語言的規(guī)范,但是他也存在一定的不足,而字節(jié)碼校驗恰好解決了這個不足。為了保證源代碼的合法性,往往使用符合程序語言規(guī)范的編譯器,除非遇到惡意的攻擊,編譯器會被更改,進而出現(xiàn)非安全、非規(guī)范的字節(jié)碼。所以,通過字節(jié)碼校驗,檢查被篡改的那些編譯器編譯的代碼,使字節(jié)碼的格式有保證。
(2)類加載器存在于Java虛擬機中,其會加載clan文件、原始的API clan文件等,同時,對應用程序進行鏈接與初始化。在對字節(jié)碼加載時,也對其完成字節(jié)碼驗證,確保字節(jié)碼準確。因此,在Java的程序語言中,往往有一些防護措施,包括兩個方面,其一,其具備特殊的權(quán)限,在Java虛擬機中,能夠創(chuàng)建一個,或安裝一個新的加載器。其二,對于全部新安裝的類加載器,需要有一個副加載器,確保以前加載器被保護起來,尤其對于JavaAPI類。其作為Java安全機制的一個核心類。
(3)在Java虛擬機中,還有一個安全管理器,即“沙箱”。而這個沙箱,主要是把本地資源隔離與Java虛擬機中的資源,使得本地操作系統(tǒng)或應用程序不被虛擬機中的惡意代碼破壞。這個沙箱體系作為Java開發(fā)平臺一個最大的優(yōu)勢和特點,其為不同代碼單元制定了訪問控制權(quán),確保其安全,并且授予其代碼。
(4)隨著新版本Java工具的開發(fā),安全管理器被訪問控制器替換了,其具有更好地安全策略,使用起來更加靈活,其包括三種形式,其一,隨著安全策略的實施,能夠決定是不是去訪問系統(tǒng)的關(guān)鍵資源。其二,對代碼執(zhí)行標記,使其具有特權(quán),并制造影響給后續(xù)的訪問。其三,為了獲得當前調(diào)用的上下文,往往以快照的形式進行,同時,及時完成保存。
2.3 Java的API功能
2.3.1 認證與授權(quán)
在Java開發(fā)平臺中,通過發(fā)揮API功能,為其提供了身份認證的組件,從而能夠?qū)Ξ斍皥?zhí)行各種類型代碼的用戶進行準確地識別,包括:應用程序、applet、heano等,而JARS有效地補充了現(xiàn)有的安全策略內(nèi)容,而用戶與任務起源影響其決定性。對于Java開發(fā)平臺,同意JARS運行嵌人式的執(zhí)行方案,進而確保JARS與Java的內(nèi)置安全策略的底層認證與授權(quán)更加獨立,為新的認證與授權(quán)技術(shù)更加有效。
2.3.2 加密擴展
Java開發(fā)平臺在使用JCE程序的基礎(chǔ)上,為其加了密鑰。JCE使用javax.crypto .Cipher類對對象的進行加密或解密。也為接口寫入,或讀出數(shù)據(jù)進行加密與解密,對于這個類,給Java開發(fā)平臺多種加密的算法、模式、填補的機制。
2.3.3 安全套接字擴展
通過Java開發(fā)平臺,開發(fā)者得到了安全Internet通信的擴展包,即JSSE。通過擴展包,形成了SSL與TLS的Java技術(shù)版本,提供給開發(fā)者諸多功能,比如,給數(shù)據(jù)加密、確保消息的完整、認證可選客戶端的身份、認證服務器的身份等。在執(zhí)行JSSE的安全策略時,需要在SSL環(huán)境下進行,利用JDK的kevtool工具來管理兩個庫。其二,在使用JSSE時,套接字的獲得是從JSSE套接字工廠得到的,通過這種方式,可以直接利用JSSE提供的程序框架,定義HTTP,F(xiàn)TP,TCP/IP等協(xié)議。
參考文獻
[1]王海,于佳.Java開發(fā)工具分析與研究[J].吉林化工學院學報,2016(03):67-70.
[2]文其瑞.基于Java EE應用程序的web服務安全性分析[J].電子制作,2013(16):152.
[3]趙爭東.基于Java的數(shù)據(jù)庫應用框架的研究設(shè)計和探索[J].信息系統(tǒng)工程,2015(12):12-16.
作者簡介
王浩(1993-),男,陜西省渭南市人。西安文理學院信息工程學院2013級在讀學生,主要從事java開發(fā)。
作者單位
西安文理學院信息工程學院 陜西省西安市 710065