实验三 CCITTX.509攻击分析
一、 实验内容:
CCITTX.509协议两种攻击方法分析。
二、 试验步骤
1、 CCITTX.509协议内容
I -> R: (I,R,I{Ta,Na,R,Xa,{Ya}pk(R)}sk(I));
R -> I: (R,I,R{Ta,Nb,I,Na,Xb,{Yb}pk(I));
I -> R: (I,R,I,{Nb}sk(I));
var Tb: Timestamp;
const Na,Xa,Ya: Nonce;
var Xb,Nb,Yb: Nonce;
var Ta: Timestamp;
const Tb: Timestamp;
var Na,Xa,Ya: Nonce;
const Xb,Yb,Nb: Nonce;
2、 攻击方法一
a、Eve冒充Dave向Charlie发起一个会话
b、Charlie回应Dave(Eve),Eve从charlie那里得到(Charlie,{Tb#1,Nb#1,Dave,Na#3,Xb#1,{Yb#1}pk(Dave)}sk(Charlie));
c、Dave和Eve开启一个正常的会话,Eve从Dave那里获得(Dave, {Ta#2,Na#2,Eve,Xa#2,{Ya#2}pk(Eve)}sk(Dave)
d、Eve用pk(Charlie) 得 到
Tb#1,Nb#1,Dave,Na#3,Xb#1,{Yb#1}pk(Dave) {Yb#1}pk(Dave)
用pk(Dave) 得到 Ta#2,Na#2,Eve,Xa#2,{Ya#2}pk(Eve)
e、Eve用自己的私钥加密加上自己的时间戳生成消息
(Eve,{Te,Nb#1,Dave,Na#2,Ne,{Yb#1}pk(Dave)}sk(Eve))发送给Dave
f、Dave获得从Eve发送过来的消息,使用Eve的公钥解密后,用自己的私钥对nb#1签名,发送给Dave
g、Eve就获得了(Dave,{Nb#1}sk(Dave)),使用Dave的公钥解密得到了有Dave进行签名的验证随机数(Dave,{Nb#1}sk(Dave)),转发给charlie,冒充Dave成功
3、 攻击方法二
攻击过程
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)
攻击过程分析:
a、A、B开启一个会话,A发送给B , {Ta, Na, B, Xa, {Ya}PK(B)}SK(A) 被I截取并冒充B
b、同时I冒充A并与B开启一个会话,并将A在第一个会话里面收到的信息直接发送给{Ta, Na, B, Xa, {Ya}PK(B)}SK(A)
c、B收到I冒充A发送过来的信息后用A的公钥解密得到A的挑战NA,并用自己的私钥解密得到Ya,并用A的公钥加密自己的Yb,并加上挑战Nb,用B自己的私钥进行加密进行签名
d、A与I开启一个正常的会话,A向I发送消息{Ta', Na', C, Xa', {Ya'}PK(I)}SK(A),Ta’作为时间戳,Na’作为A向I发送的挑战,用I的公钥加密协商秘密Ya’,并将消息用自己的私钥进行签名。
e、I收到消息后正常的解密后回应{Ti, Nb, A, N'a,Xi, {Yi}PK(A)}SK(I),Ti作为时间戳保持消息的新鲜性,I此时将在第一个回合中收到的B对A的挑战发送给A作为I对A的挑战,目的是为了让I对Nb进行签名。
f、A收到I对自己挑战的回应,用I的公钥解密,得到I对A的挑战Nb,实为第一回中B对A发起的挑战,A用自己的私钥对Nb签名,返回发送给I,A, {Nb}SK(A)
g、I将从A发送回来的对Nb的签名转发给B,利用A的签名,冒充A。B收到利用A的私钥进行签名,验证发送消息过来的是A,至此,I冒充A成功。
4、攻击方法一、二的对比
在两种攻击方法中,攻击者都必须是拥有非对称密钥对的合法用户,