JAAS:是通過驗證誰 Java Authentication Authorization Service(JAAS,Java驗證和授權API)提供靈活和可伸縮的機制來保證客戶端或服務器端的Java程序。JAAS強調的是通過驗證誰在運行代碼以及他/她的權限來保護系統(tǒng)面受用戶的攻擊。
創(chuàng)新互聯(lián)公司主營七臺河網站建設的網絡公司,主營網站建設方案,重慶App定制開發(fā),七臺河h5微信平臺小程序開發(fā)搭建,七臺河網站營銷推廣歡迎七臺河等地區(qū)企業(yè)咨詢
Java的安全模式包括3層:Java語言本身,java編譯器和run-time系統(tǒng),SecurityManager類。
在語言層,java以不同的方式來實現它的安全性,什么原始類型的大小,對象的指針和偽訪問將不再唄允許,數組辯解檢查等待。
在java編譯器和run-time系統(tǒng)安全層提供了必要的功能,以確保java系統(tǒng)不會因無效代碼而崩潰,它提供了一個簡單的由一下三個子層所組成的安全的運行環(huán)境:
1:java字節(jié)代碼解釋器和類格式檢驗
2:一個在運行時動態(tài)裝載和檢查庫的機制
3:自動的垃圾回收機制、
可以的。推薦的是使用綠盾加密,采用的是文件透明加密模塊,對平常辦公使用是沒有影響的。而且綠盾支持與SVN等源代碼管理工具無縫結合。
如果企業(yè)內部SVN服務器采取透明模式,即加密文件是可以存放在SVN服務器上的,需要達到的效果是SVN服務器上文件密文存儲。則配合天銳綠盾應用服務器安全接入系統(tǒng)來實現只有安裝了加密客戶端的Windows、Linux、MAC端才能夠正常的訪問公司內部的SVN服務器。
如果企業(yè)內部采用eclipse、VS等開發(fā)工具,從這些開發(fā)工具將代碼直接上傳到SVN服務器上時會自動解密。為了避免明文、密文混亂存放導致版本比對時出現錯誤等問題。因此,SVN服務器上需統(tǒng)一存放明文文件。則通過服務器白名單功能實現對終端電腦數據進行強制透明加密,對上傳到應用服務器數據實現上傳自動解密、下載自動加密。再配合天銳綠盾應用服務器安全接入系統(tǒng)實現只有安裝了加密客戶端的Windows、Linux、MAC端才能夠正常的訪問公司內部的SVN服務器。
賽虎信息科技始終傾力為企事業(yè)單位的信息安全、綠盾數據防泄密提供一體化顧問式解決方案,為客戶提供優(yōu)質的內網安全管理產品和適合多種行業(yè)的應用解決方案。
其實理論上,任何代碼都能被反編譯,你再好的混淆技術,也只是讓代碼變得復雜,不容易看懂,但肯定是有人能看懂,僅僅是時間花得更多。現在借助工具來整理線索很容易找出變量之間的關聯(lián)而猜測出它的用途。如果你覺得C能保證安全水平更好,那可以加掛 Java 6 開始支持的 Instrument,它可以支持對 class 文件進行解密。我們在編譯好代碼后手工加密后這個 運行時的 instrument 能解密,而這部分功能用 dll 來做,不過,還是那句話,沒有理論上不能被反編譯破解的代碼。
》類裝載器結構
(class
loader)
》class文件檢查器
(the
class
file
verifier)
》內置于Java虛擬機(及語言)的安全特性
》安全管理器及Java
API
(security
manager)
在Java沙箱中,類裝載器體系結構是第一道防線。它在三個方面對Java的沙箱起作用:
1它防止惡意代碼區(qū)干涉善意的代碼
2它守護了被信任的代碼的邊界
3它將代碼歸于某類(稱為保護域),該類確定了代碼可以進行哪種操作
Class文件檢查器:
Class文件檢查器保證裝載的class文件內容有正確的內部結構,并且這些class文件互相間協(xié)調一致。Class文件檢查器實現的安全目標之一就是程序的健壯性。如果某個有漏洞的編譯器,或某個聰明的黑客,產生了一個class文件,而這個class文件中包含了一個方法,則合格方法的字節(jié)碼中含有一條跳轉到方法之外的指令,那么,一旦這個方法被調用,它將導致虛擬機的崩潰,所以,處于對健壯性的考慮,由虛擬機檢驗它裝載的字節(jié)碼的完整性非常重要。
Class文件檢查器要進行四趟獨立的掃描來完成它的操作。
第一趟:Class文件的結構檢查
在這一趟掃描中,對每一段將被當做類型導入的字節(jié)序列,Class文件檢查器都會確認它是否符合JavaClass文件的節(jié)本結構。在這一趟檢查中檢查器會進行很多檢查例如:每個Class文件都必須以四個同樣的字節(jié)開始:0xCAFEBABE。因為這個魔數Class文件分析器會很容易判斷出某個文件具有明顯問題而加以拒絕。檢查器還必須確認在Class文件中聲明的版本號和次版本號,這個版本號必須在這個虛擬機實現可以支持的范圍之內。而且第一趟掃描還必須確認這個Class文件有沒有被刪減??傊谝惶藪呙璧哪康木褪潜WC這個字節(jié)序列正確的定義了一個新類型。
第二趟:類型數據的語義檢查
第二趟掃描,檢查器要查看每個組成部分,確認它們是否是其所屬類型的實例,他們的結構是否正確。另外還要檢查這個類本身是否符合特定的條件,它們是由Java編程語言規(guī)定的。例如,檢查器強制規(guī)定除Object類以外的類必須有一個超類,或者檢查final類有沒有被子化等。
第三趟:字節(jié)碼驗證
這一趟是要確保采用任何路徑在字節(jié)碼流中都得到一個確定的操作碼,確保操作數??偸前_的數值以及正確的類型。
第四趟:符號引用的驗證
在動態(tài)鏈接的過程中,如果包含在一個Class文件中的符號引用被解析時,Class文件檢查器要進行第四趟檢查。第四趟掃描僅僅是動態(tài)鏈接過程的一部分。當一個Class文件被裝載時,它包含了對其他類的符號引用以及它們的字段和方法。一個符號引用是一個字符串,它給出了名字,并且可能還包含了其他關于這個被引用項的信息------這些信息必須足以唯一的識別一個類、方法、字段。這樣對于其他類的符號引用必須給出這個類的全名;對于其他類的字段的符號引用必須給出類名、字段名以及字段描述符;對于其他類中的方法的引用必須給出類名、方法名以及方法的描述符。
所謂的動態(tài)鏈接是一個將符號引用解析為直接引用的過程。
此外,由于Java程序是動態(tài)鏈接的,所以Class文件檢查器在進行第四次掃描中,必須檢查相互引用類之間的兼容性。
除此之外,Java虛擬機還有一些內置的安全特性:
》類型安全的引用轉換
》結構化的內存訪問
》自動垃圾收集(不必顯式地釋放被分配的內存)
》空引用檢查
通過保證一個Java程序只能使用類型安全的、結構化的方法去訪問內存,Java虛擬機使得Java程序更為健壯。