CN102932328B - 一种基于二进制序列集合的访问控制策略合成方法 - Google Patents

一种基于二进制序列集合的访问控制策略合成方法 Download PDF

Info

Publication number
CN102932328B
CN102932328B CN201210364329.7A CN201210364329A CN102932328B CN 102932328 B CN102932328 B CN 102932328B CN 201210364329 A CN201210364329 A CN 201210364329A CN 102932328 B CN102932328 B CN 102932328B
Authority
CN
China
Prior art keywords
binary sequence
strategy
synthesis
expression
attribute
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210364329.7A
Other languages
English (en)
Other versions
CN102932328A (zh
Inventor
潘理
刘晨燕
訾小超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201210364329.7A priority Critical patent/CN102932328B/zh
Publication of CN102932328A publication Critical patent/CN102932328A/zh
Application granted granted Critical
Publication of CN102932328B publication Critical patent/CN102932328B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开一种基于二进制序列集合的访问控制策略合成方法,首先定义二进制序列集合元素以及基于二进制序列的集合运算规则,根据以上定义,从属性约束层对实际的策略进行属性分解,并通过集合内部元素分离将策略正确的表达成为基于二进制序列的逻辑表达式。然后通过语义检查和移位合并,用以消除规则冗余和语义冲突问题。在此基础上,根据实际的安全需求定义基于二进制序列集合的逻辑合成算子,将合成方式转换成逻辑表达式。利用二进制序列可直接作为数据结构的特点,根据逻辑表达式可直接对基于二进制建模的策略空间计算合成结果,作为一种无需逻辑转换的策略代数实现机制。最后,将基于二进制集合形式的合成策略翻译成属性项策略。

Description

一种基于二进制序列集合的访问控制策略合成方法
技术领域
本发明涉及的是一种分布式系统中域间授权安全互操作方法,具体地说,是一种基于二进制序列集合(Bsset)的访问控制策略合成方法。
背景技术
随着大规模分布式网络应用的迅速发展,自治域之间的合作也会越来越频繁。其中,域间访问控制策略合成是分布式技术中聚合资源访问的关键安全要素。基于属性的访问控制能解决复杂系统中的细粒度的访问控制,为开放的分布式环境提供了较为理想的访问控制方案。并且利用离散代数可以将复杂的基于属性的策略合成方式用严谨的代数系统表达,基于代数的域间访问控制策略合成方法具体是指一类首先在逻辑层面对策略合成语义进行分析和定义,进而建立运算规则系统(即代数系统)进行合成演算的基于属性授权的访问控制策略合成方法。这类方法通常需要将实际的访问控制策略通过逻辑转换器转化为逻辑代数符号才能由计算机程序实现合成演算,因此可实现性差、运算效率低。
经对现有技术的文献检索发现,Bertino、LiNinghui等人在《AnAlgebraforFine-GrainedIntegrationofXACMLPolicies》一文中基于XACML策略描述形式提出用MTBDD(Multi-TerminalBinaryDecisionDiagrams)策略树转译实际策略的方法,以及相应的策略合成代数系统可解决细粒度的域间访问控制策略合成。这是目前已报道的最佳解决方法。但是,这一方法虽然解决了逻辑代数符号的转换代价,却由于策略树自身数据结构对于布尔属性约束的依赖性,会造成合并过程中的冗余以及系统规模庞大的问题,这也限制了该方法的合成运算性能。
发明内容
针对上述现有技术存在的不足,本发明要解决的问题是提供一种基于二进制序列集合的访问控制策略合成方法,采用二进制序列集合对域间访问控制策略进行基于属性约束的建模,这种建模方式无需通过逻辑转换器就可被计算机程序实现,并且基于这种建模方式设计了授权项间的逻辑算子,可进行多样化的域间策略合成演算。本发明可作为一种高效和易实现的域间访问控制策略合成方法。
为实现上述目的,本发明采用的技术方案是:首先定义二进制序列集合元素以及基于二进制序列的集合运算规则,根据以上定义,从属性约束层对实际的策略进行属性分解,并通过集合内部元素分离将策略正确的表达成为基于二进制序列的逻辑表达式。然后通过语义检查和移位合并,用以消除规则冗余和语义冲突问题。在此基础上,根据实际的安全需求定义基于二进制序列集合的逻辑合成算子,将合成方式转换成逻辑表达式。利用二进制序列可直接作为数据结构的特点,根据逻辑表达式可直接对基于二进制建模的策略空间计算合成结果,作为一种无需逻辑转换的策略代数实现机制。最后,将基于二进制集合形式的合成策略翻译成属性项策略。
本发明所述的基于二进制序列集合的访问控制策略合成方法,包括如下步骤:
步骤一:策略面向属性层分解;
步骤二:对步骤一的策略进行基于BSset的逻辑转换;
步骤三:对步骤二进行语义检查和移位化简;
步骤四:推导基于BSset的合成语义算子;
步骤五:根据步骤三和步骤四,用逻辑表达式刻画合成结构;
步骤六:对步骤五实现合成演算,输出策略合成结果。
进一步的,所述的步骤一,具体操作是:先对主体属性约束、客体属性约束、行动属性约束等基于属性约束翻译成一个原子布尔表达式aT*v,*∈(=,<,≤,>,≥)。然后对一个策略集中含有有限个不同的原子布尔表达式,依次编码一条策略规则就可以被抽象为通过逻辑符号与“∧”和或“∨”连接的原子布尔表达式组成的一个复合布尔表达式。进而,策略就可以用三组布尔表达式逻辑集合分别表示三值策略的允许集,拒绝集,以及“不适用”集,由于“不适用”的策略评估是允许集和拒绝集产生的矛盾,所以暂不考虑。
进一步的,所述的步骤二,具体为:首先根据二进制序列和序列集合的定义,步骤一所得策略二元组进一步转换成基于二进制序列集合BSset的逻辑形式;其次,将策略属性项集合进一步通过元素分离:(1)策略的允许集[S]Y和拒绝集[S]N分别与空集φ进行并运算U;(2)去除[S]Y和[S]N集合之间的交集部分[S]Y∩[S]N。即:
(1)[S]Y=[S]Y∪φ,[S]N=[S]N∪φ;
(2)[S]Y=[S]Y-([S]Y∩[S]N),[S]N=[S]N-([S]Y∩[S]N);
通过上述两个步骤转换成定义的二进制序列集合形式。
进一步的,所述的步骤三,具体为:检查步骤二后的二进制序列集合,是否存在语义冲突的项,若存在用条件判断语句检测并删除冲突路径。然后进行移位合并算法,消除冗余路径。
进一步的,所述的步骤四,具体为:根据实际的策略合成安全需求,组合基于BSset集合运算设计的5个基础语义算子推导出满足合成期望的合成语义算子。
进一步的,所述的步骤五,具体为:根据步骤三的结果,基于BSset的逻辑建模策略,和步骤四的结果,根据安全需求推导出的合成语义算子,将多策略的合成方式转换为合成逻辑表达式。
进一步的,所述的步骤六,具体为:根据步骤五的逻辑表达式,对合成空间计算合成结果,实现合成演算,并且对每次合并的结果进行语义冲突检测,去除矛盾的二进制序列,再进行移位合并化简,输出策略合成布尔表达式并进一步转换成语义描述形式。
本发明采用二进制序列集合元素对基于属性的访问控制策略进行逻辑建模,这种建模方式可被计算机程序直接实现。其次,将策略描述层的代数规则扩展到逻辑层,设计了基于二进制序列集合的逻辑运算合成算子。从而将多策略的合成方式转换为合成逻辑表达式实现合成演算,建立了一种新型的基于属性的细粒度策略代数合成方法。与基于MTBDD策略树的策略代数合成方法相比,消除了对于布尔表达式评估顺序依赖的特性,减小了系统规模,并且扩展了合成语义算子,具有更好的实际应用前景。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为基于二进制序列集合实施策略合成框架图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
本发明提出的是一种基于二进制序列集合的访问控制策略合成方法,为更好的理解本发明,首先给出相关定义。
定义1:二进制序列
一个二进制序列BinaryString(简称BS)为形如x0x1...xn-1的字符串,用以表示析取布尔表达式x0∧x1∧...∧xn-1,即BS≡(x0x1...xn-1),其中每一个xi(i=0,1,...,n-1)的取值∈{0,1,*}。
在策略属性中,xi表示第i个属性约束;根据属性布尔表达式的香农分解:若xi值为1表示属性约束xi取值为真;若xi值为0表示属性约束xi取值为假。并且引入*元素,简单将其看作1∨0=*合并,对于在某条规则中无需评估的原子布尔表达式,xi取值就为*。在具体方法中,*经转换可用0和1表示,因此属性约束的取值可只用0和1表示,每个xi可看作是一个二进制位bit。
定义2:二进制序列集合
一个二进制序列集合[S](简称BSset)是由n个长度相等的二进制序列所组成的集合,[S]={S1,S2,...,Sn-1}表示布尔表达式S1∨S2∨...∨Sn-1,且Si∩Sj=null(i≠j,1≤i,j≤n)。其中,每个Si表示析取布尔表达式x0∧x1∧...∧xn-1
定义3:二进制序列间两种关系定义
关系S1的第i位值和S2的第i位值相同,或S2的第i位值为*。
关系 &NotSubset; : S 1 &NotSubset; S 2 &DoubleLeftRightArrow; S 1 和S2不满足 S 1 &Subset; S 2 .
定义4:二进制序列及集合间的逻辑运算
定义二进制序列间的三种二元运算∩,-和一种一元运算以及二进制序列集合间的三种二元运算U,∩,-和一种一元运算
定义5:基于二进制序列集合的合成语义算子
策略代数模型具体是,将各种策略合成方式抽象为策略代数表达式。基于属性的代数系统中基础算子是并已证明其完备性和最小性。因此,根据二进制序列集合及定义的集合运算推导出这5个基本算子,其他合成语义算子都可由这5个符号逻辑组合表示。
定义4中的各运算规则具体如下:
●二进制序列S1∩S2与运算规则
二进制序列S1和S2按位进行与操作,位与运算按照以下运算法则:
0∩0=0 0∩1=null 0∩*=0
1∩0=null 1∩1=1 1∩*=1
*∩0=0 *∩1=1 *∩*=*
按位与运算的结果中若存在null,则S1∩S2的结果即为null,否则按位与的结果即为S1∩S2的结果仍为二进制序列。
●二进制序列S1-S2减运算规则
BS减运算:定义序列减运算的结果通常为一个序列集合。
●二进制序列S1∪S2并运算规则
BS并运算:定义序列并运算的结果通常为一个序列集合。
非运算规则
二进制序列按位进行非操作,非运算按照以下运算法则:
按位非的结果即为的结果,结果仍为二进制序列。
●二进制序列集合(BSset)[S]1∩[S]2与运算规则
BSset与运算:定义[S]1∩[S]2={Sk|Sk∈[S]1且Sk∈[S]2}。
●二进制序列集合(BSset)[S]1-[S]2减运算规则
BSset减运算:定义[S]1-[S]2={Sk|Sk∈[S]1且Sk [S]2}。
●二进制序列集合(BSset)[S]1U[S]2并运算规则
BSset并运算:定义[S]1U[S]2={Sk|Sk∈[S]1或Sk∈[S]2}。
非运算规则
对于二进制序列集合的非运算,对集合中的每个元素进行非运算,即
定义5中的各基于二进制序列集合的基础合成语义算子如下:
●PY算子:allpermit策略
PY.[S]Y={**...*};PY.[S]N=null
表示一条新的访问控制策略对于任何的授权项请求都授予允许。
●PN算子:alldeny策略
PN.[S]Y=null;PN.[S]N={**...*}
表示一条新的访问控制策略对于任何的授权项请求都授予拒绝。
●+算子:策略加运算
P C = P 1 + P 2 &DoubleLeftRightArrow; P C . [ S ] Y = P 1 . [ S ] Y &cup; P 2 . [ S ] Y
PC.[S]N=(P1.[S]N-P2.[S]Y)U(P2.[S]N-P1.[S]Y)
表示一条新的访问控制策略对于授权项请求如果被P1允许或者被P2允许,那么它被P1+P2允许;如果被P1或P2拒绝同时不被另一策略允许,那么它被P1+P2拒绝。
●&算子:策略与运算
PC.[S]N=P1.[S]N∩P2.[S]N
表示一条新的访问控制策略对于授权项请求如果被P1允许并且被P2允许,那么它被P1&P2允许;如果同时被P1和P2拒绝,那么它被P1&P2拒绝。
算子:策略非运算
PC.[S]N=P.[S]Y
表示一条新的访问控制策略对于授权项请求如果被P允许,那么它被拒绝;如果被P拒绝,那么它被允许。
根据上述的定义,建立了一个基于BSset的访问控制代数合成框架。主要分为三个部分:基于BSset的策略逻辑建模(PolicyModeling,PM),基于BSset的合成语义算子推导(CompositionAlgebra,CA)和策略合成演算实现(PoliciesComposition,PC)。其中,各部分分别由不同的模块组成,各模块间关系如(附图1)所示。各部分步骤如下。
策略逻辑建模(PM)是指基于BSset对策略进行逻辑抽象,PM的输入是有待合成的访问控制策略,PM的输出作为合成演算(PC)模块的一个输入。具体分为三个步骤:
1.步骤一:策略面向属性层分解
如果用集合S(subject),A(action),O(object)和C(condition)分别表示主体集,动作集,客体集以及动作条件集,那么可将访问控制策略表示为S×A×O×C的一个子集,以实体属性为参数进行策略合成的具体过程是围绕访问主体、客体和访问实施动作等几方面实体展开的。任意一个实体属性都有一个属性名称aT,并且有对应值域dom(aT)中的值。将所有(s,a,o,c)∈S×A×O×C的属性展开,定义aT1,aT2,...,aTk为属性名称,对应的值vi∈dom(aTi)(1≤i≤k),那么访问策略P≡{(aT1,v1),(aT2,v2),...,(aTk,vk)}。在实际的访问控制策略中,策略由策略规则组成,每条规则对同一访问请求给予允许、拒绝的评估结果。按照评估结果,策略可被定义成一个二元组<RY,RN>,其中RY是对访问请求授予允许的规则集合,RN是授予拒绝的集合,特别地,对于一个三值策略{Y,N,NA},不适用的评估结果{NA}可通过RY与RN的交集推得。
根据属性布尔表达式的香农分解:任何一个属性实体均可翻译成一个原子布尔表达式aT*v,*∈(=,<,≤,>,≥),作为一个属性约束。一个策略集中含有有限个不同的原子布尔表达式,依次编码其中xi表示不同的属性约束,取为真或假。进而,一条策略规则就可以被抽象为通过逻辑符号与“∧”和或“∨”连接的原子布尔表达式组成的一个复合布尔表达式。综上,定义一条策略P用两集合表示<[S]Y,[S]N>,其中[S]Y为策略P对请求授予允许的复合布尔表达式,中[S]N为策略P对请求授予拒绝的复合布尔表达式。
2.步骤二:对步骤一的策略进行基于BSset的逻辑转换
根据二进制序列和序列集合的定义,步骤一所得[S]Y和[S]N进一步转换成基于二进制序列集合的逻辑形式。首先,在策略属性中,xi表示第i个属性约束;根据属性布尔表达式的香农分解:若xi值为1表示属性约束xi取值为真;若xi值为0表示属性约束xi取值为假。并且引入*元素,简单将其看作1∨0合并,对于在某条规则中无需评估的原子布尔表达式,xi取值就为*。那么[S]Y和[S]N即转化为,如{1*1*1,1**11*}这类形式。
其次,根据序列集合定义,其元素满足两两不相交,即s1∩s1=nul1,1≠1。显然[S]Y和[S]N并不满足,因此将[S]Y和[S]N集合分别两两元素分离,即进行如下操作:[S]Y=[S]YUφ,[S]N=[S]NUφ。
最后,分别去除[S]Y和[S]N集合之间的公共部分,即先计算[S]Y和[S]N的公共部分[S]and=[S]Y∩[S]N,然后[S]Y和[S]N分别删去公共部分[S]Y=[S]Y-[S]and,[S]N=[S]N-[S]and
3.步骤三:对步骤二进行语义检查和移位化简
经过上述步骤之后,仍然存在布尔表达式本身符合访问控制策略要求,但是实际语义产生矛盾。如存在布尔表达式为role=manager∧role=staff∧...,但实际上一个人的角色不能同时为经理和员工,因此产生了语义的冲突,需要进行删除。具体操作可以将限制约束转换为布尔表达式组,用条件判断语句检测并删除冲突路径。
对于n个原子布尔表达式,其编码顺序有2n种,MTBDD策略树的构造是根据给定的某种编码顺序,无法保证其为最简形式。因此造成了大量的冗余规则。基于二进制序列集合的策略建模和策略树建模方式虽都受限于编码顺序,但是作为二进制序列从x0x1...xn-1到xn-1x0x1...xn-2,只需向右循环移动1bit位,如此往复n次就相当于不断在改变编码顺序。并且对于形如x0...xk...xn-1的两条路径的合并,也可被简化为1∨0=*的合并问题。因此,在基于二进制序列集合策略建模的基础上,在策略集合中通过循环移动bit位,每次寻找形如Si=x0x1...xn-20和Sj=x0x1...xn-21的可合并序列,并合并为x0x1...xn-2*,从而化为最简形式。
例如可以使用如下移位合并算法进行化简,具体操作如下:
第一步对初始二进制序列集合[S],取得集合长度n([S]中所含二进制序列个数)。
第二步遍历集合[S]中的每个元素Si,寻找可与Si合并元素Sj,若Sj存在,则按规则合并Sm=combine(Si,Sj)并将Sm加入结果集合[Sresult];若Sj不存在,则直接将Si加入结果集合[Sresult]。
第三步[Sresult]中所有二进制序列向右1bit位旋转,令[Sresult]→[S]。
第四步循环次数count++,若count达到集合长度n次,则转第五步,若没达到,则转第二步。
第五步输出移位化简结果[S]。
合成语义算子推导(CA)是指用逻辑算子抽象合成语义。具体步骤如下:
4.步骤四:推导基于BSset的合成语义算子
根据实际的策略合成安全需求,组合基于BSset集合运算设计的5个基础语义算子推导出满足合成期望的合成语义算子,即可用代数表达式刻画不同的基于属性运算的策略合成语义。将推导出的合成语义算子作为合成演算(PC)模块的另一个输入。
基于BSset的策略逻辑合成(PC)是实现演算部分。具体的步骤如下:
5.步骤五:根据步骤三和步骤四,用逻辑表达式刻画合成结构
根据步骤三的结果,基于BSset的逻辑建模策略,和步骤四的结果,根据安全需求推导出的合成语义算子,将多策略的合成方式转换为合成逻辑表达式。如某种合成方式转换为:
6.步骤六:对步骤五实现合成演算
根据步骤五的逻辑表达式,对合成空间计算合成结果,实现合成演算,并且对每次合并的结果进行语义冲突检测,去除矛盾的二进制序列,再进行移位合并化简,输出策略合成布尔表达式。最后,二进制形式的策略翻译成语义描述形式的策略,即对于PC的Permit策略,只需要将所有PC.[S]Y翻译得到的表达式用∨连接,对于PC的Deny策略,只需要将所有PC.[S]N翻译得到的表达式用∨连接,就可以得到策略合成的最终结果。
基于上述描述,给出以下应用实例说明:
1.策略面向属性层分解
P1.Rule11:role=manager,act=readorupdate,time=[8am,6pm],effect=Permit.P1.Rule12:role=staff,act=read,effect=Deny.
P2.Rule21:role=managerorstaff,act=read,time=[8am,8pm],effect=Permit.P2.Rule22:role=staff,act=update,effect=Deny.
将原子布尔表达式进行编码如下:
X0 X1 X2 X3 X4 X5
role=manager role=staff act=read act=update 8≤t≤18 18≤t≤20
用基于约束的布尔表达式来定义上述两条策略:
[P1.Y]={role=manager∧(act=read∨act=update)∧8≤t≤18}
[P1.N]={role=staff∧act=read}
[P2.Y]={(role=manager∨role=staff)∧act=read∧8≤t≤20}
[P2.N]={role=staff∧act=update}
[P1.N]={X1∧X2}
[P2.Y]={(X0∨X1)∧X2∧(X4∨X5)}
[P2.N]={X1∧X3}
[P1.Y]={(X2∧X2∧X4)∨(X0∧X3∧X4)}
[P1.N]={X1∧X2}
[P2.Y]={(X0∧X2∧X4)∨(X1∧X2∧X4)∨(X0∧X2∧X5)∨(X1∧X2∧X5)}
[P2.N]={X1∧X3}
2.策略基于BSset逻辑转换
P1.[S]Y={1*1*1*,1**11*}
P1.[S]N={*11***}
P2.[S]Y={1*1*1*,*11*1*,1*1**1,*11**1}
P2.[S]N={*1*1**}
P1.[S]Y=P1.[S]YUφ={1*1*1*,1*011*}
P1.[S]N=P1.[S]NUφ={*11***}
P2.[S]Y=P2.[S]YUφ={1*1*1*,011*1*,1*1*01,011*01}
P2.[S]N=P2.[S]NUφ={*1*1**}
P1.[S]and=P1.[S]Y∩P1.[S]N={111*1*}
P1.[S]Y=P1.[S]Y-P1.[S]and={101*1*,1*011*}
P1.[S]N=P1.[S]N-P1.[S]and={011***,111*0*}
P2.[S]and=P2.[S]Y∩P2.[S]N={11111*,111101}
P2.[S]Y=P2.[S]Y-P2.[S]and={101*1*,101*01,11101*,111001,011*1*,011*01}
P2.[S]N=P2.[S]N-P2.[S]and={01*1**,1101**,111100}
3.语义检查和移位化简
一个人的role不可以既是manager又是staff,即P2.[S]Y的111001,P2.[S]N的1101**等等出现语义冲突,删除冲突元素后为:
P1.[S]Y={101*1*,1*011*}
P1.[S]N={011***}
P2.[S]Y={101*1*,101*01,011*1*,011*01}
P2.[S]N={01*1**}
这里的移位化简为其自身,即此实例策略建模过程中不存在冗余路径。
4.根据安全需求,推导合成语义算子
组合基于BSset集合运算<U,∩,-,->设计的5个基础语义算子<PY,PN,+,&,->,根据实际的安全需求,推导出满足合成期望的合成语义算子。
5.用逻辑表达式刻画合成方式,对形式化策略空间计算合成结果
如求PC=P1+P2,步骤如下:
1)PC.[S]Y=P1.[S]YUP2.[S]Y
={101*1*,1*011*}U{101*1*,101*01,011*1*,011*01}
={101*1*,1*011*,101*01,011*1*,011*01}
2)P1.[S]N-P2.[S]Y={011***}-{101*1*,101*01,011*1*,011*01}
={011*00}
P2.[S]N-P1.[S]Y={01*1**}-{101*1*,1*011*}
={01*1**}
PC.[S]N=(P1.[S]N-P2.[S]Y)U(P2.[S]N-P1.[S]Y)
={011*00,0101**,01111*,011101}
∴PC=P1+P2的结果为:
PC.[S]Y={101*1*,1*011*,101*01,011*1*,011*01}
PC.[S]N={011*00,0101**,01111*,011101}
6.对合并结果进行语义检测以及移位化简,将合成结果布尔表达式翻译成原意
首先,经过语义冲突检测得到,
PC.[S]Y={101*1*,1*011*,101*01,011*1*,011*01}
PC.[S]N={011*00,0101**}
然后,进行“旋转合并”,可以看到二进制序列集合不变。
最后,每个二进制序列得到如下翻译:
PC.[S]Y
PC.[S]N
对于PC的Permit策略,只需要将所有PC.[S]Y翻译得到的表达式用∨连接,对于PC的Deny策略,只需要将所有PC.[S]N翻译得到的表达式用∨连接,就可以得到策略合成的最终结果。
虽然移位合并操作在上述实例里没有明显的效果,但是在实际大规模策略合成以及规则集多策略中有很重要的作用,下面简述一个移位操作的例子。
[S]={101*1,101*0,111*1,111*0,0*001,1*001}
最后,[S]={1*1**,**001}
从上面的例子中可以看出,原先的[S]集合的长度为6,也就是说它所对应的布尔表达式还有6个析取分量,而进行“移位合并”之后,[S]集合的长度减小为2,更重要的是,在转换的过程中,[S]集合所代表的布尔表达式的语义并没有改变。
本发明采用二进制序列集合元素对基于属性的访问控制策略进行逻辑建模,这种建模方式可被计算机程序直接实现。与Bonatti等基于逻辑的代数模型相比,本发明自动解决了逻辑程序转换和评估技术限制,与MTBDD策略树的策略代数相比,消去了对于布尔表达式评估顺序依赖的特性同时减小了系统规模,并且扩展了传统的合成语义算子,可支持更广泛的合成语义和实际应用。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

