基于逻辑的程序验证方法在高可信软件开发上的应用

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:savages8850
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着软件规模的越来越大,软件的安全越来越引起软件开发人员的关注,而现有的编程语言以及软件开发方法所能提供的安全保证是脆弱和不可靠的,例如通过标准的软件工程方法和大量的测试减少软件漏洞的发生,但是即使经过高强度测试的软件,也不能保证它没有漏洞,另外一方面,对一个漏洞的修复也往往会引起新的漏洞。可以说,现有的软件工程方法对软件安全的提高已经越来越微弱。而基于语言的程序验证方法能为软件安全提供可靠的保证。 基于语言的程序验证方法通过对程序设计语言添加静态的类型以及规范结构,使得用这种语言写出的良形式程序是安全的。现有的关于认证代码技术以及类型系统方面的研究已经能够验证低级语言和高级语言程序的多种安全属性。例如,当前的大部分程序设计语言都有一个类型系统,它一般用于检查程序的一些简单语义错误,可靠的类型系统可以以较低的代价保证程序的一些基本安全属性。安全的高级语言和通用中间层语言的类型系统的研究已经对安全计算做了有意义的贡献,但是用这些语言写就的安全程序还需经过多步的未经编译和优化才能在最终的硬件上运行,这使得最终运行的代码是未经验证的。基于这个原因,很多工作转向研究低级代码的验证,特别是研究从类型化高级语言代码产生可验证低级代码的认证编译器。但是由于类型的弱表达能力,使得类型系统只能保证代码一些最基本的安全属性,对用户指明的一些安全属性,比如算法正确性,信息流安全等基本不能触及。也正由于这个原因,对于现实的底层软件如启动引导程序,操作系统内核,用户态运行时函数库等,都没有相应的经过验证版本发布出来,而这些底层软件的安全性对整个计算系统的安全性来说是至关重要的。但是,类型系统对栈式函数调用的模块化验证有比较好的支持。另一方面,Hoare逻辑具有很强的表达能力,因为相对于类型的弱表达能力,逻辑谓词能够表达更丰富的程序属性,但是Hoare逻辑对栈式函数调用的支持比较弱。基于此,本文的研究目标是以逻辑谓词代替类型作为规范标注程序,结合类型系统和Hoare逻辑两方面的优点,设计可以模块化地构造程序满足规范的证明的框架,并使用它进行安全代码的开发。 本文提出一个基于逻辑的使用汇编语言的高可信软件开发方法,并运用此方法开发出经过严格安全验证的运行时库和操作系统组件。此方法源于Hoare逻辑的程序推理以及耶鲁大学的认证汇编编程(CAP),它首先需要定义一个推理需要的目标机器和一组静态推理规则,并且证明推理规则的可靠性(安全性)。本文的贡献有如下几个方面: ·设计并使用Coq实现一个现实的x86平台上的认证汇编语言RCAL86,并证明
其他文献
目的分析乳果糖口服溶液、聚乙二醇4000散和麻仁软胶囊治疗高龄老人功能性便秘的成本-效果。方法将258例高龄老人功能性便秘的患者随机分为三组,分别给予乳果糖口服溶液,每次
研究聚丙烯酸酯浆料的共混特性与生物降解性能。以丙烯酸、甲基丙烯酸及衣康酸作为共聚单体,分别与丙烯酸丁酯进行自由基溶液共聚合制备聚丙烯酸酯浆料。研究了聚丙烯酸酯与
探讨细号高密竹节复合织物的浆纱工艺及生产要点。详细分析了该类织物的生产难点,针对生产难点,介绍了原纱质量指标控制重点,通过合理调整浆料配方,降低PVA用量减少浆纱二次
研究CD-DF818MA浆料在Tencel品种上的上浆工艺。分析了Tencel产品的浆纱技术要点及CD-DF818MA浆料的性能,采用CD-DF818MA浆料完全取代PVA进行了上浆实践,对比了含CD-DF818MA
探讨涤纶莫代尔混纺织物的生产要点。分析了涤纶和莫代尔的性能特点,介绍了产品设计规格。整经工序,选用D3-1000型整经机,速度500 m/min;浆纱工序,针对涤纶和莫代尔的性能,优
随着中国英语基础教育不断发展,教育方法不断创新。经证实,故事主体英语教学法是一种行之有效的英语教学方法,但是由于我国英语教学理论的不完善,英语教育普及时间不长,因此
“早泄玉液”外治早泄59例临床观察山西省太原市第四人民医院(030024)王永恒李翠萍主题词:早泄/外治法@早泄玉液/治疗应用1临床资料共收治早泄患者59例,年龄23~58岁之间,23~30岁31例,占52.5%,31~40岁21例,占35.6%。4...
本文指出语块的优势,阐释语块与词汇的关系,提出语块输入输出并举教学来帮助学生建构词汇知识,发展语篇能力。
目的:通过建立反流性食管炎(Reflux Esophagitis,RE)动物模型及抗反流手术模型,观察食管大体形态和组织学改变,检测食管标本中血红素加氧酶(HO-1)、诱导型一氧化氮合酶(NOS)
专用指令集处理器(ASIP,Application Specific Instruction Set Processor)是一种新型的具有处理器结构的芯片,它为某个或某一类型应用而专门设计。通过权衡速度、功耗、成本、