您好,欢迎来到好走旅游网。
搜索
您的当前位置:首页基于良基语义的安全策略表达与验证方法

基于良基语义的安全策略表达与验证方法

来源:好走旅游网
软件学报ISSN 1000—9825,CODEN RUXUEW Journal ofSoftware,2012,23(4):912—927[doi:10.3724/SP.J.1001.2012.04023】 @中国科学院软件研究所版权所有. E—mail:jos@iscas.ac.cn htto://www.jos.org.ca Tbl/Fax:+86—10.62562563 基于良基语义的安全策略表达与验证方法 包义保 3+,殷丽华 ,方滨兴 ,郭莉 (中国科学院计算技术研究所,北京 100190) (解放军信息工程大学电子技术学院,河南郑州(中国科学院研究生院,北京 100049) 450004) Approach of Security Policy Expression and Verification Based on Well—Founded Semantic BAO Yi.Bao , , ,YIN Li.Hua ,FANG Bin.Xing ,GUO Li (Institute ofComputingTechnology,TheChineseAcademy ofSciences,B确ing 100190,China) (Institute ofElectronic Technology,Information Engineering University ofPLA,Zhengzhou 450004,China) (Graduate University,The Chinese Academy of Sciences,Beijing 100049,China) +Corresponding author:E-mail:baoyibao@software.ict.ac.cn Bao YB,Yin LH,Fang BX,Guo L.Approach of security policy expression and verification based on well— founded semantic.Journal ofSoftware,2012,23(4):912-927.http://www.jos.org.crd1000-9825/4023.htm Abstract:This study proposes a logic—based security policy framework.First,the study proposes the security policy syntax and semantic.Next,four algoritms are proposed to transfer first-order logic based security policies into extended logic programs to evaluate queries with simple goals,to transfer complex queries into simple ones, and to verify securiy policites against complex security properties.Under well-founded semantics.an the algorithms are sound and completed,and their computational complexities are polynomia1.In this framework,security policy declaration,evaluation and verification are executed under the same semantics,which is significant for securiy tpolicy management.Furthmore,the framework can manage the security policies with advanced features,such as non—mbnotony and recursion,which is not supported in many existent security policy management frameworks. Key words: securiy politcy;securiy management;weltl-founded semantic;policy verification;logic programming 摘要: 提出了一种基于一阶逻辑的安全策略管理框架.首先,研究安全策略的语法和语义,给出将安全策略转换 成扩展型逻辑程序的算法'进而构造出安全策略基本查询算法;其次,给出将安全策略复杂查询转换成基本查询的算 法,进而构造出安全策略验证算法.在良基语义下,上述算法是可终止的、可靠的和完备的,且计算复杂度都是多项式 级的.该框架可以在统一的良基语义下实现安全策略表达、语义查询和验证,保证安全策略验证的有效性.此外,该框 架不仅兼容现有主流的安全策略语言,还能够管理具有非单调和递归等高级特性的安全策略. 关键词: 安全策略;安全管理;良基语义;策略验证;逻辑编程 中图法分类号:TP393 文献标识码:A ・基金项目:国家自然科学基金(6lO70186);国家高技术研究发展计划(863)(2009AAOlz438,2009AA01Z43);国家重点基础研 收稿时间:2010.09—15;修改时间:2011-01.31;定稿时间:2011-03—21 究发展计划(973)(2007C83 1 1 1 00) 包义保等:基于良基语义的安全策略表达与验证方法 913 近年来,信息安全研究领域逐渐从安全技术扩展到安全管理,基于策略的安全管理是研究的重点.在安全策 略管理研究领域,如何表达安全策略、如何利用安全策略蕴涵的语义提供安全服务以及如何保障安全策略自身 的安全性,这是3个基本而又重要的问题.由这3个基本问题延伸出3个重要的研究方向,即安全策略表达、安 全策略语义查询和安全策略验证. 在安全策略表达方面,目前的主流方法是使用形式化的语言描述安全策略.文献【l】对安全策略语言进行了 总结,认为基于逻辑的安全策略语言最容易被人们接受,文献【2—8】中提出的语言就是这类语言.文献[2]首次设 计了一种基于逻辑的分布式安全策略语言,其语法与扩展型逻辑程序等价,但没有讨论复杂查询的计算方法,无 法用于安全策略验证.文献[3,4】提出了一种基于分层逻辑程序[9]的安全策略语言,称为FAF,它使用稳定语义【j U】 作为安全策略的语义.FAF严格限制“非”的使用,不支持负递归(negative recursion),不支持量词,描述的安全策略 也不够精炼,因而使用起来并不方便.由于已有的逻辑程序稳定语义查询算法的计算复杂度较高,因此FAF语义 查询效率较低.文献[5】使用约束逻辑程序表达安全策略,约束逻辑程序的约束域能够方便地表达数值计算等特 性,但其策略决策的计算复杂度较高.文献[6]基于动态逻辑提出了一种可用于表达职责和动态授权的安全策略 语言,其安全策略验证问题是不可判定的.文献【7,8】仅讨论了安全策略语言的语法、语义及策略决策算法,并不 支持安全策略验证这一关键特性. 虽然目前已经存在多种基于逻辑的安全策略语言,但这些语言基本上都是基于逻辑程序『9】的,局限于逻辑 程序的语法,某些情况下无法容易地描述出一些安全策略.文献[11]提出了一种基于一阶逻辑的安全策略语言 Lithium.为了有限度地支持量词,Lithium对其语法进行了严格的限制,普通管理人员难以理解,并且表达能力有 限.但是,Lithium在用一阶逻辑表达安全策略方面进行了有益的尝试. 在安全策略语义查询方面,安全策略究竟表达什么样的语义(即所谓的正则语义)以及在该语义下的查询算 法是研究的重点.事实上,如何定义安全策略的正则语义是一个非常复杂的问题【 】.现有的一些文献一般仅讨论 具有特殊语法结构的安全策略语言,从而可以容易地定义其语义.例如,文献[1】仅讨论能够表示成Datalog程 序fJ 的安全策略,这是因为Datalog程序具有公认的正则语义.对于语法较为复杂的安全策略语言,其语义的研 究往往被忽略了.例如,文献【2,7,11】中提出的安全策略语言要比文献【1]中提出的安全策略语言复杂得多,但却 没有深入探讨安全策略语义问题.安全策略语义查询算法的设计难度取决于安全策略语言的复杂程度,一般来 说,安全策略语言越复杂,语义查询算法的设计就越困难,计算复杂度也越高.因此,现有安全策略语言一般仅局 限于具有特殊语法结构的逻辑系统.例如,文献【1]使用Datalog的语义查询算法作为安全策略的语义查询算法, 其计算复杂度是多项式级的.文献[2,7,11]则没有明确地讨论语义查询问题. 在安全策略验证方面,目前己存在多种安全策略验证技术【1,14,15].这些技术的基本思想是:首先将待验证安 全策略转换成抽象模型并通过形式化建模语言描述出来,同时将待验证安全属性转换成形式化的安全属性不 变式,然后将它们输入到验证工具中完成验证.这需要保证不同表达方式之间转换的等价性,然而,①有时从理 论上无法实现不同表达方式之间转换的等价性;②即使可以从理论上保证转换的等价性,但对于普通安全策 略管理人员来说,保证实际转换过程的等价性也是非常困难的:⑧安全策略验证算法和安全策略语义查询算 法采用的语义可能并不一致,从而有可能导致验证失效等问题的产生. 综上所述,安全策略表达、语义查询和安全策略验证之间是相互制约、相辅相成的.因此,在统一的安全策 略管理框架中实现上述功能具有一定的优势,但也面临着巨大的挑战.现有安全策略语言大部分仅考虑到语义 查询问题,而没有考虑到安全策略验证问题,而现有的验证技术又与安全策略语言严重脱节,因而有可能存在验 证失效等问题.从公开的文献中还没有发现将上述三者统一起来进行形式化研究的成果,相关研究也不多见,一 般仅关注于某些特定类型的安全策略,不具有普适性.例如,文献[16】介绍了一种在访问控制空间理论下研究系 统特权安全问题的方法,指出隐式授权可能导致系统存在不必要的特权滥用风险.然而,隐式授权是现代安全策 略系统中一种常用的授权方式,现有安全策略语言无一例外都支持隐式授权.文献【16]使用一种称为快速构造 授权图的算法检测是否存在特权滥用,可以认为这是一种特殊类型的安全策略验证算法,但不支持负递归和非 单调推理等特性.本文提出的方法可用于解决文献[16]中提出的问题,且具有更好的通用性. 914 Journal of Software软件学报Vo1.23,No.4,April 2012 基于上述考虑,本文提出了一种基于一阶逻辑的安全策略管理框架WF.SPevf, ̄以在统一的良基语义n 下 实现安全策略表达、语义查询和验证.一阶逻辑具有足够强的表达能力,良基语义具备一系列优良的特性(参见 第1.2节和文献[171),这使得WF.SPevf具有强大的表达能力,其所表达出的每个安全策略具有精确的语义定义 方式和高效的语义查询算法及验证算法. 1预备知识 本文假定读者熟悉一阶逻辑【 .为了便于阅读,本节简要介绍本文所使用的各种术语、符号与约定.有关逻 辑程序及其良基语义的详细讨论可参考文献[17】. 1.1一阶逻辑及相关术语 本文讨论的一阶逻辑系统的字母表岫下列7种类型的符号集合构成: ①常元符号集; ②变元符号集; ③函数符号集; ④谓词符号集; ⑤逻辑连接符集 {~,A,v,<--,H,一}; ⑥量题符号集{v,了}; ⑦标点符号集. 本文所用术语,如项、原子、文字、表达式、自由变元、约束变元、闭式、Herbrand域、Herbrand基、 Herbrand解释、语义等的详细定义可参考文献[9,18】.为了简单起见,本文约定: ①助有限集: ②所有常元符号都用首字母小写的字符串表示: ③所有变元符号都用首字母大写的字符串表示: ④函数符号集为空集: ⑤所有谓词符号也都用首字母小写的字符串表示; ⑥ ,j;, 等符号表示变元序列, , , 等符号表示常元序列, 等符号表示项序列; ⑦设墨,... F 的全称闭式,为一阶逻辑表达式F中全部的自由变元,则V .. X(F)称为 简写为n ( ,j . 矗(.F)称为F的存在闭式,简写为j( . 定义l(--值语义).设 为由若干个一阶逻辑表达式构成的集合,日 为 上的Herbrand基’,为风上的 Herbrand解释(即,为基本原子集合且I ).如果 中的每个表达式G在,中的真值都为真,即 G,则』是 的一个二值Herbrand语义,简称为二值语义. 1.2扩展型逻辑程序及其语义 扩展型逻辑程序f9 是一种语法受限的一阶逻辑系统.每个逻辑程序都由一系列的规则构成,每个规则都具 有 ÷-三lA…AL 形式的逻辑表达式,它等价于闭式V(Av也1V…v ̄L ),一般写成 l’..., 的形式.这里 为原 子,称为规则头部;厶为文字, ≥0,犯l,...工 )称为规则体部.特别地,不含变元的规则称为基本规则. 文献[17】从模型论的角度给出了通过三值逻辑定义扩展型逻辑程序良基语义的方法.不同于二值逻辑,三 值逻辑认为,人们对客观世界的认识是不完全的,存在一些既无法给出肯定判断也无法给出否定判断的事实,其 真值是“未定义的”.有关三值逻辑的详细描述可参考文献[17,19]. 定义2(--f ̄)t拇】.设 一阶逻辑语言, 为 的Herbrand域, 为 的Herbrand基, , 尸 ,且 ,则序偶 ( 巧为定义在 上的三值Herbrand解释,简称为三值解释.这里, 中每个基本原 一( u厂)中每个基本原子的真值为“未定义”.如果 子的真值为“真”,厂中每个基本原子的真值为“假”, 包义保等:基于良基语义的安全策略表达与验证方法 915 = u尸,则 变成二值解释.每个二值解释 都可以转化成一个三值解释 =( ; 一 ) 三值解释 ( 可以等价地看成定义在 上的全函数,: {。, ,1),如公式(1)所示: 1.ifA∈厂 I(A)= ,if ∈ (1) 0。ifA∈厂 定义在 的每个逻辑表达式的真值可递归地定义为如下形式: 定义3(逻辑表达式的真值)n .设 ( 为定义在 的一个三值解释,则 (1)如果A是基本原子,则Iz( )=,( ); (2)如果 是闭式,则,,(~ )=1一Iz( ); (3)如果 和G都为闭式,则 ( AG)=min(Iz( ),Iz(G)), ,,  ,、 【1,ifIz( )≥Iz(G) l 0,otherwise }. , (-sr v G)=max(G( ),,z-(G)), 。、 (4) 对于任意的逻辑表达式 若 是 的一个自由变元,则 (V S)=rain{Iz( 1 ):C∈ },Iz(j S)=max{Iz( Ix ̄c):c∈ 由定义3可知,三值逻辑中的“ ”和二值逻辑中的“÷_”是不同的.在二值逻辑中, ÷-G和 ~G等价,而在三 值逻辑中, ( ÷-G)和max(1z( ),1一 (G))并不恒等,因而 G和Sv-G并不等价.为了平滑三值逻辑和经典 二值逻辑之间的差异,本文引入一个新的逻辑连接符“一”,并且规定 —G等价于 一G. 定义4(--值语义)【 】.不防设扩展型逻辑程序 冲的规则都是基本规则(否则将其实例化),则三值解释 缇 夕构三值语义,当且仅当对于 冲任一基本规则 ÷ ..,三 ,公式(2)都成立. (2) ,^ )> ̄min{IM(L f≤ } 显然,每个二值语义都唯一对应着一个三值语义.因此,若无特殊说明,下文中的语义指的都是三值语义.由 定义4可知,每个扩展型逻辑程序至少有一个三值语义 ( ; ),也可能有多个三值语义f 】1.研究人员普遍认为 良基语义是比较合理的三值语义,具有一系列良好的特性:①每个逻辑程序都具有唯一的良基语义;②良基语 义和一系列特殊类型逻辑程序公认的正则语义等同.例如,分层逻辑程序的良基语义等同于其完美语义【】 ,而完 美语义被认为是分层逻辑程序的正则语义【9 ;③良基语义具备支撑性语义特性[19].所谓支撑性语义,是指该语 义中任意一个基本文字都是由扩展型逻辑程序中某个相应的规则推理得到的.这一特性保证了安全策略描述 安全需求的有效性;④存在高效的基于良基语义的语义查询算法,如SLG算法[20,211,具备良好的实用性.因此, 本文选择良基语义作为扩展型逻辑程序的正则语义. SLG算法是由Stony Brook大学的Chen和Warren等人提出的一种高效的基于良基语义的逻辑程序语义 查询算法.文献[20,211详细讨论了SLG算法及其计算复杂度、可靠性和完备性等问题:SLG算法的计算复杂度 是多项式级的;对于non.Floundering查询,SLG算法是可靠的和完备的;对于Floundering查询,SLG算法是可靠 的,但不是完备的.所谓Floundering查询,是指SLG算法在消解查询目标的过程中,如果按照某种原则选取出的 子目标是负文字,且不是基本文字,则称这样的查询为Floundering查询.从公开的研究资料来看,几乎所有的语 义查询算法都无法保证Floundering查询的完备性.有关Floundering及non-Floundering查询的详细讨论超出了 本文的范围,但SLG算法在语义查询的过程中具备判定一个查询是否为Floundering查询的能力.如果SLG断 定某个查询是Floundering查询,则报警并给出原因,然后退出语义查询过程.XSB系统是目前被广泛认可而又有 效的实现SLG算法的逻辑程序引擎. 2安全策略语言 鉴于已有安全策略语言描述能力及对安全策略验证支持上的不足,本文基于一阶逻辑提出了一种支持安 916 Journal of Software软件学报Vo1.23,No.4,April 2012 全策略验证的新型安全策略语言,简记为SPL.从语法形式上来看,SPL兼容绝大数现有的安全策略语言,并且比 它们具有更强的描述能力. 定义5(规则).设wff为不含“ ”逻辑连接符的一阶逻辑表达式 为原子,则称公式(3)形式的逻辑表达式为 规则.公式(3)一般简写成A ̄wff的形式.若 77r为空,则可简写成 ÷-或 .此时 也称为事实. V (3) 定义6(安全策略).在本文中,由有限个公式(3)形式的规则构成的集合称为安全策略. 给定安全策略 它通过下列方式唯一地定义了一个与劂有常元符号构成 的常元符号集;②在跚应的一阶逻辑系统 :①在 砷出现的所 出现的所有谓词符号构成 的谓词符号集;③函数符号集为 空集.因而, 也可简记为 上述类型的逻辑系统中使用的一阶语言,称为安全策略语言,简记为SPL. 由定义6可知,每个扩展型逻辑程序都是一个SPL安全策略.由定义6还可以知道,SPL兼容绝大多数已有 的安全策略语言.例如,它兼容文献[2—8】中提出的安全策略语言. 安全策略语言关注两个方面的表达能力:总体表达能力和个体表达能力.前者指通过规则的不同组合最终 能够达到的表达能力,一般直接称为表达能力;后者是指单个规则最终能够达到的表达能力,一般简称为描述能 力.从安全策略管理的角度来看,具有相同表达能力的两种安全策略语言,描述能力越强的安全策略语言越容易 受到安全管理人员的欢迎.由于安全策略语言直接面向安全管理员,因而目前的研究都非常注重安全策略语言 的描述能力. 对于任意给定的安全策略 设 表达式的集合, ( )为 序规则的集合.由定义5可知, 为其对应的一阶逻辑系统,F( )为 能够表达的所有一阶逻辑 ( ) ( ).因而,从语 能够表达的所有安全策略规则的集合, ( )为 声能够表达的所有逻辑程 ( )c:zF( ).同样,由第1.2节的内容可知, 法的角度来看,SPL的描述能力弱于相应的一阶逻辑语言,但强于相应的逻辑程序语言.此外,由本文定理2和定 理3不难发现,SPL的表达能力等价于扩展逻辑程序的表达能力. 3安全策略良基语义 直接定义安全策略语义面临着巨大困难,为此,本文首先将安全策略转换成扩展型逻辑程序,然后利用扩展 型逻辑程序的良基语义定义安全策略的良基语义.算法l通过转换运算①至转换运算⑩,将安全策略中的规则 转换成扩展型逻辑程序中的规则,从而将安全策略转换成扩展型逻辑程序. 算法1.安全策略转换(security policy transformation). PolicyTrans(,SY ̄) For each rule,in apply one of the following transformations to,. ① Replace by and ÷- ^~( z,OAWr \ ̄ ~ ② Replace by and ( ^ ~ ⑧ Replace by 一 ~( ,+ ^ ÷- ~ ④ Replace by and ÷- ^( ^ ^ ⑤ Replace by ÷_ ~( ^~ ^ ~ r^ 包义保等:基于良基语义的安全策略表达与验证方法 917 ⑨ Replace by 一 ,^ ⑦ Replace A AV置…V W^ by ( Replace ÷- ^~j …3 ( ̄ )^ A七一 ^~ …Vx WA .by ⑨ Replace A÷- by 一 ^j置…3 ( ̄W)^ Aj …3xWA .^W Z1..., 卜÷ ^ where Zl,..., are distinct variables that are not freely occurring in A, and Wr. ( Replace A ^一3 …3x ^ W .by and (Yl,..., ^Wr p( ,…, )七一了 …3xW .wherep/k is a new k-arity predicate not occurring in S'P and rl,…,Yk are all the free variables in j …j . Until no transformation can be applied to End. Note: has the form L1^…AL where Lf is a litera1. Vand wr are first—order formulas. 定理1证明了算法1的可终止性和计算复杂度.这里,LwfJl为表达式wff中的原子数目、“一”连接符号数 目、“v”连接符号数目、“j”连接符号数目、“ ”连接符号数目及“~”连接符号数目之和,称为表达式wff的尺寸. 若黝一个安全策略,则称1 5"f l=∑, 舻f r f为蹦尺寸. 定理l(算法1的可终止性).对于任意给定的安全策略 算法1可在有限步内执行完毕,并且其转换结果 是一个扩展型逻辑程序.设 卿规则数目为V,…V’连接符号数目为m,“ ”连接符号数目为 ,u=max{[r[[re,5 ̄,k 为使得“≤2 的最小值,则最坏情况下,算法1总的转换次数不大于v.2 。+ + ;平均情况下,算法1总的转换次 数不大于v.(“+ .2L1),因而具有较好的实用价值. 证明:设 七一 为卿的任一规则,算法1应用于 的转换运算为 同时,粥 换为 1) 若f为转换运算①、转换运算②、转换运算④或转换运算⑩,则得到两个新规则,设为 1 嘲A2(--wfA.不难发现,1wfA-< f<f嘲; 和 2) 若沩转换运算③、转换运算⑥或转换运算⑨,则得到一个新规则,设为 1÷. .不难发现,}嘲{<f嘲, 因而ISPd<l,s ̄; 3) 若 转换运算⑧,则得到一个新规则,设为 1 嘲,容易看出,IWfA[=1嗍.但转换运算⑧后面紧跟着 的转换运算一定是转换运算⑨,设其转换结果为 2卜 ,容易看出,I l<l嘲I=I ; 4) 若确转换运算⑤,则所得结果一定为一个新规则,设为A。<-w ̄i,容易看出,IWfA[=1wff.若无后续转换 运算可作用于 ,则转换结束,即算法1可在有限次转换运算后终止;否则,在所有后续转换运算中, 转换运算⑤最多出现 一1次.这是因为,每应用一次转换运算⑤,都会使得原。 砷“v”连接符号至少 减少一个,而所有其他的转换运算都不会引入“v”连接符号; 5) 若『为转换运算⑦,则得到一个新规则,设为A1 嘲,容易看出,IWffd=[W ̄+1.但转换运算⑦后面紧跟 着的转换运算一定是转换运算⑩,设其转换结果为 2 啦和 3七一 j,并且l嗽1≤IWffd一1=I嗍, I I≤lWfAI一1=IWfj].同样,若无后续转换运算可作用于 则转换结束;否则,在所有后续转换运算 中,转换运算⑦最多出现n一1次.这是因为,每应用一次转换运算⑦,都会使得原 砷“v”连接符至少 减少一个,而所有其他的转换运算都不会引入“V”连接符号. 综合上述步骤1)~步骤5)的分析可知,转换运算腰么使得J 钎I<I嗍(即转换得到的新规则的尺寸小于原规 918 Journal of Software软件学报Vo1.23,No.4,April 2012 则的尺寸),要么使得I =I .由于使得ISP,I=I,S' ̄的转换运算 整个转换运算序列中最多出现m+n次,因而 对于任一安全策略 算法l一定可在有限步转换运算后将其转换成逻辑程序 并终止.如果 不是逻辑程 序,则 中一定存在可以继续应用转换运算的规则,因而算法1还没有终止,这显然是矛盾的. 在极端情况下,算法1选择的转换运算序列中的每个转换运算都使一个尺寸为i的规则分裂为尺寸为f一1 的两个规则.因而,针对每个规则的转换运算序列最大长度不超过v.2 + +n,转换结果 中规则数目最多不 超过v.u个.在现实世界中,这种极端情况极其罕见,因而转换运算序列长度的平均值更具有参考价值. 在平均情况下,算法1针对每个规则选择的转换运算序列中的每个转换运算,使一个尺寸为i的规则转换成 尺寸为卜1的另一个规则,或分裂为尺寸为l f/2 I的两个规则,因而总的转换次数不超过 v・(“+2・f兰]+2 ・f参]+…+2 ・f拳])≤v・(“+2・萼+2 ・ +…+2 ・蒡]=v・ “+ ・2 一-,. 口 Iz 一y ;I , 这个值非常接近于( 1).U 由下述引理1~引理4可以看出算法1中转换运算①~转换运算⑩的正确性. 引理1.下述表达式在三值逻辑中是恒等式: ( ̄ ^rv))sIz Vv~ ), ( V ));Iz( ̄ ^一 ), (V …V以 )--/z( ̄j置…j ( ̄ )), ( ̄V …V ) 证明:利用定义3即可完成证明.设纳三值解释. (1) (2) (3) (4) (一~ );1一 (一 ) 1一(1一Iz( )); ( ); (j置…j (~ )), ( —W);Iz(Vv~rv). ( ̄(V^rv));l一 ( ^ ) 1一min(/z( ),易( ));max(1一/z( ),1一/z( ))s ( ̄(Vv ));1一 ( ̄j V )=1一max(Iz( ),Iz( )) rain(1一Iz( ),l—Iz( )) Vv~ ); ( ̄V)AIi( ̄ ); )) 1一 (| ( ̄ ))s1一max{ ̄z rx ̄c):C∈ ) min{1一/z WIx ̄o):C∈ } airn{1一(1一/z( J H )):c∈ }Emin{/z(rvl ):C∈ }i/z( ( )); (5)Iz( ̄VxW);l一 (V );1一mill{Iz(rVIx ̄o):C∈ );max{1一Iz(rvIx ̄c):C∈厶 } ;max{lz(~ I 卜÷。):C∈/-/g)iIz(j ( ̄ )). (6)由“一”逻辑连接符的含义可立即得到 ( 一 );Iz(Vv一 ). 引理2.设r:A ̄-WM^(V^ ^ 仅当 1和t"2的语义. 口 r的语义,当且 1: r2: ^ (夕 )为三值解释.维证明:“ ”的证明:76妨设 为一个基本原子. (1) 若 ∈ 口Iz( )=l,由Iz的定义可知, )≥ ( ^V^ )且 ( )≥Iz( ^ ^ ).由定义 3可知,易(,i):l, ( )=1,因而篪r1和r2的语义; (2)A ̄2N_ 仨 即 ( )=去.由于疆,.的语义,则由定义3可知, ( ^(Vv )^ )≤寺,因而 ( ), ( ), ( v W)中必有一个不大于去: a)若 ( )≤ 1或 ( )≤寺,则 ( ^ ^ )≤ 1且 ( ^ ^ )≤寺; b)若 ( )> ̄1t ( )>{,即 ( )=1且 ( )=l,则 .包义保等:基于良基语义的安全策略表达与验证方法 919 ( V W)=max( ̄( ),Iz( ))≤÷. 因而乞( )≤ 且 ( )≤ ,从而可得 ( ^VA )≤ 且 ( ^ ^ )≤ ; 由上述a)和b)可知,Iz( )≥Iz( AVA )且 ( )≥ ( AWA ).由定义3可知, ( )=l, ( )=1.因而维r1和 的语义; (3)若 ∈ 即Iz( )=0.由于缇,的模型,则由定义3可知, ( ^(VvW)A )=0,因而Iz( ), ( ), ( V W)中必有一个为0: a)若 ( )=0或 ( )=0,则 ( ^V^ ):0且易( ^W^ )=o; b)若 ( )≠0且 ( )≠0,则 vW):max(S ( ),I ( ))=0,因而 ( )=Iz( )=0,从而 可得 ( ^VA )=0且 ( ^W^ )=0; 由上述a)和b)可知,Iz( )≥Iz( A A )且 ( )≥ ( AWA ).由定义3可知,Iz( )=1, (r2)=1,因而维rl和1"2的语义. “乍”的证明与“==>”证明的逆过程类似,这里不再赘述. 口 引理3.设,: ÷_ 了 WAWr,,i:A÷- AW1 z^ ,变量Z不在规则r中出现,.2 ( )为三值解释..Z. 是r的语义,当且仅当 r 的语义. 证明: ,的语义营Iz( )≥Iz( A3xWA ) 营 ( )≥min(/z( ),rlfax{ Ix ̄o):c∈ }, ( )) 营Iz( )≥min(Iz( ),Iz( l z), ( )) §Iz( )≥ ( ^W 卜÷z^ ) § 是 1的语义. 口 引理4.设r: ÷- ~j WAWT)rl:A(---WHA ̄p(YI,..., AWT,r2:P(YI,..., ( )为三值解释.这里, p/k为新引入的 元谓词,它不在表达式 , ~了 及 中出现,y】…., 为 中的全部自由变元.那么,绳, 的语义,当且仅当 =( ;尸)是 1和/'2的语义.这里, = u{p(c .., )1 c1,-.., ∈ , ( WI 卜÷q… )=1}, 厂 =厂u{P(q,..., )l C1,..., ∈ , (j WI q..., q)=O}. 证明:“==>”的证明:由于 ,显然 n = .容易验证r2在.Z- 中的真值为“真”,即 ,( ):1.下面证明 ,(,i)=1.不妨设 为一个基本原子.由于p/后是新引入的谓词,则由 的定义可知: ( )= t( ), ( )= ,( ), ( )= ,( ), j W)= , j ). 由于瘫r的语义,则 (1)若A∈ 即 ( )= ,( )=1,因而一定有 ,( )≥ ,( ^一p( ,...,YD^ ).由定义3可知, ,( )=l,OP.Z-'是 1和 的语义; (2)若 g殂 硭 即 ( )= , )={.由于维,.的模型,则由定义3可知, ( ^~j ^ )≤去, 因而Iz( ), ( ), (~ )中至少有一个小于或等于去: a)若 ( )≤ 或 ( )≤ ,则一定有 ,( )≤ 或易,( )≤ ,因而一定有 1 ,( A—p( ,…, )A )≤÷. b)若 (%)=l且 ( )=l,则 ( ̄j W)= , j W)≤{,即 ,(j )=1一 ,( ̄了 )≥ 1.由 920 Journal of Software软件学报Vo1.23,No.4,April 2012 于 ,( )=1,即 ,(p( 9 o o ̄ ̄ ))≥ ,( W)≥寺,因而 ,( ̄p( ,..., ))=1一 ,(p(YI,..., ))≤去, 二 Z 1 即Iz,( ^一p( ,…, )^ )≤÷. 由上述a)和b)可知, ,( )≥ ,( ^一 ( ,..., )^ ).由定义3可知,Iz.(,i)=1,即 是r1的语义; (3)若Aef,, ̄rl ( )= ,( )=0.由于 是r的模型,则由定义3可知, ( ^~ ∥^ )=0,因而 Iz( ),Iz( ), 了 )中必有一个为0: ( ^~p( ,…, )^ )=0. a)若 ( )=0或 ( )=0,则一定有 ,( )=0或 ,( )=0,因而一定有 ,b)若 ( )≠0且 ( )≠0,则Iz( ̄| W)= ,( ̄j W)=0,即 ,( r)=1一 , j ):1.由于 (r2)=1,即Iz,(p( ,..., ))≥ ,( )=1,因而 ,( ̄p( ,..., ))=1一 ,(p( ,..., ))=0,即 . ( ^一p( ,…, )^ ):0. 由上述a)和b)可知, ,( )= .( ^~p( ,..., )^ ).由定义3可知, ,(,i)=1,即.Z_ 是,1的语义. 综上所述,若 跫,.的语义,则 是 】和r2的语义. “仁”的证明过程与“ ”证明的逆过程类似,这里不再赘述. 口 定理2说明,算法1在转换安全策略的过程中引入的新谓词虽然向原安全策略的语义中增加了一些新的基 本原子,但这对原安全策略的语义并不构成实质性的影响,因而是可靠的.定理3说明,算法1具有保持安全策略 语义的能力,因而是完备的.由引理1~引理4,容易证明算法l的可靠性和完备性. 定理2(算法1的可靠性).设 哟一个安全策略, 算法l转换后所得结果为‘5 , =<7’;厂,>为 , 的一个三值语义朋证明:由 转换过程中由转换运算⑩新引入的所有谓词构成的集合,则 ( , 厂 ,因而 )是 . 一个三值语 义.这里, = 一{p( )IP∈A/",p( )∈ },尸= 一{p(t一)IP∈A/",p( )∈厂 }. :( 尸)为三值模型可得, n尸= ,容易看出厂 由引理1一引理4可直接推导出, 的每个规则在 =( ;尸>中的真值都为真. 的每个规则在 绅的真值也都为真. 口 由于集合 和 仅是从 ’和尸’中去除了那些对 绅规则的真值赋值不会产生影响的基本原子f这是因 为这些原子所对应的谓词都是在转换过程中新引入的),因而卿综上所述, ( 是 啪一个三值语义. 定理3(算法1的完备性).设 黝安全策略, ( 则存在 =( ;尸),其中, 日 , )为 啪三值语义, 是 算法l转换后所得结果 , 尸 日 , 的三值语义. 证明:由定理l可知,算法1可在有限步内转换完毕.设算法1应用于 构成的序列依次为『1,..., .设 造方法如下所示: 的转换次数为m,且这些转换运算 =(乃 构 过前i-1次转换后所得到的安全策略记为 -1,令 = 1) 若 为转换运算①一转换运算⑨,令 =/ _1.由引理l一引理3可知,若/ 一1是 的语义; 2) 若 为转换运算⑩,则被转换的规则为 的全部自由变元.令 =( 乃,其中, 1的语义,则/ 是 一 W^Wr,pi/k为新引入的 元谓词, ,..., 为j 中 = 1 u{Pi(q,..., )I C1,...,Ck∈ , (j l = l u (c ..,Ck)l C1,...,Ck∈ , ( 由引理4可知,若 一1是 1的语义,则 是 的语义. I .., )=1), " )=0). 口 , =:< ;厂 >为 定理2和定理3保证了通过扩展型逻辑程序的良基语义定义安全策略语义的合理性. 定义7(安全策略的良基语义).设 哟安全策略,臃这里. 算法1转换后所得结果为 的良基语义, 为转换过程中由转换运算⑩新引入的所有谓词构成的集合,则称./t4=-< )是 良基语义. 包义保等:基于良基语义的安全策略表达与验证方法 921 7-= 一{pff)fP∈ ,p( )∈7- },厂=尸 一{pff)fP∈A/",p( )∈ ) 4安全策略语义查询与验证 本节讨论基于良基语义的安全策略语义查询问题,进而构造出安全策略决策算法和验证算法.首先讨论查 询目标为 pQ")形式的表达式(即基本查询目标)时安全策略语义查询问题,并给出相应的算法,该算法可应用 于安全策略决策等方面;其次,讨论查询目标为一阶逻辑表达式(即复杂查询目标)时安全策略语义查询问题,并 给出相应的算法,该算法可应用于安全策略验证等方面. 4.1安全策略基本查询及安全策略决策 设 安全策略, 为劂良基语义,p/n为跚的一个谓词,p(i-)为n元原子.那么存在哪些n元基本置 换阿以使得pff)O为 于 逻辑结果呢?这个问题称为安全策略基本查询问题.本节基于算法1给出了 一种安全策略基本查询问题的求解方法,其基本思想如算法2所示.这里, 为SLG算法返回的查询结果.SLG算 法和XSB系统的相关信息可参考文献[20,21]. (1) 如果R=O,则说明不存在基本置换使得原子pff)在 良基语义中成立.由于本文认为良基语义是 扩展型逻辑程序的正则语义,因而可以断言,](p( ))在 砷是不成立的; (2) 如果尺≠ ,则说明存在基本置换使得原子pQ")在 良基语义中成立,因而可以断言,j(p( ))在,gP 中是成立的: (3) 如果XSB系统返回Floundering警告,则无法判定了(p( ))在 砷是否成立. 算法2.安全策略语义基本查询算法. 定理4(安全策略基本查询算法的可靠性和完备 性).p(i)O是 对于朋}勺逻辑结果,当且仅当p(i)O是 相对于其良基语义.At 的逻辑结果. 证明:由算法l的可靠性(定理2)和完备性(定理3)可直接得证. 口 安全策略语义基本查询算法经过简单变换后可处理 p( )形式的查询目标,主要用于策略决策等方面. 4.2安全策略复杂查询及安全策略验证 安全属性不变式通常是比较复杂的一阶逻辑表达式,安全策略语义基本查询算法只能处理形式较为简单 的(仅含有一个原子的)查询目标,因而无法满足安全策略验证的需求.为了解决安全策略验证问题,本节首先给 出了将安全策略复杂查询问题转化为安全策略简单查询问题的算法(参见算法3),并且证明了该算法的可靠性 和完备性;其次,利用安全策略语义基本查询算法构造出安全策略复杂查询算法,该算法主要用于安全策略验 证,因而本文称其为安全策略验证算法.由于安全策略验证算法是基于安全策略语义基本查询算法的,因而安全 策略验证和安全策略决策使用相同的语义,可有效避免本文引言中提到的验证失效等问题的产生. 算法3.安全策略复杂查询转换. QueryTrans((,h ̄,Q)) u{ans(X1,... ) a); Return(PolicyTrans(,S ̄ ),ans(Xl,... )) End. 设 安全策略, 伪 良基语义,Q为不含“ ”的任意形式的一阶逻辑表达式 ,... 为Q中的全部 自由变元,那么存在哪些n元基本置换可以使得Q为 于 勺逻辑结果呢?这个问题称为安全策略复杂查询 问题,记为( Q).设ans/n为一个未在 出现过的n元谓词符号,则算法3可以将( Q)转换成另一个等价 的安全策略基本查询问题( ,ans(X1,... )).这里, ”为扩展型逻辑程序.定理5证明了算法3的可靠性和完 Journal of Software软件学报Vo1.23,No.4,Ar'ril 2012 备性.定理6证明了算法3的可终止性. 定理5(算法3的可靠性和完备性).在算法3中,设 ( _)是 = u{ans(c c )Ic c ∈ =良基语义,令 , )=1}, 卜÷ )=0), , (gI , (g I 厂u{ans(cI,...,Cn)I C1,...,Cn∈ 则有: (1) (2) =( ;尸)是扩展型逻辑程序 的良基语义; 是 的良基语义,即上面的(1)成立. ( (Q))=1当且仅当 肘,(3(ans(X1,..., )))=1. 的语义,则 ,(ans(Xl 9-*o 9 ) Q)=1.若 (j(Q))=1,易知 ,( (Q))=1,即 )=1.由定义3可知: , ., 证明:(1)由文献[17】的定义3.3及 和尸的构造方法可直接得出 (2)“==>”的证明:由于./14 是 存在基本置换 f l-- ̄al,... 卜÷ }使得 ,(Q 即, r(ans .,口 ))i 朋,(3(ans(X ̄ ., I)))=1. ,朋,(ans(a ,.,a ))≥ 一(Q 卜÷ ). 反之,若 .(3(ans(X1,..., )))=1,不妨设 ,(ans(a ..,a ))=1.这里,口1,...,a ∈ 由规则ans(Xl…. ) Q推导出来,并且 造方法可知,, (Q … .由于ans(al,.…a )仅能 是 的良基语义,因而 ,(Q 卜+ 矗 )=1.由 ...( ;尸 )构 卜+ )=1,即 ( (Q))=1. 口 口 “乍”的证明与“ ”证明的逆过程类似,这里不再赘述. 定理6(算法3的可终止性).算法3可在有限步内转换完毕,其总的转换次数是多项式级的. 证明:该结论是定理1的直接推论. 至此,本文给出了将安全策略转换成扩展型逻辑程序及将安全策略查询问题转换成扩展型逻辑程序查询 问题的算法,并且证明了这些算法在良基语义下的可终止性、可靠性和完备性.下面将利用这些结论构建安全 策略验证算法.为了使验证算法具有足够高的效率,本文假设: ①安全策略中每个规则 的wff中不含有任何函数符号; ②待验证的安全属性都可以表示成一个不含逻辑连接符“ ”和函数符号的一阶逻辑表达式; ③为了保证安全策略验证过程的可靠性和完备性,每个待验证的安全属性都是一个non.Floundering查询. 对于那些无法表示成non.Floundering查询的安全属性,则不在本文考虑的范围之内. 安全策略验证算法的结构如算法4所示.在该算法中,首先利用算法3,将安全策略 哪待验证的安全属性 不变式Q构成的安全策略复杂查询问题( Q)转换成安全策略简单查询问题( ”,ans(X1,... )).由于 ”是 扩展型逻辑程序,ans(Xl…. )是基本查询目标,因而XSB系统可高效地计算它并返回查询结果 : (1) 如果R=O,则说明不存在基本置换使得安全属性不变式Q在 基语义是扩展型逻辑程序的正则语义,因而可以断言,j(Q)在 良基语义中成立.由于本文认为良 是不成立的; (2) 如果R*O,则说明存在基本置换使得Q在 啪良基语义中成立,因而了(Q)在 砷成立; (3) 如果XSB系统返回Floundering警告,则说明无法判定j(Q)在卿算法4.安全策略验证算法. 安全属性Q 安全策略 QueryTrans(,Y ̄,Q) 是否成立. SLG算法 (XSB系统) 定理7(安全策略查询算法的可靠性和完备性).设 黾 证明:该结论是定理5的直接推论. 良基语义,则 (Q)是 啪对于 q逻辑结果, 口 当且仅 ̄(ans(Xl,... ))是 ”相对于其良基语义 ”的逻辑结果. 至此,我们已经完成了安全策略语言的设计、安全策略语义的定义及安全策略语义查询算法和验证算法的 包义保等:基于良基语义的安全策略表达与验证方法 923 设计.接下来,我们将这些研究成果组合起来,形成一个切实可用的安全策略管理框架wF.SPevf. 5 WF.SPevf安全策略管理框架 WF.SPevf的整体架构如图1所示,可在统一的安全策略良基语义下实现以下主要功能: ・安全策略表达:安全管理员根据系统安全需求,通过安全策略语言SPL制定安全策略,并存储到策略 库中: ・安全策略查询:信息系统根据具体应用场景形成基本查询目标提交给WF.SPevf.WF.SPevf根据安全策 略及查询目标,通过安全策略语义基本查询算法计算出查询结果并反馈给信息系统; ・安全属性表达:安全专家根据系统特性提炼出系统应具备的安全属性,然后通过安全策略语言SPL表 达出来,形成安全属性不变式.值得注意的是,WF—SPevf使用相同的语言表达安全属性和安全策略,这是 WF—Spevf与其他安全策略验证工具的一个显著不同点; ・安全策略验证:WF—SPevf根据安全策略和安全属性不变式,自动地验证两者之间的符合性.如果安全策 略满足安全属性不变式,则验证通过;否则,安全策略中存在错误或不足.此时,WF.SPevf提供完整的出 错原因,以便于安全管理员调试安全策略.值得注意的是,安全策略验证和安全策略查询使用相同的语 义,这是WF.Spevf与其他验证技术最重要的区别.由于安全属性不变式本质上是一阶逻辑表达式,因此 WF.SPevf还可用于其他能够表达成一阶逻辑表达式的属性判定问题,如策略冲突检测等. Fig.1 Security policy framework of WF—SPevf 图1 WF.SPevf的安全策略框架 在WF-SPevf中,安全策略语言、安全策略语义查询算法和安全策略验证算法构成一个有机的整体.它们在 统一的语义下对外提供策略表达、策略决策、策略验证等服务.WF.SPevf具备强大的描述能力、高效的策略 决策算法及强健的策略验证能力.与现有的安全策略框架相比,具有鲜明的特色.因此有理由相信,wF—SPevf可 为管理人员提供快捷、方便和易用的安全策略管理服务. 下面通过实例说明WF—SPevf的使用方法.设信息系统中存在由下列规则构成的信息流安全策 : 规则1.对于任意给定的用户U和文件 每个文件至少具有一个祖先目录),如果F的安全级别不支配U 的安全级别,同时至少有一个管理员允许 读取F的所有祖先目录,且没有管理员禁止 读取, Journal of Software软件学报VoL23,No.14,Ar,ril 2012 的任一祖先目录,则允许U读取 规则2.对于任意给定的用户【,和文件 如果 的安全级别不支配F的安全级别,则允许U写 规则3.系统中已有的实体(用户或文件)及其安全级别分别为 ,6), ,“), , , 1, ,( 2,”),( 3,口),其中 为 文件, 为用户. 规则4.安全级别 {口,b,U, P)之间的支配关系如图2(a)所示,它们构成格. 规则5.文件夹t为文件 的祖先,且管理员adml和adm2授予用户 1和S2读取文件夹t的权限. (a)局生谓词 上构成格(箭头表示支配关系) (b) 允许出现该信息流(箭头表示信息流向) (c)在 冲查找到一条不安全信息流路径(箭头表示信息流向) Fig.2 An insecurity information flow in securi ̄c)r policy 图2安全策略绅安全级的构成及不安全的信息流路径 (1)用SPL表示安全策略 文献[2—8]中提出的安全策略语言不支持量词,无法简单地表示上述安全策略.然而,SPL可简单地将上述安 全策略表示成下列形式: 置:permit(U,.F,read)<---secLevel(U ̄, )^secLevel(F, )^~厶,_< A 3oancestor(O,F)^ zVD[(authoz(U,D,read,Z)^~3z,deny(U,D,read,Z ))H ancestor(O,Fy.1 互:ancestor(t, ) :ancestor(L, ) :ancestor(t,. ) :authoz(s ̄,t,read,adm1) :permit(U,F,writeJ' secLevel(U,厶,),secLevel(F, ).,~ G:secLevel(f ̄,b) = C2:secLevel(f ̄,“) G:secLevel(f3,d) :secLevel(sl,d) C5:secLevel(s2:,U) c6:secLevel(s3,a) :authoz(s2.,f,read,adm2) 瓦:deny(s3,f,read,口批) 其中, l对应规则l, 2对应规则2,Cl ̄c6对应规则3,Dl ̄D6对应规则4,E1—E6对应规则5.permit ̄3,ancestor ̄2, authen/2.,authoz/4,deny ̄4,secLevel/2和_</2都为谓词符号,表达的含义是不言自明的. (2)安全策略决策 判断夕堤否允许S】读取 的过程如下(参见算法2):首先,利用算法1将 转换成扩展型逻辑程序 慷S后,利 用XSB系统评估查询( ,permit(sl【 ,read)),即可获得最终的判决结果. 利用算法l转换 冲R 的过程如下所示:连续3次应用转换运算⑨后 1可被转换成公式(4)所示的规则: permit(U,F,read) secLevel(U,.厶,)^secLevel(F, )^~ .< ^ancestor(O,,)^ VD[(authoz(U,D,read,z)^~3z,deny(U,.D,read,z ))H ancestor(O,F)】 … 一 包义保等:基于良基语义的安全策略表达与验证方法 925 应用转换运算⑦,公式(4)所示的规则可转换成公式(5)所示的规则: permit(U,F,read)÷-secLevel(U,厶,)^secLevel(F, )^~ 一< ^ancestor(O,F)^ ~ rc、 f)[~((authoz(U,0,read,Z)^~3z,deny(U,0,read,Z ))÷— ancestor(O,F))] 应用转换运算⑩,公式(5)所示的规则可转换成公式(6)和公式(7)所示的两个规则: :permit( F’read) ̄--SecLevel(U,L ^SecLevel(u,Lu)A ̄L旷也FAancestor(O, 人—p( z) p( 卜j0[-((authoz( 0,read,Z)^3z,deny( 0,read,Z')),-- ̄ancestor(O, )】 (6) (7) 已经没有转换运算可应用于公式(6).应用转换运算⑨,公式(7)所示的规则可转换为公式(8)所示的规则: p( z) ̄----((authoz( 0,read, A3rdeny( 0,read,Z'))*- ̄ancestor(O, ) (8) 应用转换运算③,公式(8)所示的规则可转换成公式(9)所示的规则: ( Z) ̄---(authoz( 0,read,)Z^3 ̄deny( 0,read,Z'))Aancestor(O, (9) 应用转换运算①,公式(9)所示规则可转换成公式(10)和公式(11)所示的两个规则: :p( z)+---authoz( 0,read,Z)I^ancestor(O, (1O) p( z) j deny( 0,read,Z')^ancestor(O, (11) 已经没有转换运算可应用于公式(1O).应用转换运算⑨,公式(11)所示规则可转换成公式(12)所示的规则: : ( z) ̄--deny( 0,read,Z')^ancestor(O, (12) 已经没有转换运算可应用于公式(12),转换过程结束,因而 1被转换成3个扩展型逻辑程序规则{T1,Tz,T3). 最终,算法1将 本专换成扩展型逻辑程序 =(P--{Rl})U{ ,T2,/'3). 将 ={专换成 后,利用XSB逻辑程序查询引擎评估查询( ,permit(sl ,read)),查询结果集为空集,具体的查 询评估过程参见文献[20,21].这说明, 允许 】直接读取 ,如图2(b)所示. f31安全属性验证 . ’ 一个信息流安全策略.从信息流的角度来看,为了保护机密性,高安全级别客体中的信息应无法流向低 安全级别的客体,即 砬该能够满足SPL安全属性不变式Q: Q=Vq,与,o2,上2 (canFlowTo(O1,02)^secLevel(Q,厶)AsecLevel(02, )AL2 厶)). 这里,安全属性不变式 表示“高安全级别客体中的信息应无法流向低安全级别的客体”.为了判定 否 满足Q,需要向原安全策略刀书加入下列两个用于刻画信息流向的规则: :canFlowTo(O1,02)4---permit(S,Ol,read),permit(S,02,write), :canFlowTo(q,D3) canFlowTo(Oz,02),canFlowTo(Oz,03), 其中,规则 表示,对于给定的用户 、客体01和D2,如果 能够读取D1,同时 能够向D2中写入信息,则0l 中的信息能够流向0:;规则 表示信息流向具有传递性.显然,将 和 加入绅不会改变 有的安全属性. 令 ”=Pu{V1,V2},验证 堤否满足Q的过程如下所示(参见算法4): 首先,利用算法3将复杂查询( ”,Q)转换成基本查询( 。 ,tmp).由算法3和算法1容易得到扩展型逻辑程 序 ,其中,tmp和P是在转换( ”,Q)的过程中新引入的0元谓词; =PolicyTrans(P u{tarp Q)) : ,u{ .…  』I ÷P<--canFl-~p owTo(Oz,02)A secLevel(O ̄,厶)AsecLevel(O2, )^L2_<厶Jl  然后,利用算法2评估查询( 。 ,tmp).如果 ”能够满足Q,则语义查询( b ,咖 )的结果集应该为空集.然而, 算法2却能够查询到一条规则序列(当XSB系统工作于调试模式时,能够跟踪查询过程中所调用的规则序列). 相应地,由这条规则序列可得到一条信息流,如图2(c)所示.在这条信息流中,信息能够从安全级别为d的客体 不安全地流向安全级别为b的客体.. 由于安全级别d支配安全级别6,因而席在安全隐患. 由上例可知,wF—SPevf可以高效地验证安全策略是否满足某个查询,进而判定是否满足某个安全属性. 926 Journal of Software软件学报Vo1.23,No.4,April 2012 6结论 本文首先定义了一种基于一阶逻辑的安全策略语言SPL.它不仅兼容现有主流的安全策略语言,还可以表 达具有非单调和递归等高级特性的复杂安全策略;其次,本文通过安全策略转换算法(算法1)将SPL安全策略转 换成扩展型逻辑程序,进而利用扩展型逻辑程序的良基语义给出了SPL安全策略的语义;再次,本文利用逻辑程 序理论构造出安全策略语义基本查询算法(算法2),可用于处理简单查询目标,主要应用于安全策略决策.在此 基础上,本文给出了将安全策略语义复杂查询问题转换成安全策略语义基本查询问题的算法(算法3),进而构造 出安全策略验证算法(算法4).显然,安全策略验证算法和安全策略决策算法基于相同的语义,有效地保证了安 全策略验证的有效性;最后,本文将上述研究成果组合起来,形成安全策略管理框架WF.SPevf.总体来说, WF.SPevf可在统一的良基语义基础上实现安全策略表达、语义查询和安全策略验证,具有强大的策略描述能 力、高效的策略决策能力以及可靠的策略验证能力,可应用于各种类型的策略管理系统中. References" [1】 Bonatti PA,Shahmehri N,Duma C,Olmedilla D,Nejdl W,Baldoni M,Baroglio C,Martelli A,Patti V,Coraggio P,Antoniou G, Peer J,Fuchs NE.Rule—Based policy speciifcation:State of the art and future work.Technical Report,IST506779,Project Deliverable DI,Working Group 12.2004.http://rewerse.net/deliverables/i2一d1.pdf [2】Woo TYC,Lam SS.Authorization in distirbuted systems:A new approach.Journal ofComputer Security,1993,2(2・3):107—136. [3】Jajodia S,Samarati P,Sapino ML,Subrahmanian VS.Flexible support for multiple access control policies.ACM Trans.on Database System,2001,26(2):214-260.[doi:10.1 145/383891.383894】 【4】Jajodia S,Samarati P,Subrahmanian VS,Bertino E.A uniifed framework for enforcing multiple access control policies.In: Peckman JM,Franklin M,eds.Proc.of the ACM SIGMOD Int’1 Conf.on Management of Data(SIGMOD’97).New York:ACM, 1997.474-485.[doi:10.1 145/253260.253364】 ・ [5]Barker S,Stuckey PJ.Flexible aCCeSS control policy speciifcation with constraint logic programming.ACM Trans.on Information System Security,2003,6(4):501—546_【doi:10.1 145/950191.950194】 【6】Gelfond M,Lobo J.Authorization and obligation policies in dynamic systems.In:De La Banda MG,Pontelli E,eds.Proc.of he t24th Int’1 Conf.on Logic Programming.LNCS 5366,Berlin,Heidelberg:Springer—Verlag,2008.22—36.[doi:10.1007/978-3-540— 89982—2_7] [7】Becker MY,Fournet C,Gordon AD.Design and semantics of a decentralized authorization language.In:Proc.of the 20th IEEE Computer Security Foundations Symp.(CSF 2007).Washington:IEEE Computer Society,2007.http://d1.acm.org/citation.cfm?id 1270639[doi:10.1 109/CSF.2007.18】 【8】Gurevich Y,Neeman I.DKAL:Distributed-Knowledge authorization language.In:Proc.of the 21st IEEE Computer Security Foundations Symp.Washington:IEEE Computer Society,2008.149—162.http://d1.aem.org/citation.efm?id=1381251【doi:10. 1 109/CSF.2008.8】 【9】Lloyd JW.Foundations ofLogic Programming.2nd ed.,New York:Springer-Verlag,1993. [10]Gelfond M,Lifschitz V.The stable model semantics for logic programming.In:Kowalski R,Bowen KA,eds.Proc.ofthe 5th Int’1 Cone on Logic Programming.MIT Press.1988.1070-1080.http://www.mendeley.corn/research/the—stable‘model。semantics—fur。 logic—programming/ [1 1]Halpern JY,Weissman V.Using first-order logic to reason about policies.ACM Trans.on Information System Security,2008, 11(4):1-41.【doi:10.1145/1380564.1380569】 [12]Zhou AY,Shi B.The fixpoint characteristic of semantics of datalog with negation.Journal of Software,1995,6(5):257~264(in Chinese with English abstract).http://www.jos.org.cn/1000—9825/19950501.htm 【13] Ceri S,Gottlob G,Tanca L.What you always wanted to know about datalog(and never dared to ask).IEEE Trans.on Knowledge nd aData Engineering,1989,1(1):146—166.【doi:10.1 109/69.43410】 [14】Jaeger T,Sailer R,Zhang XL.Analyzing integrity protection in the SELinux example policy.In:Proc.of the 12th Conf.on USENIX Security Symp.,Vo1.12.Washington,2003.http://d1.acm.org/citation.cfm?id 1251358&CFID 89924345&CFTOKEN 34546777 包义保等:基于良基语义的安全策略表达与验证方法 927 zmann GJ.The model checker SPIN.IEEE Trans.on Software Engneering,1997,23(5):279—295.【doi:10.1 109/32.588521] 【15] Hol JY,Qing SH,Liu W,He JB.Analysis on implicit authorization in privilege through rule deduction.Journal of Software, [16】 Cai2008,19(8):2102~2113(in Chinese with English abstrac0.http://www.jos.org.cn/1000・9825/19/2102.htm fdoi:10.3724/SP.J.1001. 2008.02102】  A,Ross KA,SchlipfJS.The well—founded semantics for general logic programs.Journal ofACM,1991,38(3):620—650 [17] Van Gelder[doi:10.1 145/1 16825.1 16838] on HB.Introduce to Mathematical Logic.2nd ed.,San Diego:Academic Press,2001. 【18] Endertzymusinski T.Well・Founded semantics coincides wih tthree-valued stable semantics.Fundamenta Informaticae,1990,13(4): 【19] Pr445-463. WD.Warren DS.Tabled evaluation wih tdelaying for general logic programs.Journal of ACM,1996,43(1):20—74.【doi:10. [20] Chen 1 1 45/227595 227597] uation under the well—founded semantics.In:Proc.of the 12th ACM SIGACT—SIGMOD_ 【21] Chen WD,Wa ̄en DS.Query evalSIGART Syrup.on Principles ofDatabase Systems.Washington,1993.[doi:10.1 145/153850.153865】 liott BD,Padula L,Leonard J.Secure computer system:Unified exposition and multics interpretation.Technical Report, 【22] ElESD—TR.75—306,MITRE Corporation,1 976. 附中文参考文献: 【12]周傲英,施伯乐.带否定的DATALOG的语义的不动点特性.软件学报,1995,6(5):257—264.http://www.jos.org.cn/lO00-9825/ l9950501.htm [16]蔡嘉勇,卿斯汉,刘伟,何建波.基于规则推导的特权隐式授权分析.软件学报,2008,19(8):2102—2113.http://www.jos.org.cn/1000- 9825/19/2102.htm[doi:10.3724/SP.J.1001.2008.02102] ■一包义保(1976一),男,安徽无为人,博士生, 方滨兴(1960一),男,博士,教授,博士生导 师,中国工程院院士,CCF高级会员,主要 研究领域为网络安全,信息内容安全,并行 处理.互联网技术. 讲师,主要研究领域为智能安全,网络 安全 殷丽华(1973一),女,博士,副研究员,CCF 郭莉(1969一),女,高级工程师,CCF会员 主要研究领域为网络与信息安全. 会员,主要研究领域为网络安全,安全性 分析. 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- haog.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务