APP下载

一种基于属性的去中心化访问控制模型

2018-09-21马星晨朱建涛刘明达

计算机技术与发展 2018年9期
关键词:访问控制客体决策

马星晨,朱建涛,邵 婧,刘明达

(江南计算技术研究所,江苏 无锡 214083)

0 引 言

访问控制技术是保障信息安全的重要防护措施,用来检验主体是否有合法的权限来访问恰当的客体。传统的访问控制模型包括自主访问控制模型(DAC)、强制访问控制模型(MAC)以及基于角色的访问控制模型(RBAC)等[1-2]。基于属性的访问控制模型(attribute-based access control,ABAC)于2005年由Eric Yuan和Jin Tong提出[3]。通过不同的属性或属性组[4]来描述真实场景中出现的实体,通过基于属性的逻辑语义描述复杂的访问控制策略。将传统访问控制模型中的身份、角色等信息,以属性的方式抽象出来,以便更加细粒度地制定访问策略,贴近真实场景。

在ABAC模型的基础上,文献[5]使用本体一致性推理对现有ABAC授权框架进行扩展,即通过对本体知识库的一致性检测来判断策略的一致性,提升了策略的可信性及模型的自愈能力。文献[6]设计了一种具备通用性的Web服务访问控制模型,使用Browser/Artifact的身份认证授权方式,最终由认证服务器通过声明判断用户身份是否合法。文献[7-9]同样采用集中式决策或有中心的分布式决策支持系统对主体是否可以访问客体进行授权决策。

以上模型虽然都对基于属性的访问控制模型在效率和安全性上做了提升,但仍然在一定程度上将决策的正确性和可信性寄托于决策中心或中心策略库是否安全,缺乏对策略库的保护以及无法保证在策略库进行更新时的安全问题;且没有考虑到不同节点间的个性化差异;在主体对客体的访问行为发生后,不能做到对访问记录的防伪造和防抵赖。

随着网络服务形态的多元化,去中心化网络模型越来越清晰[10],而从比特币衍生出的区块链技术又将去中心化的思想提升到了前所未有的高度。在去中心化的网络中,任何参与者均可提交内容,由整个网络的参与者共同进行内容协同创作和贡献。每个网络节点都可以自成中心或具有中心的一切功能,从而避免了由中心决定节点而带来的安全隐患。

基于上述分析,为了更好地提升基于属性的访问控制模型的安全性,且满足分布式网络环境下的应用条件[11-12],文中提出了一种基于属性的去中心化访问控制模型(DABAC),并对该模型的设计思想、运行原理和性能进行了详细描述和分析。

1 基于属性的去中心化访问控制模型

1.1 模型设计思想

为满足现有复杂网络环境下的访问控制模型需要具有灵活配置、贴近真实应用等特点,文中研究的DABAC模型与同类别的访问控制模型相比,具有以下特点:

(1)采用去中心化思想设计的DABAC访问控制模型,所有参与的节点都持有访问记录和策略的副本,并在网络中保持同步更新,即使有一定数量的节点受损,也不会影响整个系统的正常运行。同时,由于所有节点共同维护着相同的策略集和访问记录,使得所有节点都可以对整个系统中的操作进行监督。

(2)采用基于权益证明[13]的去中心化方式来保证群策结果的可信性。所有节点上主体对客体的访问请求都会在全网范围内进行表决。由于模型中权益与安全等级成正比,因此安全等级越高的节点的本地策略库的安全性和可信性也越高,从而该类节点所给出的决策的可信性也就越高。

(3)访问主体在被授权访问时需要接受系统环境的验签名,并使用私钥对访问记录进行数字签名,通过叠加哈希的方法建立证据链条,以此杜绝其他访问主体的冒名访问,以及恶意访问主体通过伪造其访问记录以抵赖已经发生过的访问行为。

1.2 相关概念和定义

基于属性的去中心化访问控制模型的主要功能模块以及不同模块和节点之间的应用关系如图1所示。其主要功能模块有属性认证机构(attribute authorities,AA)、策略执行点(policy decision point,PEP)、策略决策点(policy decision point,PDP)和策略及存储一致性检查点(policy & storage coherence point,P&SCP)。

图1 基于属性的去中心化访问控制模型

1.2.1 模型基本元素定义