Claims (5)

1.一种基于二进制序列集合的访问控制策略合成方法,其特征在于包括如下步骤:
步骤一:策略面向属性层分解;
用集合S(subject),A(action),O(object)和C(condition)分别表示主体集,动作集,客体集以及动作条件集,将访问控制策略表示为S×A×O×C的一个子集,以实体属性为参数进行策略合成是围绕访问主体、客体和访问实施动作展开的;任意一个实体属性都有一个属性名称aT,并且有对应值域dom(aT)中的值;将所有(s,a,o,c)∈S×A×O×C的属性展开,定义aT1,aT2,…,aTk为属性名称,对应的值vi∈dom(aTi)(1≤i≤k),访问策略P≡{(aT1,v1),(aT2,v2),…,(aTk,vk)};策略由策略规则组成,每条规则对同一访问请求给予允许、拒绝的评估结果,按照评估结果,策略被定义成一个二元组<RY,RN>,其中RY是对访问请求授予允许的规则集合,RN是授予拒绝的集合,对于一个三值策略{Y,N,NA},不适用的评估结果{NA}通过RY与RN的交集推得;
根据属性布尔表达式的香农分解:任何一个属性实体均能翻译成一个原子布尔表达式aT*v,*∈(=,<,≤,>,≥),作为一个属性约束;一个策略集中含有有限个不同的原子布尔表达式,依次编码其中xi表示不同的属性约束,取为真或假,一条策略规则就能被抽象为通过逻辑符号与“∧”和或“∨”连接的原子布尔表达式组成的一个复合布尔表达式;定义一条策略P用两集合表示<[S]Y,[S]N>,其中[S]Y为策略P对请求授予允许的复合布尔表达式,[S]N为策略P对请求授予拒绝的复合布尔表达式;
步骤二:对步骤一的策略进行基于二进制序列集合BSset的逻辑转换;
根据二进制序列和序列集合的定义,步骤一所得[S]Y和[S]N进一步转换成基于二进制序列集合的逻辑形式;首先,在策略属性中,xi表示第i个属性约束;根据属性布尔表达式的香农分解:若xi值为1表示属性约束xi取值为真;若xi值为0表示属性约束xi取值为假;并且引入*元素,将其看作1∨0合并,对于在某条规则中无需评估的原子布尔表达式,xi取值就为*;[S]Y和[S]N即转化为{1*1*1,1**11*}这类形式;
其次,根据序列集合定义,其元素满足两两不相交,即Si∩Sj=null,i≠j,显然[S]Y和[S]N并不满足,因此将[S]Y和[S]N集合分别两两元素分离,即进行如下操作:[S]Y=[S]YUφ,[S]N=[S]NUφ;
最后,分别去除[S]Y和[S]N集合之间的公共部分,即先计算[S]Y和[S]N的公共部分[S]and=[S]YI[S]N,然后[S]Y和[S]N分别删去公共部分[S]Y=[S]Y-[S]and,[S]N=[S]N-[S]and
步骤三:对步骤二结果进行语义检查和移位化简;
经过上述步骤之后,仍然存在布尔表达式本身符合访问控制策略要求,但是实际语义产生矛盾,需要进行删除,将限制约束转换为布尔表达式组,用条件判断语句检测并删除冲突路径;
对于n个原子布尔表达式,其编码顺序有2n种,MTBDD策略树的构造是根据给定的某种编码顺序,无法保证其为最简形式,造成了大量的冗余规则;基于二进制序列集合的策略建模和策略树建模方式虽都受限于编码顺序,但是作为二进制序列从x0x1...xn-1到xn-1x0x1...xn-2,只需向右循环移动1bit位,如此往复n次就相当于不断在改变编码顺序,并且对于形如x0...xk...xn-1的两条路径的合并,也能被简化为1∨0=*的合并问题;因此,在基于二进制序列集合策略建模的基础上,在策略集合中通过循环移动bit位,每次寻找形如Si=x0x1...xn-20和Sj=x0x1...xn-21的可合并序列,并合并为x0x1...xn-2*,从而化为最简形式;
使用如下移位合并算法进行化简,具体操作如下:
第一步对初始二进制序列集合[S],取得集合长度n,[S]中所含二进制序列个数;
第二步遍历集合[S]中的每个元素Si,寻找可与Si合并元素Sj,若Sj存在,则按规则合并Sm=combine(Si,Sj),并将Sm加入结果集合[Sresult];若Sj不存在,则直接将Si加入结果集合[Sresult];
第三步[Sresult]中所有二进制序列向右1bit位旋转,令[Sresult]→[S];
第四步循环次数count++,若count达到集合长度n次,则转第五步,若没达到,则转第二步;
第五步输出移位化简结果[S];
步骤四:推导基于二进制序列集合BSset的合成语义算子;
步骤五:根据步骤三和步骤四,用逻辑表达式刻画合成结构;
步骤六:对步骤五实现合成演算,输出策略合成结果。
2.根据权利要求1所述的一种基于二进制序列集合的访问控制策略合成方法,其特征是,所述的步骤四,具体为:根据实际的策略合成安全需求,组合基于BSset集合运算设计的5个基础语义算子推导出满足合成期望的合成语义算子;其中5个基础语义算子如下:
PY算子:allpermit策略;
PN算子:alldeny策略;
+算子:策略加运算;
&算子:策略与运算;
算子:策略非运算。
3.根据权利要求1所述的一种基于二进制序列集合的访问控制策略合成方法,其特征是,所述的步骤五,具体为:根据步骤三的结果,基于BSset的逻辑建模策略,和步骤四的结果,根据安全需求推导出的合成语义算子,将多策略的合成方式转换为合成逻辑表达式。
4.根据权利要求1所述的一种基于二进制序列集合的访问控制策略合成方法,其特征是,所述的步骤六,具体为:根据步骤五的逻辑表达式,对合成空间计算合成结果,实现合成演算,并且对每次合并的结果进行语义冲突检测,去除矛盾的二进制序列,再进行移位合并化简,输出策略合成布尔表达式并进一步转换成语义描述形式。
5.根据权利要求1-4任一项所述的一种基于二进制序列集合的访问控制策略合成方法,其特征是,所述BSset是指一个二进制序列集合[S],是由n个长度相等的二进制序列所组成的集合,[S]={S1,S2,...,Sn-1}表示布尔表达式S1∨S2∨...∨Sn-1,且Si∩Sj=null(i≠j,1≤i,j≤n),其中,每个Si表示析取布尔表达式x0∧x1∧...∧xn-1
CN201210364329.7A 2012-09-26 2012-09-26 一种基于二进制序列集合的访问控制策略合成方法 Active CN102932328B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210364329.7A CN102932328B (zh) 2012-09-26 2012-09-26 一种基于二进制序列集合的访问控制策略合成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210364329.7A CN102932328B (zh) 2012-09-26 2012-09-26 一种基于二进制序列集合的访问控制策略合成方法

