夏 斌
(1. 中國海洋大學,山東 青島 266100;2. 壽光市安監局,山東 壽光 262700)
隨著 Java2平臺在企業類系統和電子商務系統中的大量應用,對 J2EE平臺的安全性要求也隨之提高。安全性攻擊伴隨Internet技術的發展變得越來越頻繁,如果J2EE體系結構沒有設置安全機制,很可能會導致懷有敵意的程序造成信息丟失、資料泄密、相信偽造數據和修改本地計算機安全設置等后果。要保證J2EE平臺的安全性,其安全保障體系形成至關重要。
J2EE平臺的安全機制是一個動態可擴展的安全體系結構,是基于標準的交互操作的平臺。其安全特性有密碼學、認證、授權、PKI基礎設施等。對安全性的支持主要是通過Java語言本身安全性、虛擬機的類加載器和安全管理器以及Java提供的安全API幾個方面來實現。基本框架,見圖1。

圖1 J2EE安全體系的基本框架
JAAS(Java Authentication and Authorization Ser-vice),Java認證和授權服務,是Sun為了進一步增強Java2安全框架的功能而提供的編程接口,其目的是提供基于代碼運行者的存取控制能力,它是JDK1.3的標準擴充,并成為JDK1.4的一個組成部分。JSSE是專門針對SSL協議開發的安全擴展模塊,它提供了對應不同SSL實現的標準接口。JAAS提供了驗證用戶和對用戶實現訪問控制的接口。
當用戶認證之后,用戶認證狀態的安全持久保持和驗證通過安全會話進行,認證器認證用戶后會使用會話管理器建立一個安全會話,將所有用戶的安全信息和會話綁定。會話管理器負責統一管理所有用戶認證之后的安全會話,會話管理功能可分為兩類:操作型和管理型。會話管理對象模型,見圖2。

圖2 會話管理模型
目前有兩種方法保持Session會話狀態,一種是在客戶端保存Session狀態;另一種是在服務器端保存Session狀態。在客戶端保持 Session狀態有兩個好處:①相對容易實現,如采用HTTP hidden變量或者HTTP cookies來保存會話狀態;②如果需要記錄的狀態量較少,工作效率高。
J2EE規范對 Web層的認證機制給出了具體的定義。Web層的認證機制有四種:HTTP基本認證、基于FORM的認證、HTTPS的相互認證和混合認證。
3.3.1 EJB方法訪問控制
訪問權限定義調用方法的一個或多個安全角色,如果調用標識是角色表示中的一個成員,容器將允許這個方法調用繼續執行。否則,EJB容器將發出一個java.rmi.RemoteException的異常信息,且禁止調用的執行。
3.3.2 單點登錄技術
單點登錄(Single Sign-On)是實現Web環境下安全訪問的一個關鍵技術。由于系統間互相獨立,一個用戶在使用每個應用系統前,都必須按照相應的系統身份進行系統登錄。用戶必須記住每個系統的用戶名和密碼,而且需要頻繁地輸入口令,出錯可能性較大,增加了安全風險。借助單點登錄技術,用戶可以基于最初訪問網絡時的一次身份驗證,對被授權的網絡資源進行無縫的訪問,在此條件下,管理員無需修改或干涉用戶登錄就能方便地得到應有安全控制,從而提高整體的安全性能。
J2EE體系結構對信息安全提供了靈活框架,只要使用得當就能很好的保證信息的安全性,降低了應用開發的代價和風險,同時也要加強一些其他相關的安全工作,比如保護好私鑰等,這樣才能保證J2EE安全框架發揮最大的作用。隨著信息技術的不斷發展,信息安全也會面臨越來越大的挑戰,這些都需要J2EE安全框架更加完善和進一步發展。
1 高月、梁本亮.基于JAAS的JAVA安全應用研究[J].計算機系統應用,2005(1):68~70