DABAC模型由访问主体、资源客体和操作三个对象组成,通过对访问主体属性、资源客体属性、系统环境属性集的构建,按照对客体访问的策略判定规则进行判定,决定对主体的操作授权。

定义1(访问主体subject):访问主体即对资源和被保护数据进行访问的实体。

定义2(资源客体resource):资源客体为被动实体,在整个访问流程中处于被动位置。

定义3(操作operate):操作是指访问主体对于资源客体的访问行为,定义了主体对客体的具体访问行为以及访问类型。

定义4(访问主体属性SA):在DABAC模型中,访问主体属性主要由用户ID、访问权限、生命周期和访问历史等组成。

定义5(客体资源属性RA):资源客体属性主要由资源ID(文件名称)、当前状态和安全等级组成。

定义6(系统环境属性EA):系统环境属性主要由时间、安全等级和历史记录组成。

定义7(权益security_level):节点所具有的安全等级即为该节点拥有的权益。

1.2.2 访问策略规范

DABAC模型中使用去中心的方式进行决策,其主要目的是通过提升模型决策的准确性和可信性,保护资源客体的安全,防止其被非法访问和使用。

利用SA、RA和EA分别表示访问主体S、资源客体R和环境E的属性赋值关系,且各个对象的属性以集合的方式存在:

ATT(S)⊆SA1×SA2×…×SAn,1≤n≤N

ATT(R)⊆RA1×RA2×…×RAk,1≤k≤K

ATT(E)⊆EA1×EA2×…×EAm,1≤m≤M

基于DABAC模型构建的访问控制系统可以根据不同的应用场景和访问模式设定具体规则。其规则的具体表现形式为一个基于访问主体(s)、资源客体(r)和系统环境(e)的布尔函数,即使用s、r和e,通过去中心化的表决方式来确定访问主体S在系统环境E下是否可以访问资源客体R,具体规则如下:

Rule:

canaccess(s,r,e)←fvote{flocal(ATT(S),ATT(R),ATT(E)),fdis(ATT(S),ATT(R),ATT(E))}

表决函数fvote的具体定义详见1.4节。

由AA自动分发或收集对象的属性,根据不同策略的具体需要,将属性按需带入规则函数,由规则函数判断访问主体对资源客体访问是否合法,并返回结果。

1.3 DABAC模型的决策流程

DABAC模型的完整决策流程如图2所示。

图2 DABAC模型的决策流程

其结构和基本处理流程如下:

(1)由认证机构(AA)截获访问主体向属性发送的访问请求,并挂起访问进程,由AA根据访问主体的ID号对其身份信息进行判定及认证,而后授予该访问主体包含权限、生命周期、密钥等相应的属性。

(2)AA在收到访问主体的请求后,根据其申请的具体资源客体来收集该客体的属性以及所处的环境属性,并将收集到的属性传递给策略判定点(PDP)。

(3)经过AA认证后,访问主体将自己的属性和访问请求发送给策略执行点(PEP),由PEP传递给PDP。

(4)PDP在收到PEP和AA传递的访问主体、资源客体和环境属性后,将其按照统一格式封装成XML文件。之后,向包括本地策略存储点和其他(网络)策略存储点发起请求,查询与访问条件相符的策略。

(5)收到请求的PQP根据自身权益进行权益证明(证明过程详见1.4),完成证明后,再根据具体需求,在其所处节点的策略管理点(PAP)内进行行为比对;之后,将表决结果以True和False的形式返回给发送原始请求节点的表决器(VOTER)。若证明过程超时,则不进行表决。

(6)VOTER根据该节点设定的关门时间内返回的所有结果进行综合判定,对访问请求进行最终决策,将访问决策结果发送给策略及一致性检查点(P&SCP),由P&SCP将决策结果封装为历史记录的格式存储在本地存储点,并向网络节点的P&SCP发送存储请求。待收到所有网络节点的P&SCP存储确认后,将结果返回给本地PEP,否则将继续广播,直至收到所有回复。

(7)PEP根据PDP的返回结果通知访问主体,若为拒绝,则直接拒绝访问主体的请求,而后结束访问进程;若为同意,则停止进程挂起,允许对资源客体访问。

1.4 基于权益证明的去中心化群策方式