Publications (2)

Publication Number Publication Date
CN102932328A CN102932328A (zh) 2013-02-13
CN102932328B true CN102932328B (zh) 2016-01-13

Family

ID=47647030

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210364329.7A Active CN102932328B (zh) 2012-09-26 2012-09-26 一种基于二进制序列集合的访问控制策略合成方法

Country Status (1)

Country Link
CN (1) CN102932328B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108712369B (zh) * 2018-03-29 2022-01-07 中国工程物理研究院计算机应用研究所 一种工业控制网多属性约束访问控制决策系统和方法
CN109033856B (zh) * 2018-07-19 2020-08-18 华中科技大学 一种访问控制策略合成方法及系统
CN109753819B (zh) * 2018-12-26 2021-08-24 北京天融信网络安全技术有限公司 一种访问控制策略的处理方法和装置
CN112565167A (zh) * 2019-09-26 2021-03-26 华为数字技术(苏州)有限公司 一种访问控制列表acl的检测方法及网络设备
CN112860266B (zh) * 2021-04-07 2022-03-18 南京大学 一种基于汇编表征的智能化二进制编译信息推断方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101339591A (zh) * 2008-08-29 2009-01-07 中国科学院软件研究所 一种xacml策略规则检测方法
CN101771683A (zh) * 2009-01-07 2010-07-07 北京航空航天大学 访问控制策略生成方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101339591A (zh) * 2008-08-29 2009-01-07 中国科学院软件研究所 一种xacml策略规则检测方法
CN101771683A (zh) * 2009-01-07 2010-07-07 北京航空航天大学 访问控制策略生成方法及装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
A Novel Policy Integration Management Model Based on Mapping Mechanism for;Weiping Peng等;《IEEE》;20111106;第453-456页 *
Security Policy Integration and Conflict Reconciliation for Data Integration across;Beneyaz A.Begum等;《IEEE》;20100919;1-6页 *
基于属性的访问控制策略合成代数;林莉等;《软件学报》;20090228;第20卷(第2期);第403-414页 *
面向WS-BPEL的访问控制策略合成研究;陈建飞等;《计算机应用于软件》;20120331;第29卷(第3期);第195-197、215页 *
黄廷森等.网格环境下基于属性的访问控制策略合成研究.《计算机应用研究》.2011,第28卷(第7期), *

