基于远程过程调用的客户/服务应用集成访问控制的方法

文档序号:7848879阅读:105来源:国知局
专利名称:基于远程过程调用的客户/服务应用集成访问控制的方法
技术领域
本发明涉及一种应用集成访问控制的方法。具体地说,是一种基于远程过程调用的客户/服务应用集成访问控制的方法。属于信息技术领域。
背景技术
客户/服务是一种常见的分布式应用系统的架构,应用由客户端和服务端组成;服务端是一定资源的提供者或者服务者,客户端是服务端的服务对象,也就是资源的使用者;客户端向服务端请求信息或者动作,服务端做出回应。
远程过程调用是一种实现客户/服务架构的技术体系,它允许应用分布在不同类型的平台之上,从而实现应用的互操作性、可移植性和灵活性,同时也通过封装异构操作系统和网络接口的细节来简化开发的复杂度。在远程过程调用应用中,客户端能够进行特殊的函数调用,即远程过程调用,以访问应用的远程服务端。远程过程调用是以同步的方式进行的。远程过程调用作为解决分布式计算问题的一种技术,并没有对安全机制做太多的考虑。大量已投入使用的远程过程调用应用没有或者有很弱的访问控制机制,很多仅是简单的身份认证,认证通过的客户用户对服务端拥有完全的访问权,还有的是在客户端实施访问控制而服务端没有受到保护。因而不能从根本上保护应用的核心资源,即服务端。
经文献检索发现,美国Computer Associates公司的eTrust Access Control软件所用到Dynamic Security Extension技术(动态安全扩展)是一种对应用增加访问控制机制的技术方法。该技术是一种和操作系统紧密结合的访问控制技术,着重于应用访问系统服务时的安全。通过在系统内核内安装hook,eTrust Access Control在系统的内核层安置访问控制功能模块,也就是对内核进行了安全扩展,软件将监控应用对内核API的调用,对访问者进行权限验证。该方法依赖于操作系统的安全机制,对系统缺陷、配置不当等引起的安全漏洞进行弥补,强调应用中涉及到的系统资源的安全。

