一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

可自定义的多态访问控制模型及其工作方法与流程

2022-03-31 06:34:00 来源:中国专利 TAG:


1.本发明涉及数据安全领域,特别涉及可自定义的多态访问控制模型及其工作方法。


背景技术:

2.随着社会的发展,我们已经进入到了一个信息爆炸的时代,通过各种渠道产生的数据也与日俱增,数据已经渗透到了社会生活的各个领域,海量的数据被使用和分析,这其中就包含了大量的隐私数据,隐私数据一旦泄露,带来的危害将不可估量,因此人们也越来越重视数据的安全问题。
3.现有的数据安全防护技术不够灵活,访问控制能力单一,跨平台能力弱,无法根据不同场景使用不同的访问控制功能进行数据保护。


技术实现要素:

4.本发明的目的在于克服现有技术的缺点与不足,提供可自定义的多态访问控制模型,该模型能根据管理员需求灵活地提供不同的访问控制功能,解决目前复杂场景下的数据的存取安全问题,能够解决现有单一访问模型防护不够灵活、控制能力单一的问题,满足复杂场景的要求。本发明以“属性”(包括简单属性、复杂属性及属性的层次关系等)为基础,提供用户自定义模块,管理员自定义模块,使模型具有不同存取控制模型的表达能力,具备类似程序语言中“多态”的特性,在同一应用场景下呈现多种访问控制模型的能力,相较于传统的多模型融合,本发明统一使用“属性”这一概念去表达其他元素,通过采用“归类-评估-权限缩减”多层架构,每层架构提供不同的功能,从而保留了模型的可审计,方便管理,细粒度控制等优势,同时本发明不针对具体的平台,是一个通用的访问控制模型,方便使用者跨平台使用,降低学习成本。
5.本发明的另一目的在于提供可自定义的多态访问控制模型的工作方法。
6.本发明的目的通过以下的技术方案实现:
7.可自定义的多态访问控制模型,包括简单属性管理模块、复杂属性管理模块、类别模块、策略模块、权限缩减模块;其中,
8.简单属性管理模块,用于从元数据库读取主体和客体的属性,并将属性信息传递到类别模块和权限缩减模块供其使用;
9.所述简单属性管理模块读取的属性定义如下:attr:{name,value,tree,type},其中name代表属性的名称,属性的名称唯一,value代表属性值,tree代表该属性处于哪种属性树中,type表示属性值是集合类型还是原子类型;在读取请求涉及的主体和客体的属性之后,简单属性管理模块还会对主体和客体进行包装,将读取到的属性和相应的主体/客体绑定起来。
10.复杂属性管理模块,用于从元数据库读取属性树信息,并且对其进行树化,存储在内存中,处理后的属性树信息将用于类别模块和权限缩减模块评估时使用;
11.所述属性树在元数据库采用二元组集合的形式进行存储,具体形式如下:{《p1,c1》,《p2,c2》,《p3,c3》,《p4,c4》},属性树以一系列二元组《parent,children》来表示,其中parent代表父节点,children代表子节点;在复杂属性管理模块会维护一张映射图,其中key是属性树的名称,value是根据二元组集合树化后键所对应的属性树,如图2所示。
12.类别模块,用于从元数据库读取相应的分类规则,根据从简单属性管理模块和复杂属性管理模块获取到的属性信息,判断相应的分类规则是否满足,从而给主体和客体分配相应的类别;
13.所述类别模块读取的分类规则定义如下:
14.category_rule:{category,type,optimistic_matcher,negative_matcher};
15.其中category是匹配该规则后会被分配的类别,type标记了该类别是针对主体,客体还是通用的;其中optimistic_matcher代表正向匹配单元集合,当其中每个匹配单元结果都为true时,整个集合的结果才为true,negative_matcher代表负向匹配单元集合,当其中任意一个匹配单元结果为true时,整个集合的结果就为true;集合中的每个匹配单元会对主体/客体的属性进行评估,返回一个布尔值,对于optimistic_matcher和negative_matcher中匹配单元返回的多个布尔值,按照归类算法进行整合,最终返回一个布尔值,布尔值为true代表主体/客体可以获取该规则针对的类别category。
16.所述匹配单元定义如下:
17.matcher:{attribute,operate,refrence,express};
18.其中attribute是该匹配单元评估的属性,operate是匹配单元使用的运算符,包括算术运算符,逻辑运算符和集合运算符等,特别的,本方法提供了额外定义的针对树状结构的运算符《《,》》,《《=,》》=,》《,例如a《《b是一个express表达式,其中《《代表a和b在同一个属性树中,并且a属于b的子节点,》》代表a是b的父节点,《《=代表a是b的子节点或等于b,》》=代表a是b的父节点或等于b,》《代表a是b的子节点,或父节点或等于b本身;refrence表示该属性的参考值,只有当待评估属性和参考值通过运算符成立的时候,matcher匹配结果才会返回true,最后的express代表该匹配单元的评估表达式,评估表达式是待评估属性attribute,运算符operate,参考值refrence的结合,express给出了attribute,operate,refrence三者完整的组合形式;mathcer匹配结果有三种,true代表匹配成功,false代表匹配失败,lack代表matcher评估的属性在实际运行中缺少值,无法进行匹配。
19.所述归类算法对主体/客体的属性为主体/客体分配相应的类别,主体/客体可能同时拥有多个类别;分类算法流程图如图4所示,所述归类算法描述如下:
20.输入:主体/客体;
21.输出:具备类别集合的主体/客体;
22.开始:
23.1)根据主体/客体名称从属性中心获取包装好的主体/客体信息,其中包含了主体/客体绑定的属性信息;
24.2)归类规则分为主体归类规则,客体归类规则和通用归类规则,从元数据库中读取所有的主体/客体归类规则;
25.3)顺序遍历所有规则,针对每条规则进行评估:
26.3.1)遍历评估规则中的negative_matcher匹配单元集合,针对每个匹配单元进行
评估;
27.3.1.1)若匹配单元匹配成功,则转步骤4);
28.3.1.2)若匹配单元匹配失败或匹配结果为lack,则转步骤3.2);
29.3.2)判断negative_matcher匹配单元集合中的匹配单元是否都完成评估;
30.3.2.1)若集合中的匹配单元未全部完成评估,转步骤3.1);
31.3.2.2)若集合中的匹配单元全部完成评估,转步骤3.3);
32.3.3)遍历评估规则中的optimistic_matcher匹配单元集合,针对每个匹配单元进行评估;
33.3.3.1)若匹配单元匹配失败或匹配结果为lack,则转步骤4);
34.3.3.2)若匹配单元匹配成功,转步骤3.4);
35.3.4)判断optimistic_matcher匹配单元集合中的匹配单元是否都完成评估;
36.3.4.1)若集合中的匹配单元未全部完成评估,转步骤3.3);
37.3.4.2)若集合中的匹配单元全部完成评估,将该规则对应的类别分配给主体/客体,同时转步骤4);
38.4)判断所有归类规则是否遍历完成:
39.4.1)若没有遍历完,转步骤3);
40.4.2)若已经遍历完,转步骤5);
41.5)输出归类后的主体/客体,转步骤6);
42.6)结束。
43.策略模块,用于从元数据库读取相关的策略条目,根据之前类别模块给主体和客体分配的类别,判断是否满足策略要求,从而评估是否放行请求;
44.所述策略模块读取的策略定义如下:p:{name,sub_category,res_category,operate},其中name是策略名称,方法规定策略的名称唯一,sub_category是主体具备的类别,res_category表示的是客体具备的类别,operate是操作集合,特别的,operate:{op1,op2,...},其中opn是具体的一种操作,策略p代表具备主体类别sub_category的主体可以对具备客体类别res_category的客体进行操作集合operate中的操作。
45.权限缩减模块,用于从元数据库读取相应的权限缩减规则,根据权限缩减规则对请求进行评估,不满足规则的请求将会被拒绝。
46.所述权限缩减模块读取的权限缩减规则定义如下:rerule:{name,is_strict,optimistic_matcher,negative_matcher},其中name代表权限缩减规则名称,is_strict代表该规则是否严格;所述严格是指在评估过程中,如果一个匹配单元中客体待评估属性存在的同时主体待评估属性缺失的情况发生,模型将会驳回请求;optimistic_matcher代表正向匹配单元集合,negative_matcher代表负向匹配单元集合。
47.权限缩减模块中,所述匹配单元集合通过negative_matcher匹配单元评估算法、optimistic_matcher匹配单元评估算法进行评估,算法避免了属性缺失产生异常的情况;
48.所述negative_matcher匹配单元评估算法,描述如下:
49.输入:主体sub,客体res,negative_matcher的匹配单元,规则的is_strict;
50.输出:评估结果;
51.开始:
52.1)输入主体信息,客体信息,negative_matcher的匹配单元,规则的is_strict;
53.2)若匹配单元初步匹配结果为true,则转步骤5);
54.3)若匹配单元初步匹配结果为false,则转步骤6);
55.4)若匹配单元初步匹配结果为lack,则判断规则的is_strict:
56.4.1)若is_strict为false,即该规则为不严格规则,那么认为匹配单元匹配结果为false,转步骤6);
57.4.2)若is_strict为true,即该规则为严格规则,那么分析属性缺失的具体情况;
58.4.2.1)若主体属性缺失,客体属性缺失,转步骤6);
59.4.2.2)若主体属性缺失,客体属性不缺失,转步骤5);
60.4.2.3)若主体属性不缺失,客体属性缺失,转步骤6);
61.5)输出true,转步骤7);
62.6)输出false,转步骤7);
63.7)结束;
64.所述optimistic_matcher匹配单元评估算法,描述如下:
65.输入:主体sub,客体res,optimistic_matcher的匹配单元,规则的is_strict;
66.输出:评估结果;
67.开始:
68.1)输入主体信息,客体信息,optimistic_matcher的匹配单元,规则的is_strict;
69.2)若匹配单元初步匹配结果为true,则转步骤5);
70.3)若匹配单元初步匹配结果为false,则转步骤6);
71.4)若匹配单元初步匹配结果为lack,则判断规则的is_strict:
72.4.1)若is_strict为false,即该规则为不严格规则,那么认为匹配单元匹配结果为true,转步骤5);
73.4.2)若is_strict为true,即该规则为严格规则,那么分析属性缺失的具体情况;
74.4.2.1)若主体属性缺失,客体属性缺失,转步骤5);
75.4.2.2)若主体属性缺失,客体属性不缺失,转步骤6);
76.4.2.3)若主体属性不缺失,客体属性缺失,转步骤5);
77.5)输出true,转步骤7);
78.6)输出false,转步骤7);
79.7)结束。
80.本发明的另一目的通过以下的技术方案实现:
81.可自定义的多态访问控制模型的工作方法,包括以下步骤:
82.管理员创建主体/客体时,模型根据主体/客体信息和归类规则,对主体/客体进行静态归类;
83.主体发送访问请求;
84.管理员抽取三元组;
85.可自定义的多态访问控制模型结合类别信息对三元组进行动态评估:归类之后主体/客体就绑定了相应的类别,模型运行时接受的请求用一个三元组《sub,res,op》表示,其中sub代表主体名称,res代表客体名称,op代表主体希望对客体进行的操作,方法规定主体
和客体的名称唯一,根据该三元组,提取出主体,客体,操作信息,属性中心根据主体,客体去数据库中获取主体客体信息,并将属性信息组装进去,主体和客体的定义如下:
86.sub:{name,category_list,attrs_list},其中name代表主体的名称,category_list代表类别集合,category_list={c1,c2,c3...},其中cn表示一个具体的类别,attrs_list代表该主体具备的属性集合,属性集合定义如下:attrs_list={a1,a2,a3...};
87.res:{name,category_list,attrs_list},其中name代表客体的名称,category_list代表类别集合,attrs_list代表该客体具备的属性集合;
88.op是主体希望对客体的操作,流程描述如下:
89.输入:一个三元组《sub,res,op》;
90.输出:请求评估结果;
91.开始:
92.1)用户发送一个三元组请求;
93.2)模型根据三元组请求中的主体名称和客体名称从元数据库读取主体和客体的相应信息;
94.3)属性中心根据主体和客体的信息从元数据库中读取相应的属性信息,并将属性和主体/客体进行绑定,将封装好的主体,客体,三元组请求发送至策略中心;
95.4)策略中心从元数据读取策略,按照策略评估算法进行评估;
96.4.1)若评估结果为true,则转步骤5);
97.4.2)若评估结果为false,则转步骤7);
98.5)请求到达权限缩减中心,权限缩减中心从元数据库中读取权限缩减规则,按照权限缩减规则评估算法进行评估;
99.5.1)若评估结果为true,则转步骤6);
100.5.2)若评估结果为false,则转步骤7);
101.6)返回true,转步骤8);
102.7)返回false,转步骤8);
103.8)结束;
104.根据评估结果,驳回或者放行请求。
105.本发明与现有技术相比,具有如下优点和有益效果:
106.(1)本发明是一个通用的模型,通过抽象输入为请求三元组,输出为true或者false,保证输入输出数据的通用性,同时使用mysql存储模型当中的使用的元数据,不依赖于具体的平台,具备跨平台的通用性。
107.(2)本发明提供了一个多态的访问控制模型,所谓多态,就是可以根据管理员制定的不同组件表现出不同的访问控制功能,通过使用“属性”这一概念去描述如rbac,acl,pbac等模型中涉及的元素,依托于模型的多阶段评估,达到展现其他模型访问控制功能的目的,相较于单一模型具备具备更多灵活性和多功能性。
108.(3)本发明对策略的制定和权限缩减规则的制定进行了限制,同时在评估过程中使用索引减少参与评估的策略和规则,保证了模型评估的速度,同时权限缩减时间不会因为规则的增加呈线性增加,而是保证o(1)的复杂度。
109.(4)本发明加入了类别管理中心,通过对主体/客体进行分类增加模型管理的简便
性,同时加入了权限缩减中心等模块,通过对主体权限的进一步评估提供更细粒度的控制,相较于传统的abac和rbac融合具备更好的可审计性和可管理性。
附图说明
110.图1为本发明所述可自定义的多态访问控制模型的结构示意图。
111.图2为本发明所述复杂属性管理模块的工作示意图。
112.图3为本发明所述可自定义的多态访问控制模型的工作方法的流程图。
113.图4为本发明所述分类算法流程图。
114.图5为本发明所述可自定义的多态访问控制模型评估流程图。
115.图6为本发明所述策略评估算法流程图。
116.图7为本发明所述权限缩减规则评估算法流程图。
117.图8为本发明所述negative_matcher匹配单元评估算法的流程图。
118.图9为本发明所述optimistic_matcher匹配单元评估算法的流程图。
具体实施方式
119.下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
120.如图1,可自定义的多态访问控制模型,包括简单属性管理模块、复杂属性管理模块、类别模块、策略模块、权限缩减模块;其中,
121.简单属性管理模块,用于从元数据库读取主体和客体的属性,并将属性信息传递到类别模块和权限缩减模块供其使用;
122.所述简单属性管理模块读取的属性定义如下:attr:{name,value,tree,type},其中name代表属性的名称,属性的名称唯一,value代表属性值,tree代表该属性处于哪种属性树中,type表示属性值是集合类型还是原子类型;在读取请求涉及的主体和客体的属性之后,简单属性管理模块还会对主体和客体进行包装,将读取到的属性和相应的主体/客体绑定起来。
123.复杂属性管理模块,用于从元数据库读取属性树信息,并且对其进行树化,存储在内存中,处理后的属性树信息将用于类别模块和权限缩减模块评估时使用;
124.所述属性树在元数据库采用二元组集合的形式进行存储,具体形式如下:{《p1,c1》,《p2,c2》,《p3,c3》,《p4,c4》},属性树以一系列二元组《parent,children》来表示,其中parent代表父节点,children代表子节点;在复杂属性管理模块会维护一张映射图,其中key是属性树的名称,value是根据二元组集合树化后键所对应的属性树,如图2所示。
125.类别模块,用于从元数据库读取相应的分类规则,根据从简单属性管理模块和复杂属性管理模块获取到的属性信息,判断相应的分类规则是否满足,从而给主体和客体分配相应的类别;
126.所述类别模块读取的分类规则定义如下:
127.category_rule:{category,type,optimistic_matcher,negative_matcher};
128.其中category是匹配该规则后会被分配的类别,type标记了该类别是针对主体,客体还是通用的;其中optimistic_matcher代表正向匹配单元集合,当其中每个匹配单元
结果都为true时,整个集合的结果才为true,negative_matcher代表负向匹配单元集合,当其中任意一个匹配单元结果为true时,整个集合的结果就为true;集合中的每个匹配单元会对主体/客体的属性进行评估,返回一个布尔值,对于optimistic_matcher和negative_matcher中匹配单元返回的多个布尔值,按照归类算法进行整合,最终返回一个布尔值,布尔值为true代表主体/客体可以获取该规则针对的类别category。
129.所述匹配单元定义如下:
130.matcher:{attribute,operate,refrence,express};
131.其中attribute是该匹配单元评估的属性,operate是匹配单元使用的运算符,包括算术运算符,逻辑运算符和集合运算符等,特别的,本方法提供了额外定义的针对树状结构的运算符《《,》》,《《=,》》=,》《,例如a《《b是一个express表达式,其中《《代表a和b在同一个属性树中,并且a属于b的子节点,》》代表a是b的父节点,《《=代表a是b的子节点或等于b,》》=代表a是b的父节点或等于b,》《代表a是b的子节点,或父节点或等于b本身;refrence表示该属性的参考值,只有当待评估属性和参考值通过运算符成立的时候,matcher匹配结果才会返回true,最后的express代表该匹配单元的评估表达式,评估表达式是待评估属性attribute,运算符operate,参考值refrence的结合,express给出了attribute,operate,refrence三者完整的组合形式;mathcer匹配结果有三种,true代表匹配成功,false代表匹配失败,lack代表matcher评估的属性在实际运行中缺少值,无法进行匹配。
132.策略模块,用于从元数据库读取相关的策略条目,根据之前类别模块给主体和客体分配的类别,判断是否满足策略要求,从而评估是否放行请求;
133.所述策略模块读取的策略定义如下:p:{name,sub_category,res_category,operate},其中name是策略名称,方法规定策略的名称唯一,sub_category是主体具备的类别,res_category表示的是客体具备的类别,operate是操作集合,特别的,operate:{op1,op2,...},其中opn是具体的一种操作,策略p代表具备主体类别sub_category的主体可以对具备客体类别res_category的客体进行操作集合operate中的操作。
134.权限缩减模块,用于从元数据库读取相应的权限缩减规则,根据权限缩减规则对请求进行评估,不满足规则的请求将会被拒绝。
135.所述权限缩减模块读取的权限缩减规则定义如下:rerule:{name,is_strict,optimistic_matcher,negative_matcher},其中name代表权限缩减规则名称,is_strict代表该规则是否严格;所述严格是指在评估过程中,如果一个匹配单元中客体待评估属性存在的同时主体待评估属性缺失的情况发生,模型将会驳回请求;optimistic_matcher代表正向匹配单元集合,negative_matcher代表负向匹配单元集合。
136.如图3,可自定义的多态访问控制模型的工作方法,包括以下步骤:
137.管理员创建主体/客体时,模型根据主体/客体信息和归类规则,对主体/客体进行静态归类。
138.主体传入访问请求;
139.管理员抽取三元组;
140.可自定义的多态访问控制模型结合类别信息对三元组进行评估;
141.根据评估结果,驳回或者放行请求。
142.进一步地,可自定义的多态访问控制模型,其整体流程分为两个阶段,第一个阶段
为分类阶段,主体/客体在创建时会自动进行归类,该阶段结束后主体/客体将会被分配相应的类别,类似于初始化。
143.第二阶段为请求评估阶段,归类之后的主体发起请求后会经过策略评估-》权限缩减两个流程,请求经过策略中心,根据相应的策略进行评估,评估完成后会根据权限缩减规则,通过对主体属性进行评估,进一步确定请求的合法性。
144.该模型针对需要操作数据库的应用场景,如典型的web项目,该模型在业务层使用,在应用层和数据库之间提供一层访问控制防护,当用户的请求经过抽象后调用模型,模型会对该请求进行评估,判断请求是否有相应权限对数据库进行相应操作,并且驳回非法请求,模型中包含了多个可自定义的组件,管理员可以根据自己的需求自定义这些组件,模型会根据管理员定义组件的不同表现出不同的访问控制功能,类似编程语言当中的多态概念。
145.结合具体的应用场景,当在一个web项目种使用该模型,模型首先会在主体/客体创建时获取系统中的主体/客体的相关信息,根据归类规则使用归类算法对主体/客体进行归类,为每个主体/客体赋予类别,归类结束后,主体可以随时发起请求,如果主体发起请求,管理员需要将请求抽象为一个《主体,客体,操作》的三元组传入模型中,模型会对该三元组使用动态评估算法进行评估,之前分配的类别信息会参与到评估过程中,评估结束后,模型会返回布尔类型的评估结果,如果结果为false,代表该请求非法,进行驳回,反之将请求放行,总体流程图如图3所示。
146.模型是一个独立模型,运行过程中不依赖具体平台,是一个跨平台通用的模型。在实际运用场景中管理员只需要向模型传入一个三元组输入,模型会返回一个输出,管理员可以根据这个输出决定下一步的操作。
147.当管理员在模型中创建好主体和客体之后,模型会对创建好的主体和客体进行归类,具体算法如下:
148.1、归类算法
149.归类算法针对主体/客体的属性为主体/客体分配相应的类别,主体/客体可能同时拥有多个类别。算法流程图如图4所示,算法描述如下:
150.输入:主体/客体
151.输出:具备类别集合的主体/客体
152.开始:
153.1)根据主体/客体名称从属性中心获取包装好的主体/客体信息,其中包含了主体/客体绑定的属性信息。
154.2)归类规则分为主体归类规则,客体归类规则和通用归类规则,从元数据库中读取所有的主体/客体归类规则。
155.3)顺序遍历所有规则,针对每条规则进行评估
156.3.1)遍历评估规则中的negative_matcher匹配单元集合,针对每个匹配单元进行评估
157.3.1.1)若匹配单元匹配成功,则转4);
158.3.1.2)若匹配单元匹配失败或匹配结果为lack,则转3.2);
159.3.2)判断negative_matcher匹配单元集合中的匹配单元是否都完成评估
160.3.2.1)若集合中的匹配单元未全部完成评估,转3.1);
161.3.2.2)若集合中的匹配单元全部完成评估,转3.3);
162.3.3)遍历评估规则中的optimistic_matcher匹配单元集合,针对每个匹配单元进行评估
163.3.3.1)若匹配单元匹配失败或匹配结果为lack,则转4);
164.3.3.2)若匹配单元匹配成功,转3.4);
165.3.4)判断optimistic_matcher匹配单元集合中的匹配单元是否都完成评估
166.3.4.1)若集合中的匹配单元未全部完成评估,转3.3);
167.3.4.2)若集合中的匹配单元全部完成评估,将该规则对应的类别分配给主体/客体,同时转4);
168.4)判断所有归类规则是否遍历完成
169.4.1)若没有遍历完,转3);
170.4.2)若已经遍历完,转5);
171.5)输出归类后的主体/客体,转步骤6;
172.6)结束。
173.2、动态评估流程
174.归类之后主体/客体就绑定了相应的类别,模型运行时接受的请求用一个三元组《sub,res,op》表示,其中sub代表主体名称,res代表客体名称,op代表主体希望对客体进行的操作,方法规定主体和客体的名称唯一,根据该三元组,提取出主体,客体,操作信息,属性中心根据主体,客体去数据库中获取主体客体信息,并将属性信息组装进去,主体和客体的定义如下:
175.sub:{name,category_list,attrs_list},其中name代表主体的名称,category_list代表类别集合,category_list={c1,c2,c3...},其中cn表示一个具体的类别,attrs_list代表该主体具备的属性集合,属性集合定义如下:attrs_list={a1,a2,a3...}。
176.res:{name,category_list,attrs_list},其中name代表客体的名称,category_list代表类别集合,attrs_list代表该客体具备的属性集合。
177.op是主体希望对客体的操作。具体的评估流程图见图5,流程描述如下:
178.输入:一个三元组《sub,res,op》
179.输出:请求评估结果
180.开始:
181.1)用户发送一个三元组请求
182.2)模型根据三元组请求中的主体名称和客体名称从元数据库读取主体和客体的相应信息。
183.3)属性中心根据主体和客体的信息从元数据库中读取相应的属性信息,并将属性和主体/客体进行绑定,将封装好的主体,客体,三元组请求发送至策略中心。
184.4)策略中心从元数据读取策略,按照策略评估算法进行评估
185.4.1)若评估结果为true,则转5);
186.4.2)若评估结果为false,则转7);
187.5)请求到达权限缩减中心,权限缩减中心从元数据库中读取权限缩减规则,按照
权限缩减规则评估算法进行评估;
188.5.1)若评估结果为true,则转6);
189.5.2)若评估结果为false,则转7);
190.6)返回true,转8);
191.7)返回false,转8);
192.8)结束。
193.3、策略评估算法
194.策略用{name,sub_category,res_category,operate}表示,针对主体和客体的类别进行权限的控制,为了避免策略的冲突,规定一个主体类别和一个客体类别只能建立一条策略。具体的策略评估算法流程如图6,算法描述如下:
195.输入:主体sub,客体res,期望操作op
196.输出:策略评估结果
197.开始:
198.1)输入主体信息,客体信息,和请求期望进行的操作。
199.2)读取客体的类别集合res_category_list,从元数据库中读取策略,如果策略针对的客体类别存在于res_category_list中,才加入评估策略集合policy_list;
200.3)遍历policy_list,对每条策略进行评估;
201.3.1)如果主体的类别列表包含该策略针对的主体类别sub_category,并且该策略针对的操作集合operate包含主体的期望操作op,则转5);
202.3.2)如果主体的类别列表不包含该策略针对的主体类别sub_category,或者该策略针对的操作集合operate不包含主体的期望操作op,则转4);
203.4)判断集合policy_list是否已经遍历完
204.4.1)若已经遍历完,转6);
205.4.2)若没有遍历完,转3);
206.5)输出true,转7);
207.6)输出false,转7);
208.7)结束。
209.4、权限缩减规则评估算法
210.策略评估之后请求将到达权限缩减中心进行进一步的评估,权限缩减规则表示如下:rerule:{name,is_strict,optimistic_matcher,negative_matcher},为了避免规则的冲突,模型规定针对一个客体的一个操作只能存在一条权限缩减规则,权限缩减中心会根据权限缩减规则判定是否放行请求,在评估negative_matcher和optimistic_matcher集合中的匹配单元时分别采用了算法negative_matcher匹配单元评估算法和optimistic_matcher匹配单元评估算法,权限缩减规则评估算法流程图见图7,算法描述如下:
211.输入:主体sub,客体res,期望操作op
212.输出:评估结果
213.开始:
214.1)输入主体信息,客体信息和期望进行的操作;
215.2)因为针对一个客体的一个操作只存在一条权限缩减规则,所以根据客体和操作
信息可以确定最多一条的权限缩减规则,从元数据库尝试读取权限缩减规则
216.2.1)若相关权限规则条数为0,则转4);
217.2.2)若存在权限规则,则转3);
218.3)评估读取到的权限缩减规则
219.3.1)首先对规则的negative_matcher匹配单元集合进行遍历评估,对其中的每个匹配单元使用negative_matcher匹配单元评估算法进行评估
220.3.1.1)若匹配返回结果为true,则转5);
221.3.1.2)若匹配返回结果为false,则转3.2);
222.3.2)判断negative_matcher集合中的匹配单元是否都评估完成
223.3.2.1)若集合中的匹配单元未全部评估完成,则转3.1);
224.3.2.2)若集合中的匹配单元已经全部评估完成,则转3.3);
225.3.3)对规则的optimistic_matcher匹配单元集合进行遍历评估,对其中的每个匹配单元使用optimistic_matcher匹配单元评估算法进行评估
226.3.3.1)若匹配返回结果为true,则转3.4);
227.3.3.2)若匹配返回结果为false,则转5);
228.3.4)判断optimistic_matcher集合中的匹配单元是否都评估完成
229.3.4.1)若集合中的匹配单元未全部评估完成,则转3.3);
230.3.4.2)若集合中的匹配单元已经全部评估完成,则转4);
231.4)输出结果true,转6);
232.5)输出结果false,转6);
233.6)结束。
234.5、negative_matcher匹配单元评估算法
235.匹配单元matcher具备三种结果
‑‑
true,false和lack,为了避免lack带来的歧义和异常情况,模型针对匹配单元提供了一种评估算法,将匹配单元中出现属性缺失的问题根据不同情况自动统一为true或者false的结果,针对negative_matcher和optimistic_matcher的算法有一些不同,negative_matcher匹配单元评估算法流程图见图8,算法描述如下:
236.输入:主体sub,客体res,negative_matcher的匹配单元,规则的is_strict
237.输出:评估结果
238.开始:
239.1)输入主体信息,客体信息,negative_matcher的匹配单元,规则的is_strict;
240.2)若匹配单元初步匹配结果为true,则转5);
241.3)若匹配单元初步匹配结果为false,则转6);
242.4)若匹配单元初步匹配结果为lack,则判断规则的is_strict
243.4.1)若is_strict为false,即该规则为不严格规则,那么认为匹配单元匹配结果为false,转6);
244.4.2)若is_strict为true,即该规则为严格规则,那么分析属性缺失的具体情况
245.4.2.1)若主体属性缺失,客体属性缺失,转6);
246.4.2.2)若主体属性缺失,客体属性不缺失,转5);
247.4.2.3)若主体属性不缺失,客体属性缺失,转6);
248.5)输出true,转7);
249.6)输出false,转7);
250.7)结束。
251.6、optimistic_matcher匹配单元评估算法
252.模型针对optimistic_matcher中的匹配单元提供了一种评估算法,将匹配单元中出现属性缺失的问题根据不同情况自动统一为true或者false的结果,optimistic_matcher匹配单元评估算法流程图见图9,算法描述如下:
253.输入:主体sub,客体res,optimistic_matcher的匹配单元,规则的is_strict
254.输出:评估结果
255.开始:
256.1)输入主体信息,客体信息,optimistic_matcher的匹配单元,规则的is_strict;
257.2)若匹配单元初步匹配结果为true,则转5);
258.3)若匹配单元初步匹配结果为false,则转6);
259.4)若匹配单元初步匹配结果为lack,则判断规则的is_strict
260.4.1)若is_strict为false,即该规则为不严格规则,那么认为匹配单元匹配结果为true,转5);
261.4.2)若is_strict为true,即该规则为严格规则,那么分析属性缺失的具体情况
262.4.2.1)若主体属性缺失,客体属性缺失,转5);
263.4.2.2)若主体属性缺失,客体属性不缺失,转6);
264.4.2.3)若主体属性不缺失,客体属性缺失,转5);
265.5)输出true,转7);
266.6)输出false,转7);
267.7)结束。
268.本发明提供了一个可审计的、管理方便的、细粒度的、通用的存取控制模型-自定义多态访问控制模型:该模型由简单属性管理中心、复杂属性管理中心、类别中心、策略中心、权限缩减中心等组成。
269.自定义多态访问控制模型下的策略评估具备可审计性、可管理性和细粒度:策略评估采用类别分类-策略评估-权限缩减三个步骤来完成,类别中心通过归类方便用户管理,策略针对类别制定,相比传统abac针对属性制定而言具有更强的可审计性,权限缩减基于属性能更细粒度地控制请求的主体。
270.本发明降低模型评估的代价:通过为策略和权限缩减规则的制定添加限定条件,减少了策略和权限缩减规则的数量,同时使用索引加快了策略和权限缩减规则的查找,从而在策略评估和权限缩减阶段减少评估时间,达到提高模型评估效率的目的。
271.策略评估的有效性:针对现有技术中评估过程中属性缺失直接报错的问题,算法在属性缺失的情况会根据情况进行相应的默认处理,在属性缺失的情况匹配单元依旧会返回布尔类型的结果,保证了异常情况下仍能正确地评估匹配单元。
272.上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,
均应为等效的置换方式,都包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献