Also Published As

Publication number Publication date
CN102932328A (zh) 2013-02-13

Similar Documents

Publication Publication Date Title
CN102932328B (zh) 一种基于二进制序列集合的访问控制策略合成方法
Bodirsky et al. Schaefer's theorem for graphs
Lam et al. A relational notation for state transition systems
Wijsen Certain conjunctive query answering in first-order logic
Rauzy A new methodology to handle Boolean models with loops
Kanovich The complexity of Horn fragments of linear logic
Bresolin et al. An optimal decision procedure for right propositional neighborhood logic
Arimura et al. Polynomial-delay and polynomial-space algorithms for mining closed sequences, graphs, and pictures in accessible set systems
Coppo et al. Functional characterization of some semantic equalities inside λ-calculus
Chehreghani et al. OInduced: an efficient algorithm for mining induced patterns from rooted ordered trees
Montagna et al. Arithmetical complexity of first-order predicate fuzzy logics over distinguished semantics
Arshad et al. Security of graph data: Hashing schemes and definitions
Hartmann et al. Multi-valued dependencies in the presence of lists
Molinaro et al. Polynomial time queries over inconsistent databases with functional dependencies and foreign keys
Straubing Algebraic Characterization of the Alternation Hierarchy in FO^ 2 [<] on Finite Words
Armstrong et al. Algebras for program correctness in Isabelle/HOL
Degtyarev et al. Towards first-order temporal resolution
Belussi et al. GeoUML: A geographic conceptual model defined through specialization of ISO TC211 standards
Pelagatti et al. From the conceptual design of spatial constraints to their implementation in real systems
Kacprzak et al. Unbounded model checking for knowledge and time
Sistla et al. Analysis of dynamic policies
Belardinelli et al. Interactions between time and knowledge in a first-order logic for multi-agent systems
Haan et al. On the parameterized complexity of finding small unsatisfiable subsets of CNF formulas and CSP instances
Madelaine Universal structures and the logic of forbidden patterns
Liau et al. Reasoning about relational granulation in modal logics

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant