软件可靠与可信研究
- 格式:doc
- 大小:37.50 KB
- 文档页数:5
可信计算的研究与发展一、概述随着信息技术的快速发展,计算机和网络系统已经成为现代社会不可或缺的基础设施。
这些技术的广泛应用也带来了严重的信息安全问题,如数据泄露、恶意软件攻击、网络钓鱼等。
为了应对这些挑战,可信计算(Trusted Computing)技术应运而生。
可信计算是一种通过硬件和软件结合,确保计算机系统自身安全可信,从而保护存储在其中的信息不被非法访问和篡改的技术。
可信计算技术起源于上世纪末,随着计算机体系结构的演进和信息安全需求的提升,其研究和发展逐渐受到全球范围内的关注。
作为一种综合性的安全防护机制,可信计算旨在构建一个安全可信的计算环境,使得计算机系统在执行关键任务时能够抵御各种安全威胁。
近年来,可信计算技术取得了显著的进展。
一方面,可信计算平台(Trusted Platform Module,TPM)的广泛应用为计算机系统提供了硬件级别的安全支持另一方面,可信计算软件技术(如可信操作系统、可信数据库等)的不断发展,为上层应用提供了更加安全可靠的运行环境。
可信计算技术还涉及到了密码学、访问控制、身份认证等多个领域,形成了一套完整的安全防护体系。
尽管可信计算技术取得了显著的研究成果,但其在实际应用中仍面临着诸多挑战。
例如,如何确保TPM的安全性和可靠性、如何平衡系统性能与安全性之间的矛盾、如何适应不断变化的安全威胁等。
未来可信计算技术的研究和发展仍需要不断探索和创新,以满足日益增长的信息安全需求。
本文将对可信计算技术的研究与发展进行综述,分析当前的研究热点和难点问题,并展望未来的发展趋势。
通过对可信计算技术的深入了解和研究,有望为信息安全领域的发展提供新的思路和方向。
1. 可信计算的概念定义可信计算(Trusted Computing)是一种计算模式,旨在增强计算机系统的安全性、可靠性和完整性。
其核心思想是在硬件、软件和系统之间建立一个可信任的基础,以确保数据和代码在执行过程中的保密性、完整性和可用性。
软件可靠性模型与评估方法软件可靠性是指在特定环境中,系统在规定时间内以满足用户需求的准确性、稳定性和可用性的概率。
在软件开发过程中,确保软件的可靠性是至关重要的。
本文将介绍软件可靠性模型与评估方法,以帮助开发人员提高软件的可靠性。
一、可靠性定义与重要性软件可靠性是指在特定条件下,软件系统在规定时间内以满足用户需求的准确性、稳定性和可用性的概率。
软件可靠性评估的主要目的是为了确定软件在特定条件下的可靠性水平,以评估软件系统的可信度和稳定性。
软件可靠性的提高将直接影响到用户对软件系统的满意度和信任度。
二、软件可靠性模型1. 静态模型静态模型是通过对软件设计和代码进行分析,检测潜在的软件错误,以预测软件系统的可靠性。
静态模型主要包括代码静态分析、软件结构分析和软件测试。
1.1 代码静态分析代码静态分析通过对源代码的分析,发现代码中的潜在错误和缺陷。
常用的代码静态分析工具包括Lint、FindBugs等,可以帮助开发人员提前发现代码中的潜在问题,从而减少软件系统的错误率。
1.2 软件结构分析软件结构分析主要是通过对软件系统的结构进行分析,检测系统的层次结构、调用关系、模块依赖等,以评估软件系统的可靠性。
软件结构分析常用的方法有层次分析法、结构方程模型等。
1.3 软件测试软件测试是通过执行一系列测试用例,检查软件系统的功能是否正常,以及是否存在潜在的错误和缺陷。
软件测试主要包括单元测试、集成测试、系统测试和验收测试等。
通过全面的软件测试,可以提高软件系统的可靠性和稳定性。
2. 动态模型动态模型是通过对软件系统运行状态进行监测和分析,以评估软件系统的可靠性。
常用的动态模型包括故障树分析、可靠性块图和Markov模型等。
2.1 故障树分析故障树分析通过将软件故障转化为逻辑关系,来描述故障的发生和传播过程。
故障树分析可以帮助开发人员识别和定位软件系统中的关键故障点,从而制定相应的改进和优化方案。
2.2 可靠性块图可靠性块图是通过将系统的可靠性表示为块和连接线的图形化表示方法,来描述系统的可靠性。
中科大-耶鲁高可信软件联合研究中心简介一、概述在中科大软件安全实验室和耶鲁大学FLINT实验室近五年合作的基础上,双方校长于2008年10月签署备忘录,以中科大软件安全实验室为基础,在中科大建立高可信软件联合研究中心。
该中心是在两校相关实验室多年合作的基础上建立的。
五年多来,我校软件安全实验室在耶鲁大学邵中教授的指导(包括和他主持的FLINT实验室的合作)下,研究水平上升较快。
在邵中教授的支持下,软件安全实验室多次获得国家基金面上项目的资助,目前正在合作申请“海外及港澳学者合作研究基金”。
在国际会议和国内外期刊上,两校研究生共同发表了7篇论文,我校研究生单独发表论文10多篇。
近6年在编程语言理论及实现技术、软件安全和软件形式验证等研究方向培养了18名博士,其中在高校当教师的有8人,在Intel、Microsoft和Sun公司研发部门工作的有6人,做博士后的有2人。
二、研究领域(1)程序设计语言理论和实现技术。
这是一个持续活跃了半个世纪的研究领域,目前国际上最活跃的方向是并行编程语言的设计和实现技术、程序验证技术等。
我们目前的研究集中在形式程序验证(formal program verification)和出具证明编译器(certifying compiler)两个方向上。
通过近几年的国际合作研究,研究水平上升较快。
(2)第2步拟展开的研究方向是计算机网络方面。
有待耶鲁大学相关教授来访,和华蓓教授(可见htttp:///~bhua)和董群峰教授等经过充分交流后展开。
在高可信软件研究领域,联合研究中心以形式程序验证为主要方法,研究提高软件可信程度的理论和技术等,目前正在开展的课题有系统软件的形式验证、出具证明的编译器技术、并发多核软件的开发、自动定理证明系统等在高可信软件研究领域,联合研究中心近5年的建设目标是:研究如何有效地集成形式程序验证和领域专用语言和逻辑(domain-specific languages and logics)这两种软件技术,形成提高编写高可信软件生产力、提高对它们正确性和安全性信任程度、并且能被工业界接受的软件开发新方法,构建基于此方法并能向工业界推广的开发携带证明大型系统软件的基础结构。
毕业论文计算机科学与技术专业2007 级16 队学员黄逸偲指导教员杜华栋讲师课题软件可靠性预计中国人民解放军理工大学气象学院二○一一年六月软件可靠性预计黄逸偲(解放军理工大学气象学院16队江苏南京 211101)摘要:基于失效数据的软件可靠性预计能够预计随着测试的警醒将来软件能够达到的可靠性水平。
虽然目前在软件可靠性预计方面取得了明显的进展,但是还没有一个能够在任何条件下均值得信任的软件可靠性预计模型。
更糟糕的是,甚至不能先验的知道基于某一具体的失效数据,哪一个模型最适合。
本文给出了一个具有一般性的软件可靠性预计步骤,并且详细讨论了两种提高软件可靠性预计质量的方法。
据此,用户在工程实践中能够选择出一个模型或者多个模型用于预计软件的可靠性,得到的结果相对而言是最准确的。
本文首先从软件失效引起的严重后果强调了软件可靠性预计的重要性,讨论了本文研究的背景以及目的,简要介绍了本文的组成;其次给出了软件可靠性的定义以及概念,谈到了软件可靠性和软件工程之间的关系;接着简要的概述了软件可靠性模型,介绍了软件可靠性模型的发展,给出了几个软件可靠性参数的定义以及数学推导,总店讨论了个软件可靠性模型,它们分别是模型、模型、和模型,给出了软件可靠性定量评价的标准;给出了软件可靠性预计的步骤,重点讨论了两种提高软件可靠性的方法;再定标法和模型混合法。
期中,从概率论的角度深入讨论了再定标法的原理,并运用实际的失效数据开展软件可靠性预计。
关键词:软件可靠性、再定标法、模型混合、预计1、引言1.1研究背景随着计算机技术迅猛发展,软件的销售量和使用量呈几何级数增长,软件的规模也越来越大,复杂性急剧提高。
例如,美国航天飞机的飞行软件达50万行的源代码,F-22战斗机更多达150万行源代码。
软件失效已经成为系统瘫痪的主要原因,根据美国国防部和美国国家宇航局的统计,武器系统和航天项目中软件可靠性比硬件系统大约第一个数量级。
软件故障而造成的重大事故也不乏其例,如F-18战斗机在海湾战争中,飞行控制软件发生了500多次故障,爱国者导弹因软件问题误伤了28名美国士兵,阿里安5型火箭的发动机控制系统软件的错误导致飞行试验失败等。
IT产品信息安全认证关键技术研究的研究报告信息安全认证是对IT产品安全性能进行判断、评估相关指标并最终给予证明的过程。
在当前网络化、互联网化的IT环境中,越来越多的IT产品被广泛应用,并且IT产品的安全性成为了用户与生产厂商均必须高度重视的问题。
IT产品的开发过程中应当对其进行信息安全认证,以确保其在使用过程中的安全可信度。
针对IT产品信息安全认证中的关键技术进行研究可以有效提升相关人员的安全意识,有助于提高信息安全水平,保障用户的信息安全。
一、漏洞评估关键技术漏洞评估技术作为信息安全评价的核心技术之一,在整个IT产品信息安全认证的过程中占有重要地位。
漏洞评估技术的应用可使得安全评估更具可信度和有效性。
制定细致的测试计划和测试用例,采用常见漏洞扫描工具、手工测试以及安全代码审查等方法,进一步检验IT产品防御能力、是否有漏洞等,从而在产品设计、开发、运营等过程中及时发现和解决问题。
二、密码学关键技术密码学技术对信息安全备受重视,尤其在信息传输过程中扮演着安全加密的角色。
选取强度足够的加密算法和密钥长度,避免被攻击者暴力破解,确保保护数据的私密性和完整性。
同时,对密钥管理和分发进行规范化,确保各环节安全。
最后,在IT产品的密码学设计中合理选择加解密算法,使其更加难以被破解。
三、安全审计关键技术IT产品的操作日志是安全审计的关键点。
安全审计主要针对各种安全事件,分析并追溯安全事件的起源,找出问题,并采取相应措施。
安全审计需要自动遍历庞大的系统记录,只有借助信息安全事件的全面溯源才能确保安全状态可靠性,并获得有效的安全防范反馈。
而在实践过程中,可以采用自动化审计工具,收集操作数据,安全审计人员使用工具进行数据分析和安全事件检测。
综上所述,在IT产品信息安全认证过程中,应针对其安全性能关键技术进行科学研究,以保障IT产品的安全可信度。
通过漏洞评估技术、密码学技术和安全审计技术等关键技术的研究和应用,可以有效提高信息系统安全性水平,降低信息泄露风险,为用户的安全与可靠使用提供坚实保障。
绿色环保建材D0l:10.16767/j.cnki.10-1213/tu.2020.12.082
高层建筑通风模拟验证Fluent软件可信度
周子芥华南理工大学
摘要:CFD-nuem软件在对建筑进行风热环境模拟时因 网格质量差计算结果无法收敛、模型过于复杂出错率高、建筑环 境复杂难以简化等原因使得模拟结果可信度不高。对以广州珠 江电厂办公大楼为原型的实验建筑模型利用CFD-Fluent进行风 环境模拟,研究不同计算次数对模拟结果的影响及环境实测结 果与模拟结果的差异来验证Huent软件在建筑风热环境模拟领 域的可信度。关键词:CFD-Fluem;高层建筑;风环境;模拟结果可信度
1 CFD-Fluem在建筑风热环境模拟中的应用与局限Fluent是通用的CFD软件包,用来模拟从不可压缩到高度可 压缩范围内的复杂流动。作为目前商业开发完善且较为常用的 CFD软件I"。最初被应用在航空航天、汽车及工业设计行业用于 模拟气体流动。近年来建筑设计对节能环保理念与微气候、人 体舒适度概念的重视使得建筑技术中多利用CFD-Fluent在建筑 初步设计后模拟建筑能耗与风热环境,提前得知建筑性能从而 反向指导建筑设计。但由于建筑体量巨大(相比汽车与各类工 业设计产品),CFD-Fluent网格数量剧增(在保证人体感知尺度 时),计算时间增大;同时也应建筑技术与Fluent软件的契合问 题使得在针对建筑进行风热环境模拟时产生各类问题;另外,由 于大型建筑周边环境复杂多样,CFD-Fluent模型相对实际建筑 环境的简化通常会使模拟结果与实际建筑环境测量结果存在较 大差异。2高层建筑通风模拟实验设计2.1建筑案例选择与简化广州珠江电厂办公大楼在建筑中心设计了一个中庭(在建 筑顶端开口),配合其部分侧庭,形成了贯穿整个建筑内部的自 然通风空间,使得夏季的主流风向东南风能水平的吹进建筑内 部,形成回风,并从建筑顶部的开口吹出,达到沟通室内外空气, 提高室内人体舒适度的目的'为了预测分析这种建筑设计手 段建成之后的实际效果,使用CFD-Fluent对该典型建筑进行风、 热环境模拟。选取广州珠江电厂办公大楼为实验建筑,依据实际建筑尺 寸,在AutoCAD中建立三维模型。考虑到后续网格划分的精度 会影响计算量与计算时间,在确定研究区域的基础上简化建筑 模型,不考虑与中心通风系统无关的元素。整体建筑模型尺寸 为33.75mx33.75mx47.20m。具有一个从五层起贯穿屋顶的中 庭,尺寸为20.25mx20.25m,并在屋顶由一个尺寸同为20.25mx 20.25m的遮阳挡风板,为了简化模型节省计算时间,将与风道无 关或几乎不影响风场的结构元素(楼梯,房间,栏杆等)省去。建 筑卜4层与实验无关,故以尺寸为33.75mx33.75mx22m的“封闭 空间”代替。实验不考虑建筑内部房间,用封闭空间代替。楼板 厚度0.3m,墙面厚度0.2m,玻璃厚度0.05m。具体参数略。
操作系统的可信计算与安全验证技术随着信息技术的迅猛发展,计算机操作系统作为软硬件交互的关键部分,面临着越来越严峻的安全挑战。
为确保计算机系统的运行稳定性和安全性,研究人员不断探索可信计算与安全验证技术。
本文将介绍可信计算的概念和目标,以及常见的安全验证技术。
一、可信计算的概念和目标可信计算是指对计算机系统的完整性、机密性和可用性进行验证和保障的一种技术手段。
其目标是建立起一个可信赖的计算环境,确保计算系统在面临各种攻击和恶意软件时能够保持稳定、安全运行。
可信计算的基本原理是通过硬件和软件的相互协作,实现对计算机系统的全方位保护。
具体来说,可信计算主要关注以下几个方面:1. 身份认证:确保用户和系统之间的身份识别和验证,防止未经授权的访问和操作。
2. 数据保密性:加密算法和访问控制机制可以有效保护数据的机密性,防止数据泄露。
3. 防篡改与完整性验证:采用数字签名、哈希校验等技术保证计算机系统和软件的完整性,防止被篡改或者插入恶意代码。
4. 安全启动过程:验证系统引导过程的完整性和信任性,保证系统启动时不受恶意软件的影响。
二、安全验证技术为了实现可信计算的目标,研究人员提出了多种安全验证技术。
下面将介绍其中较为常见的几种技术。
1. 可信平台模块(TPM)可信平台模块是一种硬件组件,它集成了加密、身份认证、密钥管理等功能,用于保护系统的整体安全性。
TPM可以生成和存储密钥,验证系统启动过程的完整性,并为认证和访问控制提供支持。
2. 安全启动技术安全启动技术确保系统在启动过程中没有被篡改。
其中,UEFI(统一的可扩展固件接口)替代了传统的BIOS,提供了更安全的启动环境。
Secure Boot技术则确保固件和操作系统启动过程中的可信性,防止恶意软件的注入。
3. 虚拟化安全虚拟化技术在云计算等场景中得到广泛应用,但也面临着安全性挑战。
为了保障虚拟机(VM)的安全,研究人员提出了多种技术,如虚拟化安全监控器、虚拟机隔离、虚拟机快照等。
需求分析与软件可靠性保证一、软件可靠性工程与需求工程的关系软件需求分析是软件产品开发设计的第一步,也是最重要的一步。
其工作质量的高低,不仅直接影响后续工程的质量,而且决定着所开发软件产品的价值。
当然,完整、严密地描述用户需求,并不是一件十分容易的事。
有些软件产品之所以功能不完善、性能差、可靠性低、可用度差、甚至不能使用,多数是因为用户需求分析工作不彻底所致。
但是,目前软件可靠性工程研究与实践的重点,在于软件测试等一些事后的验证性工作,对软件可靠性设计重视不多,这在需求分析等前期阶段尤为突出。
二、软件需求分析软件需求分析是软件设计的基础。
它采用一系列行之有效的技术、方法和工具来分析用户需求,通过特定的形式系统地描述拟开发软件的功能、性能,以及行为特征和相关约束,定义所有内外部特征,最后形成既能指导软件设计、又能同用户沟通的软件需求规格说明。
它覆盖了软件设计之前的各项活动。
软件需求分析是从用户最初的非形式化需求,到满足用户要求的软件产品设计的一个映射。
在软件计划的基础上,从深入分析用户需求出发,把用户的需求变换成以计算机为基础的系统需求。
需求分析实际上是调查、评价、以致肯定用户对软件的需求的过程,是一个对用户意图不断进行揭示和判断的过程。
其目的在于细化、精化软件的作用范围,确定拟开发软件的功能和性能,分析并确认其过程,确定软件成分及接口。
1.软件需求分析的任务与步骤软件需求分析可分为四个步骤。
①归纳整理用户提出的各种问题和要求,弄清用户企图通过软件达到的目的,并把它作为要求和条件予以明确。
即分析人员借助各种工具和方法,获得对用户需求的基本理解,然后在需求获取方法的驱动和指导下,从非形式需求陈述中提取出用户的实际需求。
由此确定软件的功能、性能、接口关系及有关属性、软件条件、限制和边界等,标定软件的作用范围,确认支持性的软硬件环境及辅助工具与条件。
此阶段还为软件需求分析活动提供了相应的过程控制机制。
②在需求获取的基础上,建立逻辑模型,使用自顶向下、逐层分解的方法,把用户对软件的需求分解成若干子系统或软件成分,将外部需求赋予软件的各个功能成分,定义软件成分的内部功能,并标定它们之间的接口。
们在做调查问卷时,最看重的是调查问卷的科学性和有效性,如果一个问卷设计出来无法有效地考察问卷中所涉及的各个因素,那么我们为调查问卷所作的抽样、调查、分析、结论等一系列的工作也就白做了。
那么,我们如何来检验设计好的调查问卷是否有效呢?信度分析是评价调查问卷是否具有稳定性和可靠性的有效的分析方法。
二、信度分析的提出及分析方法信度,又叫可靠性,是指问卷的可信程度。
它主要表现检验结果的一贯性、一致性、再现性和稳定性。
一个好的测量工具,对同一事物反复多次测量,其结果应该始终保持不变才可信[1]。
例如,我们用一把尺子测量一张桌子的高度,今天测量得高度与明天测量的高度不同,那么我们就会对这把尺子产生怀疑。
因此,一张设计合理的调查问卷应该具有它的可靠性和稳定性。
调查问卷的评价体系是以量表形式来体现的,编制的合理性决定着评价结果的可用性和可信性。
问卷的信度分析包括内在信度分析和外在信度分析。
内在信度重在考察一组评价项目是否测量同一个概念,这些项目之间是否具有较高的内在一致性。
一致性程度越高,评价项目就越有意义,其评价结果的可信度就越强。
外在信度是指在不同时间对同批被调查者实施重复调查时,评价结果是否具有一致性。
如果两次评价结果相关性较强,说明项目的概念和内容是清晰的,因而评价的结果是可信的。
信度分析的方法有多种,有Alpha 信度和分半信度等,都是通过不同的方法来计算信度系数,再对信度系数进行分析[2]。
目前最常用的是Alpha信度系数法,一般情况下我们主要考虑量表的内在信度——项目之间是否具有较高的内在一致性。
通常认为,信度系数应该在0~1之间,如果量表的信度系数在0.9以上,表示量表的信度很好;如果量表的信度系数在0.8~0.9之间,表示量表的信度可以接受;如果量表的信度系数在0.7~0.8之间,表示量表有些项目需要修订;如果量表的信度系数在0.7以下,表示量表有些项目需要抛弃。
我们可以通过目前比较流行的SPSS软件对调查问卷进行信度分析,这样我们就可以判断一个调查问卷是否具有稳定性和可靠性。
网络安全与可信软件网络安全是一种管理和保护计算机网络及其相关设备和数据的措施。
随着互联网的发展,网络安全问题变得越来越重要,因为越来越多的人通过网络进行交流、工作和娱乐。
但是,网络也存在许多安全隐患,例如黑客攻击、病毒感染和数据泄露等。
因此,人们需要采取措施来保护自己的网络安全。
首先,人们应该使用可信软件来保护自己的网络安全。
可信软件是指由可信的软件供应商提供的安全软件。
这些软件经过严格的测试和审核,能够提供可靠的网络安全保护。
人们应该购买和下载可信软件,并定期更新和升级,以保持软件的最新版本。
其次,人们应该采取密码保护和加密措施,以增强网络安全。
密码是保护个人信息和账号安全的重要手段。
人们应该设置复杂的密码,并定期更改密码。
此外,人们还应该使用加密技术来保护敏感信息的传输和存储。
加密可以将信息转化为一种非常难以理解的形式,只有掌握密钥的人可以解密信息。
另外,人们还应该注意网络上的威胁和骗局。
网络上有许多针对个人隐私和财务安全的骗局,例如钓鱼邮件、仿冒网站和虚假广告等。
人们应该警惕这些威胁,不要随意点击不明链接和下载不明附件。
此外,人们还应该确保自己在安全的网站上进行在线交易和付款,以避免财政损失。
最后,人们还应该定期备份重要数据,以防止数据丢失。
数据备份可以将数据存储在另一个设备或云存储中,以防止设备故障、病毒感染或其他意外情况导致数据丢失。
备份应该定期进行,并验证备份数据的完整性和可恢复性。
总之,网络安全是一项重要的任务,人们应该采取措施来保护自己的网络安全。
使用可信软件、密码保护和加密、警惕网络威胁和骗局、定期备份数据都是保护网络安全的有效方法。
通过这些措施,人们可以提高自己的网络安全水平,避免受到网络攻击和数据泄露的威胁。
可信计算的研究与发展近年来,随着信息技术的快速发展和互联网的普及应用,人们对于信息安全和隐私保护的需求日益增加。
可信计算作为一种新兴的计算模型,以其强大的安全性和可信度得到了广泛关注和应用。
本文将对进行探讨,包括可信计算的概念、原理、应用领域、挑战以及未来发展方向。
可信计算是指通过硬件安全技术和软件安全机制,确保系统在遭受各种攻击和非法访问的情况下,仍能够正确执行预期的任务,且能够保护用户的数据和隐私不受泄露或篡改。
可信计算具有几个核心原理,包括安全启动、链式可信度验证、安全执行环境、数据隐私保护和追溯性等。
可信计算在许多领域都有广泛的应用,特别是在云计算、物联网和大数据等新兴技术中具有重要意义。
在云计算中,可信计算可以确保用户数据在云服务器上得到安全保护,防止数据被不法分子窃取或篡改。
在物联网中,可信计算可以确保设备和传感器的数据在传输过程中得到安全保护,防止数据被非法访问和篡改。
在大数据中,可信计算可以保护用户的隐私数据,防止数据被滥用和泄露。
然而,可信计算也面临一些挑战。
首先,可信计算需要依赖于硬件安全技术和软件安全机制,但是这些技术和机制可能存在漏洞和不可信的问题。
其次,可信计算需要保护用户的数据和隐私,但是在实际应用中,用户的数据和隐私往往受到多方面的威胁,例如黑客攻击、内部人员泄露等。
最后,可信计算需要在不同的计算环境中实现,包括云服务器、移动设备和物联网设备等,不同环境中的安全性和可信度可能会存在差异。
为了克服这些挑战,可信计算的研究者们提出了一些解决方案和改进方法。
首先,他们致力于提升硬件安全技术和软件安全机制的可信度,通过加强密码算法、身份认证和访问控制等手段,提高系统的安全性。
其次,他们研究了新的数据保护和隐私保护技术,例如基于同态加密和可搜索加密的数据保护方案,以及数据处理和共享的隐私保护方案。
最后,他们探索了在不同计算环境下的安全性和可信度标准,为不同的应用场景提供定制化的可信计算方案。
2 软件可靠与可信研究 摘要:本文在介绍软件可靠性及安全性的基础上,讨论软件可靠性测试的特点、进行软件可靠性测试的基本条件,以及软件安全性测试的必要条件和常用的测试方法。并简要阐述软件测试在软件生产中是必不可少的质量保障手段。
关键词:软件可靠性;安全测试;测试方法
随着科学技术的不断进步,计算机技术被越来越多地应用到武器系统中。计算机软件的复杂程度随着功能的增强,因而系统的可靠性也越来越与软件直接相关。例如AFTI/F-16飞机首航因软件问题推迟一年,事先设计的先进程序无法使用;海湾战争中F/A–18飞机飞行控制系统计算机500次故障中,软件故障次数超过硬件。软件往往是系统可靠性的薄弱环节,因此软件系统的可靠性需要引起有关人员的格外重视。 软件系统规模越做越大越复杂,其可靠性越来越难保证。应用本身对系统运行的可靠性要求越来越高,在一些关键的应用领域,如航空、航天等,其可靠性要求尤为重要,在银行等服务性行业,其软件系统的可靠性也直接关系到自身的声誉和生存发展竞争能力。在许多项目开发过程中,对可靠性没有提出明确的要求,开发商(部门)也不在可靠性方面花更多的精力,往往只注重速度、结果的正确性和用户界面的友好性等,而忽略了可靠性。在投入使用后才发现大量可靠性问题,增加了维护困难和工作量,严重时只有束之高阁,无法投入实际使用。本文仅就软件可靠性和在软件开发过程中的应用谈谈自己的认识 。
1.概述: 软件可靠性是指在规定条件下,在规定时间内,软件不引起系统失效的概率。该概率是系统输入和系统使用的函数,也是软件中存在故障的函数,系统输入将确定是否会遇到存在的故障。 软件产品与硬件产品一样。软件的可靠性工作也是贯穿于软件的整个寿命周期的。软件的寿命周期,是指从软件任务的提出一直到它完成使命,因陈旧而被废弃为止的整个时间历程,这个寿命周期包括了提出要求/规格说明、设计、实现、检验、维护等五个阶段,前四个阶段为开发期,维护阶段为使用期。 软件可靠性测试指在有使用代表性的环境中,为进行软件可靠性估计对该软件进行的功能测试。需要说明的是,“使用代表性”指的是在统计意义下该环境能反映出软件的使用环境特性。软件可靠性测试一般在软件验收阶段进行,即可以在实验室也可以在现场测试运行。一般仅适用于有可靠性定量要求、且可能会影响安全和任务完成的关键软件。 软件系统的可靠性测试是软件系统可靠性质量保证过程中非常关键的一步,根 3
据国外有关资料统计和工作实践证明,可靠性测试对提高软件的可靠性有重大作用,其他测试不能代替,但是软件可靠性测试又不能代替其他软件测试的作用。软件可靠性测试的主要目的有: (1)通过在有使用代表性的环境中执行软件,以证实软件需求是否正确实现。 (2)为进行软件可靠性估计采集准确的数据。估计软件可靠性一般可分为四个步骤,即数据采集、模型选择、模型拟合以及软件可靠性评估。可以认为,数据采集是整个软件可靠性估计工作的基础,数据的准确与否关系到软件可靠性评估的准确度。 (3)通过软件可靠性测试找出所有对软件可靠性影响较大的错误。
2.测试方法与步骤
2.1软件可靠性测试 2.1.1.制订测试方案 本阶段的目标是识别软件功能需求,触发该功能的输入和对应的数据域,确定相关的概率分布及需强化测试的功能。 (1)分析功能需求。分析各种功能需求,识别触发该功能的输入及相关的数据域(包括合法与不合法的两部分)。 (2)定义失效等级。判断是否存在出现危害度较大的1级和2级失效的可能性。如果这种可能性存在,则应进行故障树分析,标识出所有可能造成严重失效的功能需求和其相关的输入域。 (3)确定概率分布。确定各种不同运行方式的发生概率,判断是否需要对不同的运行方式进行分别测试。如果需要,则应给出各种运行方式下各数据域的概率分布;否则,给出各数据域的概率分布。判断是否需要强化测试某些功能。 (4)整理概率分布的信息将这些信息编码送入数据库。 2.1.2制订测试计划 本阶段的目标是: (1)根据前一阶段整理的概率分布信息生成相对应的测试实例集,并计算出每一测试实例预期的软件输出结果。本阶段需要注意:在按概率分布随机选择生成测试实例的同时,要保证测试的覆盖面。 (2)编写测试计划,确定测试顺序,分配测试资源。由于本阶段前一部分的工作需要考虑大量的信息和数据,因此需要一个软件支持工具,建立数据库,并产生测试实例。另外,有时预测软件输出结果也需要大量的计算,有些复杂的软件甚至要用到仿真器模拟输出结果。总之,具体实施与被测应用软件的实际功能类型有关。 2.1.3.测试 本阶段进行软件测试。需注意的是被测软件的测试环境(包括硬件配置和软件支撑环境)应和预期的实际使用环境尽可能一致,对某些环境要求比较严格的软件(如嵌入式软件)则应完全一致。测试时按测试计划和顺序对每一个测试实例进行测试,判断软件输出是否符合预期结果。测试时应记录测试结果、运行时间和判断结果。如果软件失效,那么还应记录失效现象和时间,以备以后核对。 2.1.4编写测试报告 按软件可靠性估计的要求整理测试记录,并将结果写成报告。软件可靠性测试的关键在于:对需求、输入、数据域的识别及相关概率分布的确定。按照概率 4
分布随机生成测试实例,并确定测试顺序。 2.2安全测试 2.2.1.由来 软件可靠性是软件质量指标体系中最重要的质量指标之一,软件可靠性指标的高低,决定了软件是否能稳定、可靠性地工作。软件中的错误是在软件的开发过程中,因为人的错误而引入到软件中的,而且这种错误的出现是不可避免的。经过可靠性测试的软件系统可以大大降低因软件系统的实效而造成的损失。但是软件可靠性测试也不是万能的,它可以有效降低软件系统实效的可能,但是不能将软件系统中存在的错误都排除(实际上在可预见的未来也不可能把软件中的所有错误都排除)。 对软件进行安全测试是软件测试的重要研究内容。软件安全测试是保证软件能够安全使用的最主要的手段,如何进行高效的安全测试成为业界关注的话题。多年的安全测试经验告诉我们,做好软件安全测试的必要条件是:一是充分了解软件安全漏洞,二是拥有高效的软件安全测试技术和测试工具。 2.2.2.软件的安全测试方法 (1)形式化安全测试。模型检测用状态迁移系统S描述软件的行为,用时序逻辑、计算树逻辑或演算公式F表示软件执行必须满足的性质,通过自动搜索S中不满足公式F的状态来发现软件中的漏洞。 (2)基于模型的安全功能测试。基于模型的测试方法是对软件的行为和结构进行建模,生成测试模型,由测试模型生成测试用例.常用的软件测试模型有有限状态机、UML模型、马尔可夫链等。 (3)语法测试。语法测试是根据被测软件的功能接口的语法生成测试输入,检测被测软件对各类输入的响应。接口可以有多种类型,命令行、文件、环境变量、套接字等。语法测试基于这样一种思想,软件的接口或明确或隐含规定了输入的语法。语法定义了软件接受的输入数据的类型、格式。语法定义可采用BNF或正则表达式。语法测试的步骤是识别被测软件接口的语言,定义语言的语法,根据语法生成测试用例并执行测试。生成的测试输入应当包含各类语法错误,符合语法的正确输入。不符合语法的畸形输入等。通过察看被测软件对各类输入的处理情况,确定被测软件是否存在安全缺陷。语法测试适用于被测软件有较明确的接口语法,易于表达语法并生成测试输入的情况。语法测试结合故障注入技术可得到更好的测试效果。 (4)模糊测试。模糊测试(Fuzz Testing)是一种发现安全漏洞的有效的测试方法,在安全性测试中越来越受到重视。模糊测试将随机的坏数据插入程序,观察程序是否能容忍杂乱输入。模糊测试是不合逻辑的,只是产生杂乱数据攻击程序。采用模糊测试攻击应用程序可发现其他采用逻辑思维来测试很难发现的安全缺陷。 (5)基于属性的测试。相关报道描述了基于属性的测试方法,采用TASPEC语言对软件的安全属性进行描述生成安全属性规格说明,利用程序切片技术抽取与这个安全属性相关的代码,测试这部分代码是否违反安全属性规格说明。基于属性的测试有针对性的测试目标软件的特定安全属性,可满足安全属性的分类和优先级排序要求,且部分与具体软件无关的属性规格说明是可重用的。
3.软件可靠性研究成功应用的实例 美国AT&T公司的国际DEFINITYR程控交换机部在系统软件开发过程中应用了软 5
件可靠性工程,相对于以前发行的主要软件版本,产品的质量提高是惊人的: (1)用户反映的问题下降了10倍; (2)项目维护费用下降了10倍; (3)系统测试件的间隔缩短了2倍; (4)引入新产品的间隔缩短了30%。
而且,在投入运行的前两年,从未发生严重影响业务的机器中断,客户满意程度大为提高。具体分析原因,有以下两点: (1)把可靠性作为确定是否发行的标准,可避免用户在使用中反映过多问题和进行相应的维护工作。 (2)采用“操作概图驱动”的测试方法,提高了测试效率;20%的操作覆盖了95%的应用,20%的错误导致了95%的实效;先测试20%的使用最频繁的操作可以加速可靠性的提高。 4.结语 软件的可靠性中正越来越引起软件研发部门的重视,但因为这是一门新兴的学科,对于提高软件质量,国内外还未能从软件可靠性工程的角度总结出一套行之有效的管理方法。 软件可靠性工程是一项涉及面很广的系统工程,应加强这项技术的研究力度。尤其要结合具体项目进行课题研究,使软件的开发过程同时也是软件可靠性工程的实施过程。使自发的可靠性工作成为有计划、有组织和有目标的研究工作。相信经过不断的探索和实践,软件可靠性工程会象硬件可靠性工程那样走向成熟,它的应用将对提高我国软件开发的可靠性起到积极的推动作用。
参考文献:
[1]郑人杰,殷人昆,陶永雷.实用软件工程[M].北京:清华大学出版社. 第10章软件质量 保证10.8软件可靠性-10.10软件容错技术 [2]何国伟.软件可靠性[M].北京:国防工业出版社,1998.第二章.软件工程 2.5软件测试-3.1.2软件可靠性和维护性 [3]朱鸿,金凌紫.软件质量保证与测试[M].北京:科学出版社,1997. 2.1软件质量-2.2软件质量标准