多级安全策略转换方法

文档序号:6585381阅读:195来源:国知局
专利名称:多级安全策略转换方法
技术领域
本发明涉及计算机安全领域,特别涉及多级安全策略转换方法。

背景技术
出于计算机安全的考虑,我国在《计算机信息系统安全保护等级划分准则》(GB 17859)中将计算机信息系统安全保护能力划分为五个等级,即用户自主保护级(第一级)、系统审计保护级(第二级)、安全标记保护级(第三级)、结构化保护级(第四级)、访问验证保护级(第五级)。在上述标准中,要求三级以上信息系统的应用安全、主机安全和网络安全必须实现强制访问控制策略,且主要是多级安全策略;还要求对主体、客体指定敏感标记。在上述标准以及本申请中,所述的客体是指信息的载体,所述的主体是指引起信息在客体之间流动的人、进程或设备等。所述的敏感标记是指表示客体安全级别并描述客体数据敏感性的一组信息,可信计算基中把敏感标记作为强制访问控制决策的依据。
GB 17859的提出有利于提高全社会的计算机安全水平,但在具体实施时又会遇到一些实际问题。例如,很多重要的电子政务系统、电子商务系统由于其重要性而被要求达到三级或以上级别,但它的访问控制策略由于历史等原因并不是多级安全策略(常见的是自主访问控制),因此需要将这些系统向多级安全系统迁移,在迁移的过程中必然要求将原有系统中的安全策略转换为新系统中的安全策略。
现有技术中实现安全策略转换主要采用自顶向底的方法,该方法由系统用户、系统开发者和安全专家一起对信息系统工作流程及场景、已有授权策略库进行分析,从主观出发为主体和客体分配敏感标记。这种方法对于小型系统也许可行,但如果面对有数以千计的用户、数以万计的资源、百万级的授权规模的大系统,该方法就具有工作量巨大,难以保证科学性的缺陷,甚至由于严重破坏原有系统的访问控制逻辑而根本就不可行。


发明内容
本发明的目的是克服现有技术中的安全策略转换方法在应用于大系统时工作量大、难以保证安全性的缺陷,从而提供一种多级安全策略转换方法。
为了实现上述目的,本发明提供了一种多级安全策略转换方法,包括 步骤1)、读取原系统中的原始授权策略数据;所述原始授权策略数据描述了在原系统中主体访问相应客体的权限; 步骤2)、对所述原系统中的客体加以分类,将所述类做聚类操作,从而构建范畴与客体间的隶属关系;然后将所述范畴与客体间的隶属关系与原始授权策略相结合,构建主体与范畴间的隶属关系;所述范畴表示非等级的应用类别或领域; 步骤3)、在步骤2)所得到的各个范畴内,计算主体对客体的最佳密级分配方式,得到主体与客体间的密级,从而得到敏感标记;所述敏感标记包括密级的信息与范畴的信息; 步骤4)、根据所述主体与客体的敏感标记以及所要迁移的系统的访问权限生成所要迁移系统的授权策略数据。
上述技术方案中,在所述的步骤1)之前还包括对原系统中的原始授权策略数据的预处理;所述的预处理用一个矩阵表示所述的原始授权策略,其中,所述矩阵的行表示主体,列表示客体,矩阵中的单元表示相应主体访问相应客体的权限。
上述技术方案中,在所述的步骤2)中,所述的聚类操作采用层次化聚类算法;所述的步骤2)包括 步骤2-1)、将原系统中的每个客体单独作为一个簇,从而得到所述簇所组成的簇集合,计算簇集合中各个簇之间的距离; 步骤2-2)、从所述簇集合中取出距离最近的两个簇,将这两个簇进行合并; 步骤2-3)、判断簇集合中的簇的数目是否达到第一阈值,如果没有达到,则重新执行步骤2-2),否则,将所述簇集合中现有的簇作为范畴,构建用于表示范畴与客体间隶属关系的关系布尔型矩阵; 步骤2-4)、判断主体对所述范畴中具有访问权限的客体的数目,当所述数目高于第二阈值时,将所述范畴赋予对应的主体,构建用于表示主体与范畴间隶属关系的关系布尔型矩阵。
上述技术方案中,在所述的步骤2)中,所述的聚类操作采用划分式聚类算法、基于密度和网格的聚类算法中的一种。
上述技术方案中,在所述的步骤3)中,采用遗传算法、进化算法和蚁群算法中的一种实现主体对客体的最佳密级分配。
本发明的方法能够适用于大规模系统中安全策略的转换,能够有效地降低人力成本,提高效率。



