张 艺,田立勤,,毋泽南,武文星
1(华北科技学院 计算机学院,北京 101601)
2(青海师范大学 计算机学院,西宁810000)
云计算的概念提出后,便在全球范围内流行开来[1].云计算利用虚拟资源管理和分布式计算等技术,通过共享的资源池向用户以动态按需和可度量的方式提供服务[2].但随着云计算技术的快速发展,云计算中的数据安全问题备受关注.云计算环境的开放性、共享性和弹性等特点使得传统的访问控制机制难以提供高效安全的访问控制服务[3].因此有必要设计一个适合云环境的访问控制机制来对云环境资源实现有效的保护.
访问控制作为保护计算机信息安全的一个重要技术,吸引了越来越多的学者研究[4].其中RBAC访问控制模型已经成为近20年来的研究热点[5].该模型将角色的概念引入其中,根据用户的不同职能划分成不同的角色,并将权限分配给相应的角色而不是直接授予给用户主体,从而大大减少了权限管理的复杂性[6].接着Sandhu[7]等人在传统的基于角色的访问控制基础上进行改进提出了RBAC96模型,之后ARBAC97、ARBAC99等访问控制模型也相继被提出.但这些研究中的授权方式都是静态的,不适用于动态的云计算环境[8].对此,王于丁[9]等人在基于角色的访问控制模型中引入了属性元素,可以使用户通过自身和所在租户的属性及当前的状态分配角色实现动态的访问授权工作.TAN[10]等人在传统的RBAC模型中添加了信任度,通过比较信任度和信任度阈值来确定云资源的动态访问权限.范运东[11]等人通过在信任值的计算中引入衰减因子提出了基于信任值评估的访问控制模型,根据云环境下交互实体之间信任值的动态变化来实现动态授权.以上研究虽然实现了动态授权,但是客体往往无法预估主体的访问行为是否含有恶意以及会造成何种程度的损失.
近年来,博弈论为云计算环境下的访问控制研究提供了一个新思路.将博弈论中的相关理论与方法引入到访问控制机制中使其能够适应不断动态变化的网络环境[12].例如Helil[13]等人将信任和风险两要素作为玩家收益函数中的度量指标,构建了一个合理的、通用的访问控制博弈模型.郭凯丽[14]等人提出了基于博弈论的信任奖惩机制来防止恶意用户对系统的非法访问,对于合法用户的访问给予奖励,对于非法用户的访问给予一定的信任值惩罚,从而达到信任值的动态调整.
本文在以上研究成果基础上,提出了一种云环境下基于信任的动态访问控制博弈机制.通过交互次数与交互时间两要素来计算信任值使其处于动态变化的状态,将信任值与动态调节因子引入支付矩阵中进行博弈分析,从而使云环境下的主客体双方处于一种相互制衡的均衡状态,提高云环境的安全性与合法性.
基于用户信任的动态访问控制过程的主要思想是在传统的RBAC模型的基础上引入了用户信任环节,在信任值的计算过程中结合实体双方的交互时间与交互次数两因素提出了一种新的推荐信任值的计算方法.根据用户的综合信任值确定用户的信任等级,通过信任等级对访问用户进行角色的激活与授权工作.具体的访问控制结构如图1所示.
图1 访问控制结构图
用户集U={u1,u2,…,um},代表提交访问云资源请求的云用户的集合.
角色集R={r1,r2,…,rl},一个系统中的工作或位置,代表对系统中某些部分进行操作的资格或权利[15].
权限集P={p1,p2,…,pn},代表主体对云环境提供的资源进行访问的操作集合[11].
资源集RES={res1,res2,…,reso},代表云平台中用户访问的对象集合,包括各种软硬件资源,需对其设置访问权限[16].
会话集SESS={sess1,sess2,…,sessp},代表用户与角色之间映射关系的集合.
约束集CONS={cons1,cons2,…,consq},约束角色与权限之间关系的集合.
信任等级TC={1,2,…,r},代表与用户综合信任值所对应的等级情况.
UR⊆U×R,RP⊆R×P,表示用户角色的分配过程和角色权限之间的授权过程.
云计算环境属于一个开放式的环境,几乎任何用户都可以请求访问云计算系统,因此要对云用户进行全面且客观的信任评估[17],将评估后的信任等级作为授权工作的参考依据.
2.3.1 直接信任值
对于用户Ui与云服务商Sj而言,将两者之间总的交易次数记为Nij,总的成功交易次数记为Sij,则直接信任值的计算方法为:
(1)
其中,f×e-Nij为惩罚项,交易成功时f=0,交易失败时f=-1.即为了惩罚云环境下的恶意用户,当交易失败时需要在原有信任值的基础上减去惩罚项.
2.3.2 推荐信任值
对于初次访问云资源的新用户或者初次访问云资源时直接证据不足的用户[18],其推荐信任值显得尤为重要.信任是会随着时间的延长而慢慢衰减的,本小节提出了一种新的推荐信任值计算方法.通过实体双方的交互时间与交互次数两方面要素来衡量推荐信息的可靠性程度.
设云用户集合为Ui={u1,u2,…,um},推荐云服务商的集合为Cj={c1,c2,…,cn}.D(ul,ck).代表第k个推荐云服务商对云用户ul的直接信任值.云用户的推荐信任值计算如下:
(2)
其中,N为推荐服务商的数量.当不存在推荐服务商时,用户的推荐信任值取0.(Rk)为推荐者推荐信息的可靠性参数.
(3)
式中,m代表交互次数,M为交互次数的阈值,t代表当前时间,tl代表最后一次交互的时间.
从公式中可以看出,当交互时间确定的时候,交互实体双方的交互次数越多,推荐可靠性越高;当交互次数一定的时候,最后一次交互时间距离当前时间越近的云服务商其可靠性越高.
2.3.3 综合信任值
根据直接信任值与推荐信任值得到综合信任值的计算方式:
O(ui,sp)=w1D(ui,sp)+w2T(ui,cj)
(4)
w1和w2分别代表直接信任与推荐信任所对应的权重因子.由此可以看出,用户的信任值随着交互时间与交互次数的不同而改变,从而实现了访问控制中动态授权的目的.
为了更好的激励用户的合法行为,抵制用户的非法行为,本机制在用户每次访问结束后对其信任值进行更新,将更新后的信任值存储到历史信息数据库中作为下一次访问的依据.
对于合法访问的云用户,在访问结束后要增加其信任值.增加后的信任值为:
(5)
其中,λ为增长因子,决定了信任值增长的速度.
相同地,对于恶意用户的访问要对其进行惩罚处理,衰减后的信任值为:
(6)
β为衰减因子.在此要注意的是,λ的值要一直小于β的值,由此体现信任“慢升快降”[19]的特性.
在第2小节得到云用户所对应的客体权限后由博弈分析环节对云用户和云服务提供商之间的博弈进行分析,结合用户信任等级与动态调节因子分别计算双方在不同访问策略下的收益,通过博弈分析过程得到混合策略纳什均衡进而求得云用户选择合法访问策略的概率以及云服务商选择允许访问策略的概率.将两者概率分别与门限值进行比较,最终决策出是否对本次访问进行授权.此外,在每次访问结束后对用户信任值进行更新存储到历史信息数据库中,为下一次访问做准备.通过交互实体双方的混合策略纳什均衡,可以为云环境下访问控制环节的合法性与安全性提供更多的有效措施.图2给出了结合用户信任的访问控制博弈分析的完整流程图.
图2 访问控制博弈分析流程图
鉴于云计算环境的动态性等特点,云环境下基于信任的访问控制是一种客体与主体间的动态博弈问题[20].对于参与博弈过程中的相关要素定义如下:
定义1.博弈参与者:云环境下的云服务商和云用户.
定义2.博弈策略:对于云用户而言,它的博弈策略为合法访问与恶意访问,相应的云服务提供商的博弈策略为允许访问和拒绝访问.
定义3.收益函数:收益函数在博弈分析中扮演着不可或缺的重要角色,它表示主体采取某种策略访问以及客体应对访问的某种策略时双方的收益与损失情况,详细的参数介绍如下:
当云用户采取合法行为访问云资源被拒时云用户所获得的收益为0;
云用户采取恶意行为访问云资源被拒时云用户所获得的损失,该损失依然来自于恶意访问的记录被记录到数据库中对云用户未来的访问权限造成的损失,即Upunish.
y:用户的信任等级,y=(1,2,…,n);
θj:动态调节因子.θj∈[0,1],(j=1,2,…,6),它取决于用户信任等级以及各访问策略效用之间的差异.
针对以上博弈参数,结合动态调节因子与信任等级的博弈关系矩阵如表1所示.
表1 交互实体博弈关系
利用画线法对该支付矩阵展开分析后,发现该博弈矩阵不存在纯策略纳什均衡,因此需要求解出该博弈矩阵的混合策略纳什均衡.接下来是求解的详细过程.
设云用户的收益矩阵为Euser,云服务商的收益矩阵为Ecsp.假使云用户选择合法访问的概率为a,选择恶意访问的概率为1-a,则云用户的混合策略概率为Puser=(a,1-a).假使云服务商选择同意用户访问的概率为b,选择拒绝用户访问的概率为1-b,则云服务商的混合策略概率为Pcsp=(b,1-b).设云服务商的收益函数为Mcsp,则:
对上式求关于b的导数,即:
令b′=0,求出a的值:
(7)
采取相同的方法计算出b的值.设用户的收益函数为Muser,则:
对上式求关于a的导数,即:
令a′=0,求出b:
(8)
根据2.2节求出的混合策略纳什均衡可以获得a,b的值.分别对用户选择合法访问策略的概率和云服务商选择允许访问策略的概率设置门限值[9]d1与d2.当a≥d1且b≥d2时,则允许云用户的访问请求,云用户可以对所具有的权限进行操作.
用户身份合法性的验证是以用户的IP地址为依据,由于身份认证不是本文研究的重点,本实验以用户的IP地址都在合法范围内的前提来展开研究.为了比较交互实体双方的博弈参数以及混合纳什均衡随用户信任等级的变化趋势,本实验将云用户分为5个信任等级,各个信任等级所对应的角色与权限如表2所示.需要注意的是信任等级越低代表用户的可信度越高,拥有的访问权限越高级.
表2 信任等级与角色权限映射表
表3 博弈收支参数表
上述数据结果的统计情况如图3所示.
将相关参数代入式(7)与式(8)中展开分析,参数的大小与上一小节保持一致.图4给出了交互实体双方的纳什均衡随用户信任等级的变化趋势.
从图4中可以看到云服务商的纳什均衡概率与云用户的纳什均衡概率呈正比.这是因为用户的可信度越高,越想通过恶意的访问策略来获取更多的利益,而云服务商为了阻止这种趋势,需要降低允许用户访问的概率来保障云环境的安全性.
为了证明本文提出的博弈机制的有效性,本文仿真实验基于python3.0实现.
假设云服务商对合法访问概率超过门限值的用户总是采取允许策略,对低于门限值的用户总是采取拒绝策略,将交互总次数中的合法用户数量定义为交易成功率.本实验以交易成功率为评估标准,设定云用户的初始信任值为0.33,合法访问概率的门限值为0.6.博弈机制中的相关参数的设置与上述描述保持一致.模拟100次交互实验,每20次交互记录一次交易成功率.得到的交易成功率随着交互次数的变化趋势如图5所示.
从图5中可以看到,随着访问次数的增加,用户的合法访问概率呈现缓慢上升的趋势.这是因为用户在与云服务商交互的过程中会采取合法访问的策略来慢慢累积自己的信任值,当用户的信任值达到一定程度时,往往会选择恶意访问来赚取更多的利益.这时如果没有一定的措施去控制这种现象就会使云环境遭受恶意攻击,使其交易成功率下降.而从图中可以看到当交互实体双方的交易次数超过60次时,交易成功率并未出现下降的趋势而是呈缓缓上升的趋势,可见本文提出的博弈机制对恶意节点具有一定的约束效果且对合法用户具有一定的激励作用.
对于动态性、安全性要求较高的云环境[11],本文提出了一种基于信任的动态访问控制博弈机制.在传统的访问控制结构中加入用户信任实现动态授权,将信任值与动态调节因子引入收益函数中展开博弈分析来避免用户的恶意访问行为.通过交易双方的混合纳什均衡策略实现云环境下的访问决策工作.实验证明,本文机制将博弈论与基于信任的访问控制相结合,能够对云计算环境的安全性与合法性起到一定的积极作用.