基于DABAC模型架构的访问控制系统基于权益证明(POS)的原理,采用本地表决和网络表决相结合的方式对访问主体的访问请求进行决策。该群策方法可以避免因核心节点即中心策略库失效而导致的决策失败,同时避免了因部分策略库被篡改而导致的错误决策。

在群策中引入“竞争”机制,即网络中的每一个节点都有机会根据其他节点的决策请求给出自己的表决结果,而是否得到表决权则需要通过“竞争”获得,通过此种方式进行表决,使得网络中不再需要设立一个中心节点,每一个节点都可以通过“竞争”而成为进行表决的“中心”。“竞争”的过程即权益证明的过程,率先完成权益证明的节点才有机会在关门时间前给出自己的表决结果。由于权益证明的难易程度与节点自身的安全等级成反比,这样使得处于高安全等级节点的策略库将更快地给出表决结果,即在“竞争”中获胜。低安全等级的节点由于其自身的防护能力较差,该类节点的策略库容易被恶意控制,因此最终给出的表决结果可信性较低,但由于该类节点进行权益证明的时间较长或无法完成证明,请求访问决策的节点可以通过缩短关门时间而忽略该类节点所给出的表决结果。节点表决结果的安全由其自身的防护能力和权益证明的难易程度协同保障。

使用权益证明的方法如下:

Hash(Header)≤security_level×Reliability

其中,Reliability为节点的可靠性。该可靠性随着该节点在群策过程中得出的结果与最终表决结果相一致的次数呈正比增加;Header可根据具体应用情况进行取值,可以是节点收到的访问策略请求数据包的包头。为保证权益证明的公平性,所有节点需以同样的数值作为哈希运算的起始数据;security_level是节点的安全等级。

如果散列结果不符合要求,则重新进入下一个计算流程,直到散列结果符合要求或超时退出。

POS模式是以节点的安全等级和可靠性为基础,通过竞争表决机会和正确性,获得奖励,用以进一步提高节点的可靠性。奖励方程如下:

New_Reliability=Reliability+Reward

其中,Target可以根据模型的实际应用情况做灵活调整。

在POS竞争过程中,随着该节点正确表决结果的次数不断增多,节点获得的表决奖励将不断累积,自身可靠性也将不断提高,完成权益证明的时间也将越快。

群策模块VOTER负责收集发出决策请求的节点在其关门时间内收到的所有表决结果,通过表决函数来得到最终的结果:

fvote=f(LD,ND1,ND2,…,NDn)

其中

f(x0,x1,…,xn)=BOOL(x0+x1+…+xn-n/2)

当结果为1时,访问主体的访问请求被允许;当结果为0时,访问主体的访问请求被拒绝。如图3所示。

图3 基于去中心化的群策模块

1.5 分布式策略和证据链条机制

通过DABAC模型中的P&SCP来保证使用DABAC模型构建的访问控制系统的分布式策略库和访问记录的一致性。

P&SCP接收来自网络节点和本地节点的所有的访问记录和策略更新,而后根据不同的类别和需求,将收到的信息分发至不同的功能模块。在分布式存储的基础上,使用数据存证技术对策略进行更新和修改,使用证据链条技术保存访问记录,以保证全网节点的策略库和访问记录的一致性。

(1)基于分布式辅助的身份征信机制。

策略的更新由具有管理员权限的用户执行,根据节点的安全等级不同,只能自上而下地更新策略,即高安全等级的节点可以更新低安全级节点的策略,反之不行。

所有不同安全等级的管理员身份信息在基于DABAC模型的系统建立之初就被广播全网并存储于各个节点的PAP内,在进行策略更新时,该节点必须将更新后的策略、更新后策略库的哈希值、执行本次更新任务的管理员的身份信息一起打包,并广播全网。任何收到策略更新信息的节点都会对发送信息的管理员身份进行校验,校验成功后再对本地策略库进行更新。

(2)基于证据链条的访问记录一致性机制。

通过使用时间戳技术以及访问主体私钥签名的方式并建立访问流程的前后关联关系,实现了将访问主体的访问行为以时间序列串联成为数据证据链条。该证据链条从访问主体接入系统起就将相关数据加盖时间戳并用其私钥进行签名,之后,将包含时间戳和私钥签名的数据通过特定加密算法生成唯一对应的数据Hash值;之后每一步新数据的产生都会被立即加盖时间戳并使用私钥进行签名,并且基于前一步已经产生的Hash值生成一个新的唯一的Hash值。最后生产的哈希值会被全网广播,并被保存在全网所有节点的数据库中。证据链条工作原理如图4所示。

