- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
X一路认证协议.doc
《安全协议》
X.509一路认证协议验证实验报告
姓 名:
学 号:
学 院:
成 绩:
任课教师:
二〇一二年十月二十三日计算机类课程实验报告
姓 名 主讲教师 专 业 班级 学 号 实验日期 课程名称 安全协议 小组成员 实验名称:
X.509一路认证协议的验证。 二、实验目的:
1.加深对X.509一路认证协议的理解。
2.掌握软件分析安全协议的基本方法,认识安全协议的基本描述规则,构建完备的知识体系。 三、实验内容及要求
分析X.509一路认证协议,并使用Scyther协议验证软件对其进行安全验证,完成详尽的报告。
1.建立对X.509一路认证协议的认识,在此基础上分析其破解途径。
2.学会使用软件验证安全协议的方法,即协议的代码描述、攻击方法的分析。
3.深入总结实验,进一步发觉安全协议更深层次的知识。 四、实验材料、工具、或软件
Microsoft Windows7;Python2.6;Scyther1.0 五、实验步骤(或记录)
本次实验共分四步执行:
第一步:查阅相关资料,系统地认识X.509一路认证协议;
第二步:思考该协议的验证流程,推敲其攻击破解的方法;
第三步:分析协议的代码描述,并做出详细的解释;
第四步:透过Scyther生成的攻击图,分析其具体的攻击流程。
下面按照这四个步骤开始实验并详细叙述。
一、认识X.509一路认证协议
1.A→B:TA,NA,B,EB(KAB),SigA(TA,NA,B,EB(KAB))# CCITT X.509 (1) //X.509一路认证协议
#
# Modelled after the description in the SPORE library
# http://www.lsv.ens-cachan.fr/spore/ccittx509_1.html
#
# Note:
# The attack in SPORE is not found as this is not an attack against
# synchronisation, but an attack against the freshness of Xa and Ya
# which can currently not be modelled in scyther
#
const pk: Function; //定义一个公钥
secret sk: Function; //定义一个私钥
inversekeys(pk,sk); //声明一对匹配的公、私钥
usertype Timestamp; //声明用户自定义类型的时间戳
protocol ccitt509-1(I,R) //协议ccitt509-1中有两个实体I,R
{
role I //人物I
{
const Ta: Timestamp; //定义一个常量Ta作为时间戳
const Na,Xa,Ya: Nonce; //定义I产生的随机常量Na,Xa,Ya
send_1(I,R, I,{Ta, Na, R, Xa,{Ya}pk(R)}sk(I)); //I用R的公钥加密I产生 的随机数Ya,再用自己的私钥加密信息Ta, Na, R, Xa,和加密后的Ya,然后发送给R
# claim_2(I,Nisynch); //声明I完成单射一致性
# This claim is useless as there are no preceding read events
}
role R //人物R
{
var Ta: Timestamp; //定义一个变量Ta作为时间戳
var Na,Xa,Ya: Nonce; //定义随机变量Na,Xa,Ya
read_1(I,R, I,{Ta, Na, R, Xa,{Ya}pk(R)}sk(I)); //R读取I发送的用I私钥加密的信息
claim_3(R,Nisynch); //声明R完成单射一致性
# There should also be Fresh Xa and Fresh Ya claims here
}
}
const Alic
文档评论(0)