学位论文 > 优秀研究生学位论文题录展示

验证带有线程动态创建和退出多线程程序

作 者: 王海波
导 师: 陈意云
学 校: 中国科学技术大学
专 业: 计算机应用技术
关键词: 软件安全 线程的动态创建和退出 程序验证 多线程 汇编代码
分类号: TP311.53
类 型: 硕士论文
年 份: 2009年
下 载: 29次
引 用: 0次
阅 读: 论文下载
 

内容摘要


随着计算机硬件平台运算能力的不断提升,计算机软件的规模及复杂度日益增长,同时软件安全性问题也日益突出。如何解决软件安全性,已然成为目前计算机工业领域与研究领域关注的热点问题。当前软件主要依靠安全的程序设计语言与软件测试来提高软件的可靠性。然而安全的程序设计语言,如Java、C#等提供的众多安全特性都依赖于其运行环境;软件测试则很大程度依赖于测试者的能力,且软件测试有着与生俱来的不完备性,测试用例很难覆盖软件使用时所遇到的全部情况,因此经过测试的软件依然可能存在着安全隐患。程序验证是计算机研究领域针对解决软件安全性问题,从而构建高可信软件提出的一种应对方案。程序验证中使用形式化的方法对软件进行验证,形式化的方法基于数学的特种技术,因此程序验证具有完备性和可靠性,经过程序验证为安全的软件,安全性具有极高的可信度。综上所述,为了提高软件的安全性和可靠性,使用程序验证的方法验证软件的安全性具有重要意义。在目前的软件开发中,多线程技术大量应用,为研究如何验证应用多线程技术的软件的安全性,本文使用程序验证的方法对带有线程动态创建和退出操作的多线程程序的安全性进行验证。本文的工作使用基于携带证明的代码技术,使用Hoare逻辑的汇编语言级形式化程序验证方法(CAP),提出了一种验证带有线程动态创建和退出的多线程程序的验证框架。该验证框架包含抽象机模型、指令规范、逻辑推理系统、验证框架的可靠性定理及证明。本文的具体工作,包括验证框架的形式化定义以及验证框架的可靠性证明,是在计算机辅助定理证明工具Coq(Coq Development Team, 2008)中实现的,这些实现是计算机可检查的,从而保证了整个验证框架的严格性和可靠性。通过验证工作,本文研究了多线程程序在线程的动态创建和退出中出现的问题,特别是内存划分的改变及内存的初始化和销毁。同时,本文还介绍了这些工作在计算机辅助定理证明工具Coq中的实现,包括如何在Coq中定义数据结构、机器指令等,以及Coq证明中的难点。本文的工作是对原有的AIM验证框架的扩展,主要贡献和创新包括:1)通过对线程的动态创建和销毁机制进行研究,扩展框架在运行时系统及并发用户代码部分都形式化的给出了线程动态创建和销毁的规范,并在原框架中加入显式的内存推理机制,从而提出了一个推理带有线程动态创建和销毁机制多线程程序的方法;2)提出了对程序内存划分的显式的推理机制,该机制可用于验证底层程序的内存划分;3)使用计算机辅助定理证明工具Coq实现了框架的形式化定义及可靠性证明。本文的工作是在原有工作基础上对证明操作系统做出的进一步尝试。操作系统包含虚拟存储,地址映射,硬件驱动等诸多机制,尽管本文的扩展框架模型与真实的操作系统内核还存在着差距,但是本文工作为验证操作系统内核提供了一种途径。同时,本文也为汇编语言及程序的形式验证,特别是为携带证明的代码的技术的应用积累了重要的理论和实践经验。

全文目录


