喻志超,施运梅
(北京信息科技大学 计算机学院, 北京市 100085)
随着云计算规模化和集约化的发展,访问控制安全成为云计算领域重点关注问题。其任务是通过限制用户对数据信息的访问能力及范围,保证信息资源不被非法使用和访问[1]。WebOffice利用云计算平台向用户提供文档存储、编辑与协作编辑等服务,节约了用户办公成本。用户可以在不同的平台上对文档进行操作,提高了办公效率。但文档的存储介质位于用户控制之外,被第三方控制,用户对文档数据的可控性减弱,会产生安全隐患。由于未来云计算将形成一个以云基础设施为核心、涵盖云基础软件、平台服务与云应用服务等多个层次的巨型全球化IT服务化网络[2],而WebOffice又是云应用服务的一部分,所以针对云平台环境的流式文档访问控制成为了亟待解决的问题,并且协作环境的特点之一是多用户参与共同完成一项工作或任务,所以在此环境下,在线文档的安全问题尤为重要。
目前国内外大多数WebOffice仅支持文件粒度的访问控制,不支持段落粒度的访问控制,不能适应云环境动态多变的情况。Google Docs 在2009 年3 月就发生过不同用户之间文档的非授权交互访问问题[3]。
在云平台中,用户数量、文档数量庞大,这些特点给访问控制技术提出了新的要求,传统的访问控制技术已无法满足WebOffice带来的更高要求。本文对传统的访问控制方法进行改造,构建了适合于云平台下流式文档的访问控制模型A-TBAC(attribute and trust-based access control),并应用于我们自行开发的WebOffice系统——DAVOffice中。
传统的访问控制方法有:自主访问控制[4](discretionary access control,DAC)、强访问控制[5](mandatory access control,MAC)。
DAC能够对资源进行一定程度访问控制,但是被授权用户可以将权限传递,造成权限滥用;MAC通过分配密级,匹配安全属性的方法达到了较高的安全保护性,但是非常不灵活,难以管理。
最新的访问控制方法有:基于角色的访问控制方法[6](role-based access control,RBAC)、基于属性的访问控制方法[7](attribute-based access control,ABAC)、基于信任的访问控制方法[8](yrust-based access control,TBAC)。RBAC将用户与权限分离,将权限与角色绑定再分配给用户,降低了系统权限管理的复杂度,但是需要预先设定角色,角色分配非常复杂,不利于多用户扩展;ABAC根据主体属性、客体属性、环境属性来进行访问控制,并不需要复杂的角色分配,符合云环境的特点;TBAC通过计算主体与客体的信任度来对访问控制请求进行决策,并且根据用户行为,来更新信任度数值,在复杂的云平台环境下,更为灵活多变,防止权限滥用。
云平台是一个开放的环境,用户数量多、文件资源多,因此需要访问控制更加灵活、动态性更强、控制粒度更细。传统的访问控制方法不能够很好地适应云平台的访问控制需求。国内外研究人员在传统的访问控制模型基础上提出了一些改进的访问控制模型,主要是用于提升模型的灵活性、动态性,减小访问控制对象的粒度大小。文献[9]提出一种将RBAC和ABAC相结合的访问控制方法,因为结合基于属性的访问控制方法,能够使访问控制更加的灵活,适用于多用户场景;文献[10]提出了一种支持协作的强访问控制模型,将DAC与基于任务的访问控制方法相结合,解决了敏感信息双向流动问题,同时增强了动态性,但是并没有给出具体的实施方案;文献[11]提出了一种基于信任的访问控制方法,增强了动态性,但参数选取与大量的计算开销使得系统难以扩展;文献[12]通过扩展XACML标准,提出了一种在同一文档中支持不同访问控制策略的保护方案,但是无法实现动态授权管理;文献[13]引入了属性约束与用户组,减少了权限管理复杂性,但是角色继承关系上存在缺陷;文献[14]提出了一种基于属性的云协同制造平台,弥补了控制粒度方面不足,但不适用于云平台环境下;文献[15]提出了一种基于信任评估的云服务属性访问控制模型,采用一种基于服务质量指标的信任评估方法,将直接信任、间接信任和综合信任结合起来评估用户的信任度,但是此方法缺乏灵活性。
本文所提出的访问控制模型可以实现动态和细粒度的授权方法,能够弥补上述研究成果在动态性方面的不足,防止攻击者非法访问窃取在线编辑文档的信息。
下面对A-TBAC访问控制模型中的模型元素进行定义。
定义1用户集U={u1,u2,…,ui,…,un},其中ui代表云盘中的用户。
定义2段落集P={p1,p2,…,pi,…,pn},其中pi为一篇文档中的段落。
定义3文档集D={d1,d2,…,di,…,dn},其中di为一篇文档。
定义4操作集合O={o1,o2,o3},O为一个枚举集合,其中o1为查看操作,o2为删除操作,o3为更新操作。
定义5段落操作集合Op={(p1,oi),(p2,oi),…,(pn,oi)},其中i∈[1,3],n∈N*。
定义9策略P可以表达为一个三元组P={RA,di,Op}。
下面通过一个简单的案例来介绍本文所提模型的策略判定过程。首先给出5个用户的属性值和5篇文档的规则属性值,用户属性分别为用户的职务、所属群组和信任度,如表1所示。文档属性分别为用户的职务、所属群组集合、信任度阈值,如表2所示。
表1 用户属性表
表2 规则属性表
本案例的策略集中包含5条策略,如表3所示。表中每1条记录为1条访问策略。
表3 策略集
案例中假设有4条访问请求ar1、ar2、ar3、ar4,其中每条访问请求包含用户的属性信息与要访问的目标文档,如表4所示。
表4 访问请求
基于表3策略集对表4访问请求进行判定,判定结果如表5所示。
表5 判定结果
对于表5中的4条访问请求,在表4策略集合中的5条策略集只有ar1、ar2这2条访问请求是匹配的,因此允许访问;ar3请求中由于访问用户u3的信任度值为0.7,低于p3规则中的信任度阈值0.8,因此不匹配,拒绝访问;ar4请求中由于u4的职务为学生,与p4规则中的教师职务不匹配,因此拒绝访问。
本文利用ABAC和TBAC的各自特点,构建了基于属性与信任的访问控制模型A-TBAC。模型继承了ABAC方法能够表达细粒度访问控制信息的特点,结合TBAC方法,根据用户行为动态更新用户信任度。因此A-TBAC模型能更好地满足在线文档细粒度的访问控制需求和云平台中用户动态变化的特点。
为了使本模型有良好的扩展性与通用性,需要使用标准化的语言、访问授权方法和执行策略来建立一个通用的授权标准,授权基于各种授权策略和规则,策略和规则围绕用户角色和职责制定。可扩展访问控制标记语言XACML(extensible access control markup language)正是这样的标准。XACML是由OASIS批准的通用的基于XML的基于策略管理和访问决策的访问控制语言,该语言支持基于XML的通用策略语言,主要用于实现资源的访问控制,非常适合云平台环境。
A-TBAC模型中由5个部分组成:授权系统、策略实施点(PEP)、策略决策点(PDP)、策略信息点(PIP)和策略管理点(PAP)。如图1所示。
图1 基于属性与信任的访问控制模型
授权系统:对用户授权,通过授权后进行访问控制,否则系统拒绝访问。
PEP:包含上下文转换器,将非基于XACML的请求转化为基于XACML的请求,将封装好的请求发送至PDP。
PDP:信任度动态更新器,动态更新用户的信任度。
PIP:用户的身份信息、属性信息、信任度信息。
PAP:存储访问控制策略,这些访问控制策略由XACML语言描述。
具体的策略判断流程如下:
1)用户将请求提交给授权系统;
2)授权系统收到请求后,用户成功取得授权,将请求转发给PEP;
3)PEP接收到用户发来的请求,收集用户、资源、环境等信息发送给上下文处理器;
4)上下文处理器将PEP发送来的请求封装成基于XACML的请求,发送给PDP;
5)PDP接收请求后向PIP请求用户身份信息、属性信息以及信任度信息,并通过信任度更新器更新信任度,然后向PAP请求搜索适用于本次请求的策略;
6)PDP根据适用策略做出决策结果并将基于XACML的结果返回给PEP;
7)PEP获得决策结果后,允许或拒绝云平台用户的访问。
为了使访问控制更加合理化,用户对系统进行操作的同时,系统也将对用户的行为进行记录并反馈,通过计算用户的直接信任度和间接信任度来约束用户对资源的操作权限。计算数据来源:1)用户和文档直接交互的历史信息;2)用户访问其他文档历史交互信息。
直接信任度值的区间为 [0,1],用户初始的直接信任度值为0.5,0表示不信任,1表示完全信任。直接信任度为
(1)
式中:p为资源提供者;r为资源请求者;φ为事件;I(Oi,φ)为在事件φ中,资源提供方p对资源请求方r的反馈评价度;ρ(t,ti)为信任关系衰减函数,t表示信任关系创建时间,ti表示结束时间。时间衰减函数为
ρ(t,ti)=e-λ(t-ti)
(2)
从式(2)可知,信任关系衰减函数和时间因子成反比关系,即时间越长,信任关系越弱。
间接信任度值的区间为 [0,1],间接信任度是域内其他资源对资源请求者r的信任度的算术平均值。当资源请求者r请求资源时,系统将对资源请求者r的间接信任度进行计算。间接信任度为
(3)
式中Tw→r为域内其他资源对资源请求者r的信任度。
资源请求者r信任度为直接信任度和间接信任度的加权综合:
(4)
本实验运行所需的硬件环境和软件环境分别为IBM SystemX3650M4服务器和Linux CentOS6.5操作系统,其中IBM SystemX3650M4服务器的基本配置为E5-2603V4/6核/1.7G/6线程CPU、集成显卡、16.00G内存、3TG硬盘。具体参数为:3台IBM SystemX3650M4服务器,1台H3C S1848G交换机以及若干根超五类网线。3台IBM SystemX3650M4服务器全部安装Linux CentOS6.5系统,选一台为Master节点,剩余2台为Slave节点,分别安装Hadoop 2.4、Hbase0.98.3以及Zookper3.4.6。选取Myeclipse集成环境进行开发。
本文在DAVOffice平台上进行实验,实验分为2个部分,第一部分测试平台能否达到段落级别访问控制与用户信任度值随越权次数、时间的变化。第二部分是与ABAC模型的比对试验。
图2为协同编辑系统中用户uA对dA进行访问的结果,系统显示表明uA没有权限对段落进行更新。
图2 用户更新段落操作
为了测试用户对文档的操作行为与信任度的变化关系以及信任度随时间变化关系,本文针对2个用户uA、uB(用户初始信任度均为0.5)和3篇文档dA、dB、dC进行实验。在实验中,设置直接信任度的权重ε=0.5,间接信任度的权重值为δ=0.5,其实验结果如表6、表7所示。
表6 用户信任度随用户越权次数的变化
从表6可知,uA对dA进行访问后,越权操作次数为0,uA的直接信任度由0.5变为0.52。由于uA没有与其他用户的交互记录,所以间接信任度为初始值0.5,其信任度通过式(4)计算后可知为0.51。uA对dB进行访问后,越权操作次数为3,uA的直接信任度由0.52变为0.452 5。由于uA访问过dA,通过式(3)计算其间接信任度为0.51,其信任度通过式(4)计算后为0.481 2。由此可说明用户对文档的越权操作次数越多,信任度越低;如果一天之内的越权操作次数为0时,信任度会相对提高。
如表7所示,在用户没有对文档进行访问时,随着时间的增长,用户的信任度逐渐降低。由此可说明,该模型可以根据云平台用户的操作和时间,动态更新用户的信任度。
表7 用户信任度随时间变化记录表
ABAC模型的访问控制方案在对用户进行访问控制时,只通过用户的属性来判断该用户能否访问资源,而没有考虑到用户通过访问控制后会对在线文档进行越权操作的情况,用户则可以滥用权限,系统不能够对他进行约束,以uA访问文档dC为例,其属性分别如表8、表9所示。
表8 userA属性表
表9 文档docC访问规则属性
dC的访问规则属性定义只有属性职务为教师,所属群组为g2的用户可以访问,并且可以对第一段进行查看,第三段进行删除。uA的属性与dC的访问规则属性匹配,则用户可以进行访问。但是用户通过访问控制后,系统则不能根据用户操作文档的行为重新判断用户是否还具有访问文档dC的权限。
然而本模型与原有方案相比,通过记录用户行为对用户的可信任值进行量化评估,用户每次对在线文档进行编辑时,都会实时记录用户的越权操作次数。下面同样以用户uA访问dC为例,其属性如表10、表11所示。
表10 userA属性(访问前)
表11 文档docC访问规则属性
用户uA的属性与文档dC的访问规则属性匹配,用户同样可以进行访问,但当用户对文档进行越权操作时,DAVOffice平台会记录用户的越权次数,并更新用户的信任度,以越权10次为例,用户的属性信息更新如表12所示。
因操作越权,用户uA的信任度从0.6减少到0.457 5,低于dC的规则属性取值0.55,因此uA不再具有访问dC的权限。本模型通过信任度计算公
表12 userA属性(访问后)
式计算用户的信任度,并把信任度作为用户的属性之一,这样就可以动态的更新用户的属性,用户就无法滥用权限,动态性得到了加强。
本文通过分析、比较各种常用的访问控制技术,将基于属性的访问控制方法与基于信任的访问控制方法结合,为云盘中文档内容提供访问控制,保护文档的安全性,实现文档段落细粒度的访问控制,并根据用户行为,动态控制其访问操作权限,能够有效解决用户权限滥用的问题。但是,如何改进信任度评价的方法还需通过深入分析、研究加以改进与完善。