当前位置:文档之家› 安全协议重要协议分析

安全协议重要协议分析

安全协议课程实验报告

姓名主讲教师吴汉炜

信息安全

班级

2

201016163100实验日期2012-10-23

课程名称

安全协议

小组成员

一、实验名称:

NSPK(Needham-Schroeder Public-Key Protocol)的验证二、实验目的:

1.加深对NS 公钥协议的理解。

2.掌握软件分析安全协议的基本方法,认识安全协议的基本描述规则,构建完备的知识体系。三、实验内容及要求

分析NS 协议,并使用Scyther 协议验证软件对其进行安全验证,完成详尽的报告。1.建立对Needham-Schroeder 公钥协议的认识,在此基础上分析其破解途径。2.学会使用软件验证安全协议的方法,即协议的代码描述、攻击方法的分析。3.深入总结实验,进一步发觉安全协议更深层次的知识。四、实验材料、工具、或软件

Microsoft Windows7;Python2.6;Scyther1.0五、实验步骤(或记录)

本次实验共分四步执行:

第一步:查阅相关资料,系统地认识Needham-Schroeder 公钥协议;第二步:思考该协议的验证流程,推敲其攻击破解的方法;第三步:分析协议的代码描述,并做出详细的解释;

第四步:透过Scyther 生成的攻击图,分析其具体的攻击流程。下面按照这四个步骤开始实验并详细叙述。

一、认识NS 协议

Needham-Schroeder 公钥协议时最早提出的密钥建立协议之一,用来提供双向实体认证,但选择性地使用交换随机数ni 和nr ,ni 和nr 作为密钥建立的共享秘密。

1.()()R pk I Ni R I ,:→

2.()()I pk Nr Ni I R ,:→

3.()()

R pk Nr R I :→二、NS 公钥协议攻击

Lowe 发现下述攻击可以使R 不能确认最后一条消息是否来自I 。因为I 从来没有详细地声明她欲与R 对话,故R 不能得到任何保证I 知道R 是她的对等实体。

1.()()E pk I Ni E I ,:→1~.()()R pk I Ni R E ,:→2~.()()I pk Nr Ni E R ,:→

2.()()I pk Nr Ni I E ,:→

3.()()E pk Nr E I :→3~.()()

R pk Nr R E :→上述攻击方法中I 与E 为正常通信,但是I 充当了信使(Oracle ),使E 成功假冒I 与R 进行了通信。三、

分析代码描述

/*

*Needham-Schroeder protocol */

//PKI infrastructure

const pk:Function;//定义公钥常量pk secret sk:Function;//定义私钥sk inversekeys (pk,sk);//一对公私钥//The protocol description protocol ns3(I,R)//两个实体I 和R {

role I//协议发起者{

const ni:Nonce;//I 自己产生的为常量var nr:Nonce;//不是自己产生的为变量

send_1(I,R,{ni,I}pk(R));//用R 的公钥加密ni 和I ,并发送给R read_2(R,I,{ni,nr}pk(I));//I 接收消息,被挑战send_3(I,R,{nr}pk(R));//I 响应挑战

claim_i1(I,Secret,ni);//声明I 已获取秘密随机数ni ,安全目标,要求ni 是秘密的claim_i2(I,Secret,nr);//声明I 已获取秘密随机数nr claim_i3(I,Niagree);//声明I 完成非单射一致性

claim_i4(I,Nisynch);//声明I完成单射一致性(最严格),协议只允许一个回合}

role R//协议响应者

{

var ni:Nonce;//不是自己产生的,I产生的为变量

const nr:Nonce;//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);

claim_r2(R,Secret,nr);

claim_r3(R,Niagree);

claim_r4(R,Nisynch);

}

}

//An untrusted agent,with leaked information不受信任的代理人与被泄露的消息

const Eve:Agent;//攻击者扮演了代理人的角色:实体Eve

untrusted Eve;

compromised sk(Eve);//代理人的密钥sk(Eve)

四、分析攻击流程

导出其完整的流程图如下:

//④Bob从Eve处接收后,认为在与Eve完成①中的步骤,Bob解密出nr,用Eve的公钥加密后发送给Eve。Eve解密出nr后用Alice的公钥加密发送给Alice,Alice解密后认证Eve为Bob,Eve 达到了冒充Bob的目的,在此过程中Alice为Eve的预言机。该协议不满足单射一致性。

X.509标准一路和三路认证

姓名主讲教师吴汉炜专业信息安全班级2

学号201016163100实验日期2012-10-30

课程名称安全协议小组成员

一、实验名称:

CCITT协议中X.509标准一路和三路认证。

二、实验目的:

1.加深对X.509协议的理解。

2.掌握软件分析安全协议的基本方法,认识安全协议的基本描述规则,构建完备的知识体系。

三、实验内容及要求

分析X.509协议,并使用Scyther协议验证软件对其进行安全验证,完成详尽的报告。

1.建立对X.509协议的认识,在此基础上分析其破解途径。

2.学会使用软件验证安全协议的方法,即协议的代码描述、攻击方法的分析。

3.深入总结实验,进一步发觉安全协议更深层次的知识。

四、实验材料、工具、或软件

Microsoft WindowsXP;Python2.6;Scyther1.0

五、实验步骤(或记录)

本次实验共分四步执行:

第一步:查阅相关资料,系统地认识X.509协议;

第二步:思考该协议的验证流程,推敲其攻击破解的方法;

第三步:分析协议的代码描述,并做出详细的解释;

第四步:透过Scyther生成的攻击图,分析其具体的攻击流程。

下面按照这四个步骤开始实验并详细叙述。

一、认识X.509协议

ITU(以前的CCITT)和ISO一起标准化了X.500系列建议来提供通信目录服务。X.509标准共有三个具体的协议,分别有1个、2个和3个消息流。后两个协议都是在其之前的协议上增加一条消息而来。目的都是从A到B传输会话密钥,后两个协议还从B到A传输会话密钥。

下面我们主要来分析一路和三路认证。

(1)一路认证:

A,B:principal

Na,Nb:nonce

Ta,Tb:timestamp

Ya,Yb:userdata

Xa,Xb:userdata

PK,SK:principal->key(keypair)

1.A->B:A,{Ta,Na,B,Xa,{Ya}PK(B)}SK(A)

(2)三路认证:

相关主题