基于SPIN的安全协议形式化验证方法.docVIP

  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文档。上传文档
查看更多
基于SPIN的安全协议形式化验证方法 1引言 随着计算机技术的发展,人类进入了信息时代,信息技术已经渗透到了人们日常生活的方方面面,然而信息在开放的网络环境中传输会遭到各种各样的攻击,如偷听攻击、截取攻击、伪造攻击、篡改攻击等。这些攻击的存在在不同程度上损害了网络用户的利益。因此为了确保信息安全,人们设计出了安全协议来保证通信过程的安全可靠。安全协议是一个分布式算法,它规定了两个或两个以上的协议主体在一次通信过程中必须要执行的一系列步骤。利用安全协议人们来实现在开发网络中的安全通信。可以说安全协议是信息安全的基础,其自身的安全问题已成为安全研究的重要内容。目前,在安全协议验证领域存在多种验证方法如模拟、形式化等,模拟的方法存在不能100%覆盖的缺陷,而形式化能够达到覆盖率100%而且具有严密的数学基础,因而越来越受到业内人士的信赖。形式化验证主要有两种验证方法定理证明和模型检测两种方法。定理证明的基本思想是将安全协议描述为公理系统,安全协议的安全目标则表示成需要证明的定理,安全协议是否符合安全目标则对应于公理系统中的目标定理是否成立。定理证明的最大优势是协议运行期间不会出现状态爆炸的问题。缺点是,对使用者的技术要求较高,需专业人士才能驾驭,而且自动化程度不高,需要人工干预。模型检测的基本思想是,把安全协议看成一个分布式系统,单个协议实体涉及的协议执行部分为局部状态,所有局部状态构成了分布式系统的全局状态。在安全协议的全局状态上定义安全属性,安全协议是否满足安全属性等价于系统可达的每个全局状态上安全属性都能够得到满足。模型检测可实现全自动的执行,人的干预较少操作简单易实行,但模型检测会出现状态空间爆炸的情况,这种情况制约了模型检测技术的发展。SPIN这种模型检测工具利用on-the-fly技术可以有效的缓解状态空间爆炸问题,SPIN模型检测工具的基本思想是将协议表示成一自动机的形式,并且将待验证属性表示为另一自动机,然后求这两个自动机的同步积。通过遍历求同步积后产生的新的状态机的整个状态空间,检查协议是否满足我们期望的性质描述。如果不满足则返回错误并提供导致错误的状态迁移路径,我们将通过错误路径来定位错误。本文详细介绍了模型检测工具SPIN的工作原理,并给出了一个基于SPIN模型检测工具的简单安全协议的形式化描述和分析。 2SPIN的工作原理 SPIN作为一种验证反应式并发系统逻辑一致性的工具,已广泛应用到航空、核电、网络信息安全等众多领域中。它首先把用Promela建模语言,通过进程、变量和消息通道等描述的待验证系统,以及以LTL或断言描述的待验证属性,作为输入,然后把Promela描述的待验证系统中每个进程转化为一个有限自动机并对这些有限自动机进行异步积运算得到优先自动机A,同时把LTL表达式取反并转换为一个自动机B,最后对自动机A和自动机B进行同步积运算得到自动机C。SPIN通过内嵌的搜索算法对自动机C进行穷尽搜索,在搜索的过程中SPIN通过on-the-fly技术以及偏序简化技术对状态空间进行简化,当搜索完毕显示自动机C所能接受的语言为空,表示待验证系统满足LTL表达的属性,反之则不满足。若在检测过程中,发现了违背待验证属性的反例,返回到交互模拟执行状态再继续仔细诊断,定位错误原因。 2.1待验证属性的描述 对于待验证属性的描述一般使用LTL公式。LTL就在命题逻辑的基础上加入了时序操作符:G:表示永远为真。F:表示最终为真。X:表示下一个时刻为真。U:表示直到某刻前一直为真。R:表示到了某刻才为真。时序逻辑只在乎事件发生的先后顺序,不在乎事件发生的时间间隔。每一个LTL公式都可以表达为一个buchi自动机,在SPIN中用neverclaim来描述buchi自动机。时序逻辑提高了对于系统在时间顺序上的行为的公式化描述,有了这些操作符,我们就可以方便地描述系统的时态性质了。断言也可以作为一种描述待验证属性的方法,如可以验证在某个状态下某个性质是否成立,是否存在无意义的空转等。 2.2Promela(PROcessMetaLanguage)建模语言 Promela语言不是一种设计语言,它是一种系统描述语言。它是用来对有限状态系统进行建模的形式描述语言.由于Promela提供对数据结构与c代码嵌入方面的支持,可以很好地形式化描述协议.一个Promela(processmetalanguage)模型由类型(type)、通道(channe1)、变量(variable)与进程(process)构成。Promela允许动态创建并行的进程,并且可以在进程之间通过消息通道进行同步或异步通信.同步使用会面点(rendezvousport)进行通信,而异步使用缓

文档评论(0)

天星 + 关注
官方认证
文档贡献者

人人为我,我为人人。

版权声明书
用户编号:5342242001000034
认证主体四川龙斌文化科技有限公司
IP属地四川
统一社会信用代码/组织机构代码
91510100MA6ADW1H0N

1亿VIP精品文档

相关文档