1、安全协议实验三海南大学信息学院信息安全系专业课程安全协议老版的NSPK协议验证实验报告姓 名: 学 号: 20101616310045 学 院: 信息科学技术学院 成 绩: 任课教师: 吴汉炜 一、 实验名称:老版的NSPK(Needham-Schroeder Public-Key Protocol)的验证。二、 实验目的: 1加深对老版的NSPK协议的理解。2掌握软件分析安全协议的基本方法,认识安全协议的基本描述规则,构建完备的知识体系。三、 实验内容及要求: 分析老版的NSPK协议,并使用Scyther协议验证软件对其进行安全验证,完成详尽的报告。1建立对老版的NSPK协议的认识,在此基础
2、上分析其破解途径。2学会使用软件验证安全协议的方法,即协议的代码描述、攻击方法的分析。3深入总结实验,进一步发觉安全协议更深层次的知识。四、 实验材料、工具、或软件: Microsoft Windows XP;Python2.6;Scyther1.0五、 实验步骤(或记录):本次实验共分四步执行:第一步:查阅相关资料,系统地认识老版的NSPK协议;第二步:思考该协议的验证流程,推敲其攻击破解的方法;第三步:分析协议的代码描述,并做出详细的解释;第四步:透过Scyther生成的攻击图,分析其具体的攻击流程。下面按照这四个步骤开始实验并详细叙述:1. 认识老版的NSPK协议:原始数据:A与B的公钥
3、协议 S是a server给A和B互相分配公钥,A与B之间进行验证。2. 老版的NSPK协议攻击:这里的缺陷是没有对S进行验证。攻击人可以假冒S中介方身份进行攻击。(1)原始的数据获取:(2)新的一轮的攻击:3 分析代码描述# Lowes fixed version of Needham Schroeder Public Key# Modelled after the description in the SPORE library# http:/www.lsv.ens-cachan.fr/spore/nspkLowe.html# Note:#The modelling in SPORE in
4、cludes a server to distribute the public keys# of the agents, this is not necessary and it allows for attacks against#synchronisation and agreement, because the keys that the server sends# out can be replayed.secret pk: Function; # For some reason SPORE models it such that the agents#do not know the
5、 public keys of the other agentssecret sk: Function;inversekeys(pk,sk);protocol needhamschroederpk-Lowe(I,R,S) role I const Ni: Nonce; /定义Ni是个常量 var Nr: Nonce;/定义Nr是个变量 send_1(I,S, (I,R);/I向S发出请求,获得I的密钥和R的公钥 read_2(S,I, pk(R), Rsk(S); /读取S用私钥发给I含有R的公钥和R的标示符 send_3(I,R,Ni,Ipk(R); /I向R发送用R的公钥加密含有随机数Ni
6、和I的标示符 read_6(R,I, Ni,Nr,Rpk(I); /R向I发送用I的公钥加密含有随机数Ni(I发送的)、Nr,和R的标示符 send_7(I,R, Nrpk(R); /I向R发送用R的公钥加密含有随机数Nr(R发送的) claim_I1(I,Secret,Ni);/声称I这回合随机数Ni是秘密的 claim_I2(I,Secret,Nr); /声称I这回合随机数Nr是秘密的 claim_I3(I,Nisynch); /声称I这回合结束 role R(与上一个角色I同理) const Nr: Nonce; var Ni: Nonce; read_3(I,R,Ni,Ipk(R);
7、send_4(R,S,(R,I); read_5(S,R,pk(I),Isk(S); send_6(R,I,Ni,Nr,Rpk(I); read_7(I,R,Nrpk(R); claim_R1(R,Secret,Nr); claim_R2(R,Secret,Ni); claim_R3(R,Nisynch); role S(同理) read_1(I,S,(I,R); send_2(S,I,pk(R),Rsk(S); read_4(R,S,(R,I); send_5(S,R,pk(I),Isk(S); const Alice,Bob,Simon,Eve: Agent; /定义 Alice,Bob,
8、 Simon ,Eve是代理者untrusted Eve; /Eve是不受信任的const ne: Nonce; compromised sk(Eve); /通过协商的Eve的私钥,即Eve是合法用户compromised pk(Eve); compromised pk(Simon); /通过协商所得的Simon的公钥# Needed because of the way SPORE models nsl4分析攻击流程图流程六实验总结:本实验是通过对中间人服务器即simion不检验而产生的漏洞进行攻击。这是老版的NSPK协议的不足之处,需要对simion身份验证进行改进,完善协议。这与现在的NSPK协议是一种对比。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1