安全协议实验二.docx

上传人:b****6 文档编号:7090444 上传时间:2023-01-17 格式:DOCX 页数:12 大小:191.74KB
下载 相关 举报
安全协议实验二.docx_第1页
第1页 / 共12页
安全协议实验二.docx_第2页
第2页 / 共12页
安全协议实验二.docx_第3页
第3页 / 共12页
安全协议实验二.docx_第4页
第4页 / 共12页
安全协议实验二.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

安全协议实验二.docx

《安全协议实验二.docx》由会员分享,可在线阅读,更多相关《安全协议实验二.docx(12页珍藏版)》请在冰豆网上搜索。

安全协议实验二.docx

安全协议实验二

 

海南大学信息学院信息安全系专业课程

《安全协议》

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之间进行周旋,从而通过身份认证,取得两者的信任。

被攻击者无法从中判断是否被攻击了。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

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

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