支持动态策略变化的ABAC决策回收
2022-10-18古丽博斯坦阿克木努尔买买提黑力力
古丽博斯坦·阿克木,努尔买买提·黑力力
(新疆大学数学与系统科学学院,新疆 乌鲁木齐 830046)
0 引 言
访问控制通过约束用户的访问权限,达到保护系统资源的目的[1]。基于角色的访问控制(Role-Based Access Control, RBAC)[2-3]和基于属性的访问控制(Attribute-Based Access Control, ABAC)逐渐成为研究热点。ABAC在有效实现细粒度的非交互访问控制机制的基础上最大程度地保护了用户数据的隐私[4]。Kuhn等人[5]提出将属性和角色合并以使RBAC更灵活。Crampton等人[6]提出属性表达式(Attribute Expression)的概念,给出了用表格式(Tabular)形式表示策略的方法。当访问控制系统通过用户属性验证该用户的合法性之后,可以采用特定的访问控制模型对满足访问控制要求的用户进行授权。传统的访问控制机制基于请求-响应模式,通过应用程序和授权服务器之间的通信进行授权。随着分布式应用系统的规模增加,基于点对点(Point to Point, PTP)通信的授权结构变得脆弱,管理开销增加。如果在应用系统和授权服务器之间配置一个服务点能否减少一定的开销并减轻系统的负载呢?Wei等人[7]提出了基于发布-订阅体系结构的授权系统,该系统由多个策略执行点(Policy Enforcement Point, PEP)、策略决策点(Policy Decision Point, PDP)和一个逻辑上集中的事件通知服务器(Event Notification Service, ENS)组成,ENS负责接收来自发布者的事件和订阅者的订阅,并将每个事件与订阅相匹配后通知给事件订阅者。文献[8]给出了一种新的授权技术——投机授权(Speculative Authorization, SPAN),它是一种减少企业系统中授权延迟的预测技术。SPAN会根据用户过去的操作行为预测将来可能出现的访问请求。
根据访问策略和模型的对应关系,学者们进一步研究具体的访问控制策略以及对应的模型[9]。周加根等人[10]采用属性表达式方式定义ABAC策略模型,提出了一种ABAC策略的本体表示方法和决策方法。Ferraiolo等人[11]提出集中管理ABAC策略以及本地计算和执行访问控制决策的方法,提高了ABAC系统的策略管理和决策效率。钟子超[12]在一定程度上实现了策略匹配的优化和策略的动态变更。Molloy等人[13]提出基于风险的局部PDP架构,决策分类器通过使用学习到的访问控制策略,根据已知决策进行训练并进一步改进模型。近期学者们[14]将ABAC模型和区块链技术相结合,提出了利用智能合约(Smart Contract)进行访问控制决策的方案,对开放的物联网(Internet of Thing, IoT)环境下实现动态、分布式及可靠的访问控制问题进行优化。
随着ABAC策略研究的不断成熟,策略管理的不同也影响着ABAC模型的结构。访问控制策略的管理也可以从数据挖掘方面入手,文献[15]提出挖掘同时包含正、负授权规则的ABAC策略的方法,有关访问控制发掘研究工作中首次提出有效提取负授权规则的算法。对于策略挖掘及迁移问题,文献[16]提出了一种策略迁移方法,通过在属性层次结构条件下最优分配用户属性值,使应用传统访问控制模型的机构能够使用ABAC策略。
ABAC中PDP繁琐的策略查询任务以及PDP与PEP之间的网络通信影响其访问控制决策的效率。对于访问量庞大的ABAC系统,若能回收利用前期的访问控制决策结果,则能很大程度上减轻服务系统的工作负荷[17]。学者们先后提出二次精确授权和近似授权模型[18-19],一定程度上提升了访问控制系统和应用系统的可靠性和性能。文献[20]介绍了云计算环境下的合作式二次授权回收CSAR(Cooperative Secondary Authorization Recycling)方案。该方案中多个二次决策点(Secondary Decision Point, SDP)之间分享其缓存内容,实现了掩盖授权服务器故障和网络延迟的目的。授权回收研究中授权缓存也很关键,缓存策略的构建和更新也是重要研究内容之一[21-22]。学者们从RBAC入手研究授权缓存机制[23]在访问控制系统中的优势,逐步将有关概念转移到ABAC中,取得了一定的研究成果[24]。文献[25]中发现PEP端缓存虽然能减少PDP上的计算开销,但可能会产生一个内部威胁(Insider Threat)端口,因此给出了检测和防止威胁的模型。
受RBAC授权回收机制启发[23],本文基于文献[26]中的规范,提出支持访问控制策略动态变化的,带策略的3种ABAC模型的决策回收方案。缓存并利用往期的授权记录对新请求做二次精确的或近似的决策,降低PDP的工作负担和网络通信次数,提升访问控制系统决策主体请求的吞吐率。
1 ABAC模型
基于属性的访问控制是以相关实体的属性为评估依据,允许或拒绝主体对资源的访问请求的访问控制机制。本文分别提供支持访问控制策略动态变化的3种ABAC模型的决策回收机制。策略由规则表示,根据主体属性、资源属性以及可能的环境属性,可以确定是否允许访问请求。文中回顾如下实体概念为基础展开讨论。
主体(Subject)。系统的访问者,如用户或程序等,可由主体相关的若干个属性来刻画主体。系统中全体主体属性集记为SA。
资源(Object)。访问请求的目标,如文件、数据库内容等,可由资源相关的若干个属性来刻画资源。系统中全体资源属性集记为OA。
环境(Environment)。访问者发送请求时的环境因素,如访问时间、访问者IP地址、资源的IP地址等。可由环境相关的若干个属性来刻画环境。系统中全体环境属性集记为EA。
操作(Operation)。系统中访问者可对资源进行的操作,如读、写、删等。
权限(Permission)。系统中操作与资源的组合。
学者们分别在文献[19,22,26]中提到访问控制机制中的几个功能“点”,例如策略信息点(Policy Information Point, PIP)、策略管理点(Policy Administration Point, PAP)、策略实施点(Policy Enforcement Point, PEP)、策略决策点(Policy Decision Point, PDP),本文中不对此进行详细介绍。
二次决策点SDP。通过缓存前期授权结果,可对新请求做出精确的或近似的授权决策。
策略变化管理器(Policy Change Manager, PCM)。负责监视策略库,检测策略变化,将策略变化信息转发给SDP。
如图1所示,在ABAC中,PEP接收原始访问请求后将其转发给PDP, PDP根据策略信息对该访问请求进行决策,并将决策结果转发给PEP,最终PEP会执行该决策。当系统做出首次决策后SDP将PDP做出的决策内容缓存下来,后期根据缓存内容对匹配于缓存内容的访问请求做二次决策,将不匹配缓存内容的访问请求转发给PDP做决策,关于请求如何匹配于策略会在下文中做出解释。
定义1 策略。关于权限p的访问控制策略定义为三元组Policy=〈R,p,effect〉,其中规则为R=SR∧OR∧ER, SR表示主体规则,OR表示资源规则,ER表示环境规则,p为规则对应的权限,effect=〈permit,deny〉。若一个策略的决策为允许,即effect=permit,则称之为正授权策略;若决策为拒绝,即effect=deny,则称之为负授权策略。
为简便起见,本文后期内容关于正负授权策略的表达中不再提及permit或deny。尤其在混合策略模型ABAC(H)中策略以二元组Policy±=〈R±,p〉表示,其中Policy+=〈R+,p〉为正授权策略,Policy-=〈R-,p〉为负授权策略,R+、R-为正、负授权策略的规则。由于ABAC(P)模型和ABAC(N)模型中只存在对应的正、负授权策略,因此本文后期内容中对策略的表达不加区分。
本文中每个策略是关于单一权限的,即策略内容包括一个规则、一个权限以及该策略对应的决策,其中主体、资源、环境等3类实体的规则是由若干属性组成的布尔表达式[27]。本文中的属性通常指二元组<属性名:属性值>,在大多数CP-ABE方案中,属性名和属性值的组合简称为属性。同一属性a的属性名n(a)和不同的属性值vi(a)相组合看作是一个新的属性,当属性a只有一个属性值v时,a:=〈n(a):v(a)〉,当有多个属性值vi,i=1,2,…,t时,该属性可以产生a1,a2,…,at等不同属性,其中ai:=〈n(a):vi(a)〉,i=1,2,…,t。本文参考CP-ABE访问策略的特点来定义ABAC策略。此外,为了不失一般性,尽可能丰富其表达能力,先列举本文ABAC中可以支持的属性,并讨论如何定义关于这些属性的规则。
1)标称属性(Nominal Attribute)。在规则中以属性名和属性值的形式出现,它在某个规则体中以一个原子规则的形式出现,即规则体的条件部分只包含一项。例如,SR=〈name:Bob〉,若请求中存在主体属性ai:=〈name:Bob〉,由于ai中的属性名和属性值都与SR中的属性名和属性值相匹配,所以称主体属性ai匹配SR。
2)二元属性(Binary Attribute)。在规则中以属性名和属性值的形式出现,它在某个规则体中以一个原子规则的形式出现。例如,SR:=〈gender:1〉,(1表示男性,0表示女性),若请求中存在主体属性ai=〈gender:1〉,由于ai中的属性名和属性值都与SR中的属性名和属性值相匹配,所以称主体属性ai匹配SR。
3)序属性(Ordinal Attribute)。一个序属性的所有值之间存在全序关系。例如,一个level属性有5个不同的值:excellent, good, average, fair, poor,并且有excellent>good>average>fair>poor。本文在ABAC规则中将原始规则内容表示为SR1∨SR2∨SR3的形式,其中SR1=〈level:excellent〉, SR2=〈level:good〉, SR3=〈level:average〉,若请求中存在主体属性ai=〈level:good〉,由于ai中的属性名和属性值都与SR2中的属性名和属性值相匹配,所以称主体属性ai匹配SR1∨SR2∨SR3。
4)数值属性(Numeric Attribute)。它只支持离散的有限属性值。例如,score属性有5个不同的值:1、2、3、4、5。可以将原始规则内容〈3≤score≤5〉表示为SR1∨SR2∨SR3的形式,其中SR1=〈score:3〉,SR2=〈score:4〉,SR3=〈score:5〉。若请求中存在主体属性ai=〈score:3〉,由于ai中的属性名和属性值都与SR1中的属性名和属性值相匹配,所以称主体属性ai匹配SR1∨SR2∨SR3。
以上列出的规则和请求均为关于主体的规则和请求中的主体相关属性,关于资源和环境的属性也是类似的。根据前面的解释,本文后期内容将直接讨论属性而不再将它拆分成属性名和属性值,也不再讨论“>”“≤”“≥”“<”等数学运算符。
由原子规则和逻辑运算符“或”“与”的嵌套使用,可以得到更复杂的规则,如SRi=(a1∨a2)∧(a3∨a4),其中a1、a2、a3、a4均为由属性名和属性值组成的二元组。为了后续方便讨论,将规则转化成集合的形式,上述规则可表示为以极小属性集[28]为元素的集合,如SRi={{a1,a3},{a1,a4},{a2,a3},{a2,a4}},其中的每个极小属性集记为Sai,如Sa1={a1,a3},Sa2={a1,a4},Sa3={a2,a3},Sa4={a2,a4}。
本文仅围绕单个权限p的访问请求、策略和缓存内容展开叙述,关于多个不同权限的情形可以依次类推。假设主体想要访问权限p,主体关于权限p的访问请求定义为四元组〈(SA,OA,EA),p〉,其中,SA为主体相关属性集,OA为资源相关属性集,EA为环境相关属性集。PEP将主体的访问请求转发给PDP,当请求〈(SA,OA,EA),p〉中的各属性集都匹配关于权限p的n个策略中的至少一个时(请求中的各属性集分别匹配策略中对应的规则),称请求匹配策略。由于每个策略与其中的规则是一一对应的,此后,匹配策略和匹配规则不加区分。下面给出ABAC的3种模型。
ABAC(P)模型(封闭世界策略模型)。策略库中所有策略为正授权策略,当请求匹配策略时,则系统对该请求最终的访问控制决策为允许,否则为拒绝。
ABAC(N)模型(开放世界策略模型)。策略库中所有策略为负授权策略,当请求匹配策略时,则系统对该请求最终的访问控制决策为拒绝,否则为允许。
ABAC(H)模型(混合策略模型)。关于任意的权限p,正、负授权策略可以同时存在,对访问控制决策有如下定义:
1)当关于权限p只有正授权策略时,关于该权限,模型退化为ABAC(P)模型。
2)当关于权限p只有负授权策略时,关于该权限,模型退化为ABAC(N)模型。
3)当关于权限p正、负授权策略都存在时,则:
①若请求只匹配正授权策略且不匹配负授权策略,决策结果为允许。
②若请求只匹配负授权策略且不匹配正授权策略,决策结果为拒绝。
③若请求同时匹配正、负授权策略,称出现策略冲突,请求由PEP做访问控制决策。
④若请求不匹配所有的正、负授权策略,称出现策略缺失,请求由PEP做访问控制决策。
2 ABAC(P)模型的决策回收
研究者们考虑到ABAC系统中查询策略操作最为普遍,因此引入授权回收机制,通过记载和利用往期访问控制决策信息提高后期决策的效率。本文提出一种ABAC决策回收机制,缓存并利用往期的授权记录对新请求做二次精确的或近似的决策,降低PDP的工作负担和网络通信次数,提升访问控制系统决策主体请求的吞吐率。
本文提出带策略的决策回收模式。带策略的决策回收模式指PDP做出决策后返回给SDP的内容是PDP遍历过的所有策略内容以及决策,当有新的访问请求时,可由缓存过的请求、策略和决策做出二次决策;如果缓存当中没有新请求可匹配的内容,新请求再次转发给PDP做决策。
带策略的决策回收模式的优势是尽可能地减少PDP检索策略的过程,使SDP可重复利用PDP遍历过一次的策略内容,从而降低PDP的工作负荷。
下面对ABAC(P)模型的决策回收模式展开讨论。
2.1 缓存构建
当PDP收到请求〈(SA,OA,EA),p〉时,对请求和策略进行对比,查找请求可匹配的策略。如果将每次查询过的策略也作为缓存的内容储存起来,就可以提高访问控制系统后续决策的效率,提升系统决策请求的吞吐量。该模式中PDP回复PEP的决策形式分别定义为(〈(SA,OA,EA),p〉,permit),(〈({SA}/⊥,{OA}/⊥,{EA}/⊥),p〉,deny)。本节分别创建关于权限p由允许决策和拒绝决策构成的正缓存CacheP+(p)和负缓存CacheP-(p)。
CacheP+(p)={〈(SRi,ORi,ERi),p〉|p∈Permission,i≥1}
首先假设PDP中的策略库关于权限p含有n个策略,SDP为空,当PEP收到第一个访问请求〈(SA,OA,EA),p〉后,将其转发给PDP做决策。
1)若PDP查询策略库中m个策略,发现请求匹配第m个策略,则PDP将允许决策(〈(SRi,ORi,ERi),p〉i1,…,im,permit)转发给SDP,SDP将其中有关策略的内容〈(SRi,ORi,ERi),p〉i1,…,im缓存到CacheP+(p)中,即将遍历过的策略缓存到正缓存当中。
2)若请求不匹配所有的策略,可分2种情形讨论。
①若请求中3类实体属性集都不匹配所有的策略,则PDP将拒绝决策(〈({SA},{OA},{EA}),p〉,deny)和遍历过的n个策略内容转发给SDP,SDP将其中有关策略的内容〈(SRi,ORi,ERi),p〉i1,…,in缓存到CacheP+(p)中,同时将有关请求的内容〈({SA},{OA},{EA}),p〉缓存到CacheP-(p)中。
②若请求中至少有一个实体属性集不匹配所有的策略,则PDP对请求内容只保留不匹配的属性集,匹配的属性集以⊥代替。假定OA不匹配所有的策略,SA和EA至少匹配一个策略,则PDP将拒绝决策(〈(⊥,{OA},⊥),p〉,deny)和遍历过的n个策略内容转发给SDP,SDP将其中有关策略的内容〈(SRi,ORi,ERi),p〉i1,…,in缓存到CacheP+(p)中,同时将有关请求的内容〈(⊥,{OA},⊥),p〉缓存到CacheP-(p)中。
2.2 SDP决策规则
SDP决策规则是SDP生成精确或近似决策的规则。由于本模型中策略库仅含正授权策略,所以SDP检索正、负缓存内容时应遵循先正后负的顺序。下面给出SDP的2种决策规则。
可以看出,对做好高校会计核算工作的认识比较一致,最大的区别是在“依法依规正确设置会计科目”问题上,这个问题也可以看出会计管理的信息化程度,区外高校的会计信息化比较高,完全可以通过软件自动依法依规正确设置会计科目。只有存在半手工核算的学校才会人为调整而出现会计科目不统一和不正确的现象。
由CacheP+(p)的构造方法可知,缓存内容〈(SRi,ORi,ERi),p〉是PDP中的策略。由∃Sa∈SRi,Sa⊆SA*,∃Oa∈ORi,Oa⊆OA*,∃Ea∈ERi,Ea⊆EA*可知,请求〈(SA*,OA*,EA*),p〉满足PDP中的策略,即若由PDP决策也是被允许的。
由CacheP-(p)的构造方法可知,历史请求中的SAe、OAf、EAt都不满足PDP策略中对应的主体、资源和环境规则。
所以,若SA*⊆SAe,则SA*不满足PDP所有策略中的主体规则;若OA*⊆OAf,则OA*不满足PDP所有策略中的资源规则;若EA*⊆EAt,则EA*不满足PDP所有策略中的环境规则。故若请求〈(SA*,OA*,EA*),p〉由PDP决策,则它也会被拒绝。
2.3 缓存更新
ABAC(P)模型为封闭世界策略模型,策略库所包含的规则作为允许决策的前提条件。系统管理员可以通过策略管理点PAP部署策略,内置在PDP中的组件PCM负责检测策略库中策略的变化。当SDP非空且新的请求匹配缓存内容时,SDP可由缓存内容做出二次允许决策,不更新任何缓存,当请求不匹配缓存内容或策略库发生策略变化时,需要更新或压缩缓存内容。对于新请求不匹配缓存内容的情况,该请求会由PDP做访问控制决策并需要更新到相应的缓存。对于策略库发生策略变化的情况,PCM一旦发现策略变化会及时地将该变化信息转发给SDP以便SDP更新相应的缓存内容。缓存压缩是指缓存更新时参照SDP决策规则对缓存内容进行相应的合并或删减,相关分析如下。
2.3.1 新请求不匹配缓存内容
值得注意的是当SDP收到PDP的首个访问控制拒绝决策后便知策略库中关于权限p的访问控制策略个数n,因此根据正、负缓存关于权限p所含有的内容,请求不匹配缓存内容可分为以下情况进行分析。
1)当CacheP+(p)=〈(SRi,ORi,ERi),p〉i1,…,im,m≤n,CacheP-(p)=∅时:
①若新请求〈(SA*,OA*,EA*),p〉不匹配正缓存内容时,则请求再次被发送给PDP。若查询u个策略后发现该请求可匹配的策略,PDP会将允许决策(〈(SRi,ORi,ERi),p〉i1,…,iu,permit)转发给SDP,SDP将其中有关策略的内容〈(SRi,ORi,ERi),p〉i1,…,iu缓存到CacheP+(p)中,并对CacheP+(p)中重复的策略内容进行合并。
②若请求不匹配策略库中所有的策略时,则按照2.1节缓存构建方法步骤2中的第②步,PDP对请求内容只保留不匹配策略的属性集再将其转发给SDP,SDP对CacheP+(p)中重复的策略内容进行合并。
2)当CacheP-(p)非空时,根据缓存构建方法CacheP+(p)已含有关于权限p的所有策略内容,若新请求〈(SA*,OA*,EA*),p〉不匹配正、负缓存内容,则请求由SDP做出二次拒绝决策,此时按照2.1节缓存构建方法步骤2中的第②步,SDP对请求内容只保留不匹配策略的属性集,并将其缓存到CacheP-(p)中。
2.3.2 策略库发生策略变化
当策略库中发生策略变化时,PCM会将检测到变化的策略信息转发给SDP,使SDP对缓存内容进行更新并压缩。下面给出3种情景分析。
情景1 增加关于权限p的策略Policyn+1,Policyn+2,…,Policyn+m。
当有新策略Policyn+i加入策略库时,PCM检测到新的策略〈(SRn+i,ORn+i,ERn+i),p〉并将该策略转发给SDP,SDP将新的策略内容缓存到CacheP+(p),并从CacheP-(p)中删除关于权限p的所有缓存内容。
情景2 删减关于权限p的策略Policyi1,Policyi2,…,Policyil。
从策略库中删减已有策略Policyij时,SDP中CacheP+(p)内容会受影响,因此PCM检测到被删除策略〈(SRij,ORij,ERij),p〉后将其转发给SDP,SDP将该策略内容从CacheP+(p)中删除,不对CacheP-(p)进行更新。
情景3 修改关于权限p的策略。
当管理员修改关于权限p的策略时,PCM通知SDP关于该权限修改后的策略〈(SRil,ORil,ERil),p〉,SDP会立即从CacheP+(p)、CacheP-(p)中删除关于权限p的缓存内容,将修改后的策略缓存到CacheP+(p)中。
3 ABAC(N)模型的决策回收
关于ABAC(N)模型的决策回收,可以看作是ABAC(P)模型决策回收的对偶问题。ABAC(P)模型中策略库所含有的是正授权策略,请求匹配策略时被允许,否则被拒绝。而ABAC(N)模型恰恰相反,策略库含有负授权策略,请求匹配策略时被拒绝,否则被允许。因此该模型中缓存的构建、SDP决策规则的定义及缓存的更新等内容可看作是ABAC(P)模型中相关内容的对偶问题。所以,本文不再赘述。
4 ABAC(H)模型的决策回收
如第1章内容所提到的,ABAC(H)模型支持对于同一权限同时存在正、负授权策略的情形。当该模型中对于权限p只存在正/负授权策略时,关于该权限模型会退化为ABAC(P)/ABAC(N)模型,因此本章不再讨论只存在同一种授权策略的情况,将关注关于权限p同时存在正、负授权策略的情况。
结合实际应用不难发现,访问控制系统关于某一权限可同时出现允许访问和拒绝访问的访问策略。因此正、负授权策略的同时存在,对缓存的构建、SDP决策规则以及缓存更新都会带来一定的难度。下面对ABAC(H)模型的决策回收模式展开讨论。
4.1 缓存构建
假定策略库可能会同时包含正负授权策略,因此PDP根据请求匹配正、负授权策略的情况,做出允许、拒绝以及不可判定的决策。PDP的决策形式分别为(〈(SR+,OR+,ER+),p〉,permit)、(〈(SR-,OR-,ER-),p〉,deny)、(〈(SA,OA,EA),p〉,undecided),分别创建关于权限p由允许决策和拒绝决策构成的正缓存CacheH+(p)和负缓存CacheH-(p)。
3)若请求同时匹配正、负授权策略或不匹配所有的正、负授权策略,则PDP将决策(〈(SA,OA,EA),p〉,undecided)转发给SDP,SDP不对该决策进行缓存,由PEP做访问控制决策。
4.2 SDP决策规则
缓存构建考虑到对于请求PDP遍历策略库时可能会出现请求仅匹配正/负授权策略、请求同时匹配正负授权策略及请求不匹配任何授权策略等情形,然而请求同时匹配正负授权策略和请求不匹配任何授权策略的情况下由PEP做决策,因此在SDP决策规则当中仅考虑匹配一种授权策略的情形。下面给出SDP的2种决策规则。
证明:可参考定理3的证明,不再赘述。
4.3 缓存更新
4.3.1 新请求不匹配缓存内容
由于ABAC(H)模型中策略库同时包含关于权限p的正、负授权策略,PDP遍历策略库时检索出请求匹配的一个正授权策略和一个负授权策略时才会停止遍历。值得注意的是当SDP收到PDP的首个访问控制不可判定(undecided)决策后便知策略库中关于权限p有v个正授权策略和n-v个负授权策略。新请求〈(SA*,OA*,EA*),p〉不匹配正、负缓存内容时,请求再次被发送给PDP。对此做如下分析。
2)若发现该请求可匹配的负授权策略,但没有可匹配的正授权策略时,同样根据4.1节缓存构建方法步骤2对遍历过的策略进行缓存,并对CacheH+(p)、CacheH-(p)中重复的策略进行合并。
3)若新请求不匹配策略库中所有的策略或同时匹配正、负授权策略时,PDP会将决策(〈(SA*,OA*,EA*),p〉,undecided)转发给SDP,SDP不对该决策进行缓存,该请求由PEP做访问控制决策。
4.3.2 策略库发生策略变化
当策略库中发生策略变化时,PCM将检测到变化的策略信息转发给SDP,使SDP对缓存内容进行更新并压缩。下面给出3种情景分析。
情景1 增加正(负)授权策略。
增加正(负)授权策略时,PCM检测到新策略并将新策略内容转发给SDP,使其更新CacheH+(p)(CacheH-(p))。
情景2 删减正(负)授权策略。
删减正(负)授权策略时,PCM检测到策略变化并将策略变化信息转发给SDP,使其从CacheH+(p)(CacheH-(p))中删减该内容。
情景3 修改策略。
当管理员修改关于权限p的策略时,PCM通知SDP关于该权限的策略变化,SDP会立即从CacheH+(p)、CacheH-(p)中删除关于权限p的所有缓存内容,避免修改的策略内容和2个缓存内容有冲突。
5 实 验
通过实验验证本文提出的决策回收方法的有效性。实验环境中PDP服务器的配置是内存为16 GB的4核CPU,操作系统为Ubuntu 20.04 Server 64 bit,服务器软件为Nginx/1.18.0,服务器网络环境的带宽为5 Mbit/s;SDP服务器的配置是内存为8 GB的2核CPU,操作系统为Ubuntu 18.04 64 bit,服务器软件为Nginx/1.15.8,服务器网络环境的带宽为50 Mbit/s。
由于ABAC(P)模型和ABAC(N)模型是对偶模型,因此不对ABAC(N)模型进行实验。其余2类模型的实验参数设置为关于100个权限设有10000条策略。其中ABAC(P)模型中所有策略是正授权策略,ABAC(H)模型中关于每个权限1/3是正授权策略,1/3是负授权策略,1/3是正、负授权策略同时存在。其中主体、资源、环境总属性各为10个,主体规则、资源规则、环境规则随机产生且其含有平均5个属性来自于对应的总属性,规则中的“∧”“∨”运算随机产生。关于以上100个权限给出10000条请求,其中主体、资源、环境属性来自于对应的总属性并平均各5个。
2类模型的实验中对每一个模型分别设有无缓存状态和开启缓存状态,无缓存状态实验中访问用户向系统发送的请求一律由PDP进行决策并发给PEP直接实施。开启缓存状态实验中访问用户的请求由PDP进行决策之后由SDP缓存到相应的正、负缓存中,再由PEP实施。此时后期的请求可以根据SDP决策规则由SDP进行决策。
访问控制系统处于无缓存状态和开启缓存状态下,对每一类模型的不同状态进行5次实验,统计系统的决策响应时间并取平均值。平均决策时间如图2所示。开启缓存后2个模型的决策时间分别节省了23%和21%。
用SDP进行决策的请求数量以及趋势如图3所示。随着缓存内容的增加,由SDP进行决策的请求数量逐渐增加。
从实验数据中,选取了一个权限(仅存在正授权的)进行观察,关于该权限的策略共有103条,关于该权限的请求有116条,其中82条被允许,34条被拒绝。相关数据如表1所示。对于给定的权限而言,其策略中出现的某个属性的频次越多,该属性的重要性就越高,含有该属性的请求被允许的可能性越大;未含有该属性的请求被拒绝的可能性越大。即对于给定的权限,一个属性在相关策略和请求中出现的频次一定程度上会影响含有该属性的请求是否被允许。
表1 属性频次统计表
6 结束语
本文根据访问控制实践中常见的3种元策略——封闭世界策略、开放世界策略以及混合策略,分别提出ABAC(P)、ABAC(N)及ABAC(H)这3种访问控制模型以及相应的带策略决策回收方法。本文提出的决策回收方法可以减少SDP和PDP之间的通信次数,从而降低PDP工作负荷,提高访问控制系统的决策性能,同时支持策略变化。后期的研究工作中将考虑如何提高ABAC模型的策略表达能力,以及更加有效的决策回收机制。