收藏本站
收藏 | 手机打开
二维码
手机客户端打开本文

可信软件开发框架下的出具证明编译研究

葛琳  
【摘要】: 随着国家和社会对软件的依赖程度日益增长,软件的安全性越来越受到关注,软件的安全性主要包括saflety和security两个方面。Safety是指软件运行时不引起危险、灾难的能力,而security是指软件系统对数据和信息提供保密性、完整性、可用性、真实性保障的能力。本文的研究主要关注软件的saflety,但是软件的safety和security是有联系的,黑客通常就是利用缓冲区溢出、数组访问越界、悬空指针访问等低级的safety错误,来破坏系统和获得未经授权的控制等。因此提高salfety有助于保证security。 提高safety的目标是:所有的程序错误在程序运行前被发现或者在程序运行时被温和地捕获,以保证程序不会导致不可预测的系统行为。软件安全性研究主要是探索建立一个管理安全性的健全的科学和技术基础,其中软件满足安全策略的证明方法(即程序性质证明)是研究的热点之一。程序性质证明既可以采用基于类型的方法也可以采用基于逻辑的方法,近年来还有人提出了逻辑和类型相结合的方法。然而在程序性质证明方面,现有的研究不是集中于高级语言层次就是集中于低级语言层次,而很少同时考虑高级语言和低级语言的。基于高级语言的研究易于程序员使用、且可以更早发现程序的安全问题,但是被信任计算基础(TCB)比较大,而基于低级语言的研究虽然TCB比较小但是形式大多比较复杂,难以被程序员使用从而也难以应用到实际当中。一些出具证明的编译器虽然能根据源程序信息产生其汇编代码的证明,但可证明的程序性质大都是一些源级类型系统可以表达的性质,一些复杂的性质例如值相关的性质并没有在考虑的范围内。 基于上述考虑,本文设计了一种可信软件开发框架,该框架的特点是同时包含了源级和目标级的程序性质证明,并且使用出具证明编译器根据源级规范和证明自动生成目标级证明。该框架可以表达的程序性质不仅局限于类型,还可以是更复杂的程序性质,比如值相关的部分正确性。本文在该框架下主要探讨了出具证明编译的相关技术,即编译器在翻译源代码到汇编代码的同时,根据源级安全规范和证明附带生成汇编代码满足等效规范的证明,并同汇编代码一同输出。这些证明可以被底层证明检查器所检查,以证明生成的汇编代码满足安全规范。本文的工作主要基于类型化汇编语言(Typed Assembly Language)、验证汇编编程(Certified Assembly Programming)和携带证明代码(Proof-Carrying Code)等研究,采用的是类型和逻辑相结合的研究方法。 本文首先介绍了国内外基于程序性质证明的软件安全的相关研究和出具证明编译的研究,然后提出了一个可信软件开发框架,随后本文着重介绍了在这个框架下的出具证明编译技术,以及一个相应的出具证明编译器的设计和实现。这些技术包括验证条件生成技术,底层代码规范(断言)的翻译和生成技术,以及底层证明的生成技术。本文还讨论了出具证明的编译特性对传统编译技术的影响。 本文的主要特色和贡献为: ·提出了一个可信软件开发框架。它向程序员提供源级程序性质证明接口,允许程序员提供源级规范和源程序满足规范的证明,并通过出具证明编译器产生目标程序满足等效规范的证明。对目标级证明的检查可以将代码编译器排除出系统TCB,从而提高程序可信性;而目标级证明的自动生成则减轻了程序员的负担。 ·改进设计了源级验证条件生成算法。该算法将证明源程序满足安全规范的问题转化为证明验证条件正确性的问题。该算法还合并了源语言定型规则中的附加条件收集,同时也考虑了生成的验证条件的化简问题。源级验证条件的证明可以使程序的安全问题尽早暴露。 ·设计并实现了一个出具证明编译器的原型系统,该编译器首次尝试根据源级规范和证明生成目标级规范和证明,且产生的证明包含了验证条件生成过程的证明,从而将验证条件产生器排除出系统TCB,避免了现有出具证明编译器的TCB中存在复杂的验证条件产生器的尴尬局面。而且,相比已有的出具证明编译器,该编译器可以处理更加复杂的程序性质,例如值相关的部分正确性。 本文由中国国家自然科学基金资助(编号60673126)。