图1为一个实施例中所采用的授权策略的示意图; 图2为本发明方法的流程图。

具体实施例方式 下面结合附图和具体实施方式
对本发明加以说明。
在对本发明的具体实现做详细说明之前,首先对本发明中所涉及的一些概念做统一的说明。
敏感标记在多级安全中,主客体都会被加上敏感标记,敏感标记包括范畴和密级两部分。敏感标记集合表示为其中,密级C是大小可以比较的线性序列,例如{公开,秘密,机密,绝密},密级从“公开”到“绝密”越来越高。范畴集K中的范畴是非等级的应用领域或类别,例如{人事,财务,业务},范畴“人事”和范畴“财务”没有大小之分,互相独立。敏感标记之间存在支配关系,只有当且仅当c′≤c且,则敏感标记(c,k)支配敏感标记(c′,k′)。
访问权限在访问控制系统中,主体对客体的访问权限一般有“读”、“写”、“读/写”和“空”四种权限。在多级安全中,主体对客体的有何种访问权限取决于两者的敏感标记大小关系。若主体的敏感标记支配客体的敏感标记,则主体对客体的权限是“读”,若客体的敏感标记支配主体的敏感标记,则主体对客体的权限是“写”,若主体的敏感标记等于客体的敏感标记,则主体对客体的权限是“读/写”。
在对本发明中的相关概念做上述说明后,为了便于理解,下面结合实施例对本发明方法加以说明。
在现有的某一个授权系统中,访问控制策略是基于角色的访问控制,在系统中包括有5个用户、4个角色、5个资源。在图1中对授权用户通过角色访问资源的情况做了说明。本发明方法所要解决的问题是为该系统中所有主体(即用户)与所有客体(即资源)加上敏感标记,使得按照多级安全系统规则决定的主体对客体的访问控制策略与原有的访问控制策略有最大相似性。
以上述授权系统为例,结合图2,对本发明的方法加以说明。
数据预处理 首先,对原授权系统中的原始授权策略数据做预处理,将该数据用统一的表示方式表示。由于在实际应用中,授权策略除了本实施例中所提到的基于角色的访问控制外,还包括自主访问控制、基于属性的访问控制等多种方式,因此,为了避免授权策略多样性所带来的数据形式多样性的问题,在本发明中需要对原始授权策略数据做预处理。
在预处理的过程中,用一个被称为访问控制矩阵的矩阵表示原始授权策略,其中的行表示主体,列表示客体,矩阵中的单元代表相应主体访问相应客体的权限。以图1所示的授权策略为例,遵照上述原则,将图1中的相关数据做预处理后可得到下面的表1。
表1 对于其它类型的授权策略,数据预处理的实现过程与上面相类似。范畴划分 在完成数据预处理后,就要根据数据预处理的结果对主体、客体标注敏感标记。在前面的说明中已经提到,敏感标记包括范畴和密级两方面的内容。在此首先实现范畴的划分。
范畴反映了安全应用的类别或领域,主体属于某个范畴,那么该主体通常就会对范畴内的大多数客体具有某种访问权限,这种权限可包括“读”、“写”和“读/写”;而主体不属于某个范畴,则它对该范畴内的客体就没有任何访问权限。因此范畴划分主要区分有权限还是无权限。
本实施例在实现范畴划分时,可将数据预处理后所得到的访问控制矩阵转换为一个布尔型矩阵,对于无权限的情况,相应矩阵单元的取值设为0;对于有权限的情况(无论是“读”、“写”还是“读/写”),相应矩阵单元的取值设为1。具体的说,将主体与范畴的关系SK用布尔型矩阵M(SK)m×k表示,行表示主体,列表示范畴,单元的值表示相应行的主体是否被分配相应列的范畴,0表示未分配,1表示分配;将范畴与客体的关系KO用布尔型矩阵M(KO)k×n表示,行表示范畴,列表示客体,单元值表示相应行的范畴是否包含相应列的客体,0表示包含,1表示未包含。
为了描述范畴划分方便,给出如下定义 定义1(布尔型矩阵乘法)给定布尔型矩阵A∈{0,1}m×k和B∈{0,1}k×n,A和B的乘法记作,其中C∈{0,1}m×k,且
“物以类聚,人以群分”,在应用系统中,同一部门用户通常会访问相同的数据库表、功能模块、子系统等,只是权限有所不同,此时用户属于相同的范畴,同样,若频繁出现两个资源的访问权被同时授给同一用户时,则这两个资源也是关联的,很可能属于一个范畴。因此可以对访问控制矩阵先做R-型聚类分析,将客体划分成类(即范畴),然后为用户分配范畴。聚类是无监督的分类,主要依据各元素之间的相似性或距离进行分类。
定义2(布尔型向量距离)对于两个d维布尔型向量v,w∈{0,1}d,它们之间的距离 确定数据集的聚类数目是聚类分析中一项基础性的难题,但是在范畴划分问题中,用户根据经验或具体应用系统的背景知识,通常能够确定范畴数目的大致范围,所以在实现范畴划分时,我们采用寻找限定范畴个数范围条件下质量最好的聚类的方法。采用现有技术中已知的聚类算法都可以实现范畴的划分,如层次化聚类算法、划分式聚类算法、基于密度和网格的聚类算法等。在本实施例中,以层次聚类算法为例对范畴划分的过程加以说明。
层次聚类算法通过扫描一遍数据集一次性地构造出数据集所有合理的划分组合,然后在自底向上层次式的簇合并过程中评价聚类质量,以提高计算效率。由于层次聚类算法的实现都是成熟的现有技术,因此,不在本实施例中就其实现细节加以说明。需要特别指出的是,在聚类过程中,计算类间距离时可采用最长距离法,与最短距离法相比,最长距离法所得到的各个类大小相对均匀。类Ci,CK之间用最长距离法计算得到的距离 在聚类过程中,聚类操作不可能无限进行下去,直到只剩下一个类,因此需要有一个对聚类结果的评价指标。本发明中,对聚类结果的评价主要考虑两方面的影响,一是范畴划分与分配后与原访问控制矩阵的一致性,二是范畴个数对管理和安全性带来的影响。通常范畴个数增加,有助于提高划分后的范畴与原访问控制矩阵间的一致性,但与此同时,分配关系就会复杂,管理代价增高,安全性降低。基于上述原因,本发明给出的基于上述二者的线性组合的评价指标为 其中,β(β>0)为权重因子,用于平衡二者在取值范围上的差异,指标Q(C)越小,聚类质量越高。
下面给出范畴划分算法的伪代码,以助于理解。
算法1范畴分配算法 输入初始访问控制矩阵M(SO)∈{0,1}m×n, 估计的范畴范围[s,t],1<s≤|K|≤t<n, 权重因子β。
输出最优的范畴个数k*, 主体与范畴的关系布尔型矩阵M(SK*), 范畴与客体的关系布尔型矩阵M(KO*)。// 实现步骤 步骤(1)、初始时每个客体oi独自成一个簇,簇集合Cn={{o1},{o1},...,{on}}有n个元素;令Q*为无穷大;根据M(SO)计算出所有客体与客体距离矩阵D(O); 步骤(2)、重复步骤(3)至(5),直至簇集合中只有s个类为止。
步骤(3)、从目前的簇集合Ci中选出两个距离d(Ci,CK)最近的两个簇,将它们成一类。
步骤(4)、如果目前簇的大小不在在[s,t]范围内,跳至步骤(2),否则,根据簇划分,构建范畴与客体的关系布尔型矩阵M(KO*),同时,若主体对范畴中半数以上客体有访问权,则分配该范畴给主体,从而也可构建出主体与范畴的关系布尔型矩阵M(SK*)。
步骤(5)、分析聚类质量Q(Ci)=f(M(SK′),M(KO′),M(SO′),i,β),若Q(Ci)大于Q*,则记录目前的簇划分为当前最优划分,并用Q(Ci)替换Q*,跳至步骤(2)。
步骤(6)、输出结果。
上述算法在初始化时,需要计算所有客体与客体距离,计算时间为O(n2m),主循环有n-s次迭代,第i次迭代包括从n-i+1个簇中合并距离最近的两个簇和评价聚类质量两个环节,每次迭代有两个簇发生合并,n-s次迭代中前一环节计算时间为O(n(n-s)),后一环节求解聚类质量计算时间不超过O(nm(s-t)t2),所以算法可以在多项式时间内完成。
对于本实施例中的前述授权系统,经过数据预处理得到前述访问控制矩阵后,在此做范畴划分。假设求解的范畴范围是[2,2],权重因子β=0.1,经过前述算法实现范畴划分后,得到范畴划分情况是得到两个范畴K1和K2,K1包含的资源是{O1,O2,O3},用户S1,S2,S3被分配到范畴K1中。K2包含的资源是{O4,O5},用户S4,S5被分配到范畴K2中。
密级分配 在实现范畴划分后,需要继续分配密级,从而得到敏感标记。
在多级安全规则中,当主客体范畴相同时,主体对客体的访问权限将取决于主、客体之间的密级大小关系。在范畴内做密级分配的问题中,给定A∈Pm×n,在前述操作确定M(SK)和M(KO)后,可将A分成一系列无交集的子访问控制矩阵,这些子访问控制矩阵是范畴内主体对客体的访问控制矩阵,从而将范畴内密级分配问题变成了针对每个子访问控制矩阵,求相应的主客体密级的最佳分配,这些子问题的合解是本问题的解。
在现实应用中,从管理角度考虑,系统通常会限定密级数目,如一些多级安全系统限定密级数目在5个左右。对于一个有m个主体,n个客体的系统,若密级数目限定为k,密级分配的搜索状态空间会达到kmn,因此需要一种有效的算法,能够在指定密级数目的前提下,实现最优的密级分配。
现有技术中的遗传算法、进化算法和蚁群算法均可用于用于密级分配。在本实施例中以遗传算法为例对如何进行密级分配加以说明。遗传算法首先产生候选解决方案的种群,然后通过自然选择使这些解决方案进化,以使不好的解决方案趋于淘汰,好的解决方案存活并继续繁殖,不断重复这个过程,遗传算法就得到了最优的解。
将遗传算法用于密级分配的具体实现步骤如下 步骤1)、用染色体表示密级分配 遗传算法中对问题的解以编码形式呈现,一个解对应一条染色体。编码方式有二进制、整数、实数和非数值编码等。在本问题中,将对每个实体分配的密级看成染色体上的一个相应位置的基因,这样一个染色体将代表了对密级分配问题的一个解,编码方式采用整数表示,以更好与密级类型相适应。
步骤2)、种群初始化 遗传算法需要一个初始种群作为初始解集合,初始种群通过随机方式产生。初始种群产生的质量通常会对算法搜索效率和能否产生全局最优解产生非常大的影响,为了保证初始种群的多样性,定义第i个基因位上的基因熵其中p(j)是初始种群中在第i基因位取值为j的基因所占比例,
是基因池,对应密级取值空间。设定一阈值θ,若不能满足log2(k)-Entropy(i)<θ,则将所占比例最高的一个基因替换为所占比例最低的基因,重复该过程,直至该位基因熵满足上述不等式。这里取值θ=0.3log2k。
初始种群的规模可针对应用实例规模通过实验获得,若初始种群数目太少,则容易陷入局部最优解,太大,则计算复杂度又太高。
步骤3)、适应度函数和选择方法 适应度函数反映了个体的适应能力,根据适应度函数值的大小,决定某些个体是繁殖还是消亡。设范畴内访问控制矩阵Am×n,染色体b表示对全部主、客体的一种密级分配方法,通过多级安全规则,可得到相应的访问控制矩阵A′m×n,则b适应度函数为f(x)=1-||A-A′||/mn。
选择方法采用轮盘赌选择(roulettete wheel selection)结合最优个体保存方法,二者结合的方法可使进化收敛到全局最优解。在结合过程中,轮盘赌选择当代个体bi从当代种群{b1,b2,...,bc}中被选择成为下一代成员的概率当得到新一代种群后,将老一代中最优个体也直接加入其中,淘汰适应度值最小的个体,这里实现轮盘赌的方法是计算各个bi的轮盘刻度为当随机产生(0,1]之间的一个刻度值t时,若bi-1<t≤bi,则bi即为选中的个体。
步骤4)、交叉 交叉是指对两个父代个体的部分结构加以替换重组,从而生成新个体的操作。常用的交叉算子包括单点交叉、二点交叉、均匀交叉等,在密级分配问题中,主客体对应到染色体的位置并无前后次序要求,采用均匀交叉方法,即两个相同配对个体的每个基因都以相同的概率进行交换,从而形成两个新个体。
步骤5)、变异 变异用于对个体的编码串产生随机的小变化,即以很小概率选择从群体中选出一些染色体,随机选择某些基因位,改变其值,取值范围为
,以对应密级取值空间。变异概率太大,会导致搜索产生振荡;变异概率太小容易得到局部最优解。变异概率的选择可针对应用实例规模通过实验获得。
步骤6)、终止条件 在指定遗传代数后中止遗传算法,并检查种群中的最优的染色体,如果没有得到满意的解决方案,遗传算法重新启动。
假设范畴内访问控制矩阵是Am×n,群体规模为l,迭代次数为t,则上述过程中,初始化种群的时间为O(l(m+n)),每一轮迭代中,计算个体适应度的时间为O(lmn),计算交叉和变异的时间为O(l(m+n)),则总的计算适应度时间O(ltmn)。
以上是对如何利用遗传算法实现密级分配过程的说明,下面给出密级分配算法的伪代码,以利于理解。
算法2密级分配算法 输入范畴内访问控制矩阵Am×n, 染色体个数l, 遗传代数t, 交叉概率pc, 突变概率pm, 输出以一维数组表示的范畴内实体密级分配best_chromosome。
实现步骤 初始化群体P0随机产生l个染色体,记为{b10,b20,...,bl0}; 评估对于每一个染色体bi0,计算选出适应度值最高的染色体boptimal0; 重复下面的步骤a至d,直到遗传代数k<t; a选择随机产生(0,1]之间一个数,根据轮盘刻度,从Pk选出一个染色体,重复这个过程,直到选出t个染色体,记为P1k; b交叉从P1k依次选出两个染色体,根据交叉概率pc进行均匀交叉,得到两个新的染色体。重复这个过程,直到得到l个染色体,记为P2k; c变异从P2k中选择pm个染色体进行变异。对于选出的每个成员,在它的表示中随机选择一个位并随机取
中一个整数,记此时群体为P3k; d评估和保留最优染色体对于P3k中每一个染色体bik,计算从boptimalk-1和P3k中淘汰最差染色体,并将最优染色体赋值给boptimalk,更新刻度 最后,返回boptimalk作为best_chromosome。
对于本实施例中的授权系统,在得到前述的范畴后,在各个范畴内按照前述密级分配算法实现密级分配。假设密级数目为4个,染色体20个,遗传代数200代,交叉概率0.9,突变概率0.01,最终得到主体与客体的敏感标记为 S1{2,K1},S2{2,K1},S3{2,K1},S4{1,K2},S5{0,K2}, O1{3,K1},O2{2,K1},O3{0,K1},O4{1,K2},O5{1,K2}。
由上述的敏感标记以及前述关于访问权限的定义,可以得到该授权体系在多级安全系统中新的访问控制策略,新的访问控制策略如下面的表2所示。
表2 将表2的内容与表1加以比较可以看出,新的访问控制策略与原有的访问控制策略相比完全相同。证明了本发明的方法在实现系统迁移的过程中能够很好地完成访问控制策略的转换。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种多级安全策略转换方法,包括
步骤1)、读取原系统中的原始授权策略数据;所述原始授权策略数据描述了在原系统中主体访问相应客体的权限;
步骤2)、对所述原系统中的客体加以分类,将所述类做聚类操作,从而构建范畴与客体间的隶属关系;然后将所述范畴与客体间的隶属关系与原始授权策略相结合,构建主体与范畴间的隶属关系;所述范畴表示非等级的应用类别或领域;
步骤3)、在步骤2)所得到的各个范畴内,计算主体对客体的最佳密级分配方式,得到主体与客体间的密级,从而得到敏感标记;所述敏感标记包括密级的信息与范畴的信息;
步骤4)、根据所述主体与客体的敏感标记以及所要迁移的系统的访问权限生成所要迁移系统的授权策略数据。
2.根据权利要求1所述的多级安全策略转换方法,其特征在于,在所述的步骤1)之前还包括对原系统中的原始授权策略数据的预处理;所述的预处理用一个矩阵表示所述的原始授权策略,其中,所述矩阵的行表示主体,列表示客体,矩阵中的单元表示相应主体访问相应客体的权限。
3.根据权利要求1或2所述的多级安全策略转换方法,其特征在于,在所述的步骤2)中,所述的聚类操作采用层次化聚类算法;所述的步骤2)包括
步骤2-1)、将原系统中的每个客体单独作为一个簇,从而得到所述簇所组成的簇集合,计算簇集合中各个簇之间的距离;
步骤2-2)、从所述簇集合中取出距离最近的两个簇,将这两个簇进行合并;
步骤2-3)、判断簇集合中的簇的数目是否达到第一阈值,如果没有达到,则重新执行步骤2-2),否则,将所述簇集合中现有的簇作为范畴,构建用于表示范畴与客体间隶属关系的关系布尔型矩阵;
步骤2-4)、判断主体对所述范畴中具有访问权限的客体的数目,当所述数目高于第二阈值时,将所述范畴赋予对应的主体,构建用于表示主体与范畴间隶属关系的关系布尔型矩阵。
4.根据权利要求3所述的多级安全策略转换方法,其特征在于,在所述的步骤2)中,所述的聚类操作采用划分式聚类算法、基于密度和网格的聚类算法中的一种。
5.根据权利要求1或2所述的多级安全策略转换方法,其特征在于,在所述的步骤3)中,采用遗传算法、进化算法和蚁群算法中的一种实现主体对客体的最佳密级分配。
全文摘要
本发明提供一种多级安全策略转换方法,包括读取原系统中的原始授权策略数据;所述原始授权策略数据描述了在原系统中主体访问相应客体的权限;对所述原系统中的客体加以分类,将类做聚类操作,从而构建范畴与客体间的隶属关系;然后将范畴与客体间的隶属关系与原始授权策略相结合,构建主体与范畴间的隶属关系;在所得到的各个范畴内,计算主体对客体的最佳密级分配方式,得到主体与客体间的密级,从而得到敏感标记;根据所述主体与客体的敏感标记以及所要迁移的系统的访问权限生成所要迁移系统的授权策略数据。本发明的方法能够适用于大规模系统中安全策略的转换。
文档编号G06F21/00GK101763476SQ20091024391
公开日2010年6月30日 申请日期2009年12月25日 优先权日2009年12月25日
发明者杨智, 金舒原, 段洣毅, 陈性元 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1