摘要  4-6
Abstract  6-10
第1章 绪论  10-20
  1.1 引言  10-12
  1.2 形式程序验证和PCC 技术  12-16
    1.2.1 安全领域基本原则  12
    1.2.2 程序验证  12
    1.2.3 经典Hoare 逻辑  12-13
    1.2.4 携带证明的代码  13-14
    1.2.5 基础的携带证明的代码  14-15
    1.2.6 验证汇编程序设计CAP  15-16
  1.3 研究现状  16-18
    1.3.1 Rely-Guarantee 方法  16
    1.3.2 CMAP 方法  16-17
    1.3.3 并发分离逻辑  17-18
    1.3.4 AIM 验证框架  18
  1.4 本文概述  18-20
    1.4.1 主要贡献  18-19
    1.4.2 章节安排  19-20
第2章 验证框架  20-38
  2.1 元逻辑  20-21
  2.2 Coq 辅助定理证明工具  21-22
  2.3 目标机器模型  22-25
    2.3.1 讨论  25
  2.4 领域相关逻辑理论与技术  25-26
  2.5 开放式验证汇编编程框架OCAP  26-28
  2.6 基于栈的控制流的模块化推理方法SCAP  28-30
  2.7 AIM 验证框架  30-32
    2.7.1 AIM 框架的逻辑系统  30
    2.7.2 AIM 框架的内存模型  30-32
  2.8 本文的扩展验证框架  32-38
    2.8.1 线程的创建与退出  33-34
    2.8.2 扩展框架的内存模型  34-35
    2.8.3 扩展框架中的目标机器模型与抽象机器模型  35
    2.8.4 扩展框架的逻辑系统  35-38
第3章 扩展框架的可靠性证明  38-49
  3.1 扩展框架的抽象机器模型  39-41
  3.2 扩展框架的推理规则  41-44
  3.3 虚拟指令的规范  44-46
  3.4 扩展框架的可靠性证明  46-47
  3.5 验证举例  47-49
第4章 Coq 实现  49-57
  4.1 Coq 工具  49
  4.2 机器模型  49-51
  4.3 OCAPLITE 推理方法  51-52
  4.4 分离逻辑  52-54
  4.5 抽象机器模型  54-55
  4.6 SCAP 推理方法  55
  4.7 讨论  55-57
第5章 相关工作比较  57-61
  5.1 Mth  57-59
  5.2 CTL  59-60
  5.3 Verisoft XT  60-61
第6章 结束语  61-63
  6.1 文章总结  61-62
  6.2 后续工作展望  62-63
参考文献  63-67
致谢  67-68
在读期间发表的学术论文与取得的研究成果  68

相似论文

  1. AVS视频解码器在PC平台上的优化及场解码的改善,TN919.81
  2. 基于智能学习的多传感器目标识别与跟踪系统研究,TP391.41
  3. 基于比对技术的非法网站探测系统的实现与研究,TP393.08
  4. 基于C/S架构的车辆远程监控系统的设计与实现,TP277
  5. 基于多核的动态剖析加速方法研究,TP332
  6. 基于多线程图像处理机测试系统的研究,TP391.41
  7. 云备份中的双指纹校验与多线程传输技术研究,TP309.3
  8. 基于有限自动机的软件行为建模方法的研究,TP301.1
  9. 车载终端执行文件远程升级系统的设计与研究,TP277
  10. 基于共享前端的流多核体系结构关键技术研究,TP332
  11. 集料级配实时检测系统研究与实现,U415.5
  12. 压缩机厂数控信息管理系统的研究与开发,TP315
  13. 基于性能计数器的攻击检测,防御与分析,TP311.53
  14. 混合加密算法在软件安全中的应用,TP309.7
  15. 有限元法在略阳电厂边坡稳定性分析中的应用与研究,TU43
  16. 虚拟地形环境中地形数据金字塔模型的建模和处理技术的研究,P209
  17. 电学层析成像系统优化设计,O441.4
  18. 基于网络的可重构数控装备虚拟技术研究,TG659
  19. 锂离子动力电池管理系统的设计与实现,TM912
  20. 捣固车自动引导系统的设计与实现,U216.6
  21. 微小型机器人嵌入式控制软件的设计与实现,TP242

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机软件 > 程序设计、软件工程 > 软件工程 > 软件维护
© 2012 www.xueweilunwen.com