張天怡
摘要:隨著互聯網產業的快速發展以及云計算的廣泛應用,Java由于其自身所具有的優點,得到了廣泛的應用。但是,在Java程序應用的過程當中,其安全性問題引起了廣泛的關注。網絡應用程序的安全問題不僅與其所涉及的內容有著直接關系,同時也離不開相關的安全管理。在Java程序應用的過程當中,如何保證其應用的安全性,是一項急需解決的課題。文章在研究中主要分析了Java的安全機制,Java權限以及安全保護策略,以期對Java保護有所助益。
關鍵詞:Java應用程序;安全性;安全機制;策略
以Java作為程序開發語言,其開發的程序最大特點是平臺的無關性,尤其開發的程序能夠在不同平臺上進行移植,是企業級應用開發時常用的語言。Java是一種安全性的語言,并且經常被用來作為安全設計中的重要部分。當然,在Java設計語言應用當中也存在有很多缺陷,難以在全方位滿足安全性的需求,從Java本身來看其保護方法比較少,而且這些方法往往不能取得很好的成效,這樣導致了程序員設計的程序很容易被別人復制。因此,在Java程序應用當中,如何保證程序的安全性是重要的課題。
1.Java安全機制
1.1安全策略
Java是指其環境的安全主要是由安全策略決定的,在本質上安全策略指的是一個訪問矩陣,具體指的是何種系統資源、使用何種方式以及在什么環境下能夠被訪問。一個完整的安全策略指的是從描述代碼的特征到訪問權限間的映射。在Java系統當中,Java安全體系主要是由應用保護域以及系統保護域兩部分。在這之中,系統保護域的主要對象是文件系統以及網絡套接字等系統資源的訪問進行控制;應用保護域的對象主要是系統當中組建以及應用程序某部分訪問進行控制,是系統中的具體的應用程序。在安全策略當中保護的應用能夠有效提升Java應用的安全。并且在實際應用的過程當中,會采取定制權限的方式對特權代碼的訪問進行限制。
1.2Java認證以及授權服務
在實際運行的過程之中,Java需要根據依托于安全策略給運行代碼相應的權限,在以代碼為基礎的訪問控制方式以及系統依賴代碼各種特性的安全措施,有很大差異,并且能夠更加合理。但是,由于Java被用于多用戶環境中,這就要求其必須與各種用戶進行溝通,并且根據用戶權限的不同給用戶不同的許可。在應用的過程中,Java通過對用戶進行認證和授權服務,能夠為鑒別用戶以及對用戶進行權限進行分配以及提供準確化的編程接口,并在J2SEl.4中進行集成。這樣在對訪問行為進行控制時,可以選擇以代碼為中心的控制模式,也可以選擇以用戶為中心的控制模式,也可以將兩者結合起來。JASS的應用提供了很重要的服務,具體指的是認證和授權。在認證環節當中只要知道是誰在運行代碼,而不用去討論和管理代碼是怎樣運行的。授權,指的就是對具體的用戶操作權限進行確定。
1.3安全訪問控制
在Java使用的過程當中,應用程序安全模型能夠對訪問工作進行有效管理,并可以對訪問進行配置和一定調整。其中所有的訪問資源都是訪問權限的對象。在具體的應用過程當中,通過權限設置提供以及拒絕對用戶提供資源,這樣在運行的過程中,就確保了用戶在相關指令的基礎上進行操作。Java在其運行的過程其運行環境的安全性主要是有安全策略執行。安全策略能夠在確定資源類型的基礎之上,根據環境因素選擇科學的訪問方式。當前Java程序在不同的平臺上進行運行時,為了保證運行的安全,系統安全需要依靠應用級上,相對建立在操作系統上的系統級安全,能夠起到更好的效果。從這一方面來說,在Java的應用級上,擁有很多技術,從而能夠有效確保系統安全,特別是在有關的應用程序在采取基本的保護之后,能夠使系統的安全性得到很大提高,能夠防范各種風險。
2.Java的權限以及保護策略分析
2.1保存本地數據
在本地存儲獨立應用程序存在一個問題,也就是在運行應用程序的用戶一般需要讀取以及寫入數據文件,這就表明在不經過應用程序的情況下就能夠修改以及讀取數據。在防范這類風險時,最簡單的做法就是將數據存儲于不同的位置。如果信息必須在本地進行數據存儲時,通過借助于JCE就可以對數據進行加密,之后將其存儲到文件當中。在具體應用之中,對稱密鑰算法有更大的優勢,因此,在進行加密時一般都會選擇對稱密鑰。但是,對稱密鑰也有其缺陷,對稱密鑰沒有公私結合的安全性。在密鑰生成中,為了保證安全,會選擇在密鑰中加入口令和鹽。口令可以自己決定,在解密當中只有通過口令才可以得到明文。鹽具體指的是一個無關的數據序列,并可以將其加入到加密數據之中,在揭秘時,需要鹽從明文當中去除,采用這種方式可以有效防止黑客的逆向處理。
2.2防止被盜版
在進行設計的過程中,盡管系統當中的各種安全漏洞被有效彌補了,但是,實際上仍舊容易受到攻擊,也就是代碼的濫用。即使不存在應用程序源代碼,對技術水平比較高的技術人員而言,通過使用與設計者意愿不同的方式也可使用程序。因此,在程序使用的過程當中,必須采取合理的措施保證不會被盜版。雖然,從目前來看,還沒有有效的方法防止盜版,但是在實際工作當中通過合理的使用JCE,能夠確保程序有效規避攻擊。在這之中一個十分有效的方法就是設計一個全面的軟件授權策略。在以前,在這一方面很多機制都是使用哈希碼或者是簡單的加密進行傳輸和確認授權信息。這些技術仍然可以使用到Java當中。在此,可以假定可以對系統中所有的用戶傳遞一個專門的“鑰”,在進行解密時,包括了增強授權方法的各類信息。
2.3EJB安全
J2EE所提供的一個十分好的特性及時EJB,通過對不同的EJB的使用可以對組建進行實現。實體Bean指的就是持續數據,會話Bean代表與客戶端進行對話,并且這也是其主要的功能,消息驅動Bean能夠使EJB處理異步信息。如果在應用中只是采取容器提供的J2EE服務,那樣從整體上看EJB抱住是最好的一種J2EE組件類型。EJB實現允許容器增強安全性,并且此種安全機制是保證EJB的最好時間。如果缺乏這樣的安全機制,任何遠程用戶只能通過EJB服務器并得知遠程部署的Bean接口信息,就可以訪問服務器并能夠執行遠程方法。
2.4預防RMI風險
RMI的設計很簡單,并且靈活多變,并且是建立在Java語言的多種特點的基礎之上的,可以容易的實現網絡之間方法的調用,并且默認多種全機制存在。這種用戶通過調用遠程訪問方式,能夠對存在的安全漏洞進行破解。RMI一般會在沒有任何認證的情況,通過明文對網絡間的方法進行調用,這樣就出現了很嚴重的安全隱患,能夠讓沒有經過認證的用戶也能對系統信息進行訪問。應用程序的安全,都蘊含著矛盾的思想,也就是說任何一項安全措施一方面能夠為保證系統安全提供幫助,在另一方面也可能在運行的過程中造成損失,因此,在對程序進行設計和開發的過程中需要給予更多的安全考慮。Java具有多種安全特性,并且作為使用自身基礎實現的保障平臺。同時在Java語言中對于安全類型以及完整性語義都已經作了定義和規范,但是其仍舊需要虛擬機所支持的運行和保障。這就不難看出,利用現有的各種安全系統,建設一個體系保障Java的應用程序的安全性也是十分必要的。
3.結語
綜上所述,在使用Java程序的過程中如何保護其安全性是一個復雜的問題。并且對著其應用程序的不斷發展以及現代技術的快速進步,必須對齊安全性進行深入的研究和探索。在研究過程中,充分吸收成功案例取得的經驗,并及時建設一個可靠的平臺,才能夠充分發揮出Java應用程序的作用,并向用戶提供更加優質的服務。從整體上看,在Java開發平臺涉及的安全方面的內容比較多,因此,要構建一個非常安全的Java應用程序是比較困難的。但是,這對于促進Java的應用有著十分重要的意義。文章主要研究了Java程序中存在的缺陷,并就其措施進行了探討,希望對Java應用程序的安全保護工作有所幫助。