知网文化
【相似文献】
中国期刊全文数据库 前20条
1 苏昭;薛锦云;杨晨;;形式化方法在高中算法教学中的应用研究[J];计算机与现代化;2010年07期
2 蔡增玉;甘勇;刘书如;贺蕾;冯媛;;一种基于中间件的可信软件保护模型[J];计算机应用与软件;2010年02期
3 万亚东;朱怀宏;李波;;软件架构与可信软件开发[J];江苏科技信息;2010年09期
4 陈海燕;刘建勋;胡蓉;;可信Web服务合成研究综述[J];吉首大学学报(自然科学版);2011年01期
5 蔡琼;李兴国;丁帅;;可信软件实时性测试用例集生成方法研究[J];计算机应用研究;2009年06期
6 杜晶;杨叶;王青;李明树;;基于证据的可信软件过程评估方法[J];计算机科学与探索;2011年06期
7 张瞩熹;李仁杰;王怀民;;一个面向方面的可信软件开发平台TSCE[J];计算机应用研究;2009年05期
8 罗新星;朱名勋;唐中君;;可信软件需求获取与分析研究综述及展望[J];计算机应用研究;2010年10期
9 沈昌祥;张焕国;王怀民;王戟;赵波;严飞;余发江;张立强;徐明迪;;可信计算的研究与发展[J];中国科学:信息科学;2010年02期
10 曾晋;孙海龙;刘旭东;邓婷;怀进鹏;;基于服务组合的可信软件动态演化机制[J];软件学报;2010年02期
11 石莉;余本功;杨颖;付磊;;基于FAHP和FMCDM构建软件可信性评估模型[J];计算机应用研究;2010年03期
12 程斌林;傅建明;许静;;软件结构属性分析与恶意软件检测[J];武汉大学学报(理学版);2010年02期
13 李光亚;;软件工程若干技术发展新趋势[J];微型电脑应用;2010年11期
14 何炎祥;吴伟;刘陶;李清安;陈勇;胡明昊;刘健博;石谦;;可信编译理论及其核心实现技术:研究综述[J];计算机科学与探索;2011年01期
15 刘东红;郭长国;王怀民;王涛;;监控使能的分布式软件系统构造方法[J];软件学报;2011年11期
16 张波;;软件可信度量评估系统的设计与实现[J];信息与电脑(理论版);2009年09期
17 李仁杰;张瞩熹;江海燕;王怀民;;基于监控的可信软件构造模型研究与实现[J];计算机应用研究;2009年12期
18 刘克;单志广;王戟;何积丰;张兆田;秦玉文;;“可信软件基础研究”重大研究计划综述[J];中国科学基金;2008年03期
19 黄达明;曾庆凯;;基于分离逻辑的程序验证技术[J];软件学报;2009年08期
20 王怀民;史佩昌;丁博;尹刚;史殿习;;软件服务的在线演化[J];计算机学报;2011年02期
中国重要会议论文全文数据库 前2条
1 裴顺昌;宋浩;李建平;蔡晨;;基于CMMI风险管理体系的可信软件开发风险管理研究[A];第十一届中国管理科学学术年会论文集[C];2009年
2 张跃华;刘莹;张玲玲;石勇;;源代码挖掘在可信软件研究中的应用[A];第四届(2009)中国管理学年会——管理科学与工程分会场论文集[C];2009年
中国博士学位论文全文数据库 前4条
1 何加浪;软件可信性保障若干关键技术[D];南京理工大学;2012年
2 丁帅;软件可信性评估模型及其优化方法研究[D];合肥工业大学;2011年
3 韩强;基于行为的软件可信性度量理论与关键技术研究[D];北京邮电大学;2013年
4 石莉;软件可信性评估方法研究[D];合肥工业大学;2012年
中国硕士学位论文全文数据库 前10条
1 李露;基于贝叶斯网络的软件需求风险评估技术研究[D];南京理工大学;2009年
2 闵庆欢;软件可靠性验证测试中降低测试用例量方法研究[D];南京理工大学;2009年
3 刘春梅;基于本体和规则推理的软件可信演化研究[D];重庆大学;2010年
4 黄宏文;涉密网USB移动存储介质可信管理系统研究[D];兰州大学;2011年
5 梁加宾;基于模型检测方法的可信软件验证技术研究[D];解放军信息工程大学;2010年
6 文家朝;基于多样化对象所有权的软件可信性质研究[D];南京理工大学;2012年
7 李红霞;软件可信度量研究初探[D];重庆大学;2005年
8 蔡琼;可信软件实时性测试用例构造方法研究[D];合肥工业大学;2010年
9 吴君;可信软件构成架构的研究及其评估工具的实现[D];北京邮电大学;2013年
10 王长辉;可信应用软件管理机制研究[D];浙江工业大学;2011年
 快捷付款方式  订购知网充值卡  订购热线  帮助中心
  • 400-819-9993
  • 010-62982499
  • 010-62783978