安全协议实验报告一姓名:林红静专业:信息安全一班学号:20091616310012指导老师:吴汉炜成绩:NSPK协议的攻击一、实验要求①NSPK协议的内容②存在的攻击(有攻击者,不少于三项)③攻击的过程二、实验内容⑴协议步骤:①RpkINiRI,:②IpkNrNiIR,:③RpkNrRI:⑵程序解读://PKIinfrastructureconstpk:Function;//定义公钥pksecretsk:Function;//定义私钥skinversekeys(pk,sk);//声明公钥pk和私钥sk成对存在//Theprotocoldescriptionprotocolns3(I,R)//ns3有两个实体I和R{roleI{constni:Nonce;//定义ni是I的一个随机数,是常量varnr:Nonce;//定义nr是R的一个随机数,是变量send_1(I,R,{ni,I}pk(R));//用R的公钥加密ni和I,然后I把加密后的信息给Rread_2(R,I,{ni,nr}pk(I));//I读取R用I的公钥加密ni和nr后的信息send_3(I,R,{nr}pk(R));//用R的公钥加密nr,然后I把加密后的信息发送给Rclaim_i1(I,Secret,ni);//声明I已获取秘密随机数niclaim_i2(I,Secret,nr);//声明I已获取秘密随机数nrclaim_i3(I,Niagree);//声明I完成非单射一致性claim_i4(I,Nisynch);//声明I完成单射一致性(最强认证)}roleR{varni:Nonce;//定义ni是I的一个随机数,是变量constnr:Nonce;//定义nr是R的一个随机数,是常量read_1(I,R,{ni,I}pk(R));send_2(R,I,{ni,nr}pk(I));read_3(I,R,{nr}pk(R));claim_r1(R,Secret,ni);//声明R已获取秘密随机数niclaim_r2(R,Secret,nr);//声明R已获取秘密随机数nrclaim_r3(R,Niagree);//声明R完成非单射一致性claim_r4(R,Nisynch);//声明R完成单射一致性}}//Anuntrustedagent,withleakedinformation//一个不受信任的代理人,与泄露的信息constEve:Agent;//实体Eve是代理者untrustedEve;//Eve不值得信任compromisedsk(Eve);//Eve的私钥被泄露⑶攻击方法:A与C正常通信,同时C冒充A与B通信//①Bob是发起方I,发送自己的用Eve的公钥加密随机数ni后的结果给Eve//②Eve接收到消息后用自己的私钥解密,然后再用Alice(R)的公钥加密,最后把带有Bob身份标识的经过Eve处理后的消息发送给Alice⑷攻击流程表示:)(:3)(:3),(:2),(:2),(:1),(:1)(*)()()(*)(*)(BApkBBEpkBABpkABABpkBApkBEpkNEAENEEBNNEBENNEEABNEAEBNEEB、、、、、、//③Alice从Eve处接受到带有Bob身份表示的认证,解密后用Bob的公钥加密自己和Bob的随机数,发送给Eve,Eve原样发送给Bob//④Bob从Eve处接受后,解密出nr,用Eve的公钥加密后发送给Eve,Eve解密出nr后用Alice的公钥加密发送给Alice,Alice解密后认证发送方为Bob,Eve达到了冒充Bob的目的,在此过程中Alice为Eve提供知识集