软件构件与中间件 - 欢迎访问北京大学信息软工所 .pptVIP

软件构件与中间件 - 欢迎访问北京大学信息软工所 .ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件构件与中间件 - 欢迎访问北京大学信息软工所 .ppt

内 容 一、例子 二、模型检测概述 三、模型检测算法概览 四、模型检测工具 ACM 2007年度图灵奖(Turing Award) Edmund M. Clarke, E Allen Emerson, Joseph Sifakis 1981年,美国的Edmund Clarke和Allen Emerson以及在法国的Sifakis分别提出了模型检测(Model Checking)的最初概念 他们开发了一套用于判断硬件和软件设计的理论模型是否满足规范的方法 当系统检测失败时,还能利用它确定问题存在的位置 二、模型检测概述 1、基本情况 2、什么是模型检测 3、基本思想 4、过程描述 1、基本情况 产生 20世纪80年代初,Clarke, Emerson等提出了用于并发系统性质的CTL逻辑,设计了检测有穷状态系统是否满足给定CTL公式的算法 特性 能给出反例 自动化程度高 应用 计算机硬件、通信协议、控制系统、安全认证协议、软件安全 等 定义[Clarke Emerson 1981] “Model checking is an automated technique that, given a finite-state model of a system and a logical property, systematically checks whether this property holds for (a given initial state in) that model.” 给定一个系统的有限状态模型,和一个逻辑性质,系统地检测:这个模型(含初始状态)满足该性质 4、过程描述 三、模型检测算法概览 1、系统的表示 2、属性的表示 3、搜索状态空间 例子:微波炉系统 3、搜索状态空间 Needham-Schroeder 身份认证协议 mtype = {msg1, msg2, msg3, alice, bob, intruder, nonceA, nonceB, nonceI, keyA, keyB, keyI, ok}; typedef Crypt { /* the encrypted part of a message */ mtype key, d1, d2; } chan network = [0] of {mtype, /* msg# */ mtype, /* receiver */ Crypt}; mtype partnerA, partnerB; mtype statusA, statusB; /* Knowledge about nonces gained by the intruder. */ bool knowNA, knowNB; 四、模型检测工具 1、SMV 2、SPIN 3、其它工具 检验性质: G( (statusA = ok Λ statusB = ok) = (partnerA = bob ? partnerB = alice) ) 模型检测缺点(用于软件模型检测): 空间爆炸:值域太泛 * 模型检验 */36 高级软件工程 * 网络环境应用系统 */30 高级软件工程 第八讲 模型检验 主要考虑如何发现设计缺陷! Needham-Schroeder 身份认证协议 [N, S1]Z [S1, S2]N [S2]Z 通信过程可能被窃听!加密可以防止窃听!如何约定加密数字? 每人 有自己的标识:N 每人 公布自己的公钥: 只有N才能解开的消息: [****]N 每个对话过程 用一对数字对内容加密: S1, S2 每次对话前 需要首先建立这对数字 该协议于1978年被提出并得到广泛应用 N Z 一、例子 [N, S1]W [S1, S2]N [S2]W [N, S1]Z [S1, S2]N [S2]Z 1996年,发现该协议存在设计缺陷: 攻击者可以伪装一方的身份 利用模型检测方法! 被欺骗! 不可信! 开始伪装 Z W N In 1992 Clarke and his students at CMU used SMV to verify the IEEE Future+ cache coherence protocol. ? They found a number of previously undetected errors in the design of the protocol. ? This was the first t

文档评论(0)

wangxing1张 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档