背景
随着分布式系统广泛的应用于各个领域,如何确保系统的安全性、确保信息在通信过程中不被人窃取和破坏已成为研究的重要课题。为了解决分布式系统中存在的安全威胁和安全问题,如通信信道是否安全可靠、服务器能否验证用户的身份、用户能否验证提供服务的服务器是真实的服务器等,在设计系统时要采用一系列安全模型来保护系统的安全。1
“安全模型”指的是用形式化的方法来描述如何实现系统的安全,主要是:
系统安全中的机密性(机密性可保护被传输的数据免受被动攻击)、
完整性(确保接收到的消息如同发送的消息一样,没有冗余、插人、篡改、重排序或延迟)
可用性(可用性就是保证信息及信息系统确实为授权便用者所用)。
目前访问控制模型主要分为3种:
自主访问控制模型(DAC),
强制访问控制模型(MAC)
基于角色的访问控制模型(RBAC)。
对系统的复杂的控制,离不开访问控制服务。只有通过访问控制服务才能为每个主体定制权限,才能对系统提供粒度更细的控制。分布式访问控制己成为分布式系统安全性研究的热点之一。
3种访问控制模型比较分析下面对3种主要的访问控制模型进行比较分析,指出它们各自的优缺点。.1
自主访问控制模型基本思想
允许资源的拥有者显示的指定其他用户是否可以访问或者不可以访问该资源,DAC模型一般采用访问控制矩阵和访问控制列表来存放各个主体之间的访问控制信息,从而限制各个主体的访问权限。由于模型没有明确指定冗长的访问规则,因此显得非常灵活,使得它得到了非常广泛的应用。
但该控制模型在拥有它无可比拟的优点的同时,也有其本身设计带来的缺点:
在大型系统中,无论是访问矩阵还是列表都将变得非常庞大,但其中很多元素是空的,因此造成了资源的浪费;
由于客体的拥有者能够授予或取消其它主体对该客体的访问权限。这就造成了很难预测访问权限在系统中是如何传播的,给系统的管理造成了很大的困难;
不能防范“特洛伊木马”,无法实现多级安全策略。
强制访问控制模型基本思想
系统强制各个主体遵守系统制定的访问控制策略。用户和资源都被赋予一定的安全级别,在执行访问控制时,系统先对访问主体和资源的安全级别进行比较,再决定访问主体能否访问该资源。
该模型的优点显而易见,它的缺点是:
模型赋予系统中每个用户一个唯一的UID号和唯一的安全级标签,认为该用户用受此安全级标签支配的安全级登录均可,而这会造成系统中的用户均可以写访问系统中的安全级为最低的信息,而这些信息通常是公共信息,应该是“只读不可写”的信息模型;
只处理了具有安全等级分类的信息的访问控制,而对无等级关系的信息并没有给出相应的处理模型,如Chinese-Wall模型中提到的“利益冲突”问题;
模型过于严格,在实现时无法对系统进行安全、有效的管理;
虽然在保持信息的机密性的Bell-Lapadula模型中加入了一个“可信主体盯的概念,但其权限太大,没能实现“最小特权,而这在现代系统中是非常不安全的。因为一旦黑客入侵系统并获得此“可信主体”的权限,系统的安全性就变得不堪一击。
角色访问控制模型基本思想
将访问权限与角色相联系,通过给用户分配适合的角色,让用户和访问权限相联系。角色是根据企业内为完成各种不同的任务需要而设置的,根据用户在企业中的职权和责任来设定,用户可以在角色间进行转换,系统可以添加、删除角色,还可以对角色的权限进行添加、删除,这样通过应用RBAC将安全性放在一个接近组织结构的自然层面上进行管理。
它把现实和计算机访问控制策略更好的结合起来,并且易于实现复杂、动态的安全访问控制策略。缺点是对有些没有角色区别的机构不适合,需要人为的构造一些虚构的人物角色。
分布式访问控制模型的研究现状分析在分布式访问控制中首先需要对用户的身份进行认证,然后是对控制策略的选用和管理,最后是对非法用户和越权操作的管理。当前分布式访问控制的人部分工作主要集中在控制策略的选用和管理上。在分布式身份认证方面,大多使用目前已经比较成熟的用户密码对或者身份证书等技术。2
分析了目前存在的集中分布式访问控制模型,指出了存在的不足,并提出了一种灵活的可扩展的授权描述方法。解决了分布式授权和私有权限问题,并提出了多种解决冲突的方法。这是一种在分布式环境下表示和判定访问请求的新方法,适用于多种访问控制策略。虽然该文提出了判定访问请求的算法,但没有具体给出算法的时空复杂度。同时,当没有执行义务时的异常处理,存在多个时域的相互交互等问题都有待于进一步的研究。
通过对CS模型的分析讨论,将RBAC中的各个部分映射到CS的各个部分,论证了CORBA对RBAC的方便支持。同时,基于在分布式环境下用户的角色有可能随时变化这一特性,基于CORBA的RBAC的静态实现框架进行了改进,提出了使用事件触发机制来动态的实现对角色的管理机制。该文虽然实现了角色的动态管理,但在进行权限控制时没有考虑上下文环境(地点、时间等),所以从某种角度来讲,不是完全意义上的实现了动态的访问控制。同时,只讨论了RBAC的实现问题,而对如何将管理和利用各个角色之间的关系和如何将限制加到角色的使用上即该机制是否适用于RBAC和RBAC,还有待于进一步研究。
基于角色的访问控制和墓于上下文的访问控制相结合,提出了一种新的基于角色和上下文访问控制机制但是可以看到,支持她的两种核心技术都不是新的技术,但是将两者有机结合后,用户的访问权限不再一成不变,而是随着角色和上下文环境的变化而变化。同时,该机制有很强的灵活性,一方面它可以忽略上下文环境,而单独使得用户的角色在访问控制中起作用;另一方面它可以忽略用户角色的影响,而单独考虑上下文环境。但是必须指出的是,上下文信息的概念非常广泛,它可以包括时间、地点、用户的生活信息等.这就使得该机制的复杂度增加,在执行上下文访问控制操作时的效率明显降低。
分布式多层体系结构,一般的包括:表示层、事务逻辑层和数据层。由于新的体系结构,原来适用于两层结构(客户层和服务层)的许多安全机制尤其访问控制策略不再适用。所以需要提出一种新的访问控制机制来保证多层体系结构的安全性和一致性。在不影响现有的基于数据库管理系统的访问控制策略基础上提出了一种称之为"MoP(Mobile Policy)"的策略来解决该问题。
传统的数据层用户、角色和策略都是在基于本地安全环境下的数据库管理系统中定义的.当数据从一个层移动到另一个层时安全策略不能随着数据一起移动,而在多层体系中,数据可能会在层与层之间频繁的移动,这就导致了安全策略的重复设计。同时,由于各层的设计者和开发者不同,导致了安全策略的不一致性。为了最小化各层开发者之间的信息共享性,保持各层之间的安全性和一致性,提出了一种新的策略管理机制。它将策略管理分成3个独立的部分:策略的定义、策略和数据的结合、策略的应用。这3个部分分别由不同的开发者完成,他们之间不需要掌握一种共同的策略表示语言,只需要记住少量的一些词汇标准,如:输入参数的语法和语义,策略类型的语义,输出参数的语法和语义等。这个机制有效的将策略的管理和策略的执行分开,使得策略能够随着数据的迁移而迁移,同时,更有效的保证了各层之间数据的安全性和一致性。但从上面的分析可以看出,该机制的侧重点在策略随用户的可移动性和重用性,并未考虑策略随用户的动态性和可修改性。
虽然ISO提出的网络安全体系的设计标准中,把身份认证服务和访问控制分开处理,但是在实际应用中,由于效率的间题,可以将两者有机的结合起来。提出一种利用属性证书实现Web资源的角色访问控制。该机制通过属性权威将用户角色信息添加到基本证书的扩展域中,并且属性权威在添加的属性和荃本证书上面签名并把该签名放到基本证书的另一个扩展域中,同步的对用户身份和角色进行了认证,提高了访问控制策略的灵活性和安全性。
但是严格的来说,该模型中只描述了有角色继承和证书验证的一些问题,并未描述如何在属性证书实现RBAC模型中的约束。也就是说,该模型只是实现了RBAC模型,并没有实现RBAC和RBAC模型。其主要的原因是RBAC模型中的约束关系相当复杂,然而属性证书为了查询快速,都是使用目录服务器来存储数据,但是目录服务器难于处理复杂的数据关系并且不易修改。另外该模型没有进行形式化的表示,也没有对模型进行实现。
基于使用控制模型的分布式访问控制研究自从面向使用控制的安全模型UCON提出以来,针对分布式环境的安全访问控制研究逐渐增多。UCON模型由于其在判定因素和控制的连续性、动态性等方面的开拓性扩展而被称为下一代安全访问控制模型。由于UCON只提出了一个通用的技术框架模型,如何实施与应用是一个无法回避的重要问题。目前对UCON的研究成果主要有:
客体分发后的访问控制基于UCON访问控制的连续性特点,客体后被分发后,在客体拥有者控制范围外的远端平台上仍然可以继续实施访问控制。在可信计算实施可信度量的基础上,修改安全内核SELinux,保证引用机RM ( Reference Monitor)的可信性,在此基础上对应用层的进程访问实施基于使用控制模型的访问控制。提出在面向服务的体系结构中,在远程客户端实施可信使用控制,其中采取TPM和 TPM Java虚拟机保证远程客户端的安全性。UCLinux基于Linux安全模块LSM,在TPM实施度量和数据封装的基础上,对客体文件实现了使用控制的动态性和连续性控制。其中通过修改Linux操作系统,给出了原型实现。客体分发后的访问控制并不等同于DRM。DRM主要是在一个相对封闭的空间内,依赖于软件进行基于付费的访问控制,例如只能用特定播放器播放且需要联系授权服务器等。这种问题只是客体分发后访问控制的特例。
协作系统的访问控制协作系统(如ad-hoc网络和网格等)的特点是系统动态且异构,其访问控制需求复杂,主客体属性可变且往往需要连续而非一次性的访问控制,因而无法使用传统的访问控制方法进行安全管理。Usage Control强大的描述能力可以满足这种全新的要求。
这个领域最早的成果是将使用控制模型与方法应用于特定类型的协作系统,如网格和ad-ho网络。2006年,Zhang Xinwen及合作者针对协作系统整体(而非网具体系统)给出了一个比较完善的实施Usage Control的体系结构。在这之后此类成果不多,只是2007年出现了针对CORBA服务接口的使用控制应用。
内核完整性保护目前内核完整性保护方法存在两个问题:
一是无法描述当前的访问控制需求,例如连续策略实施和可变化的过程和属性;
二是保护机制和被保护的内核往往在同一个空间当中,容易受到安全攻击而使得访问控制机制失效。
这方面的研究相对较少,在虚拟层VMM设计访问控制机制,对单个虚拟机中进程对内核的访问实施UCON访问控制,保证访问控制机制的安全性,同时满足控制的连续性和动态性。
目前,基于可信计算的使用控制实施方案主要集中在对客体分发后的访问控制。客体分发后,客体所有者需要信任目标平台对安全策略的正确执行,判决依据也从传统主体的身份和属性扩展到对主体状态和所处平台系统及环境的可信,同时需要满足控制连续性和动态性的需求。该类工作的共同思路是:首先在通过可信硬件TPM提供的可信证明的基础上,为目标平台提供安全的运行环境,保证访问控制的正确执行。在此基础上,进一步对主客体访问实施使用控制,主要采取其中的授权要素、连续性和动态性特点,实现客体分发可信控制。
此外,TXACML对访问控制策略的生成进行了研究,它根据分布式环境下可信平台访问控制需求,提出一个可信平台属性分类规则,定义属性评估函数,可以实现可信平台数据安全分发和访问。同时针对XACML ( eXtensibleAccess Control Markup Language)现有的策略合成算法不能有效满足可信平台策略协商复合需求,设计了一个基于平台可信度的策略合成算法,该算法可以使策略的优先级和可信度保持一致,针对不同的可信度制订相应的访问控制策略。在此基础上,进一步对XACML语言实施扩展,形成可信平台策略语言框架TXACML 。 TXACML为分布式环境下访问控制策略的协商提供了一条有效的途径。3