一种基于QPSO优化K-Means的ABAC模型
技术领域
本发明涉及访问控制技术领域,尤其是一种基于QPSO优化K-Means的 ABAC模型。
背景技术
基于属性的访问控制(Attribute-Based Access Control,ABAC)模型是利 用属性把访问控制中所涉及的主体、客体、环境、授权统一建模,从而使访问 控制策略的制定和约束的表达更加准确和灵活。
ABAC模型与传统的基于身份的访问控制模型相比最大的优势主要体现 在两个方面:
(1)它可以利用属性对实体的任意特征进行描述,实现从不同的角度对 实体进行刻画;
(2)通过属性或者属性的组合不但可以使一些复杂的访问控制策略的表 达粒度更加细化,而且简化了传统访问控制复杂的授权方式,使访问控制系统 的灵活性和通用性得以加强。
但是当前针对ABAC模型中属性的定义、量化比较模糊,并且访问控制 策略的定义存在很大的主观性,缺少一种智能化的策略定义方法,使ABAC 模型的应用具有一定阻碍。
发明内容
本发明的目的是,针对ABAC模型中的不足进行优化和改进,提供一种 基于QPSO优化K-Means的ABAC模型,以解决以下技术问题:
(1)对于模型中的属性没有明确的定义;
(2)对于模型中属性的量化比较模糊,存在一定的主观性和任意性;
(3)对于访问控制策略的定义存在很大的主观性,缺少一种智能化的策 略定义方法。
本发明采用的技术方案如下:
一种基于QPSO优化K-Means的ABAC模型,所述ABAC模型的执行过 程包括如下步骤:
(1)用户访问资源,发送原始访问请求;
(2)PEP组件接收用户发来的原始访问请求,并将原始访问请求发送至 ContextHandler组件;
(3)Context Handler组件通过PIP组件向AA组件发送和原始访问请求 相关的属性请求;
(4)对于AA组件中与原始访问请求匹配的属性,针对不同属性的重要 程度,以权值的数值化形式将不同属性的重要程度进行量化,得到数值化的属 性权值;
(5)AA组件将与原始访问请求匹配的实体属性和属性值,以及其对应的 属性权值返回给Context Handler组件处理;
(6)Context Handler组件构建基于属性的访问请求,并将其发送至PDP 组件;
(7)把属性权值作为输入,利用QPSO优化的K-Means算法进行属性权 值的聚类,并根据聚类结果为PAP策略库添加访问控制策略;
(8)PDP组件根据获得的属性和属性值及PAP策略库中预定义的访问控 制策略进行授权决策,PEP组件根据授权决策结果对资源实施访问操作。
进一步地,步骤(7)中利用QPSO优化的K-Means算法进行属性权值的 聚类的方法,包括如下子步骤:
(7.1)对属性权值进行网格化处理,并利用网格聚类确定簇的个数K,并 随机初始化K个聚类中心;
(7.2)初始化QPSO算法的粒子种群,对K个聚类中心进行编码,将其 作为粒子的初始位置,初始化粒子的速度;通过重复循环N次,各粒子完成初 始化;
(7.3)计算每个粒子的适应度值fitness;
(7.4)更新粒子个体的局部最优位置pbest;以及粒子种群的全局最优位 置gbest;
(7.5)更新粒子的速度和位置;
(7.6)根据K-Means算法中的最邻近法则,将样本重新归类,得到新的 聚类划分;
(7.7)根据新的聚类划分重新计算聚类中心,并更新适应度值fitness;
(7.8)若粒子群的最好适应度值在给定的迭代次数内不发生改变或达到给 定的最大达代次数,则输出聚类结果的最优解;否则返回(7.3);
(7.9)根据聚类结果的最优解,为PAP策略库添加访问控制策略。
进一步地,步骤(7)中根据聚类结果为PAP策略库添加的访问控制策略 为:同一类中的用户能够互相访问资源,不同类的用户不允许进行访问操作。
进一步地,步骤(7.2)中对第k个聚类中心进行编码的公式如下:
其中,Centerk代表第k个聚类中心的编码,ck代表第k个类别数据的向量 集合,xi代表ck中的第i条数据。
进一步地,步骤(7.3)中计算每个粒子的适应度值fitness的公式如下:
其中,ck代表第k个类别数据的向量集合,xi代表ck中的第i条数据,Centerk代表第k个聚类中心的编码。
进一步地,步骤(7.4)中更新粒子个体的局部最优位置pbest;以及粒子 种群的全局最优位置gbest的方法为:把每个粒子当前位置与其个体局部最佳 位置进行适应度值大小的对比,如果每个粒子当前位置的适应度值更小,则将 其设置为其局部最佳位置pbest;把全部粒子的位置与当前粒子种群全局最佳位 置进行适应度值大小对比,若某一粒子当前所在的位置的适应度值更小,则将 其设置为粒子种群的全局最佳位置gbest。
进一步地,步骤(7.5)中更新粒子的速度和位置的公式如下:
vi(t+1)=vi(t)+c1r1(pbest-xi(t))+c2r2(gbest-xi(t))
xi(t+1)=xi(t)+vi(t+1)
其中,t是当前迭代次数,c1和c2是学习因子;vi(t+1)代表粒子i在第t+1 次循环时的速度,vi(t)代表粒子i在第t次循环时的速度,xi(t+1)代表粒子i在 第t+1次循环时的位置,xi(t)代表粒子i在第t次循环时的位置,pbest代表粒 子i当前的局部最优位置,gbest代表粒子种群当前的全局最优位置。
进一步地,步骤(4)中对于AA组件中与原始访问请求匹配的属性,采 用层次分析法,针对不同属性的重要程度,以权值的数值化形式将不同属性的 重要程度进行量化,得到数值化的属性权值。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1、本发明通过引入QPSO优化K-Means算法,为策略库添加一种自动化 的访问控制策略,来进一步丰富ABAC模型的策略库,使ABAC模型的授权 决策过程更加灵活、智能、高效。
2、本发明通过层次分析法对用户的属性进行初始量化处理,避免了传统 ABAC模型在属性的定义、量化等方面的主观性和任意性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使 用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例, 因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创 造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明基于QPSO优化K-Means的ABAC模型的执行过程示意图。
图2为本发明利用QPSO优化的K-Means算法生成自动化访问控制策略 的流程框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅 用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部 分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施 例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的 本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅 表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出 创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下结合实施例对本发明的特征和性能作进一步的详细描述。
本实施例提供的一种基于QPSO(量子粒子群算法,Quantum-behaved ParticleSwarm Optimization)优化K-Means的ABAC模型,如图1所示,所述 ABAC模型的执行过程包括如下步骤:
(1)用户访问资源,发送原始访问请求;
(2)PEP组件接收用户发来的原始访问请求,并将原始访问请求发送至 ContextHandler组件;
(3)Context Handler组件通过PIP组件向AA组件发送和原始访问请求 相关的属性请求;
(4)对于AA组件中与原始访问请求匹配的属性,针对不同属性的重要 程度,以权值的数值化形式将不同属性的重要程度进行量化,得到数值化的属 性权值;本实施例中,对于AA组件中与原始访问请求匹配的属性,采用层次 分析法(Analytic HierarchyProcess,AHP),针对不同属性的重要程度,以权 值的数值化形式将不同属性的重要程度进行量化,得到数值化的属性权值。
(5)AA组件将与原始访问请求匹配的实体属性和属性值,以及其对应的 属性权值返回给Context Handler组件处理;
(6)Context Handler组件构建基于属性的访问请求,并将其发送至PDP 组件;
(7)把属性权值作为输入,利用QPSO优化的K-Means算法进行属性权 值的聚类,并根据聚类结果为PAP策略库添加访问控制策略;其中,通过属性 权值的聚类,同一类中的用户具有相同的属性相似度,因此可以将访问控制策 略设置为:同一类中的用户能够互相访问资源,不同类的用户不允许进行访问 操作。
该利用QPSO优化的K-Means算法进行属性权值的聚类的过程,包括如 下子步骤:
(7.1)对属性权值进行网格化处理,并利用网格聚类确定簇的个数K,并 随机初始化K个聚类中心;
(7.2)初始化QPSO算法的粒子种群:对K个聚类中心进行编码,将其 作为粒子的初始位置,初始化粒子的速度;通过重复循环N次,各粒子完成初 始化;其中,对第k个聚类中心进行编码的公式如下:
其中,Centerk代表第k个聚类中心的编码,ck代表第k个类别数据的向量 集合,xi代表ck中的第i条数据。
(7.3)计算每个粒子的适应度值fitness,公式如下:
其中,ck代表第k个类别数据的向量集合,xi代表ck中的第i条数据,Centerk代表第k个聚类中心的编码。
(7.4)更新粒子个体的局部最优位置pbest;以及粒子种群的全局最优位 置gbest;具体地:把每个粒子当前位置与其个体局部最佳位置进行适应度值 大小的对比,如果每个粒子当前位置的适应度值更小,则将其设置为其局部最 佳位置pbest;把全部粒子的位置与当前粒子种群全局最佳位置进行适应度值大 小对比,若某一粒子当前所在的位置的适应度值更小,则将其设置为粒子种群 的全局最佳位置gbest。
(7.5)更新粒子的速度和位置,公式如下:
vi(t+1)=vi(t)+c1r1(pbest-xi(t))+c2r2(gbest-xi(t))
xi(t+1)=xi(t)+vi(t+1)
其中,t是当前迭代次数,c1和c2是学习因子;vi(t+1)代表粒子i在第t+1 次循环时的速度,vi(t)代表粒子i在第t次循环时的速度,xi(t+1)代表粒子i在 第t+1次循环时的位置,xi(t)代表粒子i在第t次循环时的位置,pbest代表粒 子i当前的局部最优位置,gbest代表粒子种群的全局最优位置。
(7.6)根据K-Means算法中的最邻近法则,将属性权值样本重新归类, 得到新的聚类划分;
(7.7)根据新的聚类划分重新计算聚类中心,并更新适应度值fitness;
(7.8)若粒子群的最好适应度值在给定的迭代次数内不发生改变或达到给 定的最大达代次数,则输出聚类结果的最优解;否则返回(7.3);
(7.9)根据聚类结果的最优解,为PAP策略库添加访问控制策略。
(8)PDP组件根据获得的属性和属性值及PAP策略库中预定义的访问控 制策略进行授权决策,PEP组件根据授权决策结果对资源实施访问操作。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明 的保护范围之内。