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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(使用AVISPA进行NSPK协议安全性分析.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

使用AVISPA进行NSPK协议安全性分析.docx

1、使用AVISPA进行NSPK协议安全性分析基于AVISPA工具进行NSPK协议分析一、AVISPA工具介绍AVISPA 分析工具的结构图如图1所示。HLPSL是一种丰富的、模块化的、基于角色的形式语言,提供了一套包括控制流模式、数据结构、可选择入侵者模式、复杂的安全目标以及不同的密码初始值和代数性质的说明。这些特性能够使HLPSL 很好的描述现代的、工业化规模的协议。而且,HLPSL 不仅支持基于时间片段的逻辑行为的公开语义,还支持基于重写的中间形式化语言IF。HLPSL2IF 自动将HLPSL 语言翻译成IF 语言,并将它们依次反馈给测试后端。AVISPA 使用了4 种后端分析工具来解决安全

2、协议的确认问题:(1)OFMC(On-the-fly Model-Checker):基于IF 语言需求驱使的描述,通过探测系统的变迁,OFMC 能够完成协议的篡改和有限制的确认。OFMC 支持密码操作的代数性质的规范,以及各种协议模型。(2)CL-AtSe(Constraint-Logic-based Attack Searcher):CL-AtSe 通过强大的简化探测法和冗余排除技术来执行协议。它建立在模型化的方式上,并且是对密码操作的代数性质的延伸。CL-AtSe 支持输入缺陷探测和处理消息串联。(3)SATMC(SAT-based Model-Checker):SATMC 建立在通过IF

3、 语言描述的,有限域上变迁关系的编码的公式,初始状态和状态集合的说明代表了整个协议的安全特性。此公式将反馈给SAT 状态推导机,并且建立的任何一个模型都将转化为一个攻击事件。(4)TA4SP(Tree Automata based on Automatic Approximations for the Analysis of Security Protocols):TA4SP通过树形语言和重写机制估计入侵者的知识。根据不同的保密特性,TA4SP 能够判断一个协议是否有缺陷,或者是几个会合的对话后是否安全。图1 AVISPA工具结构二、AVISPA工具安装AVISPA 工具在AVISPA 官方网

4、站上可以下载,运行在Linux 操作系统环境下。首先,下载并安装AVISPA v1.1版本(本文使用AVISPA1.0 版本为例),解压安装包到对应目录; 其次, 需要设置工具集的环境变量, 将AVISPA_PACKAGE 关联到安装包的绝对路径;最后将avispa 脚本语言设置在命令行解释器的执行目录中。例如:用户想安装AVISPA 工具集在/opt 路径下,命令如下5:cd /opttar -xzf /home/xyz/avispa-package-X.Y_Linux-i686.tgzexport AVISPA_PACKAGE=/opt/avispa-X.Yexport PATH=$PAT

5、H:$AVISPA_PACKAGE三、XEmacs 模式的使用(1)XEmacs 工具的安装。AVISPA 提供和XEmacs 工具的用户友好接口(XEmacs 工具是Linux 操作系统下的一种编辑器),它们之间支持用户和AVISPA 工具集之间的简单交互。首先,Linux 操作系统需要安装XEmacs 编辑器;其次,需要对AVISPA 进行设置,使其支持XEmacs 模式,命令如下:cd /opt/otherstar -xzvf avispa-mode.tgzcd temporary-avispamake install(2)XEmacs 工具按钮。AVISPA XEmacs 模式提供了一

6、套完整而直观的编译环境对安全协议进行说明和分析。最常用的分析出发点是通过hlpsl 文件开始。在AVISPA 模式下,当XEmacs 工具自动侦测出后缀名为“.hlpsl”的文件时,会在XEmacs 工具栏上出现对应的AVISPA 按钮。AVISPA 按钮的大致功能如下:AVISPA:提供选项、模式的定制和改变后端分析工具等功能;:提供在同一个协议不同的分析文件(例如“.if”,“.atk”等)之间进行导航;Process file:导入编译器对中间文件进行编译和分析,得出结论;Update:当一个工具被XEmacs 异步导入时,一旦此工具被中断,此按钮将刷新当前的缓存区。NSPK协议分析(1

7、) NSPK协议简介非对称密码体制NSPK协议,协议双方身份认证部分为:1)AB:N:,AKA首先生成临时值M,加上自己的身份,用B的公开密钥KB加密后发送给B。2)BA:N:,N6KB生成临时值N6,加上A的临时值Nn,用A的公开密钥KA加密后发送给A。3)AB:MK。A向B发送经过KB加密的Nj整个协议采用公开密钥系统,K4,K8分别是A和B的公开密钥N口,N6是A和B发布的具有新鲜性的临时值(nonce)。(2)NSPK分析实验使用AVISPA 协议分析工具对安全协议进行分析的一般性过程如下:首先,将安全协议编码为某种形式化描述语言;然后,根据协议目标和安全属性,给出不同的消息成分的类型

