基于细粒度访问控制的大数据安全防护方法
2019-10-11王继业余文豪韩丽芳
王继业,范 永,余文豪,韩丽芳
(中国电力科学研究院有限公司,北京 100192)
0 引 言
随着信息技术和网络技术的快速变革,以及物联网、云计算、人工智能等新兴技术的发展与应用,大体量、丰富结构、复杂类型、智能分析的大数据服务时代已经来临[1-4]。
但是大数据服务时代在数据安全上也存在很大的隐患和挑战[5]。大数据安全问题主要体现在3个方面:第一是信息泄密[6]。开放的互联网使海量的大数据处于裸奔状态,国内网络设备主要依赖国外技术,很容易因为“漏洞”、“后门”造成信息泄露。第二是数据非授权访问[7]。主要是复杂关系的多用户存储在云盘、大数据平台等共享平台的数据所有权归属及访问问题。第三是网络攻击[8]。大数据服务时代的大规模数据存储,只提供单一的访问服务接口,易遭受黑客的大规模网络攻击,进而影响大规模用户的正常数据使用。
大数据服务采用分布式方法存储数据,并基于大数据平台将海量的数据资源链接起来,构建大规模的数据开放共享平台。所有位于大数据环境中的数据所有者,将数据存放于大数据平台进行统一管理,进而构成一个巨大的数据服务中心。大数据中心不仅能够为数据所有者提供存储和访问服务,又能够支持各种复杂的数据运算。在大数据服务环境下,传统架构模式下的单一数据中心消失,而是以分布式数据存储的形式存在。数据资源的存储分配从单一的主机存储分配变为多主机、分布式的存储分配。数据资源的访问也从单一用户单一主机访问变为多用户多数据域的数据访问,从而引出了大数据服务环境下的复杂用户多数据资源域的访问问题。访问控制模型的构建是解决数据访问的重要方法。因此,在深入研究传统访问控制模型的基础上,文中提出了面向大数据服务环境下的基于细粒度访问控制模型的安全防护方法。
1 相关研究
传统访问控制模型分为三个主要类型:自主访问控制模型、强制访问控制模型和基于角色的访问控制模型。传统的访问控制模型通常是基于表示或者特定的身份,对数据资源进行分组的访问管理。但是这种方式存在局限性,只能用于结构简单的封闭式网络环境。由于大数据环境面临用户数量多且用户关系复杂的问题,数据资源需求存在很多不确定性,权限的授权与取消必须是动态变化的。更复杂的是,用户的访问请求可能涉及不同逻辑区域的分布式数据存储资源。由此可见,传统的访问控制模型不适用于分布式下的大数据环境。
当前,国内研究者针对大数据环境的访问控制需求的特点,提出了很多访问控制模型,其本质上是对传统访问控制模型进行的扩展和改造。
崔新会等[9]对大数据环境给访问控制领域带来的问题进行了系统分析,提出了5个迫切问题:授权管理、细粒度访问控制、访问控制策略描述、个人隐私等,并给出了若干建议,但没有进行实质性的研究。惠榛等[10]以大数据医疗为背景,提供了一种基于风险的访问控制模型,能够适应性地调整医生的访问能力,保护患者隐私。但是此方法需要分析医生的访问历史来量化风险,推断访问权限,对数据质量及环境要求较高,不能适用于统一化、标准化的大数据处理平台。王小明等[11]针对大数据的强动态性及强隐私性,笼统地给出了基于属性访问控制模型各个阶段的研究点及解决方法,没有提出具体的模型。路艳军等[12]提供了基于代理技术的大数据平台的访问控制方法,实现了代理式的数据资源的统一访问接口,但是没有给出细粒度的访问策略。胡坤等[13]提出了大数据安全和隐私保护风险,给出了大数据安全防护策略,但是没有提出具体的防护方法。闫玺玺等[14]将属性加密技术和控制技术相结合,提出了针对敏感数据的融合访问控制机制,通过加密技术提高了策略分发的安全性,但是控制访问只是粗粒度的访问策略。
基于国内大数据安全防护方法的调研与研究,文中提出了基于细粒度访问控制的大数据安全防护方法,构建了基于属性的细粒度访问控制模型。在该模型中,访问请求被表述为不同的属性信息,如访问者、访问资源、访问动作、环境等。这些属性同时作为访问依据,能够保证实现动态、细粒度的授权机制,保证访问控制的灵活与可扩展。
2 BD-ABAC模型
大数据环境下的细粒度属性访问控制模型(big data-attribute based access control,BD-ABAC)是通过基于属性的细粒度访问控制方法,利用多域属性表同步技术,实现多域细粒度访问控制的模型。
传统的访问控制方法是直接在主体和客体之间定义授权,基于属性的细粒度访问控制方法是利用主体、资源、环境和动作之间的属性关系定义授权。BD-ABAC模型和基于角色的访问控制模型存在本质上的不同。它将操作与资源之间的二元关系扩展到主体、资源、环境和动作之间的多元约束关系,形成了基于多元属性的细粒度访问控制。
属性是人类对事物的性质与关系的定义,即对现实世界实体的抽象描述。两个实体是否相同,其本质就是实体的属性是否相同。通常把访问控制的需求归结为四种属性:主体属性、资源属性、环境属性和动作属性。
BD-ABAC模型能够进行基于属性的细粒度授权决策。为了实现这一目标,BD-ABAC定义了一种细粒度的灵活授权方法,能够适应大数据环境下的资源跨域访问、实体属性动态变化等特点。下面给出BD-ABAC模型相关的数据定义:
(1)属性定义。
attr表示属性(attribute),attr_n表示第n个属性。Sattr,Rattr,Eattr和Aattr表示主体属性(subject attribute)、资源属性(resource attribute)、环境属性(environment attribute)和动作属性(action attribute)。
Sattrsa={Sattr_1,Sattr_2,…,Sattr_a},为主体属性集合,a表示属性个数;
Rattrsb={Rattr_1,Rattr_2,…,Rattr_b},为资源属性集合,b表示属性个数;
Eattrsc={Eattr_1,Eattr_2,…,Eattr_c},为环境属性集合,c表示属性个数;
Aattrsd={Aattr_1,Aattr_2,…,Aattr_d},为动作属性集合,d表示属性个数。
(2)属性赋值定义。
AV表示属性赋值(attribute value)。AV_n←(attr_n=value),表示第n个属性的属性赋值。SAV_n,RAV_n,EAV_n和AAV_n表示第n个主体、资源、环境和动作属性赋值。
SAVt={SAV_1,SAV_2,…,SAV_t},为主体属性赋值集合,t表示属性赋值个数;
RAVm={RAV_1,RAV_2,…,RAV_m},为资源属性赋值集合,m表示属性赋值个数;
EAVn={EAV_1,EAV_2,…,EAV_n},为环境属性赋值集合,n表示属性赋值个数;
AAVk={AAV_1,AAV_2,…,AAV_k},为动作属性赋值集合,k表示属性赋值个数。
(3)属性阈值定义。
ATV表示属性阈值(attribute threshold value)。ATV_n←(attr_n∝value),表示第n个属性的属性阈值,其中∝∈{>,<,=,≥,≤,≠,in,not in,between}为关系表达式运算符,用来限定属性的取值范围,即属性关系。SATV_n,RATV_n,EATV_n和AATV_n表示第n个主体、资源、环境和动作的属性阈值。
SATVi={SATV_1,SATV_2,…,SATV_i},为主体属性阈值集合,其中i表示属性阈值个数;
RATVj={RATV_1,RATV_2,…,RATV_j},为资源属性阈值集合,其中j表示属性阈值个数;
EATVs={EATV_1,EATV_2,…,EATV_s},为环境属性阈值集合,其中s表示属性阈值个数;
AATVp={AATV_1,AATV_2,…,AATV_p},为动作属性阈值集合,其中p表示属性阈值个数。
(4)访问请求定义。
Req(SAVt,RAVm,EAVn,AAVk)={SAV_1,SAV_2,…,SAV_t}∩{RAV_1,RAV_2,…,RAV_m}∩{EAV_1,EAV_2,…,EAV_n}∩{AAV_1,AAV_2,…,AAV_k},表示一个完整的由主体、资源、环境和动作属性赋值构成的访问请求。
(5)访问控制策略定义。
Policy←(Target,CombiningAlgorithm,Rule),表示访问控制策略,由Target(目标)、CombiningAlgorithem(合并算法),Rule(规则)三者组成。
Target←(Sattrsa,Rattrsb,Eattrsc,Aattrsd),表示目标,由主体属性集合(Sattrs),资源属性集合(Rattrs),环境属性集合(Eattrs)和动作属性集合(Aattrs)组成,用来说明所属的访问控制策略(Policy)是否适合访问请求。
Rule={rule1,rule2,…,rulet},表示规则集合,其中rulet表示第t条规则。rule=Result←(SATVi,RATVj,EATVs,AATVp),表示一条完整的规则组成。其中Result为规则的判定结果,Result∈(Yes,No)。
CombiningAlgorithem(合并算法),表示生成决策结果对规则(Rule)判定结果(Result)的解决策略冲突的合并算法。
2.1 模型构建
BD-ABAC模型(见图1)由三个核心模块组成:用户认证模块、域定位模块和访问决策模块。
图1 BD-ABAC模型
2.1.1 用户认证模块
用户在第一次访问数据资源的时候,首先要向安全认证机构申请安全证书(security certificate,SC)。安全证书的作用在于,用户可以使用安全证书在访问数据资源时证明自己的身份。资源服务器的作用是对抗恶意的数据访问,验证的凭据也是身份证书。这样设计的好处在于,安全证书被全域信任,能够有效减少重复的验证操作。
2.1.2 域定位模块
通过身份认证的终端用户在访问数据资源时,访问请求Req(SAVt,RAVm,EAVn,AAVk)会被转发至域定位服务器,域定位服务器对主体属性(Sattr)和资源属性(Rattr)进行分析,判断该资源的访问请求是本地域访问还是跨域访问。如果是跨域访问请求,域定位模块则根据资源属性(Rattr)快速查找相应的资源域,并转发访问请求。
2.1.3 访问决策模块
访问决策模块由两部分组成,分别是本地域访问决策部分和跨域访问决策部分。采用基于属性的访问控制方法对终端用户的访问请求Req(SAVt,RAVm,EAVn,AAVk)进行策略判定,并将判定结果发送到策略执行点。各数据资源域根据属性策略集合相应的合并算法,为策略判断提供可靠依据。
2.1.4 模块关联
在BD-ABAC模型中,当终端用户申请访问数据资源时,用户认证模块、域定位模块和访问决策模块之间的交互协作关系如图2所示。终端用户向数据资源发起访问请求,通过使用安全认证机构颁发的安全证书进行身份认证,通过身份认证的终端用户的访问请求被转发至域定位服务器,域定位服务器将访问请求转发至相应的资源域,该资源域的决策机构对该访问请求进行判定并将结果返回至终端用户。
图2 模块协作
2.2 单域访问决策模型
文中采用可扩展访问控制标记语言(XACML)[15]框架来制定单域访问控制的决策模型。XACML是一种标准化的框架,提供了统一的访问控制策略编写规范,能够支持大数据计算环境下的多数据域之间的访问控制。
在单域访问的环境中,访问控制决策模型由四个主要部分组成:策略执行点(PEP)、策略决策点(PDP)、策略信息点(PIP)、策略管理点(PAP)。其中,PEP负责将用户的访问请求传递到PDP,并得到决策结果。PDP负责对访问请求进行判断,并把判定结果返回给PEP。PIP的作用是为PDP决策提供属性信息。PAP为PDP进行决策提供所必需的策略集。
文中提出的单域访问决策模型如图3所示。单域访问策略判定过程如下:
图3 单域访问决策模型
(1)用户第一次访问数据资源,进行身份认证,并申请用户安全证书SC。
(2)用户发送访问请求到域定位服务器,域定位服务器通过对主体和资源的属性分析,判断为单域访问服务。
(3)PEP接收到访问请求NAR后,根据访问请求的内容,结合PIP和属性库,构建基于属性的访问请求AAR。AAR包含了本次访问所需的所有相关属性。然后,PEP将AAR转发给PDP。
(4)PDP负责对访问请求进行决策。为了查找适合该AAR的策略集,PDP根据AAR和PIP中的属性,向PAP发送策略匹配请求,进而得到结果。
(5)PAP根据AAR中的属性在策略库中查找适合的策略集,并返回给PDP进行策略判定。
(6)策略集通常包含了多个策略,而每条策略又由多种规则组成,而这些规则元素就是判断依据。
(7)策略合并算法为多条策略决策结果进行合并的方法。
(8)PDP将判定结果返回给PEP。此时,PEP能够根据判定结果执行用户访问数据资源的决策。
单域访问决策中最重要的模块是PDP模块,PDP模块的功能是:接收到由PEP转发来的基于属性的访问请求后,通过PIP和PAP获取属性信息和策略集,对请求进行策略判定,并返回判定结果。
2.3 跨域访问决策模型
在当今的复杂应用背景下,大数据环境通常存在多个不同领域,例如金融、安防、能源、业务、医疗以及电力行业等。各领域中通常存在有自己的安全认证和访问控制体系,终端用户在访问不同领域的大数据资源时,如何保证用户安全高效的在多域之间进行互操作是访问控制模型必须考虑的。文中在提出基于属性的访问控制模型的基础上,对大数据环境下多域间安全访问以及资源的互操作提出解决方案。访问控制模型如图4所示。
(1)位于主体域的用户,在经过安全认证的前提下,持有安全证书进行跨域访问。
(2)在访问请求抵达资源域时,首先要通过策略决策,主体域判断用户是否有权限去访问资源域,具体由主体域的策略判定点进行决策。
(3)主体域的策略判定点将决策结果发送到主体域的策略执行点和主体域的策略执行点执行主体域的策略判定点决策结果中的权限。
(4)主体域的策略执行点发送多域间访问请求到资源域的策略执行点,资源域的策略执行点查看其安全证书。
(5)资源域的策略执行点首先检查主体属性是否发生了变化。若没有变化,就发起属性库更新请求,更新资源域属性库中主体的属性表信息。若没有变化,则将请求提交到下一步。
(6)资源域的策略执行点发送访问请求到资源域的策略判定点和资源域的策略判定点匹配适用于此访问请求的策略集进行策略决策。
(7)资源域的策略判定点将最终的决策结果发送到资源域的策略执行点。
(8)资源域的策略执行点执行策略判定点决策结果中的权限,对用户的访问请求进行判决,允许或拒绝资源的访问请求。
图4 跨域访问决策结构模型
2.3.1 跨域属性表同步
尤其是在大数据环境下,用户权限是动态变化的,主体信息经常发生变化会影响策略的评估和判定,各操作域中的访问控制模型需要一种可靠机制能够及时更新属性库中的信息。属性表的更新需要重点解决以下问题:
(1)在多域间互操作的过程中,当本地域属性表发生变化时如何保持其在本地域和资源域的一致。
(2)当对资源域的属性表进行更新时,如果有其他操作调用此属性表中的信息,则有可能产生误操作。
针对上述问题,为了解决多域属性表更新同步互斥的问题,文中引入信号量机制和P/V操作。属性库中的每一个主体都赋予一个信号量,并设置初始值为1:mutexj=1。当策略执行点PEP发现属性变化时,发送更新请求,执行P操作。更新完毕后,执行V操作。执行完毕后,将属性更新结果返回主体域。P/V操作过程如图5所示。
图5 P/V操作过程
资源域的策略执行点的主要执行流程为:检测访问请求中属性表是否发生变化,若发生变化则执行更新同步属性表的操作,若未发生变化则将访问请求传递给策略判定点。
2.3.2 访问决策核心算法
假设访问请求为Req(SAVt,RAVm,EAVn,AAVk),策略为Policy←(Target,CombiningAlgorithm,Rule),首先进行策略评估PolicyEvalucation(Req,Policy)。含义是根据访问请求和策略,决定访问请求是否能够被批准。若此策略适合判定,则返回策略的Result集合,否则不返回。策略判定算法如图6所示。
图6 策略判定算法
在多域访问的场景中,保持主体域和资源域中的属性一致性是至关重要的。资源域中的PEP模块的主要功能是:检查访问中的主体属性和先前属性是否一致,如果没有变化,就交送PDP进行进一步的访问决策。如果发生了改变,就要更新属性库中的属性表。PEP模块核心算法如图7所示。
图7 PEP模块核心算法
3 仿真实验
实验基于Hadoop大数据处理平台[16-17],在该平台上模拟3个数据资源存储中心,并划分为3个不同的逻辑域,以此命名为M1,M2和M3,如图8所示。
图8 大数据分布式处理平台
在三个逻辑域中建立多个仿真用户,用户角色包括数据拥有者和数据用户。数据拥有者在不同的逻辑域中掌控不同的数据资源。并且进一步根据属性对权限进行细粒度的定义,制定完备的访问侧逻辑和,并对满足属性约束的用户授予访问控制权限。
实验设置如下:针对3个逻辑域,模拟编写1 000条策略,其中每条策略包含1条至上千条规则不等,以验证BD-ABAC模型的正确性、细粒度访问决策、可扩展性和效率等。
3.1 细粒度访问控制
访问控制策略复杂度和访问控制粒度相关,越复杂代表控制粒度越细。策略中包含的属性个数越多,策略的复杂度就越高。实验测试中选择了50条访问控制策略,这些策略的复杂度不同。并且每条策略含有多个属性阈值对,从几个到几千不等。实验测试结果如图9所示,记录了策略复杂度与策略决策时间的关系。
图9 策略复杂度与策略响应时间的关系曲线
3.2 单域及多域间访问决策
在单域访问控制决策和多域间访问控制决策的实验测试中,随机选择了二十条请求,并记录策略判断的决策时间,重点分析请求与策略规则数目的关系。重复五十次实验取平均值。图10为不同规则数与策略决策时间的关系曲线。
图10 策略条数与平均决策时间的关系曲线
由图10可知,无论是单域还是多域间访问请求,其策略判定的平均决策时间都随访问控制策略规则数的增加而上升,并趋近于平缓。而多域间访问平均决策时间相对更长,但时间开销在可接受范围内。在实际情况下,策略条数并没有实验中这么多,策略也不会这么复杂,所以,判断时间不会影响系统的性能。综上所述,BD-ABAC具有较好的可扩展性及较高的决策效率。
4 结束语
BD-ABAC结合安全认证和访问判决两个维度,使授权验证的安全性和可信度更高,这有助于提高大数据资源访问的安全性。在访问控制粒度方面,BD-ABAC基于多种角色的属性进行判决,采用了动态灵活细粒度的访问授权机制,并引入了信号量和P/V操作有效解决了跨域更新互斥问题。实验结果表明,BD-ABAC模型正确,可扩展,能够满足大数据资源访问高效和细粒度的要求。