发信人: songmk()
整理人: teleme(2000-12-06 19:07:41), 站内信件
|
【 在 mrom (小马) 的大作中提到: 】
国内外关于CORBA安全的研究现状
1991年OMG确定了CORBA规范的1.1版本,在该版本中主要对OMG IDL(Interface Definition Language)和API(Appliction Program Interface)进行了规范, 从而确保ORB(Object Request Broker)内部可以实现客户与服务对象之间的透 明交互。1994年12月,CORBA规范2.0版本被OMG采纳,该版本对不同厂家的ORB之 间进行交互进行了规范,从而实现了真正意义上的互操作性。1996年年中,OMG终 于发布了大家翘首以待的安全服务,但直到1997年12月,CORBA安全规范的1.1版 本才正式推出;1999年12月,OMG组织推出了CORBA安全规范的1.7版本(草案)。由 此可以看出,关于CORBA的安全研究,目前尚处于统一规范和制定标准的阶段,要 达到适用化的水平还有一段很长的路程需要走。
开发和研究基于CORBA网管系统的安全是一个较新的领域,目前在国内尚无系统和 全面的研究。但我们可以看到,CORBA技术的兴起,即将网络管理领域内引起一场 新的革命,同时也从根本上改变了传统C/S系统的安全模式,给我们解决当前日益 严峻的网络安全问题提供了一个全新的思想和方法。随着人们对网管系统研究的 不断深入,基于CORBA网管系统的安全问题必然会越来越受到重视。
CORBA的安全体系
CORBA的安全规范给出了CORBA安全体系的结构模型,如图1所示,安全体系的结构 模型可划分为以下四个部分:
1)应用程序层组件
应用程序主要是指客户开发的应用软件,为了满足不同CORBA应用程序的安全 需求,OMG定义两种级别的安全服务:安全级别1和安全级别2。后来基于WEB的COR BA应用大多采用了SSL的简单认证和数据私有性解决方案,人们将这种基于SSL的 安全服务称为CORBA安全级别0,不过OMG的官方标准尚未定义该级别的安全服务。
CORBA安全级别0功能包括:用公开密钥实现相互认证,对数据加密实现数据私有 性和完整性保护。
CORBA安全级别1功能包括:向那些没有安全识别的应用程序提供安全服务。用户 无须修改现有的应用程序就能够使用这些服务,这些服务包括:
a.向客户和服务器提供双向认证;
b.保护双方通信的安全,提供数据保密性和完整性保护;
c.能够使用由外部授权的访问控制;
d. 可以委托用户的证书,使用户可以通过多个中间对象发出请求。
CORBA安全级别2面向那些更深入控制安全服务的应用程序,提供了更细粒度的访 问控制。它包含了级别1所提供的服务,但与级别1不同,这些服务只能通过调用 API来实现。
2) 执行安全服务的组件
但与隐含的安全技术相对独立。(该规则允许使用在该层次与安全技术之间 的一个隔离接口。允许不同安全技术能够在该体系内被容纳。)这些组件是:
● ORB内核及其使用的ORB服务
● 安全服务
● 执行安全策略的策略对象。
3) 实现特定安全技术的构件
安全技术构件可以由已有的安全组件提供,也可由操作系统提供。然而在分布式 的环境中,采用了大量的异构平台,因此采用通用的安全技术实现安全服务较为 合理。如采用通用安全编程接口GSS-API,可以将安全服务实现与底层机制的细节 分开。
4) 低层的保护和通信
可通过硬件和操作平台提供的机制来实现。在CORBA的安全系统中,执行何种安全 策略是以对象运行环境为前提的。在相同的环境域中可以减少甚至取消对域中对 象间通信的安全检查。定义环境域可以优化资源使用和系统的性能。
CORBA是如何实现用户认证的
一个活动实体首先必须在一个安全可信的对象请求中介上建立自己的身份 ,只有有了自己的身份活动实体才可以访问其他对象。在这里活动实体,活动实 体可以是一个主体(principal),也可以是代表一个主体行事的客户。主体就是 一个使用者或对象,被ORB认证过并被授予了一组证书——包括一个或多个角色、 特许和认证标识。一个主体只需要登录一次获得其安全许可,就可以访问一个或 多个对象。认证产生一个唯一的认证标识,这个标识不能被对象修改,只有认证服 务器可以更改它。认证过的对象可以用一个注册从任何地方访问任何服务器对象 。
在认证过程中,创建主体证书的过程:应用程序首先通过调用ORB系统提供 的接口get_service_information获取服务信息,包括:安全功能级别及功能选项 ;遵循的安全规范版本;支持的安全机制等。如果主体已经在对象系统外通过鉴 别,则可以直接从Current对象中获取主体证书。如果尚未认证主体,并且主体所 使用的公共服务也不需要鉴别权限,可以创建一个不包含任何鉴别主体信息的主 体证书。但主体如果所使用的
服务要求要求鉴别权限,则主体必须先完成鉴别。图2显示了鉴别过程。
a. 鉴别主体。User Sponsor是一段代码,但它不一定是对象,因此没有定义接 口。用户向User Sponsor提供标识和认证数据(如密码),通过调用authentica te方法,获取Credentials对象。通过User Sponsor的用户认证功能,CORBA安全 服务向那些没有安全识别的程序透明地提供了安全证书。
b. 创建证书对象。Principal Authenticator对象是一个应用程序可见的对象 ,它负责创建主体的证书。创建过程是由User Sponsor调用Principal Authenti cator上的认证(Authenticate)操作完成的。
c. 设置运行环境的证书。User Sponsor调用set_credentials方法将它的证书 传送给Curent准对象。注意, Current对象表示客户机/服务器交互作用中的当前 运行语言环境。在客户方和目标方都有自己的Current对象。用户可以通过调用O RB::get_current()操作获得当前的运行环境。在安全的ORB中,通过调用Curren t对象上的操作可以获得主体的各种证书。
d. 客户调用服务器上的安全方法。表面上,安全调用方法与其他调用方法并无 不同。不过,在这个表面之下,安全服务在安全策略的基础上作为媒介传送客户 机/服务器交互作用。安全服务从Current对象那儿获得它的安全信息。
e. 服务器执行安全方法。一个有安全识别的服务器可以调用本地的Current对 象上的get-attribute方法,以获得有关客户调用的信息。这个方法将返回在客户 端发出这个调用的主体标识和特许。服务器根据这个信息作出访问的决定。
-- _ (^)
(_\ |_| Jack Song
\_\ |_| [email protected]
_\_\,/_| http://homeofjack.yeah.net
(`\(_|`\| icq:18613011
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 61.141.215.95]
|
|