安全协议实验二.docx
- 文档编号:7090444
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:12
- 大小:191.74KB
安全协议实验二.docx
《安全协议实验二.docx》由会员分享,可在线阅读,更多相关《安全协议实验二.docx(12页珍藏版)》请在冰豆网上搜索。
安全协议实验二
海南大学信息学院信息安全系专业课程
《安全协议》
CCITTX.509协议验证实验报告
姓名:
学号:
学院:
信息科学技术学院
成绩:
任课教师:
吴汉炜
一、实验名称:
CCITTX.509一路认证协议和三路认证协议的验证。
二、实验目的:
1.加深对CCITTX.509认证协议的理解。
2.掌握软件分析安全协议的基本方法,认识安全协议的基本描述规则,构建完备的知识体系。
三、实验内容及要求:
分析CCITTX.509认证协议,并使用Scyther协议验证软件对其进行安全验证,完成详尽的报告。
1.建立对CCITTX.509认证协议的认识,在此基础上分析其破解途径。
2.学会使用软件验证安全协议的方法,即协议的代码描述、攻击方法的分析。
3.深入总结实验,进一步发觉安全协议更深层次的知识。
四、实验材料、工具、或软件:
MicrosoftWindowsXP;Python2.6;Scyther1.0
五、实验步骤(或记录):
本次实验共分四步执行:
第一步:
查阅相关资料,系统地认识CCITTX.509认证协议;
第二步:
思考该协议的验证流程,推敲其攻击破解的方法;
第三步:
分析协议的代码描述,并做出详细的解释;
第四步:
透过Scyther生成的攻击图,分析其具体的攻击流程。
下面按照这四个步骤开始实验并详细叙述:
1.认识CCITTX.509认证协议:
2.CCITTX.509认证协议攻击:
2.1一路协议:
攻击者I是合法用户,可以得到A的公钥,从而获得A的信息,再有自己的私钥进行加密。
这里是时间戳是关键。
i.1.
A
->
I(B)
:
A,{Ta,Na,B,Xa,{Ya}PK(B)}SK(A)
ii.1.
I
->
B
:
I,{Ta,Na,B,Xa,{Ya}PK(B)}SK(I)
2.2三路协议:
攻击者根据A和B之间的协议漏洞获得Nb,以Nb为线索用攻击者的合法身份与A进行响应和挑战。
再有A与B之间的共同点Nb,代替B的内容给A发起回应和挑战,用A解得的回应再次发给B,来获得身份认证。
i.1.
A
->
I(B)
:
A,{Ta,Na,B,Xa,{Ya}PK(B)}SK(A)
i.1.
I(A)
->
B
:
A,{Ta,Na,B,Xa,{Ya}PK(B)}SK(A)
i.2.
B
->
I(A)
:
B,{Tb,Nb,A,Na,Xb,{Yb}PK(A)}SK(B)
ii.1.
A
->
I
:
A,{Ta',Na',C,Xa',{Ya'}PK(I)}SK(A)
ii.2.
I
->
A
:
I,{Ti,Nb,A,N'a,Xi,{Yi}PK(A)}SK(I)
ii.3.
A
->
I
:
A,{Nb}SK(A)
ii.3.
I(A)
->
B
:
A,{Nb}SK(A)
3分析代码描述
3.1CCITTX.509
(1)
#ModelledafterthedescriptionintheSPORElibrary
#http:
//www.lsv.ens-cachan.fr/spore/ccittx509_1.html
#
#Note:
#TheattackinSPOREisnotfoundasthisisnotanattackagainst
#synchronisation,butanattackagainstthefreshnessofXaandYa
#whichcancurrentlynotbemodelledinscyther
#
constpk:
Function;//定义公钥pk
secretsk:
Function;//定义私钥sk
inversekeys(pk,sk);//声明公钥pk和私钥sk成对存在
usertypeTimestamp;//声明用户自定义类型的时间戳
protocolccitt509-1(I,R)//ccitt509-1有两个实体I和R
{
roleI
{
constTa:
Timestamp;//定义Ta是一个时间戳,是变量
constNa,Xa,Ya:
Nonce;//定义Na、Xa和Ya是I产生的随机数,是常量
send_1(I,R,I,{Ta,Na,R,Xa,{Ya}pk(R)}sk(I));//I用R的公钥对加Ya密,再用自己的私钥加密信息Ta、Na、R、Xa以及加密后的Ya,然后把信息发送给R。
这是I发送的第一条信息,该过程确保了Ya的机密性
#claim_2(I,Nisynch);
#Thisclaimisuselessastherearenoprecedingreadevents
}
roleR
{
varTa:
Timestamp;//定义时间戳Ta,是变量
varNa,Xa,Ya:
Nonce;//定义随机数Na、Xa和Ya,是变量
read_1(I,R,I,{Ta,Na,R,Xa,{Ya}pk(R)}sk(I));//读取I发送的第一条信息
claim_3(R,Nisynch);
#ThereshouldalsobeFreshXaandFreshYaclaimshere
}
}
constAlice,Bob,Eve:
Agent;//Alice,Bob,Eve是代理者
untrustedEve;//Eve是不受信任的
constne:
Nonce;
constte:
Timestamp;/定义时间戳te,是常量
compromisedsk(Eve);//通过协商所得的Eve的私钥,即Eve是合法用户,其
身份得到Alice和Bob的承认
3.2CCITTX.509(3)
#ModelledafterthedescriptionintheSPORElibrary
#http:
//www.lsv.ens-cachan.fr/spore/ccittx509_3.html
#
#Note:
#TheprotocoldescriptionalsostatesthatXaandYashouldbefresh
#thiscannotbeverifiedusingscyther
#
constpk:
Function;
secretsk:
Function;
inversekeys(pk,sk);
usertypeTimestamp;
protocolccitt509-3(I,R)
{
roleI
{
constTa:
Timestamp;
varTb:
Timestamp;//定义时间戳Tb,是变量
constNa,Xa,Ya:
Nonce;
varXb,Nb,Yb:
Nonce;
send_1(I,R,I,{Ta,Na,R,Xa,{Ya}pk(R)}sk(I));
read_2(R,I,R,{Tb,Nb,I,Na,Xb,{Yb}pk(I)}sk(R));//I读取R发送
的信息,信息包括R用自己的私钥加密Ta、Nb、I、Na和Xb后的信息,以及先用I的公钥加密再用R的私钥加密Yb后的信息.该过程确保了Yb的机密性
send_3(I,R,I,{Nb}sk(I));//I将信息Nb用自己的私钥加密后发送给R,这是I发送的第二条信息,完成认证
claim_I1(I,Nisynch);//声明I完成单射一致性(最强认证)
claim_I2(I,Secret,Ya);//I声明随机数Ya是秘密的
claim_I3(I,Secret,Yb);//I声明随机数Yb是秘密的
}
roleR
{
varTa:
Timestamp;
constTb:
Timestamp;
varNa,Xa,Ya:
Nonce;
constXb,Yb,Nb:
Nonce;
read_1(I,R,I,{Ta,Na,R,Xa,{Ya}pk(R)}sk(I));//读取I发送的第一条信息
send_2(R,I,R,{Tb,Nb,I,Na,Xb,{Yb}pk(I)}sk(R));//R读取I的第一条信息后,R对I发出的认证信息
read_3(I,R,I,{Nb}sk(I));//读取I发送的第二条信息,通过认证
claim_R1(R,Nisynch);//声明R完成单射一致性(最强认证)
claim_R2(R,Secret,Ya);//R声明随机数Ya是秘密的
claim_R3(R,Secret,Yb);//R声明随机数Yb是秘密的
#ThereshouldalsobeFreshXaandFreshYaclaimshere
}
}
constAlice,Bob,Eve:
Agent;
untrustedEve;
constne:
Nonce;
constte:
Timestamp;
compromisedsk(Eve);
4分析攻击流程图流程
4.1CCITTX.509
(1)
对其分片分析如下:
Dave与Charlie正常通信:
Dave是协议发起方I,发送自己的身份标识以及用用Dave的私钥签名的信息“时间戳Ta、随机数Na和Xa、Charlie的身份标识以及用Charlie的公钥加密的Ya”。
攻击者Eve截取Dave与Charlie的通信信息:
Eve获取Dave的身份验证请求信息。
Dave是协议发起方I,发送自己的身份标识以及用用Dave的私钥签名的信息“时间戳Ta、随机数Na和Xa等,Eve是合法用户,可以获得Dave的公钥来解密,从而获取相应的信息。
4.2CCITTX.509(3)
第一回合:
攻击者的重放
第二回合
攻击者的行为过程,
而后另一方发起:
会话,与蓝方连接
对其分片分析如下:
Dave与Charlie正常通信:
Dave是协议发起方I,发送自己的身份标识以及用用Dave的私钥签名的信息“时间戳Ta#3、随机数Na#3和Xa#3、Charlie的身份标识以及用Charlie的公钥加密的Ya#3”。
Charlie收到Dave的信息后,用Dave的公钥将信息解密,将从中获取Na#3、自己产生新的时间戳Tb#1和Xb#1、随机数Nb#1、Dave的身份标识以及用Dave公钥加密的Yb#1发送给Dave。
攻击者Eve截取Dave与Charlie的通信信息:
Eve获取Dave的身份验证请求信息。
Dave是协议发起方I,发送自己的身份标识以及用用Dave的私钥签名的信息“时间戳Ta#2、随机数Na#2和Xa#2、Eve的身份标识以及用Eve的公钥加密的Ya#3”。
攻击者Eve截取Dave与Charlie的通信信息中的第二步信息,(Charlie,{Tb#1,Nb#1,Dave,Na#3,Xb#1,
{Yb#1}pk(Dave)}sk(Charlie))用Charlie的公钥对签名解密,获得{Yb#1}pk(Dave)以及Nb#1;Eve同时用自己的公钥对Dave发给自己的信息解密,获得随机数Na#2;将获取信息以及自己产生时间戳以及新的挑战组合成新的信息,发给Dave。
获得Dave发来认证的关键的信息Nb#1,得到Charlie信任:
Dave收到Eve发出信息后,用自己私钥将Nb#1签名,发给Eve。
Eve将从Dave收到信息用Dave的公钥解密后,重放给Charlie,从而通过身份认证,获得Charlie的信任。
六、实验总结:
这次实验ccitt认证协议存在一定的漏洞,对于时间戳的加密不够完善,从而使得攻击利用问题的本质进行攻击。
攻击者可以是合法的用户,在A和B之间进行周旋,从而通过身份认证,取得两者的信任。
被攻击者无法从中判断是否被攻击了。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 安全 协议 实验