图4 证据链条生成过程

2 安全性分析

2.1 DABAC模型安全性分析

(1)最小特权原则。

最小特权原则是指每个访问主体只能拥有刚够完成工作的最小权限[14]。在基于DABAC模型构建的访问控制系统中,不是根据访问主体的职责进行简单的一次性权限划分,而是通过收集访问主体、资源客体和系统环境的属性,访策略库中进行查询,得出最终决策。该方式不仅考察访问主体本身,还根据访问主体的任务性质进行综合决策,从而对最终分配给访问主体的权限做到最大控制。

(2)职责分离原则。

职责分离是指将不同的权限许可分派给不同的模块用以互相牵制,使得单个模块的功能必须与其他模块的工作相一致或相联系,并受到监督和制约,防止出现一个模块完成两项不相容的工作的情况[15]。在DABAC模型中,在为访问主体分配属性时,相互冲突的两个或多个属性不能分配给同一个访问主体,以避免拥有足够权限的恶意访问客体在缺少监督和制约的情况下危害系统安全。

(3)多人负责原则。

通过授权分散化,即对于关键任务必须在功能上进行划分,使得该任务由多人共同承担,保证任何个体无法拥有完成该任务的全部权限。DABAC模型通过去中心化的策略库使得整个网络中的任意一个节点只能基于自身的策略库做出表决,而无法做出最终决策。最终决策需要由发出策略查询请求的节点上的P&SCP模块汇总所有节点的表决后作出最终决策。由于最终决策是综合了全网节点上的所有策略库的表决而确定的,想要对最终决策进行攻击需要控制全网过半的节点,随着网络规模的不断增大,攻击成本也将大大提升。

2.2 与相关模型比较

相比于传统访问控制模型,ABAC模型具有很好的灵活性和可扩展性。本节从决策方式和策略及访问记录更新方式两方面对DABAC模型和ABAC模型进行比较。

(1)决策方式。

传统ABAC模型多采用集中式策略库的形式进行决策,其安全性依托于整个网络的可靠程度和策略库的自身安全。DABAC模型采用分布式决策,通过模型的全网一致性特点来保证整个系统网络内的所有节点共同维护一个策略库。该模型得出的决策是由全网所有节点共同表决的结果,若攻击者想要对该结果做出更改,则需要监听大于百分之五十的网络流量,或控制超过一半的网络节点,才有可能对最终的决策结果做出修改。

(2)策略及访问记录更新方式。

对于访问策略和访问历史记录,传统ABAC模型通过在网络中建立中心数据库节点的方式进行存储,其安全保障完全依赖于中心数据库的自身安全。基于DABAC模型架构的访问控制系统使用基于分布式辅助的身份征信和证据链条的方式,分别保证了策略更新和访问记录的一致性。需要更新策略库的节点必须按照模型规则,证明进行策略更新操作人员的身份合法性;使用时间戳技术以及访问主体私钥签名的方式并建立访问流程的前后关联关系,并且叠加之前记录的哈希值,确保了访问主体的访问请求和决策结果的记录不被篡改。

3 结束语

针对现有ABAC模型在大型分布式环境下进行应用所存在的不足,提出了一种基于属性的去中心化访问控制模型。在基于属性的访问控制模型的基础上对访问控制模型进行扩展,引入了去中心化的概念,提升了策略库和访问记录的安全性,增加了访问决策的可信性。同时对DABAC模型的安全性进行了详细分析,相比于传统访问控制模型,该模型具有更高的安全性、灵活性和容错性,通过更加全面地对访问请求进行决策,使得客体资源受到更好的保护。

猜你喜欢

访问控制客体决策
一种跨策略域的林业资源访问控制模型设计
社会公正分配客体维度与道德情绪的双向互动
为可持续决策提供依据
浅议犯罪客体
内外网隔离中ACL技术的运用
决策大数据
决策大数据
诸葛亮隆中决策
云计算访问控制技术的运用及论述
云计算访问控制技术研究综述