基于角色的协同虚拟环境研究
发布时间:2015-07-07 09:29
摘 要 本文根据协同虚拟环境中的角色需求,提出一个适应协同虚拟环境的角色模型,给出一个带有时间空间特性的角色访问控制模型tsrbac,使协同虚拟环境具有更全面的安全属性描述。在此基础上,构建一个基于角色的协同虚拟环境系统rbcves。
关键词 协同虚拟环境;角色;虚拟现实
1 引言
协同虚拟环境(collaborative virtual environment,cve)于20世纪90年代中期提出,在一组以网络互联的计算机上同时运行虚拟环境实现协同工作。随着虚拟环境、网络、计算机支持的协同工作和图形学技术的飞速发展,促进了人们对协同虚拟环境的研究兴趣,也推动了该领域的发展。协同虚拟环境作为通信和合作的强大的工具,在娱乐、商业、教育、工程和医药等领域有很广泛的应用[1]。 cve要在一个三维虚拟环境中实现多个用户对虚拟空间、虚拟实体和资源的共享,目的是通过网络通信实现异地用户之间协同工作,共同完成任务。为了适应cve在internet上的应用需求,我们需要考虑在cve中用户和权限的控制,确保用户对各种物体和资源享有不同权利和义务,从而更好地维护用户间协同的顺利进行。 角色机制一方面可以实现权限的有效管理和用户的合理授权,提高系统交互性,另一方面对访问和操作进行合法检测,能够提高系统安全性。本文在cve系统中引入角色机制作为支撑技术,通过面向角色的软件方法来实现系统功能。2 模型设计
2.1 角色模型
通常角色指的是一组权利和义务的集合[2]。权利代表了许可,即对象对于一组目标资源允许或者禁止的行为;义务代表了职责,即对象对于一组目标物体必须做或者绝对不做的行为。权利(permissions)和义务(obligations)是角色的核心要素,但并不是全部要素。角色还应该具备角色标识符号、承担该角色的对象负责的一个或多个子目标、角色拥有的资格、角色的状态与其它角色之间的各种关系等要素。 基于以上分析,我们给出如下角色模型: 定义1 角色模型role_model <role_model>∷= “role” <id><name><goals><qualifications> <status><permissions><obligations> <relations> “end_role” 各属性定义如下: id是系统实现时,对角色的标识,每个角色只有惟一的id。 name是角色的名称标识。 goals是角色对应的子目标。 qualifications是角色拥有的资格。 status指的是角色的状态。表明了角色在某一时刻所处的行为。 permissions是一组权限的集合。指定该角色执行的操作哪些是允许的,哪些是禁止的,以及哪些资源是可利用的,哪些资源是不可用的。 obligations是角色的义务集的动态体现。该集合规定了角色必须执行的一组特定行为,它反映了角色必须完成的目标和行为约束。另外,角色的义务集也反映了角色之间的组织关系,即在组织内部,角色之间的相互负责关系。每一个obligation都要包含obligated_roles、authority_roles、benefited_roles和rules。其中,obligated_roles定义了该义务的承担角色集,authority_roles定义了对该义务具有授权功能的角色集,而benefited_roles则定义了履行该义务后的收益角色集合,rules定义了义务履行的规则集。 relations是该角色与其它角色之间的关系,如角色的继承和派生等关系。2.2 带时空特性的角色访问控制模型
基于角色的访问控制模型(role-based access control,rbac)最早是在 1992年由ferraiolo和kuhn提出的[3]。rbac模型的突出优点是简化了各种环境下的授权管理。通过引入角色这一中介实现了用户与权限的逻辑分离。rbac的思想是将权限赋予角色。角色实际上是与特定工作岗位相关的一个权限与职责的集合,与用户相比角色是相对稳定的。当用户改变时,只需要进行角色的撤消和重新分配即可。rbac 访问控制模型不仅易于管理而且降低了复杂性、成本和发生错误的概率,因而近年来得到了极大的发展。典型的rbac模型如rbac96模型[4]和nist 标准 rbac 模型[5]。在此基础上,人们提出多个扩充模型[6][7]。 文献[8]中,在 rbac 基础上作了时间特性方面的扩展,在无时间特性的角色访问控制的形式化表达的基础上,对授权约束及其时间特性进行分析,提出了一个带时间特性的角色访问控制模型trbac(timed role-based access control)。trbac有着更全面、更具体的安全属性描述能力。trbac 定义了系统时钟,对约束、会话和系统状态空间本身进行了时间扩充,解决了时间授权约束和会话的状态转变问题。 在cve系统中,时间固然是一个不可忽视的要素,同时它也是一个三维渲染的虚拟世界。因此,在这个四维环境中,不仅要考虑时间特性方面的影响,还要考虑空间特性对角色的约束。传统模型的弱点在于都没有考虑主体执行操作时所处的环境,这样容易造成安全隐患。所以,我们在rbac模型和trbac模型的基础上,结合cve的特点,提出一个带有时间和空间特性的角色访问控制模型tsrbac(timed and spaced role-based access control),更好地满足cve系统的需求。 tsrbac模型继承trbac的所有元素,包括其时间约束,并进行空间约束的扩充: 定义2:空间点序列 s={ (xi,yi,zi) | i ∈n },s是虚拟世界所有空间点的集合。(xi,yi,zi) ∈s表示虚拟空间中的一点。与建立三维虚拟空间时的坐标相吻合。 为讨论方便,我们定义如下函数: min(i,j),两个数比较,取较小值;max(i,j),两个数比较,取较大值; span(i,j)=(min(i,j),max(i,j)),任意两个数确定的区间。 定义3:空间范围序列 sr ={(xi,yi,zi) | xi ∈span(xj,xk),yi ∈span(yj,yk),zi ∈span(zj,zk),(xj,yj,zj),( xk,yk,zk ) ∈s },空间范围是由两个空间点确定的范围,这个范围是以给定的两个点为对角线确定的长方体。因为空间形状复杂多样,为了方便描述、表示、计算,我们选取了这种简单方便的确定空间范围的方法。 srs = 2sr 表示由空间范围构成的集合。 用 c表示所有的约束集合,s_c表示所有tsrbac中的空间约束。 定义4:空间约束谓词定义 in_srange ⊆ c×srs 表示约束 c 在指定的空间范围集合 srs 内必须成立。 定义5:空间约束定义 s_c = in_srange(c,srs)
3 基于角色的协同虚拟环境系统设计与实现
3.1 系统框架设计
本文在以上角色模型和带时空特性的访问控制模型基础上,提出一个基于角色的协同虚拟环境系统rbcves (role-based collaborative virtual environment system)。rbcves采用客户机/服务器结构,集成java和vrml技术,创建一个共享的虚拟世界,并实现在虚拟世界中的协同活动。系统体系结构图如图1所示。 图1 rbcves体系结构图 客户端采用vrml结合java applet来实现,由vrml浏览器、java applet和本地场景实体库构成。其中vrml浏览器是展示协同虚拟场景的接口,负责向用户展示三维虚拟世界;java applet随同vrml世界同时下载,完成客户端需要实现的功能,例如客户端和服务器之间的通信、信息的过滤和一致性维护等功能;本地场景实体库存放用户自身的替身模型、感兴趣用户的替身模型和本地共享场景实体模型。 服务器端包括基于角色的访问控制系统、角色服务器、注册服务器、cscw服务器、聊天服务器、视频服务器以及相关的数据库。其中角色服务器和访问控制系统是rbcves的核心组件,实现了系统中基于角色的访问控制。注册服务器实现对系统中所有实体基本信息的管理,包括用户信息管理器和共享实体信息管理器。cscw服务器是系统实现协同活动的核心模块,负责维护虚拟环境中各模型的状态,进而维护整个虚拟世界,包括建立和断开通信连接、用户加入和离开、用户间协同会话、协同信息的管理规划、操作响应、信息一致性维护以及兴趣域管理等。聊天服务器负责单用户之间、用户组之间的文本聊天(例如共享白板),增强系统交互性。多媒体服务器实现用户之间、用户组之间的音频和视频通信,使协同虚拟环境的场景信息更加丰富,提高系统感知性。3.2 关键部分实现
系统使用vrml进行场景建模,作为系统的显示引擎实现与用户的交互。 java applet对vrml节点进行扩充,实现复杂的功能,包括信息流动、数据处理、冲突检测等。使用vrml的外部程序接口eai(external authoring interface),实现vrml虚拟空间和java applet之间的相互通讯。 利用vrml的proximitysensor(邻近检测器)节点可以跟踪本地用户视点的移动和转动并获得位置(positiochanged)和方向值(orientationchanged),这两个值一方面可以确定本地用户的空间角色约束,另一方面可用于改变其它用户的vrml虚拟空间中该用户3d替身的位置和方向。 用户在进行操作时,首先要提交请求给访问控制系统,访问控制系统访问角色服务器,获得用户的角色,访问控制系统再对角色的访问请求权限进行验证,如果验证成功就将请求发送给其它功能项目服务器进行处理,否则将会拒绝用户的请求。设置角色权限验证的函数为:bool access_r (string roleid,string operation),第一个参数是角色id,第二个参数是请求的操作。函数返回一个布尔类型的值,返回true表示请求成功,返回false表示访问被拒绝。4 结束语
本文将角色理论应用于协同虚拟环境,提出的角色模型能够适应cve需求,在现有角色访问控制模型基础上扩充空间约束,使cve安全描述更全面。提出的rbcves在cve中融入角色机制,实现了用户权限的有效管理,限制了非法访问和操作,提高了系统的交互性和安全性。参考文献
[1] igor c,chris in networked collaborative virtual environments. computer communications,2003,26,5:430~437 [2] lei yu,beat d. a conceptual framework for agent oriented and role based workflow ted at caise workshop on agent oriented information systems(aois’99)-heidelberg,1999 june 14~15 [3] ferraiolo david,kuhn richard. role-based access :proceedings of the 15th nist-ncsc national computer security conference,baltimore,md,1992,554~563 [4] sandhu,r.,coyne,e.j.,feinstein,h.l.,et al. role-based access control models. ieee computer,1996,29(2):38~47 [5] ferraiolo df,sandhu r,gavrila s. proposed nist standard for role-based access control. acm transactions on information and system security,2001,4(3):224~274 [6] osborn s,sandhu r. configuring role-based access control to enforce mandatory and discretionary access control policies. acm transactions on information and system security,2000,3(2):85~106 [7] ahn g-j,sandhu. r. role-based authorization constraints specification. acm transactions on information and system security,2000,3(4):207~226 [8] 黄建,卿斯汉,温红子. 带时间特性的角色访问控制. 软件学报,2003,14-11:1944~1954上一篇:对计算机实践操作的几点思考