您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 非常重要的一篇关于软件可信研究的文章
20专题第 6 卷 第 2 期 2010 年 2 月梅宏曹东刚北京大学关键词:可信软件技术1TrustedComputingPlatformAlliance,可信计算平台联盟,由英特尔公司发起的一个组织;TrustedComputingGroup,可信计算组织。互联网与可信计算互联网的普及和发展为人们提供了一种全球范围的信息基础设施,也为信息资源的广泛共享和利用提供了可能。互联网与通过它连接起来的各种软硬件基础设施形成了一个资源丰富的计算平台,使软件的能力得到了进一步的延伸。同时,基于网络的信息化也使得表示、连接和控制现实世界的软件系统成为一种新型资源。但是,与传统信息系统不同的是,基于网络的信息系统处于一个动态开放的环境中,这虽然使其计算能力得到了延伸,但是也使信息系统面临可信性问题的重大挑战:结构日趋复杂的网络化信息系统变得越来越脆弱,安全性(Security)、可靠性(Reliability)和可用性(Availability)等问题日益凸显,常常使得信息系统不能以人们所期望或信任的方式工作。例如,当发生各种故障和错误或受到攻击和侵害时,系统往往无法正常工作,进而直接或间接地对用户和社会造成损害。在互联网的发展历史中,由于可信性问题引发的麻烦、损失甚至灾难不胜枚举。例如:2007年10月,由于北京奥运会门票系统的实际访问量远远超过其设计容量,使得该系统一经软件可信性:互联网带来的挑战启用即陷入瘫痪,凸显了软件的可用性和可伸缩性问题;2005年11月1日,日本东京证券交易所因为软件系统升级出现故障导致早间股市“停摆”,凸显了可维护性问题;2003年8月14日,因为软件问题导致美国和加拿大出现当时历史上最大的停电事故,凸显了可靠性问题;有关计算机病毒和蠕虫利用软件设计存在的漏洞,入侵信息系统并造成巨大损失的案例也数量众多,凸显了安全性问题。随着可信性问题的日益突出,与可信保障相关的研究在全世界蓬勃开展起来,可信计算成为国际研究的热点,发达国家的政府组织、跨国公司和大型科研机构等已逐步认识到可信计算的巨大价值和前景,纷纷提出了各自的研究计划。例如,美国国家科学基金会(NationalScienceFoundation,NSF)制定了一个可信计算计划,重点关注为管理网络世界的安全和隐私建立合理的科学和技术基础;微软公司也提出了一个10年的“可信赖的计算”的重点战略,其目标是“让计算机能够更加安全与稳定,让人们对于计算机的信任就像对电力和电话的使用一样”;国际组织TCPA/TCG1正致力于促进新一代具有安全、信任能力的硬件计算平台的发展。第 6 卷 第 2 期 2010 年 2 月21与各种可信计算研究计划相对应,各种可信概念和术语也纷纷出现,常见的英文术语有Trustworthiness(可信任度)、Dependability(可信赖性)、Confidence(自信力)、Assurance(保全)、Trusted(可信)等,涵盖了可信计算的不同方面,它们之间既有区别也有交叉,甚至相互定义。例如,Trustworthiness一般指一种可度量和感知的可信赖性;Confidence指软件系统或构件总是按人们预期的方式运行,在运行过程中,必须能防止恶意攻击,保证不出现意外的损失,最终达到预期的目标;Dependability指软件系统能够在各种恶劣的环境下或恶意攻击下,保证完成系统的目标;Assurance则侧重于软件质量的保证过程,其职责是确保相应的质量保证过程能被正确执行。在现有的系统可靠性、安全性和生存性等研究成果的基础上,可信计算涵盖了网络信息安全、操作系统、中间件、软件工程和可靠性工程等几乎所有计算领域。其中,软件的可信问题变得越来越突出和重要。软件是计算机系统的灵魂、信息化系统的核心以及互联网应用的基石。现代社会对计算机系统的依赖体现为对软件的依赖,而且计算机系统的缺陷在很大程度上也是因为软件问题产生的。一方面,随着软件规模的增大,软件的开发、集成和演化变得越来越复杂。由于严重缺乏相关的可信软件构造技术,导致软件产品在推出时总会含有很多已知或未知的缺陷。这些缺陷对软件系统安全可靠的运行构成了严重的威胁;另一方面,软件的运行和开发环境从传统的静态封闭的状态变成互联网环境下动态开放的状态。在互联网环境下,计算实体的行为存在不可控性和不确定性,这不仅对传统的软件开发方法和技术,也对运行时刻的可信保障提出了严峻的挑战。在开放环境中,构造可信的软件系统和提供可信的运行保障,确保软件为人们提供可信赖的服务,提高软件的可信度,是可信计算的核心问题,是国际软件产业和学术界关注的焦点,也是未来软件技术发展和信息产业发展的关键技术基础。目前,国内外都开始重视对软件系统的可信性研究。美国计算研究协会把高可信软件系统看作是目前计算机研究领域必须应对的五大挑战之一。美国国家科技委员会在其总统财政预算报告中指出,高可信软件技术是需要优先开展的研究工作,包括构造更加安全、可靠和健壮的可信软硬件平台,提供更高效的可信软件开发技术,以及建立新的保证复杂软件系统高可信的科学和工程体系等。美国国防部高级研究计划署(DefenseAdvancedResearchProjectsAgency,DARPA)也将高可信系统和软件列为目前需要面对的四大挑战之一。与此同时,美国国家科学基金会、美国宇航局和美国安全局(NationalSecurityAgency,NSA)等都成为高可信软件技术研究的重要投资方。国际上一些主要的研究团队和软件企业,如IBM和微软等,也在这方面投入了很大的研究精力。我国也十分重视软件系统的可信性问题。例如,“国家中长期科技规划纲要”中多次出现关于可信性的论述;国家自然科学基金委批准立项了“可信软件基础研究”重大研究计划;国家高技术发展(863)计划中设立了专门的重大项目,研究高可信软件生产工具及集成环境;国家重点基础研究发展(973)计划于2008年将可信软件的研究确定为重点发展方向,研究基于网络的复杂软件可信度和服务质量。此外,已开展的973计划项目“互联网环境下基于Agent(智能体、本体或代理)的软件中间件理论与方法研究”和“虚拟计算环境聚合与协同机理研究”均将软件的可信性置于重要的地位,并分别设置了专项研究课题。由于软件可信性技术涵盖了软件技术体系的方方面面,是一个系统工程,因此为了集中技术力22专题第 6 卷 第 2 期 2010 年 2 月量进行专项研究,我国还设置了可信软件的专项实验室,比如高可信软件技术教育部重点实验室和上海市高可信计算重点实验室等。软件可信性虽然前面提到表达可信计算概念的术语很多,但是什么是软件的可信性?网络环境下的软件可信性内涵有何特别之处?本文认为:软件可信性在本质上是传统软件质量概念在互联网时代的延伸,但与传统的软件质量研究的关注点有所不同,它更关注使用层面的综合化的质量属性及其保障。根据国际标准化组织(InternationalOrganizationforStandardization,ISO)的定义,软件质量是软件产品满足规定和隐含需求能力有关的所有特征和所有特性的总和(IEEE2标准也有类似定义)。该标准提出从内部质量、外部质量、使用质量和过程质量这四个角度来理解和保障软件质量的属性,如图1所示。从软件产品自身的角度看,其质量可以通过测量内部质量属性(比如对中间产品的静态测量),外部质量属性(比如代码执行时的特性),或使用质量属性来评价。内部质量是软件产品内部质量属性的总和。内部质量的测量和评价用于开发阶段的非执行的软件产品(比如设计规约或源代码等),为用户提供了测量中间制品质量的能力,从而实现预估最终产品的质量。外部质量是软件产品外部质量属性的总和。外部质量的测量和评价通常在测试阶段和运行阶段使用,为用户提供评价软件产品所属系统的行为的能力,从而实现对软件产品质量的评估。内部质量和外部质量可统称为系统质量,分别通过若干特性和子特性进行描述,其模型如图2所示。使用质量是指软件产品用于指定的使用环境和条件时,从用户角度体验到的质量。使用质量的属性包括用户在特定环境中能达到的有效性、生产率、保全性(文献中常将Security和Safety均译为安全性,Security考察的是有效防止来自系统外部攻击的能力,而Safety考察的是在环境异常、外部攻击和系统出错等情况下有效防止系统出现灾难性后果的能力。为避免混淆,本文用安全性指Security,用保全性指Safety)和满意度等指标,而非软件自身的性质。使用质量只能在真实的系统环境下获得。其模型如图3所示。传统的软件质量研究主要围绕其内涵(“是什么”)和保障手段(“怎么做”)两个核心问题。研究内容偏重于软件系统本身且更关注系统质量(内部质量和外部质量)的保障,研究思路一般是按照“以系统质量为核心,兼顾使用质量”。此外,质量研究通常只针对具体的质量属性,较少考虑不同质量属性的综合。软件质量内涵主要研究正确性、可靠性和安全性等具体的质量属性和指标,而且这些属性的关注点各有不同。例如,在规定的条件和时间间隔内,可靠性关注使计算机系统能正常运行的概率;可用性则关注计算机系统在某一时刻能提供有效功能的程度。在软件质量保障方面,主要采用软件验证、开发保障和运行保障三种技术途径。2InstituteofElectricalandElectronicEngineers,(美)电气和电子工程师学会图1国际标准化组织中的软件质量概念模型外部测量使用条件影响影响影响依赖依赖依赖过程过程测量内部使用质量的测量软件产品软件产品的效用内部质量属性外部质量属性过程质量使用质量属性第 6 卷 第 2 期 2010 年 2 月23其中,软件验证主要是通过形式化等方法来判断程序的质量属性;开发保障主要是通过软件工程的技术途径(含软件测试和维护)来保证开发出来的软件具备预期质量,由此产生了软件质量保障(SoftwareQualityAssurance)、软件质量工程(SoftwareQualityEngineering)和软件保障(SoftwareAssurance)等软件质量开发保障方法;运行保障则主要针对那些可能无法准确地用形式化验证或难以通过软件工程方法保障的运行质量(如性能、可靠性等),试图通过增加或优化软件运行平台质量保障机制来保障其上应用的高质量运行。例如,通过容错机制提高运行系统在发生故障的情况下正常提供服务的能力;通过密钥设施、访问控制和虚拟机等运行机制保护计算过程不受干扰且所处理的信息不外泄等。互联网环境下的可信性概念在提出后受到极大关注。通过仔细分析考察,我们能够发现可信性关注的仍然是质量属性,只是随着网格计算、普适计算和服务计算等新型网络应用模式的出现以及平台开放、动态和难控等特点日益显著,质量的关注重心从系统质量转移到使用质量,导致传统的软件质量评价和保障技术难以适用。从软件质量模型的角度看,软件可信性是软件运行时使用质量属性的综合,决定了软件在适合性(suitability)准确性(accuracy)互操作性(interoperability)安全性(security)功能性的依从性(functionalitycompliance)成熟性(maturity)容错性(faulttolerance)易恢复性(recoverability)可靠性的依从性(reliabilitycompliance)易理解性(understandability)易学性(learnability)易操作性(operability)吸引性(attractivenes)易用性的依从性(usabilitycompliance)时间特性(timebehaviour)资源利用性(resourceutilization)效率的依从性(efficiencycompliance)易分析性(analyzability)易改变性(changeability)稳定性(stability)易测试性(testability)维护性的依从性(maintainabilitycomplia
本文标题:非常重要的一篇关于软件可信研究的文章
链接地址:https://www.777doc.com/doc-5041095 .html