郁湧等
摘 要:随着软件在信息社会中发挥越来越重要的作用,人们对软件系统的可信性方面的要求也愈来愈高。对可信软件和软件构件进行定义和分析的基础上,提出了一种基于构件的可信软件系统框架;一个基于构件的可信软件系统框架包括软件系统的信任根构件、可执行的构件集、HASH函数以及构件之间的控制权可信转移协议等部分;在此框架下,对基于构件的可信软件系统进行描述和表示。为基于构件的可信软件系统的构造和开发提供相应的理论支持和借鉴作用。
关键词:基于构件的软件系统;可信软件;软件构件;控制权可信转移
中图分类号:TP31 文献标识码:A
1 引言(Introduction)
软件系统是信息基础设施的核心组成部分。当今,网络和信息基础设施已广泛渗透到社会生活的方方面面,成为生产力发展和社会进步不可或缺的强大工具。在众多应用背景的推动下,软件的复杂度和规模都在以前所未有的速度在不断延伸,在金融、国防、政府和通信等关键领域的各种复杂应用需求背景下,软件是否可信已经成为衡量软件系统的重要指标。然而,作为计算机技术的核心和基础之一的软件系统,其生产现状和质量不能令人满意,尤其是航空航天及核电等领域的关键软件系统,其失效常常会对人类社会造成严重的灾难[1]。
可信软件作为计算机软件研究领域最具价值和最具挑战性的核心课题之一,引起了国内外政府组织、科学界和工业界的高度重视,纷纷提出有针对性的相关研究计划:1999年IBM、HP、Intel、微软等发起成立了可信计算平台联盟(TCPA),2003年TCPA改组为可信计算组织(TCG);2005年,美国国家软件研究中心发布了“软件2015”(Software 2015)的报告,在报告中指出:未来软件研究最重要的焦点之一在于软件的可信性[2];2006年,欧洲启动了名为“开放式可信计算”(Open Trusted Computing)的研究计划。十一五期间,可信计算列入了国家发改委的信息安全专项;2006年中国成立了可信计算密码专项组,2008年12月可信计算密码专项组更名为中国可信计算工作组。
对于软件可信性一直没有一个统一的定义,Avizienis等[3]将其定义为软件系统的可用性、可靠性、安全性、机密性、完整性和可维护性的综合。可信计算组织可信定义为如果一个实体的行为,总是以预期的方式,达到预期的目标[4]。文献[5]提出行为可信是指通过对协同计算的软件行为进行约束。总之,软件的可信是指软件系统的动态行为及其结果总是符合人们的预期,可信强调行为和结果的可预测性和可控制性,而干扰包括操作错误、环境影响和外部攻击等[6]。
同时,在现代软件工程技术中,系统构件化已经成为软件技术总体发展趋势之一[7],基于构件的软件开发技术(简称CBSE)尤其得到了广泛发展。可信构件及基于构件的可信系统的建模和分析等方面的研究也自然成为可信软件问题中的一个具有重要意义和应用价值的研究热点之一。
2 基于构件的软件系统中构件的表示
(Representation of component in component-
based software system)
在基于构件的软件系统中,构件是具有一定规模、相对独立、可替换的重用单元,构件具有较稳定的组成模式[8]。
一个构件遵从和提供一套接口以及这些接口的实现,因此软件构件应该包括接口及其对应的实现。构件接口定义了一个构件所能够提供的功能和其相应的规范要求;而接口对应的实现包括了构件所能够提供的为完成相应功能需要进行的一系列相关操作。
定义2.1构件C是软件系统中承担一定功能的计算单元。一个构件可以表示为三元组C=
(1)Interface是构件接口的集合,接口包括输入接口与输出接口,构件可以通过接口向外部提供服务,它们是构件与外界系统进行交互的通道,构件通过接口定义了与外界信息的传递和承担的系统责任。
(2)Imp是构件对应接口的实现体,是构件接口对应的操作的序列的集合。构件中操作的执行需要一定的条件,当条件满足时,相关的操作就执行。
(3)Spec是构件的内部规约,用来描述构件中接口与实现之间,以及构件中各操作之间相互的约束关系。
定义2.2接口是个二元组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=
构件配置寄存器的结构和存储方式关乎构件的完整性验证、系统可信启动和构件之间控制权的可信转移。构件配置寄存器CCR是一个五元组CCR=
(2)CN={C1,C2,……,Cn}为可信软件中可执行的构件集,它们是完成整个系统中相关计算功能的部件的集合,每个构件负责完成系统相应功能。
(3)TPP为可信转移协议,负责可信系统中不同构件之间控制权的可信转移。对于基于构件的软件系统而言,构件之间的控制权转移在所难免;为了避免系统被病毒或者恶意软件修改和入侵,在系统从信任根构件启动时和把控制权交给可执行的构件之后,都需要保证构件之间控制权的转移是可信的。
为了实现以上任务,需要对所研究的可信软件建立相关的构件权限表和角色信息表。构件之间控制权可信转移协议能够利用构件之间的模糊信任关系、构件信息摘要、构件权限表和角色信息表等数据来对构件双方进行相互认证。构件之间控制权可信转移协议可以防止攻击者对系统中构件的破译和越权使用。
(4)HASH为可信软件中所需要的HASH函数,是软件行为可信性保证的基础。一个构件的可信性关键域和指标包括接口规约、前后断言、检查点、契约、类别不变量、异常规约、甚至程序代码等内容。在基于可信关键域进行相关性分析的基础上可以用HASH函数来计算获取构件的信息摘要,并存储于构件配置寄存器的相应位置,作为构件完整性度量和可信性验证的基础。为了提高HASH函数的高效和安全性,HASH函数应该不仅仅与一个构件有关,还需要把其他相关构件的信息摘要也作为HASH函数的参数,这样可以使得只要一个构件不完整就会影响其他相关构件的完整性检查,从而保证整个系统可信性的提高。
5 结论(Conclusion)
随着信息基础设施和现代生活对软件依赖程度的迅速增加,简单完成软件的功能已经远远不能满足需求,有效地研发高可信软件已经成连接未来的重要技术,这一方向受到政府组织、学术界和工业界的广泛关注。虽然国内外学者在软件的可信性研究方面已经取得很大的进展,但是也还有大量的关键问题亟待解决。为了能够对基于构件的可信软件进行充分和深入地研究,本文在传统基于构件的软件工程基础上,加入软件可信性特征,提出一种基于构件的可信软件框架,一个基于构件的可信软件包括信任根构件(TRC)、可执行的构件集(CN)、HASH函数和构件之间的控制权可信转移协议等部分。并基于此框架,用代数方法对其进行表示,可以为进一步对系统中构件信息摘要的计算、基于模糊理论的构件行为可信性测度、构件的完整性验证、构件之间的控制权可信转移及其软件行为动态可信测评等相关研究的进行奠定基础。
参考文献(References)
[1] 陈火旺,王戟,董威.高可信软件工程技术[J].电子学报,2003,
31(12A):1933-1938.
[2] Center for National Software Studies(2009),Software 2015:A
national software strategy to ensure U.S.security and
competitiveness.http://www.cnsoftware.org.
[3] AVIZIENIS A,et al.Basic concepts and taxonomy of dependable
and secure computing[J].IEEE Transactions on Dependable and
Secure Computing,2004,1(1):11-33.
[4] Trusted Computing Group TCG specification architecture
overview[EB/OL].https://www.trustedcomputinggroup.org/
groups/TCG_1_0_Architecture_overview.pdf,2010.
[5] 王怀民,等.互联网软件的可信机理[J].中国科学E辑:信息科
学,2006,36(10):1156-1169.
[6] 刘克,等.“可信软件基础研究”重大研究计划综述[J].中国
科学基金,2008,22(3):145-151.
[7] 杨芙清.软件工程技术发展思索[J].软件学报,2005,16(1):1-7.
[8] 王志坚,费玉奎,娄渊清.软件构件技术及其应用[M].北京:科
学出版社,2005.
作者简介:
郁 湧(1980-),男,博士,副教授.研究领域:软件工程和可
信软件.
刘永刚(1994-),男,本科生.研究领域:网络与软件安全.
侯江畔(1992-),男,本科生.研究领域:软件开发.