- 6
- 0
- 约1.17万字
- 约 62页
- 2018-05-18 发布于江苏
- 举报
4.3 信息流控制机制综述 信息流的控制机制的设计与实施方法: 一是在编译时刻检查与验证信息流的安全性; 二是在执行时刻验证与检查信息流的安全性; 三是利用程序正确性证明技术去验证程序的安全性,这种方法建立在“格模型与Hoar功能正确性推理系统”上的信息流演绎系统,可以给出一个更为精确的安全性实施机制,但这一部分内容要求的理论基础比较深, 4.3.1 安全性与精确性 设F是一个信息流系统中所有可能信息流的集合, E是在给定的流控制机制下可执行的F的子集, P是给定策略下授权的流。 如果E?P,即所有可执行的流都是授权的,那么系统是安全的。 如果E=P,即所有授权的流都是可执行的,那么安全系统是精确的。 安全性与精确性图示 设s0是一个初态,s0肯定是授权的,因为流都与状态转换相关,此时没有状态变化,也就没有流。 再设s是通过执行命令序列α从s0推出的状态,那么s是授权的当且仅当所有流xs0?ys都是授权的,即SC(xs0)≤SC(ys)。 根据关系≤的传递性,如果系统中每一状态转换引起的流都是授权的,该系统就是安全系统。 同时支持访问控制策略和信息流控制策略的系统的统一安全性定义: 如果si是授权的,那么通过执行命令c从状态si转换到状态si+1,si+1是授权的,当且仅当c是安全保持的,即c满足访问控制策略和信息流动策略。 一个保护系统是安全的,当且仅当 (1)初始状态是授权的,并且 (2)每一状态转换所得状态也是授权的。 例1 考虑赋值语句“y := k?x”。 假定在一个策略中,SC(k)≤SC(y)成立,但SC(x)≤SC(y)不成立。 如果总是禁止其执行,是安全的,但不精确。 如果k=0或H(x)=0,执行语句不导致流x?y的发生。 设计“仅对实际流x?y证明关系SC(x)≤SC(y)”的机制,远比设计“对能够潜在地引起流x?y的任何运算,证明关系SC(x)≤SC(y)”的机制困难。 对于进一步复杂的问题,一个给定的系统是否安全的或精确的,一般而言是不可判定的。 例2 考虑语句 if f(n) halts then y:=x else y:=0 其中f是任意函数,且关系SC(x)≤SC(y)不成立。 考虑两个系统,一个总是允许该语句的执行,而另一个则禁止执行它。显然,不解决停机问题,第一个系统是否安全,或第二个系统是否精确的都是不可判定的。 研究结果表明,构造一个既是安全的、又是精确的机制在理论上是不成立的。 在一个安全系统中,任何客体y的安全类至少和存储在y中的信息的安全类一样高。 可变类SC(y)的安全级可增可降,不一定在时间上必须单调增加的。 实际上,如果高安全类信息从y清除后,那么SC(y)可以降低。 只要不违反系统的安全策略,在任何时刻都可以提高或降低一个客体的安全类 例3 考虑下述语句序列 y:=x; z:=y; y:=0; 在第一条语句执行前,SC(y)必须满足SC(x)≤SC(y)以符合流x?y的要求,在第一条语句执行后,就有SC(y)=SC(x)。 执行最后一条语句后,y中的内容被清空了,不再含有关于x的信息。因此,SC(y)可以低于SC(x)。 4.3.2 流的信道 1、正规信道(Legitimate channels)。通过设计者指定的信息传送渠道(如进程参数)在程序或进程间传送信息的。 2、存储信道(Storage channels)。是指由多个进程或程序共享的客体,例如通过共享文件或程序中的全局变量传递信息。 3、隐蔽信道(Cover channels)是指不被设计者或用户所知道的泄漏系统内部信息的信道, 例如,通过观察某个进程的操作规律,判断这个进程在干什么。这种信道也并不完全面向信息交换, 例如,进程在系统加载过程中产生的某些效果。 正规信道的安全防护最简单。存储信道的安全防护要困难得多,因为每一个客体(可能是文件、变元和状态比特)都需要保护。 例4 一个进程P可以通过共享文件F的锁定位把一个值X传送给另一个进程Q,虽然限制X只能被P使用,不能被Q直接访问。 方法是:P首先根据X的二进制值在规定的时间区段内安排文件的打开或者关闭,使文件F的打开与关闭次数与X的二进制值关联起来; 进程Q在同样的时间段内,请求使用该文件,根据请求是否被允许的次数就可以决定X的相应二进制值。 问题在于可以将信息用某种外部观察者可检测的物理现象编码。 例如,一个进程可以使它的执行时间正比于它所读到的某机密变量X的值,通过测量独立于系统运行时钟上的运行时间,另一个进程(或用户)可以确定X的值。 这种类型的隐蔽信道称为“时钟信道”,其他资源,如电力消耗,甚至控制台上的内部寄存器显示灯等都有可能被用作隐蔽信道。
原创力文档

文档评论(0)