-I-海南大学信息学院信息安全系专业课程《网络安全协议》NSSK协议实验报告姓名:学号:学院:信息科学技术学院成绩:任课教师:吴汉炜二〇一一年十二月二日2计算机类课程实验报告姓名主讲教师吴汉炜专业信息安全班级2班学号实验日期2014年10月17日课程名称《网络安全协议》小组成员一、实验名称:NSSK协议的漏洞分析二、实验目的:1、了解并掌握NSSK协议的基本流程及设计思路2、分析掌握对协议的攻击流程。3、找出NSSK协议能够被攻击的环节并掌握被攻击的原因4、看懂流程图,并分析出所指定的攻击的方法和环节。三、实验内容及要求1、整理出NSSK协议的过程2、个人总结出对NSSK协议的攻击方法3、使用软件对协议进行漏洞分析4、对比2、3步的结果进行对比总结出异同四、实验材料、工具、或软件Windows7Python-2.7.6scyther-w32-v1.1.3五、实验步骤(或记录)本次实验共分四步执行:第一步:查阅相关资料,系统地认识NSSK认证协议,分析协议的代码描述,思考、解读它的验证流程;第二步:推敲其提供的攻击方法,总结思路;第三步:使用软件验证协议,对产生的攻击进行流程图分析;第四步:对比二、三步的攻击分析结果,观察异同,并思考总结其原因得出结论。下面按照这四个步骤开始实验并详细叙述。第一步A,B,S:principalNa,Nb:nonceKas,Kbs,Kab:keydec:nonce-nonce1.A-S:A,B,Na2.S-A:{Na,B,Kab,{Kab,A}Kbs}Kas3.A-B:{Kab,A}Kbs4.B-A:{Nb}Kab5.A-B:{dec(Nb)}KabA向服务器S发送会话请求,服务器S将A、B会话密钥发送给A,A将会话密钥发送给B,3B将消息解密后用会话密钥加密随机数向A发起挑战,A将随机数减一将会话密钥发给B。最后完成了整个协议的交互,A、B可以正常作会话。A,B,SusertypeSessionKey;constFresh:Function;constCompromised:Function;protocolneedhamschroedersk(I,R,S){roleI//协议的发起者{freshNi:Nonce;//初始化变量以及常量varNr:Nonce;varKir:SessionKey;//会话秘钥varT:Ticket;//票据send_1(I,S,(I,R,Ni));//发送消息recv_2(S,I,{Ni,R,Kir,T}k(I,S));//从S接收消息send_3(I,R,T)//发送消息给R;recv_4(R,I,{Nr}Kir);//从R处接收消息send_5(I,R,{{Nr}dec}Kir);//向R用会话秘钥随机数claim_I2(I,Secret,Kir);//三个声明和要求claim_I3(I,Nisynch);claim_I4(I,Empty,(Fresh,Kir));}roleR{freshNr:Nonce;varKir:SessionKey;recv_3(I,R,{Kir,I}k(R,S));//从I收到加密的会话秘钥send_4(R,I,{Nr}Kir);//向I发送用密钥加密的随机数recv_5(I,R,{{Nr}dec}Kir);//从R处接受加密的Nr-1claim_R1(R,Secret,Kir);//以下是三个声明claim_R3(R,Nisynch);claim_R4(R,Empty,(Fresh,Kir));}roleS{varNi:Nonce;freshKir:SessionKey;//分配会话秘钥recv_1(I,S,(I,R,Ni));S接收I会话请求4send_2(S,I,{Ni,R,Kir,{Kir,I}k(R,S)}k(I,S));发送会话秘钥给I}}第二步攻击的分析i.1.A-S:A,B,Nai.2.S-A:{Na,B,Kab,{Kab,A}Kbs}Kasi.3.A-I(B):{Kab,A}KbsassumethatKabiscompromisedii.3.I(A)-B:{Kab,A}Kbsii.4.B-I(A):{Nb}Kabii.5.I(A)-B:{dec(Nb)}Kab首先A向服务器S发起会话密钥请求,服务器S将A、B会话密钥发给A,A把加密的密钥发给B,此时攻击者假冒B接收了该消息,这里面假定Kab已经被泄露,攻击者把密钥发送给B,B又将随机数发给攻击者,攻击者将随机数减一发回,这样攻击者既可以和A又可以和B合法的通信了,完成了攻击。第三步攻击流程图分析使用软件验证其安全性,发现存在至少一种可能的攻击:SBI(A)①A,B,Na②{Na,B,Kab,{Kab,A}Kbs}Kas③{Kab,A}Kbs④{Nb}Kab⑤{dec(Nb)}Kab5①这面charlie向Alice发送的Ni是明文发送的没有进行加密处理,会遭受到攻击,程序认为这个信息会被窃取然后对消息进行重放。1236②这里是指charlie发送给Bob的整条消息没有被加密,直接被明文发送,违反了三条声明中的一条。但是这里攻击者因为不知道密钥无法知道信息内容,所以这里没有实质性的攻击。③这个攻击是指整条消息没有进行加密,容易被截获{Kir#2,charlie}k(Bob,Alice),因此应该对整条消息进行加密才能够安全传输。图中同样道理NonceIntruder1没有被加密,则④NonceIntruder1没有加密,这里它是明文传输,违反了三个警告声明(claim),S3的Alive,S4的weakagree。第四步分析对比第二、三步第二步中的攻击流程中会话密钥被攻击者所窃取,通过和A、B进行交互最后获得了和A、B正常交互、会话的权限并窃取他们的信息,这是从根本上对协议的攻击。然而流程图分析则仅仅是对每一条消息进行分析,考虑每一条信息是否被加密,是否会被窃取,这种做法比较机械,有些分析是没有实用价值的,但最终这两步的分析都查出了协议的漏洞给出了攻击者可以如何攻击该协议。47六、实验存在问题和解决办法靠人力分析协议的漏洞一般还是会正确的,但会容易忽略某些细节,软件分析则不会放过每一处细节,但是过于机械,会造成错误判断,比如票据无需加密而在这里软件提示有安全漏洞,这也给分析带来了不必要的麻烦,会多出一些不必要的警告,因此我们要仔细考量每一个提示的正确性,否则会增加负担。最后二者都能找出协议的漏洞便于协议设计人员加以防范。七、教师评语(或成绩)教师签字:年月日