一个出具证明编译器系统的设计与实现

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:lijing202740
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着软件逐渐被应用到国家、社会的更广、更深的领域中,随之而来的软件安全性问题也不容忽视。重要领域、行业的关键软件的安全性问题尤为迫切,关键软件的安全漏洞让国家和社会蒙受了巨大的损失。现有的保证软件安全的方法主要依靠软件测试,这种方法只能保证经测试的特定情状不出错,未经测试的或者无法测试的情况下的行为往往不可知。通过形式化程序的性质,并给出形式化证明的方法,被称之为形式化程序验证,这种方法是提高软件安全性的一个有效途径,且前人已经取得了丰硕的成果。 程序验证方法能够从理论上保证软件不发生程序中禁止的错误,而出具证明编译器技术结合了编译器技术和程序验证方法,它作为验证编译器的一个重要分支,在生成目标代码同时,给出目标代码对应的安全证明。出具证明编译器的出现降低了形式化程序验证的开销,它能够(半)自动地给出形式化的证明。 本实验室前期也完成了一个出具证明编译器的原型系统,但它不能够自动产生证明,这个缺陷极大的制约了其功用性和实用性,因此我们在吸取前期原型系统的经验后,重新设计的一个出具证明的编译器。新的编译器处理一个类C的PointerC语言,它保留了C语言的动态存储管理的特性,便于我们研究存储安全方面的隐患:同时我们设计了一种断言语言方便程序员书写安全规范。出具证明的编译器除了完成传统的代码编译和代码发射外,还将源级的安全规范翻译到目标级。在目标级包含一个验证系统,该验证系统中的验证条件产生器根据翻译得到的安全规范,生成程序对应的验证条件,验证条件包括整型断言和指针断言两类:其中整型断言是机器模型上变量值的约束关系谓词,指针断言是关于指针表示信息是否等价的谓词,且指针断言中的指针变量可以用整型断言中的变量来精确地描述其在堆中的偏移,能够描述更复杂的性质。目标级验证系统中还包括一个定理证明器,它能够自动地产生两种验证条件的证明:整型断言的自动证明主要借助于一个整数谓词自动证明算法和一个将目标机器模型上的寄存器变量、栈变量和堆变量范化成一种符号化变元的算法;指针断言的自动证明通过计算满足同种性质的指针的闭包集合是否等价来证明指针蕴含断言的前后件是否等价,从而得到指针断言的证明。此外我们还设计实现了一个定理检查器,它从文件中读取我们产生的携证明代码,经词法、语法分析无误的程序,进一步较验其证明和代码的合法性。这样我们不但提供了一种对产生的携证明代码机器自动检查的方法,还将编译器模块排除出信任基础,增强了系统的可信性。同时我们通过代表性的示例程序对系统可用性进行了实验评测,实验结果也在本文末尾给出。本文介绍的系统实现了一个可信计算框架,这是对程序验证的一个新的试验,其中的经验教训可作为今后完善出具证明编译器系统的借鉴。 本文由中国国家自然科学基金项目(60673126,90718026),Intel中国研究中心资助。
其他文献
互联网飞速发展,中文信息处理在获取有价值信息方面起到不可替代的作用,而中文分词在中文信息处理的过程中重中之重,又在信息检索、智能输入、自动摘要、中外文翻译文等各个领域
随着数据库技术和网络技术的发展,分布式数据库系统不仅在理论上日趋成熟,而且在网格计算、Internet应用、数据仓库等方面得到越来越广泛深入的应用。由于分布式数据库具有地
网格技术能够将分散在网络上的各种资源进行有机的整合,形成一个统一的整体,为用户提供强大的计算能力和信息服务,被认为是继Internet之后一次重大的科技进步。网格中的资源
随着网络应用对数据库的访问量日益增大,数据库管理系统(DBMS)受到了越来越多的关注。自主计算的研究解决了数据库管理系统内部资源管理的问题,但是无法解决外部负载的管理问
粗糙集理论是一种有效的处理不精确、不一致、不完备等不确定信息的数学理论。用确定的方法处理不确定知识,不需要先验知识,可完全从数据或经验中获取知识,在机器学习、数据
移动自组网(Mobile Ad-hoc NETworks,MANETs)是一种没有基础设施支持的无线网络,具有多跳、无中心、自组织、可移动等特点,使得移动自组网组网方便、快捷,不受时间和空间限制
数据流模型的出现对数据的管理与分析提出了新的要求,如直接反映数据的本来面目、可以处理连续查询、能够处理异种数据、快速响应用户查询等,其本质是对数据流的管理和分析。因
随着互联网的飞速发展,人们的生活变得越来越方便:但是另一方面网络的不安全性也时时困扰着人们,病毒、木马、黑客等几乎无孔不入,它们在互联网上肆意扩张,侵入人们的电脑、窃取人
人脑是复杂的非线性动力学系统,脑科学研究已成为21世纪最重要的研究热点之一。自上世纪20年代脑电(EEG)被发现以来,人类便开始利用脑电对大脑进行无创伤性研究,从而脑电在许多
无线传感器网络是由具有感知、通信、计算能力的大量微小传感器节点构成的自组织分布式网络系统,它能够根据环境自主完成指定的感知任务。无线传感器网络的兴起改变了人类与自