论文部分内容阅读
隐通道问题使实施自主存取控制和强制存取控制的多安全级软件系统有了新的挑战,成为开发高等级可信软件系统过程中的难点和关键问题,在国际上得到了充分的重视。信息流分析法是最早的隐通道分析方法,也是一种有效的隐通道分析方法。为了详细、准确地描述系统中的信息流,本文基于系统源代码构建了系统信息流脉络网,它包含不同层次的信息流图,这些信息流图为信息流分析法分析隐通道提供基础信息流输入。简单地按着信息流规则直接构建系统的信息流图,由于信息流固有的各种性质,分析时会导致信息流图中不同信息流路径的交叉,引入大量的伪信息流路径,增加分析工作量。同时,目前对信息流图分析工作的穷举性,使信息流分析工作量与信息流图规模成正比,为了降低分析难度,需要构建规模尽可能小的信息流图。本文的目的就是为了减少信息图中的伪信息流路径,构建一系列规模小、分析难度低的信息流图。本文的创新有两个方面:一是基于依赖图,结合不同程序语句间的依赖关系抽取变量间信息流构建信息流图,不是单纯针对程序中每条语句抽取信息流;二是变量间信息流只考虑其源点变量和终点变量,忽略变量间信息流传递路径,从而避免信息流图中信息流路径的交叉,大大减少的伪信息流路径。本文所描述的方法主要有三个过程:第一步,基于系统程序源代码的控制流图,确定语句间的数据依赖关系和控制依赖关系,构建程序依赖图;第二步,基于程序依赖图进行传递依赖处理,构建传递依赖图,这一过程实质上处理了信息流的传递性;第三步,基于传递依赖图生成信息流,构建系统信息流脉络网中的各种信息流图。本文最终构建了系统信息流脉络网中的一系列信息流图:描述函数内部变量之间信息流的函数信息流子图和函数信息流完全图、描述系统中各个函数之间的函数间信息流图和函数间信息流简图、描述系统中各变量之间信息流的系统信息流图。这些信息流图从不同的层次和不同的角度描述了系统中的信息流。考虑到信息流的传递性和同源性,它们仅描述了信息流的源点和终点,不再考虑信息流的传递路径,从而避免了不同信息流路径在信息流图中的交叉,避免了信息流的传递性引进伪信息流路径的问题。