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