发明内容
本发明的目的在于针对现有技术中不足和缺陷,提供一种基于远程过程调用的客户/服务应用集成访问控制的方法,使其解决应用没有访问控制而带来的安全问题,进而避免安全问题所导致的应用生命周期缩短,并控制为解决安全问题而带来的安全成本。
本发明是通过以下技术方案实现的,本发明通过对服务端程序的API进行镜像来构建服务端程序的安全服务代理,镜像的API增加和访问控制相关的信息参数,安全服务代理实现访问控制裁决,并根据访问控制裁决结果来确定客户端是否能够访问后台的服务程序,客户端程序改为访问安全服务代理。
以下对本发明方法作进一步的限定,具体如下(1)在应用的服务端建立API的完全镜像。API镜像作为服务程序的代理(称为安全服务代理)面向客户端,而原服务端程序居于安全服务代理的后台。
(2)在安全服务代理中,对需要保护的API(即镜像API)增加一个参数。该参数表示和访问控制相关的信息,比如客户端的身份信息或者权限信息,这些信息将被用于权限认证。
(3)在镜像API的实现中主要包含和访问控制裁决相关的代码。代码对API的访问者进行权限验证,根据相应的访问控制判决方法对访问进行裁决。如果访问要求被允许,那么代码将调用所对应的后台服务程序的API,并返回服务程序API的执行结果;如果访问要求被否决,那么代码将返回表示调用失败的结果。
(4)对客户端做少量修改,客户端程序访问服务端程序改为访问安全服务代理程序,调用服务端API改为调用安全服务代理API,以便客户端能够访问安全服务代理的API。
本发明方法的主要技术点在于安全服务代理。从应用的角度看,安全服务代理复制了服务的API,代理服务端的功能;从安全的角度看,安全服务代理是访问控制功能模块。通过在服务端前面增加安全服务代理,应用集成了访问控制机制。在加入了安全服务代理的应用中,安全服务代理对客户端是透明的。客户端以远程过程调用的方式调用安全服务代理的API,并在参数中提供访问控制相关的信息;安全服务代理对客户端进行权限验证,并做访问控制裁决,然后根据裁决结果或访问后台原服务端的相应API,或做出其他处理。
与现有技术相比,本发明的优点是(1)对应用的改动很小,增加了实现访问控制的安全服务代理程序。(2)核心服务资源有了有效安全保障。在远程过程调用应用中,核心服务资源是服务端的API。由于原服务端居于安全服务代理的后面,所有对服务端的API调用都经过了访问控制,因此服务端得到了有效的安全保护。(3)对应用内所有安全敏感的资源(包括系统级和非系统级的资源)进行访问控制,实现上也与系统内核无直接关联。(4)访问控制的粒度范围广。安全服务代理可以对每一次的API调用进行访问控制,也可以有选择地进行访问控制。(5)便于应用的安全集成。企业将多个应用集成以便向用户提供多种服务,可在所有的应用前面安插一个安全服务代理就可以实现,同时又能进行访问控制,保证安全性。(6)访问控制对客户透明。安全机制的透明也能够增强系统的安全性。(7)安全成本最小化。开发成本比重新开发应用低;开发周期短,安全问题可能带来的服务间断也减少,从而减少运营损失。
具体实施例方式
下面结合本发明在“基于PMI的访问控制系统”中的应用,提供一个实施例对本发明进行说明。
首先对基于PMI的访问控制系统和应用分别做简要说明。
基于PMI的访问控制系统是一个适用分布式应用环境而与具体应用无关的访问控制系统,可以和不同类型的应用集成。该访问控制系统主要包含一个访问控制判决器,采用PMI(权限管理基础设施,在ITU-T Recommendation X.509协议中定义)的属性证书管理访问者的权限,采用XML(可扩展标记语言)表示访问控制判决规则。该系统采用J2EE技术实现,判决器仅向外提供一个访问判决API,参数是访问者认证信息(可以是身份证书、属性证书或者用户名/密码)、访问对象、访问方式、和访问参数,返回值表示允许或否决。
应用基于Java的RMI(远程方法调用,是一种远程过程调用协议),由客户端/服务端两部分程序构成。
具体的实施过程如下(1)构建该应用服务端程序的安全服务代理,安全服务代理程序面向客户端提供代理服务,并将原服务程序重新部署到另一台服务器上。
(2)在安全服务代理的API增加一个表示身份证书的参数。该参数将被用于提取客户端的属性证书。
(3)在安全服务代理API的实现中加入访问控制裁决代码。该代码将客户端的访问转换为身份证书、访问对象、访问方式、访问参数,并向访问控制系统提交判决请求。判决器根据身份证书,从数据库里提取对应的属性证书,解析属性证书含有的权限信息,综合访问对象、方式、参数信息,根据既定的XML访问规则所定义的权限和访问的关系,做出判决。安全服务代理API将根据判决器返回的判决结果或访问原服务端程序,并向客户端返回服务端程序的执行结果,或直接返回调用失败。
(4)对客户端一定的修改。客户端中调用服务器API的代码被改为访问安全服务代理的API。客户端访问服务端时需提供身份证书。
上述实施例保持了应用的服务端程序,增加了安全服务代理程序,对客户端程序改动以支持身份证书和安全服务代理程序的API。客户端程序和安全服务代理程序之间,安全服务代理和原服务程序之间仍然是Java RMI访问机制。从开发量和应用的体系结构两方面看,应用的变动都很小,因而开发周期也很短。从安全角度看,应用的核心资源得到了安全保护。客户端对服务端的访问得到了安全服务代理程序的完全监控、验证和授权,从而保护了服务端。
权利要求
1.一种在基于远程过程调用的客户/服务应用中集成访问控制的方法,其特征在于,通过对服务端程序的API进行镜像来构建服务端程序的安全服务代理,镜像的API增加和访问控制相关的信息参数,安全服务代理实现访问控制裁决,并根据访问控制裁决结果来确定客户端是否能够访问后台的服务程序,客户端程序改为访问安全服务代理。
2.根据权利要求1所述的在基于远程过程调用的客户/服务应用中集成访问控制的方法,其特征是,以下对本发明作进一步的限定,具体如下(1)在应用的服务端建立API的完全镜像,API镜像构成安全服务代理程序,由安全服务代理程序面向客户端程序,原服务程序居于安全服务代理的后面,客户端只能间接访问原服务端;(2)在安全服务代理中,对需要保护的镜像API增加一个参数,该参数表示和访问控制相关的信息,这些信息被用于权限认证;(3)安全服务代理的镜像API的实现包含访问控制裁决代码,并根据裁决结果或调用原服务端程序API的代码并向客户端返回原服务端API执行结果,或直接返回表示调用失败的结果;(4)对客户端做少量修改,客户端程序访问服务端程序改为访问安全服务代理程序,调用服务端API改为调用安全服务代理API。
全文摘要
一种基于远程过程调用的客户/服务应用集成访问控制的方法,属于信息技术领域。本发明通过对服务端程序的API进行镜像来构建服务端程序的安全服务代理,镜像的API增加和访问控制相关的信息参数,安全服务代理实现访问控制裁决,并根据访问控制裁决结果来确定客户端是否能够访问后台的服务程序,客户端程序改为访问安全服务代理。本发明方法解决应用没有访问控制而带来的安全问题,进而避免安全问题所导致的应用生命周期缩短,并控制为解决安全问题而带来的安全成本。
文档编号H04L12/24GK1558607SQ20041001623
公开日2004年12月29日 申请日期2004年2月12日 优先权日2004年2月12日
发明者徐晓春, 杨树堂, 陆松年, 李建华, 蒋兴浩, 李锋 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1