ImageVerifierCode 换一换
格式:PPT , 页数:30 ,大小:228KB ,
资源ID:5755672      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-5755672.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(一种安全语言的设计及形式证明.ppt)为本站会员(weiwoduzun)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

一种安全语言的设计及形式证明.ppt

1、一种安全语言的设计及形式证明,华保健 中国科学技术大学计算机系合作者:陈意云 李兆鹏 王志芳 葛 琳,TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: A,软件安全的挑战,软件系统应用越来越广泛,其安全问题也愈发突出来源:CNCERT/CC 2006年度报告 2007年上半年的统计数据已经超过了06全年的统计数据 程序设计语言本身的安全性对高安全需求软件起着基础作用,现有研究方法及其问题(1),程序分析的方法 基于这些方法的工具:LC-Lint、Purify和PREFix等 相对简

2、单;可扩展性好;代价相对较低 分析结果一般不具备完备性 类型系统技术 成功用于Java、C#和ML等广泛使用的语言 轻量级语法方法;模块性良好 表达能力有限;不允许显式存储管理,现有研究方法及其问题(2),类型细化 依赖类型、应用类型和单元素类型等 从不同层面一步增强了类型系统的表达能力 受表达能力限制,仅在不多的论域取得了结果 程序验证和公理语义 携带证明的代码(PCC)、ESC/Java和Spec#等 更通用的框架;表达能力更强 程序员负担重;受限于定理证明器的证明能力,我们的研究目标,安全语言设计和实现 安全语言面向系统程序设计 研究内容 语言设计;公理语义系统;出具证明编译器;语言和公

3、理系统的性质证明等 把携带证明的代码技术(PCC)推向实用 面向系统程序设计语言;更丰富的安全策略 对高安全需求软件的设计和实现技术进行探索 依靠程序设计语言设计和实现技术,本文主要工作和贡献,研究了类型系统和逻辑系统相结合的安全机制 应用到所设计的类C的命令式语言PointerC上 主要特色是定型规则中包含显式副条件 副条件表达更丰富的安全策略 提出了指针逻辑 Hoare逻辑的扩展 证明了语言的安全性和指针逻辑的可靠性 用机械化方法 证明在Coq中完成,源语言PointerC,源语言PointerC是类C的命令式语言 选取了C语言核心的表达式和控制结构 包含malloc,free操作 为什么

4、选择C? C是最重要的系统程序设计语言之一,但不安全 出于效率考虑 使用类型系统和逻辑系统相结合的静态机制 研究重点是指针操作的安全问题,类型系统、副条件,PointerC定型规则包含显式的副条件 典型示例:断言语言 扩展的一阶逻辑 必须证明这些副条件 成立 保证程序的安全性,指针逻辑的设计目的,证明副条件成立是困难的 副条件和值相关 传统上依赖运行时动态检查 不成立则抛出异常 Java/C#等 试图静态证明副条件 以Hoare逻辑推理的方式 困难部分是指针操作的安全性 对Hoare逻辑做了扩展,提出指针逻辑,指针逻辑(1),基本思想 在每个程序点表达指针值的信息 有效、空或者悬空, p =

5、malloc (); ,指针逻辑(2),基本思想 在每个程序点表达指针值的信息 有效、空或者悬空, p, q / p-next p = malloc (); ,指针逻辑(3),基本思想 以推理规则表达语句给指针信息带来的变化 最强后条件演算,指针逻辑(4),基本思想 以推理规则表达语句给指针信息带来的变化 最强后条件演算, p, q / p-next p = malloc (); p / q / q-next / p-nextD ,前条件,操作语义,操作语义的定义基于抽象机器模型 包括全局变量区、栈、堆等 操作语义由一系列归约规则组成 语句 在机器模型 上的执行在机器模型上形式描述安全策略:

6、无下标越界 无空(悬空)指针引用 无内存泄漏,语言安全性定理及其证明,经过类型系统和指针逻辑检查的程序是安全的 不违反安全策略 证明步骤: 机器模型上形式化安全策略 无数组越界,无空(悬空)指针引用;无内存泄漏 证明安全策略对操作语义是不变式(Invariant)证明在Coq中完成,机械化证明,安全性 证明,机械化的元逻辑 (CiC),指针逻辑可靠性定理及其证明,证明指针逻辑(公理语义系统)对PointerC的操作语义可靠。主要步骤: 给出指针逻辑断言在机器模型上的语义解释 特别考虑了推理规则中的副条件 在基础逻辑中形式化指针逻辑的推理规则 包括断言 证明指针逻辑对操作语义可靠 如果一个断言在

7、语法系统中可证,则它语义有效 证明在Coq中完成,机械化证明,安全性 证明,机械化的元逻辑 (CiC),可靠性 证明,出具证明编译器PLCC,源程序 + 源级规范标注,验证条件生成器,定理证明器,验证条件,代码和规范 的生成,证明生成,验证条件的证明,汇编代码 + 规范,汇编代码 + 规范 + 证明,出具证明的编译器,证明检查器,相关工作,程序性质证明 ESC,ATS等 面向系统编程的安全语言 Cyclone,CCured等 出具证明的编译器 Flint/SML, TouchStone, Special J, TIL/TAL等 语言定义和实现的机械化 SML(Twelf),CMinor(Coq

8、),CAP(Coq)等,进一步的工作,扩展源语言 支持部分指针算术 calloc操作 扩展指针逻辑系统 支持不规则数据结构的推理,如图等 设计和实现出具证明编译器原型系统 研究编译器和定理证明器交互 程序验证和程序优化等,结论,研究了类型系统和逻辑系统相结合的安全机制 应用到所设计的类C的命令式语言PointerC上 主要特色是定型规则中包含显式副条件 副条件表达更丰富的安全策略 提出了指针逻辑 Hoare逻辑的扩展 证明了语言的安全性和指针逻辑的可靠性 用机械化方法 证明在Coq中完成,了解更多,欢迎访问软件安全实验室主页,了解更多信息 http:/ 基于Hoare逻辑的公理语义系统核心思想

9、 以逻辑命题精确表达在每个程序点的有效指针、空指针和悬空指针的信息 设计推理规则来推理程序语句给这些指针信息带来的变化 断言语言基于一阶逻辑 演算规则类似于Hoare逻辑系统的最强后条件演算,指针逻辑可靠性定理及其证明,证明指针逻辑(公理语义系统)对PointerC的操作语义可靠。主要步骤: 给出断言 在机器模型上的语义解释特别考虑了推理规则中的副条件 指针逻辑对操作语义可靠证明在Coq中完成,语言安全性定理及其证明,经过类型系统和指针逻辑检查的程序是安全的 不违反安全策略 证明步骤: 在机器模型上形式化安全策略 无数组越界,无空(悬空)指针引用;无内存泄漏 证明安全策略对操作语义是不变式(I

10、nvariant)证明在Coq中完成,和PCC相比较的优势?,从可生成携带证明的代码的角度来说,本工作进一步把PCC技术推向实用 但至少在以下几点,存在显著不同 源语言的灵活性 安全策略的丰富程度 出具证明编译器所能支持 Hoare逻辑风格推理的支持程度,PointerC对Java或者ML等类型安全 的语言的优势?,Java或ML仅提供了类型安全的保证,在很大高安全需求的场合,这相对较弱 如:需要部分正确性要求的软件系统中 C的很多特性,如显式存储管理,是实现一些关键系统所必须的 如:高风险设备的实时或者嵌入式系统 用Java或ML重新实现现有的C遗留代码,无论从精力和可行性上,都是不实际的 代码规模以数百万行级计,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报