WebLogic安全特性

WebLogic安全特性

--------------------------------------------------------------------------------


WebLogic安全特性
计算机安全技术主要指确保计算机上数据存储安全和在计算机之间传递数据不被威胁。安全手段主要包括材料验证和数据加密,其典型的材料验证是通过验证客户的保密字(口令),根据是否正确决定其能否访问某一资源(目录、系统和数据等),而数据加密则通过加密算法实现。
采用weblogic的许多分布式应用,如电子商务系统,由于采用互联网技术实现动态交互操作,会暴露给恶意者许多攻击点,包括数据窃取、中断操作以及欺诈性输入。随着商业应用的分布性加强,系统被攻击的机会不断增加。因此,系统对底层支撑软件提供安全实施策略的要求显得非常重要。
Weblogic安全特性使客户可以从浏览器、java客户端或其它weblogic服务器安全的与weblogic服务器创建连接,安全特性包括:
·对于用户、组和ACL,为实现对weblogic服务器端资源保护进行分组。允许采取缺省的安全策略活着根据NT/UNIX/LDAP确定安全策略,并支持安全策略客户化开发;
·对weblogic服务器端资源进行访问的客户端请求进行鉴定(Authentication)。鉴定包括采用用户名/口令方式、数字签名方式(x.509、SSL)。
·通过ACL对用户和组进行授权;
·实现java鉴定和授权接口(JAAS),在weblogic中对 JAAS的实现主要提供了LoginContext鉴定和Subjec授权,支持JAAS的授权尚未实现;
·通过支持SSL保证数据完整性和保密性(Data integrity and confidentiality);
·事件审核,对如多次尝试登录、数字签名拒绝等事件进行记录;
·对一些试图攻击网站嫌疑客户源进行过滤(如主机、IP等);
·通过WLEC(Weblogic Enterprise Connectivity)对安全策略进行统集成管理。

WebLogic 安全体系结构
如图1-1所示:

Figure 1-1 WebLogic Server安全体系结构

在weblogic安全环境中,鉴定(验证)是第一层,在完成一个连接请求前对客户的实体ID进行验证,通过验证保障访问weblogic服务器端资源的用户进行保护。缺省情况下,weblogic的授权配置方式是“one-way”,这也是互联网站常用的方式,即客户在访问客户数据前必须创建一个安全的连接。
如果采用SSL协议, 客户端与weblogic通过数字证书认证的方式创建安全连接。
验证措施是基于用户、分组以及资源对用户和组的授权机制上,资源包括HTML页面、CGI程序、EJB、SERVLET和JSP等。


在weblogic安全环境下,一个用户试图对某一个网站资源进行访问方法操作,需要通过以下步骤确认该用户是否被授权进行该操作:
1.果资源是被保护的、用户没有被验证过,则进行验证,验证失败则拒绝连接请求;
2.WebLogic 服务通过调用相应方法查证用户ID,如果无法确认用户则拒绝访问请求;
3.WebLogic服务通过调用相应安全方法查证资源的权限要求设置;
4.如果访问用户具有资源权限组中的任何一项,则给予方法对资源进行调用。
下面对不同的连接类型具体实现进行描述。
采用web浏览器连接
浏览器与weblogic实现安全交互采用以下手段:
1.浏览器中敲入资源所在的URL;
2.web服务器接到请求;
3.web服务器检查weblogic资源是否被ACL保护,如果被保护则通过与客户端的HTTP连接要求用户输入口令、用户名;
4.用户得到验证要求(框),输入用户ID、口令;
5.web服务器得到用户信息;
6.浏览器将请求转发给web服务器的插件(plug-in),weblgoic server通过web服务器下列插件获得客户信息:
oApache-Weblogic Server plug-in
oNetscape Server Application Programming Interface (NSAPI)
oInternet Information Server Application Programming Interface (ISAPI)
7.通过验证, WebLogic服务确定用户拥有访问资源的必要权限;
8.如果验证成功,servlet执行客户请求;
9.在调用servlet方法之前,通过对保存在security context中的信息进行用户确认、方法调用授权审查。


具体流程如下图所示:


采用Servlets, JSPs, EJBs, RMI对象和Java应用
weblogic通过JAAS对Servlets, JSPs, EJBs, RMI对象和Java应用进行验证。JAAS 是J2EE中关于授权和验证的协议标准,是J2SDK的扩展标准。
客户端(servlets, JSPs, EJBs, RMI 对象,和 Java applications)与weblogic服务器安全交互的步骤如下:
1.客户端创建具有LoginModule对象和CallbackHandler对象的LoginContext实例;
oLoginContext 指向一个指定LoginModules和他们执行顺序的配置对象;
oCallbackHandler 对象用户输入表单(口令、用户名或数字证书文件等)并将这些信息传递给LoginModules;
2.客户端调用LoginContext对象的login() 方法,然后调用指定的LoginModules;
3.LoginModule 验证所需的客户信任信息(credentials);
4.在验证成功基础之上, WebLogic服务决定客户是否具有访问其所请求资源的权限;
5.在验证成功基础之上,客户端得到请求执行的结果。

在使用LoginModule实现验证的情况下,可以通过weblogic配置使用SSL协议,进行加密和认证。
图1-3是servlets, JSPs, EJBs, RMI 对象和java应用安全连接登录的图示。
Figure 1-3 Secure Login for Java Clients

WebLogic 服务器可以以客户端的身份与其它weblogic服务器实现安全连接,这种情况下的安全验证过程与客户端安全验证一致。
与管理服务器相连
在weblogic服务器中,管理服务是一个集中对资源进行配置管理的weblogic服务器。管理服务包括一个weblogic服务或者服务cluster的配置信息,因此服务之间的连接和通信必须保证安全。
如果使用SSL协议并且采用认证技术,管理服务器和处理服务器利用数字证书进行验证。

BEA为管理服务提供数字证书(Digital certificates),在安装时安装到/wlserver6.0/config/mydomain目录下。
缺省情况下weblogic管理服务器和其它weblogic服务器之间是不安全的,文件中的用户名和口令都没有加密,相互之间以明文方式进行传递。
图1-4描述了weblogic服务器之间的安全连接。
Figure 1-4 Secure Login for Managed and Administration Servers

    推荐阅读