余 波,台宪青,马治杰
1.中国科学院 电子学研究所,北京100190
2.中国科学院 空间信息处理与应用系统技术重点实验室,北京100190
3.中国科学院大学 电子电气与通信工程学院,北京101408
4.中国科学院 电子学研究所 苏州研究院,江苏 苏州215121
5.江苏物联网研究发展中心,江苏 无锡214135
云计算的快速发展为数据存储带来了极大的便利,使得越来越多的数据被存储在云服务器上,而随之带来的则是数据安全问题[1]。访问控制是保护信息系统中数据安全的关键技术,它通过定义系统中主体对客体访问权限的方式,限制用户对数据资源的访问能力和范围,达到阻止未授权用户对系统访问和已授权用户越权访问的目的。然而,由于云计算环境具有实时动态性、用户和数据规模庞大且复杂多样等特点,对访问控制系统在授予用户权限、管理用户的权限和保持访问控制的细粒度等方面带来了新的挑战,从而不能有效地保护数据的安全性。因此,设计一种能够同时实现动态授权、权限自动化授予以及细粒度控制等特点的访问控制机制变得很有必要。
传统的访问控制模型主要为自主访问控制(Discre‐tionary Access Control,DAC)[2]、强制访问控制(Manda‐tory Access Control,MAC)[3]和基于角色的访问控制(Role-Based Access Control,RBAC)[4-5]。这些访问控制模型都实现了对不同主体访问客体的授权和控制。比如,DAC 系统中的主体可以自主地决定将其拥有的对客体的权限全部或部分地授予其他主体,但其仅适用于简单系统,对于大型复杂系统存在开销过大、效率低下等问题。MAC 依据系统权威(如系统管理员)制定的访问规则进行多层级的访问控制,但其规则制定严格且缺乏弹性,灵活性较差。RBAC 在用户和权限之间引入角色作为中间层,所有的权限通过角色授予而非直接分配给用户,所以具有支持大规模复杂系统和高灵活性的优势,因此RBAC较为适合用于一般云计算环境下的访问控制[6-9]。
目前云环境下现有的访问控制研究主要集中在两个方面:云环境下访问控制模型和基于属性基加密(Attribute-Based Encryption,ABE)机制的云计算访问控制。访问控制模型按照其功能的不同,可以分为基于任务的访问控制模型(Task Based Access Control,TBAC)[10]、基于属性的访问控制模型(Attribute Based Access Control,ABAC)[11]和基于BLP(Bell-LaPadula,BLP)模型的云计算访问控制。TBAC 从任务的角度来建立安全模型和实现安全机制,可以对工作流或其中的任务进行实时动态地授权控制,从而极大增强了云环境中访问控制的动态性。但是没有解决云环境中实体复杂性对细粒度的访问控制造成的问题,而且其配置比较繁琐。ABAC 通过对相关实体(主体、客体、权限和环境)的属性进行建模的方式,来描述授权和访问控制约束,以此实现细粒度访问控制。但是,ABAC 没有针对云环境的动态性作出优化,不能根据动态变化的环境信息对用户权限实时作出调整。同时,所有实体均以属性进行描述比较复杂,可能存在属性描述不足以表达实体特性的情况。BLP模型是一种强制访问控制模型,主要应用于强调安全机密等级的系统或云环境。CCACSM(Cloud Computing Access Control Security Model)[12]是一种基于BLP 的云计算访问控制安全模型。该模型基于用户的行为来对用户访问范围进行动态调整,保护数据资源安全。但是,该模型的优势只能在强调机密等级的特殊云环境中发挥,并不能在一般的云环境中体现。总之,上述访问控制模型均没有完全兼顾云环境的特点。而RBAC具有适用于大规模复杂系统、结构简洁易管理和易于和其他模型概念相结合等优点,因此,本文分析和讨论云环境下的RBAC 模型,对RBAC 模型进行改进使其适用于云环境,实现动态授权、权限自动化授予以及细粒度控制的目标。
ABE 是一种通过在密文或密钥中嵌入访问控制策略的方式,实现对数据资源灵活的细粒度的访问控制的机制。目前,基于ABE 已经衍生出两种变体机制:密钥策略的ABE 方案(Key-Policy ABE,KP-ABE)[13]和密文策略的ABE 方案(Ciphertext-Policy ABE,CP-ABE)[14]。在KP-ABE 中,密文与属性集合相关联,密钥与访问结构相关联。当属性集合与访问结构匹配时,解密方才能使用密钥解密。在CP-ABE 中,与KP-ABE 相反,密文与访问结构相关联,密钥与属性集合相关联。当解密方拥有的属性集合匹配访问结构时,解密方的密钥才能解密密文,获得数据和资源。与KP-ABE相比,CP-ABE更适合大规模环境下的访问控制,因此研究者目前广泛采用CP-ABE 算法展开对ABE 在云计算环境下的研究与应用。本文在改进RBAC 模型时也借鉴了CP-ABE 的思想。
由于RBAC自身的某些特性,使得该种访问控制机制不能简单直接地套用在云环境中。在RBAC中,用户权限的授予是静态的,即用户权限一旦被授予,其在随后的访问过程中均保持不变。此时若出现用户危害系统安全的行为,系统无法及时调整用户权限,从而造成权限的滥用并危害系统安全。而云环境具有动态性、开放性的特点,使得静态授权造成的问题在云环境中愈发严重。另外,RBAC 具有用户分配和权限分配两组多对多关系,且均需要进行人工配置。而云环境用户数量庞大、类型繁多,因此会导致RBAC 在云环境中人工管理维护成本急剧提高。最后,RBAC 通过角色的概念将用户与权限关联起来,而在云计算环境中用户、角色和权限的划分以及分配关系复杂,所以难以保证对用户细粒度的访问控制。总之,RBAC 在云环境中仍存在一定程度上的问题(详细解释参见2.2节)。
针对以上问题,本文提出一种云计算环境下基于属性(Attribute)和 信 任(Trust)的RBAC 模 型,简 称ATRBAC。ATRBAC 在RBAC 的基础上加入属性和信任管理模块,分别为用户添加属性集合、为角色添加访问结构,通过用户属性集合与角色访问结构的匹配以及用户信任值随用户行为的动态调整,增加了访问控制授权的动态性,实现了权限的自动化授予以及更加细粒度的访问控制。
首先介绍RBAC 模型的基本原理和组成要素,然后详细介绍RBAC 模型在云环境下存在的不足及应用研究情况。
RBAC 是一种经典的访问控制模型,其基本思想是通过角色建立用户和访问权限之间的多对多关系。RBAC主要包括四个实体:用户(USERS)、角色(ROLES)、权限(Permissions,PRMS)和会话(SESSIONS),如图1所示。
图1 RBAC模型
每个实体和实体与实体之间的对应关系详细解释如下:
(1)用户(USERS):用户指直接与系统交互的任何个人。
(2)角色(ROLES):角色指组织中的工作岗位,描述授予给用户的权利和义务。角色作为中间体,既是用户的集合又是权限的集合。
(3)权限(PRMS):权限指访问系统中一个或多个客体特定模式的许可,描述了主体与客体之间已授权的交互关系类型。这里讨论的权限是正权限,授予持有者在系统中执行一个行为的能力。权限的概念包含客体与操作。
①客体(Objects,OBS)代表系统中的数据或资源。
②操作(Operations,OPS)是对客体特定的执行模式,常见的如读(Read)、写(Write)、执行(Execute)等。
(4)会话(SESSIONS):会话是用户与分配给用户的角色集合的激活子集之间的映射关系。用户在激活所拥有角色的某些子集时建立会话,每个会话把一个用户和可能的多个角色联系起来。用户可用的权限是当前会话激活的所有角色权限的并集。
(5)用户分配(User Assignment,UA)和权限分配(Permission Assignment,PA):两者都是多对多的关系,一个用户可以属于多个角色,并且一个角色可以拥有多个用户。同样的,一个角色可以拥有多个权限,相同的权限可以被分配给多个角色。角色作为一个中间体,根据访问的配置和反馈为用户执行权限提供更好的控制,而不是用户和权限之间建立直接的关系[5]。
(6)用户会话间关系(User-Sessions)和会话角色间关系(Session-Roles):用户与会话间是一对多的关系,每个会话与单个用户关联,而一个用户在同一时间可以打开多个会话。会话与角色间是多对多的关系,一个会话中可以激活多个角色,同一个角色也可以在不同的会话中被激活。
RBAC在云环境中仍然存在以下三方面不足。
(1)访问权限的分配都是静态的。用户获取的某项权限在一定时间内是永久的,并不会因操作完成而释放这些权限,即“一次授权终身享有”。访问控制系统对用户的后续行为无法进行管理,造成用户权限滥用的问题,同时也给云计算环境引入了不安全因素。
(2)用户访问权限不能自动授予。用户权限需要依靠系统管理员人工地进行设置,容易出现两方面问题。一方面,当用户数量很多时,用户角色分配的数量随着用户数量的增长而急剧增加,管理员工作量大,管理维护成本高。另一方面,管理员在人工设置的过程中也难免出错,造成合法用户无法进行访问或者隐私数据泄漏的后果。
(3)访问控制粒度较粗。访问控制粒度较粗主要体现在以下两个方面。一方面,由于用户划分较为粗略,导致相同的权限授予归为一类但仍有差异的用户。另一方面,由于权限划分较为宽泛,导致授予用户不仅包含完成任务需要的权限而且包含范围更大的权限。
针对以上问题,许多研究者都提出了云环境中基于RBAC模型的改进方案。Jung等人[6]在RBAC 模型的基础上提出云环境下自适应的安全管理模型。该模型能够根据上下文信息计算安全等级从而动态调整用户的角色,具有自适应性,有效解决了云环境中多种环境变量动态变化的问题。Aluvalu 等人[7]通过优化RBAC 模型提出一种云计算中动态的基于属性的风险感知访问控制模型(Dynamic Attribute-based Risk Aware Access Control,DA-RAAC)。该模型混合其他静态的基于策略的访问控制模型,并结合风险计算和用于访问控制的属性,使访问控制系统更加具有动态性。张凯等人[8]提出了一种云计算下基于用户行为信任的访问控制模型。该模型结合用户的直接和间接信任值得到用户信任值,再根据信任值确定其信任等级,激活所对应的角色及赋予角色一定的访问权限,解决了当前云计算访问控制中角色的访问权限无法动态调节的问题。黄晶晶等人[9]提出一种基于上下文和角色的云计算访问控制模型(Context and Role Based Access Control,CRBAC)。该模型在传统RBAC模型的基础上加入上下文约束,能够动态地授予用户权限,保护云资源的安全。
以上研究都侧重于解决RBAC 模型在云环境中访问权限静态分配的问题。与他们不同,本文在上述文献成果的基础上进一步研究,针对以上所提出的全部问题,实现了动态的授权管理,用户权限的自动化授予以及更细粒度的访问控制。
首先详细介绍所提出的ATRBAC模型,然后阐述对ATRBAC 进行研究的技术路线,最后,对基于ATRBAC的访问控制流程进行分析。
ATRBAC 模型在RBAC 模型的基础上加入属性/信任管理(Attribute/Trust Management)模块,分别为用户添加属性集合(Attribute Set),为角色添加访问结构(Access Structure),去除庞大复杂的用户角色分配关系,增加了访问控制授权的动态性,实现了权限的自动化授予以及使访问控制更加细粒度。图2 中红色虚线框展示了ATRBAC模型与RBAC模型主要的区别之处。
图2 基于属性与信任的RBAC模型
下面对图2中新加入的模块进行说明。
属性集合(Attribute Set):属性集合是根据用户提供的身份属性证明,为用户分配的对应的属性标签集合。其中用户的行为信任值作为属性集合中一项必选的重要属性,根据用户操作行为和结果实时动态地调整变化。
访问结构(Access Structure):访问结构是由属性标签和逻辑运算符组成的、根据角色含义指定的角色获取条件。角色的信任阈值作为访问结构中一项必要条件。属性/信任管理(Attribute&Trust Management):属性管理完成用户属性集合和角色访问结构的制定、分配、管理和维护工作。信任管理完成根据用户操作行为和结果实时更新用户信任值以及动态调整用户所拥有角色和权限的工作。若用户的当前信任值大于角色的信任阈值,则继续保留该角色;否则,用户的属性集合将不再满足角色的访问结构,收回用户的角色所有权。
为了实现以上新添加模块的功能,达到ATRBAC对RBAC 模型的改进目标,本文对ATRBAC 进行研究的技术路线主要包含以下两步。
步骤1基于属性基加密(ABE)算法的思想,实现属性集合、访问结构以及属性管理模块的功能,使得用户可以自动地匹配获取角色,将属性的概念加入RBAC模型中,使得访问控制更加细粒度。根据访问结构对角色进行加密,将访问结构嵌入到角色中去;授予用户属性集合对应的私钥,从而为不同用户赋予相应的属性集合。只有用户属性集合满足角色访问结构的要求时,才可以通过私钥解密获取得到相应的角色和权限。用户属性集合和角色访问结构统一由访问控制系统中的属性管理模块授予并完成相应的管理维护工作。ABE 算法分为密钥策略属性基加密(KP-ABE)和密文策略属性基加密(CP-ABE)。由于只有CP-ABE 可以由数据所有者,即加密者,决定谁可以解密加密的消息,所以本文选择CP-ABE 算法实现用户角色之间加解密的过程,详细介绍参见第4章。
步骤2采用信任值评估比较的方法,实现属性集合中用户行为信任值、访问结构中角色信任阈值以及信任管理模块的功能。根据用户的操作行为及结果评估用户的信任值,将信任值作为用户获取角色的必要条件,使用户获取的角色和权限随信任值动态变化。首先,用户在获取权限后对云存储系统的各种操作行为和结果都会被记录存储在用户历史行为数据库中。访问控制系统里面的信任管理模块周期性地提取用户历史行为数据库中的数据记录计算更新用户信任值,同时为每个角色设置一个信任阈值。然后,用户的信任值与用户拥有角色的信任阈值进行比较。如果用户信任值大于角色信任阈值,则继续保有该角色及角色对应的权限;如果用户信任值小于角色信任阈值,则改变后的用户属性集合不再满足该角色的访问结构,从而收回角色。本文采用模糊层次分析法(Fuzzy Analytic Hierarchy Process,FAHP)[15]评估得到一个客观合理的用户信任值。详细介绍参见第5章。
ATRBAC 访问控制流程整体上是基于RBAC 的访问控制流程,但在细节上存在两处不同。本节首先详细介绍ATRBAC 的访问控制流程,然后分析和讨论了该流程的合理性与优势。
牛肚菌。牛肚菌生长于海拔900-2200米的松树混交林中或砍伐不久的边缘地带,多产于云南省。牛肚菌香甜可口、营养丰富,中医认为其具有养血和中、祛风散寒、舒筋活血等功效,是妇科良药,同时还有抗流感、治感冒的作用。
ATRBAC访问控制流程:图3为ATRBAC模型对用户的访问请求进行授权检查的工作流程,一共包含六个步骤。详细介绍如下:
步骤1在访问控制系统初始化或添加新角色时,属性管理模块使用CP-ABE 算法根据角色的访问结构对角色进行加密。
图3 ATRBAC访问控制流程
步骤2当用户第一次访问云存储系统时,首先与访问控制系统中的属性管理模块建立联系。属性管理模块根据用户提供的身份属性证明,使用CP-ABE 算法生成属性集合对应的私钥,并分发给用户。
步骤3用户获取相关角色并激活对应的访问权限。用户使用自己的私钥解密由访问结构加密的角色,如果用户属性集合匹配角色访问结构,则解密成功获取相关角色和对应的权限,进入下一步;否则,无法获取相关角色和权限。
步骤4用户提出访问请求,访问控制系统对用户的访问请求进行授权检查。如果用户拥有的角色中包含访问请求对应的权限,则用户的访问请求通过;否则,用户的访问请求被拒绝。
步骤5用户的访问请求通过以后,用户对云存储系统执行相关操作,并将操作行为及结果记录在用户历史行为数据库中。
步骤6访问控制系统中的信任管理模块使用FAHP方法根据用户历史行为数据库中的记录评估用户信任值。如果更新后的用户信任值小于角色的信任阈值,用户信任值属性的改变使得属性集合不再满足角色的访问结构,收回用户已拥有的角色;否则,不做任何改变,用户继续保有该角色。
ATRBAC访问控制流程的合理性:ATRBAC模型的访问控制流程在整体上是基于RBAC 模型对不同用户进行授权以及对用户的访问进行控制的,在细节上与RBAC 模型存在两处不同。首先,在用户获取所需角色时,RBAC 直接对用户与角色之间关系进行人工配置,而ATRBAC 为了实现用户权限的自动化授予和细粒度的访问控制,则采用了CP-ABE 机制(见图3 中步骤3);然后,为了增加访问授权的动态性,ATRBAC 在RBAC之上新加入了用户信任值属性的评估与反馈机制(见图3中步骤6)。前者仅在用户获取所需的角色及权限时起作用,不会对RBAC的核心控制流程造成影响。后者只是为验证用户是否获得角色提供新的判断依据。因此,ATRBAC 访问控制流程中不同的两部分并不会破坏原有的传统RBAC 访问控制流程的安全性和合理性。另外CP-ABE算法的安全性在文献[14]中已经得到了证明。
ATRBAC模型访问控制流程的优势:ATRBAC的访问控制流程在保留传统RBAC 模型保护数据资源安全性的基础上,同时也带来了新的优势。具体解释如下:
(1)用户在获取角色时采用了CP-ABE 算法,使得这个过程可以自动完成,不需要系统管理员参与,增加了访问控制系统的可扩展性。
(2)用户属性集合和角色访问结构的加入使得访问控制更加细粒度并且对角色进行加密也提高了云环境中数据资源的机密性和安全性。
(3)加入信任值属性的反馈机制,可综合评估用户的操作行为及结果对云环境中环境信息带来的影响,解决了云环境中用户的权限无法动态调整的问题。
首先讨论在ATRBAC 模型中将CP-ABE 算法与RBAC 模型结合的必要性,然后介绍CP-ABE 算法的步骤并讨论CP-ABE算法如何与RBAC模型相结合。
在ATRBAC 模型中,为了实现用户与角色之间自动化地授予以及更加细粒度的访问控制,采用CP-ABE算法与RBAC模型相结合的方式。具体原因解释如下:
首先,CP-ABE 算法与ATRBAC 中提出的对RBAC改进的思路一致。ATRBAC 模型在RBAC 模型的基础上加入属性/信任管理模块,分别为用户添加属性集合,为角色添加访问结构,通过用户属性集合是否匹配角色访问结构来决定用户能否拥有该角色。而在CP-ABE算法中,通过用户私钥中的属性集合是否匹配密文中的访问控制策略来决定用户能否解密获得明文。
然后,将CP-ABE 算法与RBAC 模型相结合可以实现用户与角色之间自动化的授予,并提高云环境中数据资源的机密性和安全性。CP-ABE算法对RBAC模型中的角色进行加密,加密过程中角色被嵌入访问结构,而用户被授予与属性集合关联的私钥。在以后的访问授权过程中,用户与角色间的授予可以通过加解密的方式自动完成;对角色进行加密,即对角色对应的权限进行加密,提高了云环境中数据资源的机密性和安全性。
最后,将CP-ABE 算法与RBAC 模型相结合可以实现更加细粒度的访问控制。结合CP-ABE算法为RBAC模型中引入了属性的概念,使得ATRBAC 模型相比传统RBAC模型的访问控制粒度更细。
在CP-ABE 算法[14]中,一方面,将用户私钥与由任意数量的可描述的属性组成的属性集合关联起来。另一方面,当数据所有者对明文进行加密时,把用于解密的访问结构指定到加密的明文中。故解密密文的标准是用户私钥中的属性集合必须满足密文中的访问控制策略,否则不能解密。
CP-ABE的算法可归纳为以下四个步骤。
(1)初始化SetUp(d):无输入但是包含一个隐式安全参数d,输出整个过程中所需的公钥(Public Key,PK)和主钥(Master Key,MK)。
(2)密钥生成KeyGen(MK;I):输入主钥MK 和属性集合I,生成与用户属性集合I 对应的私钥SK。
(3)加密Encrypt(PK;M;T):由数据所有者执行,使用公钥PK 和访问结构T 对明文M 进行加密,得到密文E。
(4)解密Decrypt(PK;E;SK):由用户收到密文E 后递归地执行。公钥PK,包含访问策略T 的密文E 和对应属性集合I 的用户私钥SK 作为输入,如果属性集合I满足访问结构T,可以计算输出明文M。
CP-ABE 算法与RBAC 模型相结合:CP-ABE 算法整体框架流程和计算公式基本保持不变,根据RBAC模型替换其中的几个概念。这里数据所有者为云存储平台的访问控制系统,明文M 则是每个角色对应的角色文档R,文档内容可以是角色所对应的权限。访问结构T 为角色的访问结构。用户、属性集合I 以及生成的用户私钥SK 与原算法一致。这样一来,当用户尝试使用自己的私钥解密加密后的角色文档时,如果用户属性集合满足角色访问结构的要求,则用户解密成功,自动获得角色文档包含的权限。
在FAHP 方法中,自顶向下分为信任值、信任属性和信任证据三级结构,构成用户行为信任值评估的层次分解模型[16],如图4 所示。从而把模糊的、不确定的用户行为信任评估问题细化成简单的、明确的信任证据加权求和问题。
图4 用户行为信任值评估层次分解模型
首先根据某一时刻各个信任证据值组成的矩阵计算当前用户行为信任值。然后,为了降低系统误差造成的影响,考虑信任值随时间衰减的特性,讨论用户行为信任值的记录与更新机制。
当前用户信任值由层次分解模型和基于模糊数构建的各个信任证据间重要性的判断矩阵来计算,计算过程包括四个步骤。
步骤1用户行为信任证据的预处理。该过程包括以下两个方面[17]:
(1)用户行为信任证据的采集和更新。获取用户行为信任证据的方法有网络流量监测工具、入侵检测系统、专门的数据采集工具等,另外还可以根据需求开发自己的用户行为信任证据采集软件。
(2)用户行为信任证据数值的规范化。用户行为信任证据的数值表示方式一般有两种,一种是百分比形式表示的,另一种是一定范围内的具体数值。为了方便计算,需要对数值进行规范化处理,将其规范化为[0,1]区间内递增的无量纲值。
步骤2基于模糊数的信任证据判断矩阵和权重向量的计算。
假设将用户行为划分成n个信任属性,再将某一个信任属性细分为多个相关的信任证据,表示为EI=(aij)n×m,其中m 为所有信任属性中信任证据的最大项数,不够时用零补齐。通过步骤1 规范化处理方法得到规范化数值,表示矩阵为E=(eij)n×m。
有m 个信任证据E=(e1,e2, …,em),将其中任意两个信任证据做重要性对比,得到初始判断矩阵EQ=(eqij)m×m。其中eqij的计算公式如下:
然后将EQ转换成模糊一致矩阵Q=(qij)m×m,其中:
最后计算某个信任属性的m 个信任证据的权重向量Wn=(w1,w2, …,wm)T,其中wi计算公式如下:
步骤3信任属性评估值向量和权重向量的计算。
将上一步得到的n 个信任属性的信任证据权重向量组合在一起得到权重矩阵W=(wij)m×n。再由信任证据矩阵E=(eij)n×m和权重矩阵W=(wij)m×n,根据E×W得到的矩阵对角线上的值就是信任属性评估值向量F=(f1,f2…, ,fn)。同信任证据权重向量的计算方法,计算得到信任属性的权重向量Wf=(wf1,wf2, …,wfn)。
步骤4当前用户行为信任值的计算。即:
用户行为信任值的记录采用滑动窗口的形式。当评估得出新的行为信任值时,整个窗口向前移动一个时间间隔,完成信任值的记录操作。
根据信任理论可知,用户信任值会随着时间的增加逐渐减小。因此本文引入时间衰减因子,利用滑动窗口内的历史信任值和当前信任值综合计算更新用户的信任值。综合行为信任值的计算公式如下:
其中,Ti(i=1,2, …,h)表示滑动窗口中记录的h个用户行为信任值,h 即为窗口的大小。α(ti)表示信任值权重,取值范围为(0,1],表达式如下:
其中,γ 为预先设定的值,取值范围是(1,1.05],具体取值根据实际情况的需求选定[18]。ti(i=1,2,… ,h)表示历史行为信任值Ti记录时刻与当前行为信任值评估时刻的时间间隔,易知t1=0。β(ti)表示时间衰减因子。随着ti的增加,时间衰减因子β(ti)减小,使得历史行为信任值Ti在计算综合行为信任值T 时所占的比重越来越小,满足之前提到的信任理论。最后,使用综合行为信任值更新用户属性集合中的信任值属性,并继续参与用户是否保留该角色的判断流程中。
采用滑动窗口的形式以及根据时间衰减因子加权求和的方式来记录和更新用户行为信任值的主要目的是避免因系统故障导致用户信任值剧烈变化,用户拥有的权限也随之剧烈变化,增加了系统的稳定性。
使用IntelliJ IDEA 作为集成开发环境,并采用云计算相关实验通常使用的CloudSim[19-20]作为实验仿真平台。在实验过程中,通过CloudSim 创建一个包含10 台主机的数据中心Datacenter_0,模拟数据中心中主机的硬件环境为四核CPU,16 GB 内存和1 TB 硬盘,操作系统为Linux。
接下来,首先验证ATRBAC 模型及机制实现了访问控制授权的动态性;然后,验证ATRBAC 模型实现了权限的自动化授予以及增加了访问控制的细粒度。在验证的过程中,为体现出本文方法的优势,将ATRBAC与传统RBAC、同为云环境下RBAC模型研究的文献[8]和文献[9]中的访问控制方法进行了比较和分析。
授权动态性验证是通过输入一个用户不同时刻的行为信任证据矩阵计算用户行为信任值,观察用户信任值和权限数量在不同时刻的变化情况。
本实验创建一个用户Broker_0 与三个角色Role1、Role2 和Role3,每个角色访问结构的参数如表1 所示。用户属性集合为(id:0,name:Broker_0,department:cs,position:student,trustValue:T0),其中信任值T0由不同时刻输入的用户信任证据矩阵使用5.1节的方法计算得到,计算过程可参考文献[15]。三个角色Role1、Role2和Role3 的访问结构参数中num 代表权限数量,即用户拥有该角色后,就允许用户在数据中心上创建虚拟机的台数和执行云任务的个数的上限增加num。
图5 展示了RBAC、ATRBAC 和文献[8]中方法在不同时刻用户Broker_0 行为信任值和权限数量的变化情况。在这幅图中,传统RBAC模型中的用户权限数量保持不变;ATRBAC模型中的用户行为信任值随着不同时刻输入的信任证据矩阵的数值的变化而变化,用户拥有的权限数量也随之具有相同的变化趋势;文献[8]方法中用户信任值在不同时刻的变化情况与ATRBAC 一致,并且用户的权限数量也随着信任值一起变化。进一步分析实验结果,传统RBAC模型在一次会话中授予用户角色之后,用户就在此期间永久获得了角色所对应的权限;而本文提出的ATRBAC 模型,用户拥有的角色和权限数量是随着其信任值动态变化的。这样用户在获取角色后,在与系统交互的过程中如果产生了危害系统安全的行为,采集到的信任证据矩阵的数值就会随之改变,进而降低用户信任值,最终用户拥有的角色和权限数量都会减少。文献[8]中采用了相同的基于FAHP 方法的信任值评估方法,所以得到的用户信任值与ATRBC 中的一致。之后信任值用于用户激活角色和赋予角色一定的权限,该方法同样实现了访问授权的动态性。由图5 中可见,实验结果说明了本文设计的模型实现了根据用户的行为动态地调整用户所拥有权限的功能,实现了访问控制授权的动态性,有效地避免了用户权限的滥用,提高了云存储系统的安全性。
表1 实验3.1角色访问结构对比
图5 不同时刻用户信任值和权限数量的变化情况
文献[9]中针对云计算环境的动态性提出的CRBAC模型通过上下文约束对访问授权进行评估验证,并在运行过程中进行动态调整,同样增加了授权的动态性。但该文章中并没有给出针对某个上下文约束信息具体的评估验证方法。
权限自动化授予与细粒度验证包括验证是否实现了用户自动化获取角色和对应的权限以及与传统RBAC模型相比更加细粒度的访问控制。
在数据中心Datacenter_0 上为10 个用户提供创建虚拟机和执行云任务的服务。10 个用户的属性集合分别是(id:i,name:Broker_i,department:cs/math,position:student,trustValue:Ti)(i=0,1,…,9),其中department 属性在实验中随机指定一部分用户为cs,另一部分用户为math;信任值Ti由输入的每个用户的信任证据矩阵计算得到。在实验3.1节的基础上增加一个角色Role4,访问结构如表2 所示。现在假设每个用户向数据中心申请10 台虚拟机并提交10 个云任务。运行CloudSim 仿真平台可以查看用户在数据中心创建虚拟机执行云任务的完成情况。
表2 实验3.2角色访问结构对比
图6 展示了CloudSim 仿真实验平台一次运行的部分结果,进一步将实验结果进行整理,如表3 所示。在表3 中,用户Broker_9 的department 属性为cs 且信任值为0.622 3,通过与角色访问结构的匹配,自动获得了角色Role1、Role2 和Role3,拥有最多执行12 个云任务的权限,因此提交的10 个云任务全部执行完毕;用户Broker_8 的department 属性为cs 且信任值为0.575 4,自动获得了角色Role1 和Role2,拥有最多执行7 个云任务的权限,因此执行完成了提交的10 个云任务中的7 个;用户Broker_2 的department 属性为math 且信任值为0.616 7,自动获得了角色Role4,拥有最多执行6 个云任务的权限,因此执行完成了提交的10 个云任务中的6个。其他用户提交的云任务的完成情况类似。在传统RBAC 模型下,如果Role1、Role2 和Role3 均定义为“计算机系学生”,用户Broker_8和Broker_9同时被授予“计算机系学生”这一角色,他们拥有的权限是相同的;而在ATRBAC模型下,他们的属性集合中“信任值”属性的不同,导致在匹配角色Role3 的访问结构时得到不同的结果,因此Broker_8 和Broker_9 获得的角色不同,所拥有的权限也不同。设置多个用户与多个角色进行云环境中的仿真实验,实验结果说明ATRBAC 模型实现了权限的自动化授予以及与传统RBAC 模型相比更加细粒度的访问控制。
图6 CloudSim仿真实验部分结果
表3 实验3.2对用户访问控制结果
表4展示了本文提出的ATRBAC与文献[8]、文献[9]中的访问控制方法在权限自动化授予和访问控制细粒度方面的比较结果。由表4中的结果可知,文献[8]中的访问控制方法不能实现用户与角色权限之间的自动化授予并且没有针对细粒度的访问控制作出优化。文献[9]提出的CRBAC 模型中用户属性集和上下文约束与本文方法中属性集合和访问结构类似,所以CRBAC 在访问控制细粒度方面与本文方法基本相同。但是该文章中仅提出了概念模型,并没有给出具体的实现方案。而本文提出的ATRBAC 模型中CP-ABE 算法与RBAC相结合的方式是一种针对用户权限自动化授予与细粒度访问控制的具体可执行的解决方案。
表4 ATRBAC与其他方法对比
本文针对RBAC 模型在云计算环境下存在的问题,提出了一种基于属性(Attribute)和信任(Trust)的RBAC模型,即ATRBAC。首先,介绍了RBAC 模型的基本原理和在云环境中存在的不足。接下来,详细介绍了提出的ATRBAC 模型,阐述了ATRBAC 研究的技术路线和访问控制授权检查的流程。然后,讨论了CP-ABE 算法与RBAC 模型相结合的问题。最后,使用FAHP 方法评估得到客观合理的用户行为信任值。实验结果说明了相比传统RBAC模型,ATRBAC模型实现了访问控制授权的动态性、权限的自动化授予以及更加细粒度的访问控制。