一种基于构件的可信软件系统框架及其表示
摘 要:随着软件在信息社会中发挥越来越重要的作用,人们对软件系统的可信性方面的要求也愈来愈高。对可信软件和软件构件进行定义和分析的基础上,提出了一种基于构件的可信软件系统框架;一个基于构件的可信软件系统框架包括软件系统的信任根构件、可执行的构件集、HASH函数以及构件之间的控制权可信转移协议等部分;在此框架下,对基于构件的可信软件系统进行描述和表示。为基于构件的可信软件系统的构造和开发提供相应的理论支持和借鉴作用。
关键词:基于构件的软件系统;可信软件;软件构件;控制权可信转移
中图分类号:TP31 文献标识码:A
1 引言(Introduction)
软件系统是信息基础设施的核心组成部分。当今,网络和信息基础设施已广泛渗透到社会生活的方方面面,成为生产力发展和社会进步不可或缺的强大工具。在众多应用背景的推动下,软件的复杂度和规模都在以前所未有的速度在不断延伸,在金融、国防、政府和通信等关键领域的各种复杂应用需求背景下,软件是否可信已经成为衡量软件系统的重要指标。然而,作为计算机技术的核心和基础之一的软件系统,其生产现状和质量不能令人满意,尤其是航空航天及核电等领域的关键软件系统,其失效常常会对人类社会造成严重的灾难[1]。
对于软件可信性一直没有一个统一的定义,Avizienis等[3]将其定义为软件系统的可用性、可靠性、安全性、机密性、完整性和可维护性的综合。可信计算组织可信定义为如果一个实体的行为,总是以预期的方式,达到预期的目标[4]。文献[5]提出行为可信是指通过对协同计算的软件行为进行约束。总之,软件的可信是指软件系统的动态行为及其结果总是符合人们的预期,可信强调行为和结果的可预测性和可控制性,而干扰包括操作错误、环境影响和外部攻击等[6]。
同时,在现代软件工程技术中,系统构件化已经成为软件技术总体发展趋势之一[7],基于构件的软件开发技术(简称CBSE)尤其得到了广泛发展。可信构件及基于构件的可信系统的建模和分析等方面的研究也自然成为可信软件问题中的一个具有重要意义和应用价值的研究热点之一。
2 基于构件的软件系统中构件的表示
(Representation of coฃmponent in component-
based software system)
在基于构件的软件系统中,构件是具有一定规模、相对独立、可替换的重用单元,构件具有较稳定的组成模式[8]。
一个构件遵从和提供一套接口以及这些接口的实现,因此软件构件应该包括接口及其对应的实现。构件接口定义了一个构件所能够提供的功能和其相应的规范要求;而接口对应的实现包括了构件所能够提供的为完成相应功能需要进行的一系列相关操作。
定义2.1构件C是软件系统中承担一定功能的计算单元。一个构件可以表示为三元组C=。
(1)Interface是构件接口的集合,接口包括输入接口与输出接口,构件可以通过接口向外部提供服务,它们是构件与外界系统进行交互的通道,构件通过接口定义了与外界信息的传递和承担的系统责任。
(2)Imp是构件对应接口的实现体,是构件接口对应的操作的序列的集合。构件中操作的执行需要一定的条件,当条件满足时,相关的操作就执行。
(3)Spec是构件的内部规约,用来描述构件中接口与实现之间,以及构件中各操作之间相互的约束关系。
定义2.2接口是个二元组p=,其中ID是接口p的唯一标识符,Interface-Spec是接口p的规约。
在基于构件的可信软件系统中,构件的执行和构件之间的控制权转移是由可信软件系统的整体框架和各个构件的运行状态共同决定的。
3 基于构件的可信软件框架(Framework of
component-based trusted software)
在基于构件的软件系统中,通常是由多个构件协作完成一定功能,而构件是构成软件系统的计算或数据存储单元之所在,它表现出的外部特征是能够为外部提供的一系列的相关服务。基于构件的可信软件是把软件可信性的相关特征和方法引入到软件系统中,为了能够对基于构件的可信软件进行充分和深入地研究,本文提出一种基于构件的可信软件框架。
☢基于构件的可信软件系统主要包括信任根构件(TRC)、可执行的构件集(CN)和控制权可信转移协议(TPP)等,如图1所示。
在该框架下,一个基于构件的可信软件包括信任根构件(TRC)、可执行的构件集(CN)、HASH函数和构件之间的控制权可信转移协议等内容。其中,信任根构件主要负责系统的可信启动、可信配置等工作;可执行的构件集是基于构件的可信软件中完成相关计算功能的构件的集合;而可信转移协议主要负责系统中不同构件之间控制权的可信转移。 4 基于构件的可信软件❥表示和描述(Representation
of component-based trusted software)
一个基于构件的可信软件(TS)可以表示为一个4元组,TS=,其中:
(1)TRC= 为信任根构件,TSM是系统的可信启动模块;CCR是构件配置寄存器,包括构件的标识和编号、构件的信息摘要等重要数据;TFM为系统可信分析模块,负责分析各个构件的完整性、安全性等可信性质;EDM为系统的加解密模块。信任根构件是基于构件的可信系统中第一个获得控制权的部件,它的作用是根据系统开始执行时计算获得的信息摘要与构件配置寄存器(CCR)进行匹配来检查和处理整个系统中的可信问题,并在系统运行中将记录哪个构件获得控制权,以及相应的安全状况。
构件配置寄存器的结构和存储方式关乎构件的完整性验证、系统可信启动和构件之间控制权的可信转移。构件配置寄存器CCR是一个五元组CCR=,CNun表示构件的编号,CMark表示构件的标识,CIA表示对应构件的信息摘要,CTE表示构件的可信测度值,CCRNext为一个指向下一个构件配置寄存器的指☃针。为了便于扩展,构件配置寄存器被设计成链式结构;为了保证安全,构件配置寄存器中的内容需要根据不同情况进行“封存”和“解封”处理。
(3)TPP为可信转移协议,负责可信系统中不同构件之间控制权的可信转移。对于基于构件的软件系统而言,构件之间的控制权转移在所难免;为了避免系统被病毒或者恶意软件修改和入侵,在系统从信任根构件启动时和把控制权交给可执行的构件之后,都需要保证构件之间控制权的转移是可信的。
为了实现以上任务,需要对所研究的可信软件建立相关的构件权限表和角色信息表。构件之间控制权可信转移协议能够利用构件之间的模糊信任关系、构件信息摘要、构件权限表和角色信息表等数据来对构件双方进行相互认证。构件之间控制权可信转移协议可以防止攻击者对系统中构件的破译和越权使用。
(4)HASH为可信软件中所需要的HASH函数,是软件行为可信性保证的基础。一个构件的可信性关键域和指标包括接口规约、前后断言、检查点、契约、类别不变量、异常规约、甚至程序代码等内容。在基于可信关键域进行相关性分析的基础上可以用HASH函数来计算获取构件的信息摘要,并存储于构件配置寄存器的相应位置,作为构件完整性度量和可信性验证的基础。为了提高HASH函数的高效和安全性,HASH函数应该不仅仅与一个构件有关,还需要把其他ฝ相关构件的信息摘要也作为HASH函数的参数,这样可以使得只要一个构件不完整就会影响其他相关构件的完整性检查,从而保证整个系统可信性的提高。
5 结论(Conclusion)
随着信息基础设施和现代生活对软件依赖程度的迅速增加,简单完成软件的功能已经远远不能满足需求,有效地研发高可信软件已经成连接未来的重要技术,这一方向受到政府组织、学术界和工业界的广泛关注。虽然国内外学者在软件的可信性研究方面已经取得很大的进展,但是也还有大量的关键问题亟待解决。为了能够对基于构件的可信软件进行充分和深入地研究,本文在传统基于构件的软件工程基础上,加入软件可信性特征,提出一种基于构件的可信软件框架,一个基于构件的可信软件包括信任根构件(TRC)、可执行的构件集(CN)、HASH函数和构件之间的控制权可信转移协议等部分。并基于此框架,用代数方法对其进行表示,可以为进一步对系统中构件信息摘要的计算、基于模糊理论的构件行为可信性测度、构件的完整性验证、构件之间的控制权可信转移及其软件行为动态可信测评等相关研究的进行奠定基础。