8、;最后,根据分析工作的结果判断协议是否安全,是否达到了预期目标。(1)分析安全协议,并根据HLPSL 语法,将协议进行建模,编辑成后缀名为“.hlpsl”的文件,具体语法见安全协议形式化分析的研究和实现;如下为NSPK协议的hlpsl实现:role alice (A, B: agent, Ka, Kb: public_key, SND, RCV: channel (dy) played_by A def= local State : nat, Na, Nb: text init State := 0 transition 0. State = 0 / RCV(start) =| State:=

9、 2 / Na := new() / SND(Na.A_Kb) / secret(Na,na,A,B) / witness(A,B,bob_alice_na,Na) 2. State = 2 / RCV(Na.Nb_Ka) =| State:= 4 / SND(Nb_Kb) / request(A,B,alice_bob_nb,Nb)end rolerole bob(A, B: agent, Ka, Kb: public_key, SND, RCV: channel (dy) played_by B def= local State : nat, Na, Nb: text init State

10、 := 1 transition 1. State = 1 / RCV(Na.A_Kb) =| State:= 3 / Nb := new() / SND(Na.Nb_Ka) / secret(Nb,nb,A,B) / witness(B,A,alice_bob_nb,Nb) 3. State = 3 / RCV(Nb_Kb) =| State:= 5 / request(B,A,bob_alice_na,Na)end rolerole session(A, B: agent, Ka, Kb: public_key) def= local SA, RA, SB, RB: channel (dy

11、) composition alice(A,B,Ka,Kb,SA,RA) / bob (A,B,Ka,Kb,SB,RB)end rolerole environment() def= const a, b : agent, ka, kb, ki : public_key, na, nb, alice_bob_nb, bob_alice_na : protocol_id intruder_knowledge = a, b, ka, kb, ki, inv(ki) composition session(a,b,ka,kb) / session(a,i,ka,ki) / session(i,b,k

12、i,kb)end rolegoal secrecy_of na, nb authentication_on alice_bob_nb authentication_on bob_alice_naend goal(2)在终端中执行分析命令:./avispa /tmp/NSPK.hlpsl -output=/opt ofmc,软件将输入的NSPK.hlpsl文件转化为NSPK.if文件,并将其作为分析器的输入语言,其语法格式如下:% IF specification of contrib/avispa-library/NSPK.hlpslsection signature:state_bob: a

13、gent * agent * public_key * public_key * nat * text * text * set(agent) * nat - factstate_alice: agent * agent * public_key * public_key * nat * text * text * set(agent) * nat - factsection types:nb, alice_bob_nb, bob_alice_na, na: protocol_idNa, Nb, Dummy_Nb, Dummy_Na, dummy_nonce: textset_78, set_

14、77, set_76, set_74, set_70, set_62: set5, 3, 1, State, 10, 6, 4, SID, 2, Dummy_State, 0, SID2, SID1: natSet_38, Dummy_Set_38, Set_18, Dummy_Set_18, ASGoal: set(agent)start, MGoal: messageKa, Kb, ka, kb, ki: public_keyA, B, A2Goal, A1Goal, i, a, b: agentsection inits:initial_state init1 := iknows(sta

15、rt). iknows(a). iknows(b). iknows(ka). iknows(kb). iknows(ki). iknows(inv(ki). iknows(i). state_alice(a,b,ka,kb,0,dummy_nonce,dummy_nonce,set_62,3). state_bob(b,a,ka,kb,1,dummy_nonce,dummy_nonce,set_70,4). state_alice(a,i,ka,ki,0,dummy_nonce,dummy_nonce,set_74,6). state_bob(b,i,ki,kb,1,dummy_nonce,d

16、ummy_nonce,set_78,10)section rules:step step_0 (A,B,Ka,Kb,Dummy_Na,Nb,Dummy_Set_18,SID,Na) := state_alice(A,B,Ka,Kb,0,Dummy_Na,Nb,Dummy_Set_18,SID). iknows(start)=exists Na= state_alice(A,B,Ka,Kb,2,Na,Nb,Dummy_Set_18,SID). iknows(crypt(Kb,pair(Na,A). secret(Na,na,Dummy_Set_18). witness(A,B,bob_alice

17、_na,Na). contains(A,Dummy_Set_18). contains(B,Dummy_Set_18)step step_1 (A,B,Ka,Kb,Na,Dummy_Nb,Set_18,SID,Nb) := state_alice(A,B,Ka,Kb,2,Na,Dummy_Nb,Set_18,SID). iknows(crypt(Ka,pair(Na,Nb) = state_alice(A,B,Ka,Kb,4,Na,Nb,Set_18,SID). iknows(crypt(Kb,Nb). request(A,B,alice_bob_nb,Nb,SID)step step_2 (

18、B,A,Ka,Kb,Dummy_Na,Dummy_Nb,Dummy_Set_38,SID,Na,Nb) := state_bob(B,A,Ka,Kb,1,Dummy_Na,Dummy_Nb,Dummy_Set_38,SID). iknows(crypt(Kb,pair(Na,A)=exists Nb= state_bob(B,A,Ka,Kb,3,Na,Nb,Dummy_Set_38,SID). iknows(crypt(Ka,pair(Na,Nb). secret(Nb,nb,Dummy_Set_38). witness(B,A,alice_bob_nb,Nb). contains(A,Dum

19、my_Set_38). contains(B,Dummy_Set_38)step step_3 (B,A,Ka,Kb,Na,Nb,Set_38,SID) := state_bob(B,A,Ka,Kb,3,Na,Nb,Set_38,SID). iknows(crypt(Kb,Nb) = state_bob(B,A,Ka,Kb,5,Na,Nb,Set_38,SID). request(B,A,bob_alice_na,Na,SID)section properties:property secrecy_of_na (MGoal,ASGoal) := (secret(MGoal,na,ASGoal)

20、 / iknows(MGoal) = contains(i,ASGoal)property secrecy_of_nb (MGoal,ASGoal) := (secret(MGoal,nb,ASGoal) / iknows(MGoal) = contains(i,ASGoal)property authentication_on_alice_bob_nb (A1Goal,A2Goal,MGoal,SID,SID1,SID2) := (request(A1Goal,A2Goal,alice_bob_nb,MGoal,SID) / equal(A2Goal,i) = witness(A2Goal,

21、A1Goal,alice_bob_nb,MGoal) / (request(A1Goal,A2Goal,alice_bob_nb,MGoal,SID1) / request(A1Goal,A2Goal,alice_bob_nb,MGoal,SID2) / equal(A2Goal,i) = equal(SID1,SID2)property authentication_on_bob_alice_na (A1Goal,A2Goal,MGoal,SID,SID1,SID2) := (request(A1Goal,A2Goal,bob_alice_na,MGoal,SID) / equal(A2Go

22、al,i) = witness(A2Goal,A1Goal,bob_alice_na,MGoal) / (request(A1Goal,A2Goal,bob_alice_na,MGoal,SID1) / request(A1Goal,A2Goal,bob_alice_na,MGoal,SID2) / equal(A2Goal,i) = equal(SID1,SID2)section attack_states:attack_state secrecy_of_na (MGoal,ASGoal) := iknows(MGoal). secret(MGoal,na,ASGoal) & not(con

23、tains(i,ASGoal)attack_state secrecy_of_nb (MGoal,ASGoal) := iknows(MGoal). secret(MGoal,nb,ASGoal) & not(contains(i,ASGoal)attack_state authentication_on_alice_bob_nb (A1Goal,A2Goal,MGoal,SID) := request(A1Goal,A2Goal,alice_bob_nb,MGoal,SID) & not(witness(A2Goal,A1Goal,alice_bob_nb,MGoal) & not(equa

24、l(A2Goal,i)attack_state replay_protection_on_alice_bob_nb (A2Goal,A1Goal,MGoal,SID1,SID2) := request(A1Goal,A2Goal,alice_bob_nb,MGoal,SID1). request(A1Goal,A2Goal,alice_bob_nb,MGoal,SID2) & not(equal(SID1,SID2) & not(equal(A2Goal,i)attack_state authentication_on_bob_alice_na (A1Goal,A2Goal,MGoal,SID

25、) := request(A1Goal,A2Goal,bob_alice_na,MGoal,SID) & not(witness(A2Goal,A1Goal,bob_alice_na,MGoal) & not(equal(A2Goal,i)attack_state replay_protection_on_bob_alice_na (A2Goal,A1Goal,MGoal,SID1,SID2) := request(A1Goal,A2Goal,bob_alice_na,MGoal,SID1). request(A1Goal,A2Goal,bob_alice_na,MGoal,SID2) & n

26、ot(equal(SID1,SID2) & not(equal(A2Goal,i)(3)分四种方式对NSPK协议进行分析,操作命令如下:./avispa contrib/avispa-library/NSPK.hlpsl -output=/opt -ofmc./avispa contrib/avispa-library/NSPK.hlpsl -output=/opt -cl-atse./avispa contrib/avispa-library/NSPK.hlpsl -output=/opt -satmc -solver=sim./avispa contrib/avispa-library/N

27、SPK.hlpsl -output=/opt -ta4sp软件经过分析,会给出分析结果:1) OFMC模式分析结果如下:% OFMC% Version of 2006/02/13SUMMARY UNSAFEDETAILS ATTACK_FOUNDPROTOCOL /opt/NSPK.ifGOAL secrecy_of_nbBACKEND OFMCCOMMENTSSTATISTICS parseTime: 0.00s searchTime: 0.02s visitedNodes: 10 nodes depth: 2 pliesATTACK TRACEi - (a,6): start(a,6) -

28、 i: Na(1).a_kii - (b,3): Na(1).a_kb(b,3) - i: Na(1).Nb(2)_kai - (a,6): Na(1).Nb(2)_ka(a,6) - i: Nb(2)_kii - (i,17): Nb(2)i - (i,17): Nb(2)% Reached State:% % secret(Nb(2),nb,set_70)% witness(b,a,alice_bob_nb,Nb(2)% contains(a,set_70)% contains(b,set_70)% secret(Na(1),na,set_74)% witness(a,i,bob_alic

29、e_na,Na(1)% contains(a,set_74)% contains(i,set_74)% state_bob(b,i,ki,kb,1,dummy_nonce,dummy_nonce,set_78,10)% state_alice(a,i,ka,ki,4,Na(1),Nb(2),set_74,6)% state_bob(b,a,ka,kb,3,Na(1),Nb(2),set_70,3)% state_alice(a,b,ka,kb,0,dummy_nonce,dummy_nonce,set_62,3)% request(a,i,alice_bob_nb,Nb(2),6)看到如上的针

30、对NSPK协议进行的攻击,发现攻击过程的参与者有三个:主体A、主体B和攻击者C,其中A作为NS公钥协议的初始者,C作为响应者并假冒A和B进行通信和欺骗,从而实现对NS公钥协议的攻击。整个协议采用公开密钥系统,ABCEEE、分别是A、B和C的公开密钥,ABNN、是A和B发布的具有新鲜性的随机数(也称临时值,nonce)。攻击过程为:首先主体A向C发送包含AN和自己身份的消息1,并用C的公钥CE加密消息1;C收到消息并马上对消息进行解密,而后假冒A向B发送AN和A身份(让B误认为是和A进行通信)的消息1,并用B的公钥BE进行加密;B接到消息,并向假冒A的C发送用A的公钥加密的消息ABNN、;而后C接到消息2并立即向A发送;对协议攻击最后一步,A向C发送A、B之间用于通信的共享秘密BN。这样C就能得到A和B之间的共享秘密BN,从而实现以后对A和B通信内容的监听。了解完上述攻击的详细过程,我们不难发现根据上述攻击可以使B不能确认最后一条消息是否来自A。这是由于A从未详细地声明她欲与B对话,因此B不能得到任何保证A知道B是她的对等实体。2)cl-atse模式分析结果如下:SUMMARY UNSAFEDETAILS ATTACK

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1