网络安全协议课程设计.docx
《网络安全协议课程设计.docx》由会员分享,可在线阅读,更多相关《网络安全协议课程设计.docx(15页珍藏版)》请在冰豆网上搜索。
网络安全协议课程设计
《网络安全协议》
课程设计
题目PPP协议认证方式的改进
班级网信10-2
学号************
姓名++++++
指导老师++++++
2013年7月6日
目录
一、概述2
1.1课程设计的目的2
1.2课程设计的内容2
1.3课程设计的要求2
二、问题分析3
2.1系统需求3
2.2PPP协议简介:
4
2.3ppp协议的工作原理:
4
2.4PPP协议链路建立:
5
2.5PPP协议的认证方式6
三、安全协议总体设计6
3.1CHAP认证协议原理6
3.2CHAP协议的安全缺陷分析8
3.3改进后协议(UBAP)的设计思路8
四、协议实现9
4.1新增符号说明9
4.2UBAP协议流程9
五、安全性分析11
六、课程设计心得、总结12
参考文献13
一、概述
1.1课程设计的目的
《网络安全协议》课程设计是本信息安全相关专业的重要实践性教学环节,是《网络安全协议》课程的后续实践教学环节。
通过该课程设计,使学生掌握网络安全协议的基本概念,结合实际的操作和设计,巩固课堂教学内容,使学生掌握网络安全协议的基本概念、原理和技术,将理论与实际相结合,参考已学习到的安全协议设计思路和方法,规范、科学地完成一个安全协议的设计与实现,把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力。
具体掌握的基本能力有以下几个方面:
1.学习和巩固《网络安全协议》的基本知识。
2.熟悉网络安全协议的设计原则和方法。
3.掌握现有TCP/IP协议族存在的安全缺陷,了解现有的安全协议的设计思路。
4.针对已知安全缺陷,能设计合理的安全协议。
1.2课程设计的内容
PPP协议认证方式的分析与改进:
PPP协议即点对点协议,是为在同等单元之问传输数据包这样的简单链路设计的链路层协议,应用广泛。
这种链路提供全双工操作,并按照顺序传递数据包。
设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之问简单连接的一种共通的解决方案。
对于大部分采用电话线上网的用广来说,PPP协议是上网的基础,其安全性问题不容忽视。
本文简要介绍PPP协议的基本工作原理、介绍了PPP协议中所采用的两种认证方式,并对认证握手协议(CHAP)进行了缺陷分析和改进。
1.3课程设计的要求
1.广泛查找资料及调研,进行需求分析,并详细描述预解决的安全问题;
2.根据需求分析,详细设计安全协议,需要注意一下几点:
(1)包括通信双方交换不同类型信息(如请求、应答)时,使用的数据包格式、每部分数据项的长度,每部分数据项表示的含义等;
(2)包括通信双方进行消息交换的详细步骤;
(3)采用了哪些安全机制来保证通信的安全;
(4)分析采用此方案的安全性;
3.根据上述设计出的安全通信协议,利用自己熟悉的编程语言,开发设计原型系统软件,功能正确、有一定实用性。
4.课程设计报告正文概念清楚、叙述正确、内容完整、书写规范。
5.课程设计中综合应用所学的网络安全协议相关知识解决实际问题,有必要的理论分析,设计要有合理的依据。
6.积极交流与讨论(通过同学、网络等途径)、善于查阅资料、分析与借鉴他人编写的软件和源代码。
二、问题分析
2.1系统需求
随着互联网的不断发展,越来越多的人们开始尝试在线交易。
然而病毒、黑客、网络钓鱼以及网页仿冒诈骗等恶意威胁,给在线交易的安全性带来了极大的挑战。
层出不穷的网络犯罪,引起了人们对网络身份的信任危机,如何证明“我是谁”及如何防止身份冒用等问题又一次成为人们关注的焦点。
身份认证服务是信息安全中其他服务的基础和前提,在互联网络下的信息安全已成为影响国家安全、经济发展、社会稳定的重大关键因素。
身份认证协议,是指认证主体通过一系列有序的步骤证明它自己身份的一个过程。
认证协议是身份认证系统的核心,其质量的好坏直接关系到认证系统的整体安全性。
认证协议定义了参与认证服务的所有通信方在认证过程中需要交换的所有消息的格式和这些消息发生的次序以及消息的语义,通常采用密码学机制。
良好的认证协议设计是认证系统实现安全性和防止各种攻击的关键。
目前有多种身份认证协议,如口令认证协议PAP(PasswordAuthenticationProtocol)、基于挑战应答机制的CHAP(Challenge-HandshakeAuthenticationProtocol)协议以及X.509认证交换协议等。
其中,CHAP协议由于安全性高、实现简单、使用方便,在认证系统中有着广泛应用。
现代电子系统集成技术的快速发展和密码理论日趋完善,尤其是硬件加密设备USBKey技术的出现,为解决信息安全问题提供了一个崭新的思路。
针对CHAP协议的安全缺陷,对其进行了改进,设计了一种基于硬件加密设备USBKey网络环境下的身份认证协议,即UBAP(USBKey-basedAuthenticationProtocol)协议,并对该协议进行非形式化的分析,证明其逻辑设计的合理性、协议的有效性和安全性。
2.2PPP协议简介:
(PPP:
PointtoPointProtocol)
点对点协议(PPP)为在点对点连接上传输多协议数据包提供了一个标准方法。
PPP最初设计是为两个对等节点之间的IP流量传输提供一种封装协议。
在TCP-IP协议集中它是一种用来同步调制连接的数据链路层协议(OSI模式中的第二层),替代了原来非标准的第二层协议,即SLIP。
除了IP以外PPP还可以携带其它协议,包括DECnet和Novell的Internet网包交换(IPX)。
PPP帧格式:
PPP的帧格式
7E
FF
03
协议
信息
FCS
7E
字节
1
1
1
2
<=1500
2
1
PPP采用7EH作为一帧的开始和结束标志(F);其中地址域(A)和控制域(C)取固定值(A=FFH,C=03H);协议域(两个字节)取0021H表示IP分组,取8021H表示网络控制数据,取C021H表示链路控制数据;帧校验域(FCS)也为两个字节,它用于对信息域的校验。
若信息域中出现7EH,则转换为(7DH,5EH)两个字符。
当信息域出现7DH时,则转换为(7DH,5DH)。
当信息流中出现ASCII码的控制字符(即小于20H),即在该字符前加入一个7DH字符。
2.3ppp协议的工作原理:
当用户拨号接入服务端时,路由器的调制解调器对拨号做出应答,并建立一条物理连接。
这时PC机向路由器发送一系列的分组(封装成多个PPP帧),这些分组及其响应选择了将要使用的一些PPP参数,这个过程是通过LCP协议实现链路的创建过程。
接着就进行网络层连接的建立,给新接入的PC机分配一个临时的IP地址,这样PC机就成为Internet上一个主机了。
当用户通信完毕时,释放网络层连接,收回原来分配出去的m地址。
接着释放数据链路层连接,最后释放的是物理层的连接。
当线路处于静止状态时,并不存在物理层的连接。
ISP的服务端随时检测当前网络上有没有调制解调器的载波信号,检测到有信号后,就会建立物理层连接,线路就进入建立状态,这时采用LCP(链路控制协议)协商一些选项。
协商结束后,就进入认证过程,若通信的双方认证身份成功,则进入网络状态。
接着配置网络层,分配IP地址,然后就进入可以进行数据通信的打开状态。
2.4PPP协议链路建立:
PPP协议包含这样几个部分:
链路控制协议ICP(I.inkControlerotoc01);负责物理连接的创建、维护或终止。
网络控制协议NCP(NetworkControlProtoc01)l负责解决物理连接上运行什么网络协议和上层网络协议发生的问题。
认证协议,最常用的包括口令验证协议PAP(PasswordAuthenticationProtoc01)和挑战握手验证协议CHAP(Challenge-HandshakeAuthenticationProtoc01)。
PPP协议链路的建立过程如下:
一个典型的链路建立过程分为以下三个步骤:
PPP链路的创建、认证和网络协商。
(1)创建PPP链路,LCP负责创建链路。
在这个阶段,将对基本的通讯方式
进行选择。
链路两端设备通过LCP向对方发送配置信息报文(ConfigurePackets)。
一旦一个配置成功信息包(Configure-Ackpacket)被发送且被接收,就完成了交换,进入了LCP开启状态。
(2)用户验证,在这个阶段,客户端会将自己的身份发送给远端的接入服务器。
该阶段使用一种安全验证方式避免第三方窃取数据或冒充远程客户接管与客户端的连接。
在认证完成之前,禁止从认证阶段前进到网络层协议阶段。
如果认证失败,认证者应该跃迁到链路终止阶段。
在这一阶段里,只有链路控制协议、认证协议,和链路质量监视协议的packets是被允许的。
在该阶段里接收到的其他的packets必须被静静的丢弃。
(3)调用网络层协议,认证阶段完成之后,PPP将调用在链路创建阶段(阶段1)选定的各种网络控制协议(NCP)。
选定的NCP解决PPP链路之上的高层协议问题,例如,在该阶段IP控制协议(IPCP)可以向拨入用户分配动态地址。
这样,经过三个阶段以后,一条完整的PPP链路就建立起来了。
其图如2.1所示。
2.5PPP协议的认证方式
(1)口令验证协议(PAP)
PAP是一种简单的明文验证方式。
NAS(网络接入服务器,NetworkAccessServer)要求用户提供用户名和口令,PAP以明文方式返回用户信息。
很明显,这种验证方式的安全性较差,第三方可以很容易的获取被传送的用户名和口令,并利用这些信息与NAS建立连接获取NAS提供的所有资源。
所以,一旦用户密码被第三方窃取,PAP无法提供避免受到第三方攻击的保障措施。
(2)挑战-握手验证协议(CHAP)
CHAP是一种加密的验证方式,能够避免建立连接时传送用户的真实密码。
NAS向远程用户发送一个挑战口令(challenge),其中包括会话ID和一个任意生成的挑战字串(arbitrarychallengestring)。
远程客户必须使用MD5单向哈希算法(one-wayhashingalgorithm)返回用户名和加密的挑战口令,会话ID以及用户口令,其中用户名以非哈希方式发送。
三、安全协议总体设计
3.1CHAP认证协议原理
符号说明:
X=>Y:
M:
表示从X向Y发送信息M
‖:
为连接操作
S:
代表认证服务器
U:
代表客户端用户
w:
为客户端用户的口令
Rand:
用作“挑战”消息的随机数
H(m):
对m进行MD5散列运算
CHAP协议原理:
在协议的初始化阶段,客户端用户U以安全的方式将自己的口令
w递交给认证服务器S,服务器将该用户的口令保存。
CHAP认证协议
原理图如图1所示,它实现服务器对客户端的认证过程可以简单地描
述如下:
图1CHAP协议认证过程
(1)S=>U:
Rand
当系统PPP连接建立完成后,服务器S向客户端用户U发送一个随机数Rand,作为“挑战”消息,并保存该Rand。
(2)U=>S:
U,H(w‖Rand)
接下来客户端用户U接收到Rand后,计算H(w‖Rand),然后将(U,H(w‖Rand))作为“应答”消息发送给服务器S。
(3)S=>U:
ACK
最后服务器S收到U发送来的应答消息后,根据它存储的用户U的口令w和Rand计算H(w‖Rand),并与接收到的消息摘要比较。
如果两者相等,则给用户发送认证成功的回执ACK;否则,断开与用户的连接。
(4)随机认证客户端
认证成功后,服务器可能会不定时地发送新的“挑战”消息给客户端用户,重复步骤
(1)~(3),以便在通信过程中随时验证用户身份的合法性。
3.2CHAP协议的安全缺陷分析
CHAP协议虽然能够抵抗侦听、重放等网络攻击,实现服务器对用户身份的合法性认证,但仍然存在着以下安全隐患:
(1)实际使用CHAP协议的过程中,用户为了便于记忆,通常使用比较容易记忆的口令,这样的口令很难有效地抵抗字典攻击。
(2)另外在认证服务器端,用户口令却是以明文形式存放的。
如果黑客攻破认证服务器,就可以轻而易举地获取到用户的口令。
(3)此认证协议只支持认证服务器对用户的单向身份认证,无法防范假冒的认证服务器欺骗合法系统用户。
在电子政务和电子商务等实际应用背景下,通信双方必须在识别对方身份的基础上才能进一步通信,因此支持用户端和服务器端的双向认证机制,可以有效防止黑客假冒一方欺骗另一方。
(4)为了防止插入信道攻击,认证服务器需要周期性地发送新的挑战信息以重新认证。
一方面,如果周期时间间隔过长,则会给入侵者留下攻击机会,而周期时间间隔过短,则增加了通信双方的计算量,降低了通信效率;另一方面,入侵者也可以设计一个智能化的主动攻击方案以回避这种周期性的重新认证。
因此,真正关心主动攻击,一个强认证协议应能随时认证涉及会话的任何一方,不给入侵者随后立即插入信道攻击提供机会。
3.3改进后协议(UBAP)的设计思路
(1)基于生物特征的身份认证的局限性。
从理论上说,生物特征认证是最可靠的身份认证方式,因为它直接使用人的物理特征来表示每一个人的数字身份,不同的人具有相同生物特征的可能性基本可以忽略不计,它自身也存在以下一些局限性:
(a)生物数据在网络上传输仅仅是一个比特串,若不加保护,很容易受到重放攻击。
(b)受到现有的生物特征识别技术成熟度以及外界环境条件的影响,使得生物数据会产生数据不完全一致。
(c)由于研发投入较大和产量较小的原因,生物特征认证系统的成本非常高。
(2)建立PKI体系结构实现起来比较复杂,成本较高、花费较大、维护量较大,要求通信的次数多,而且计算量较大。
(3)提供一个安全、可靠、透明、可伸缩性好的认证协议。
基于以上3点考虑,结合密码学、身份认证技术和硬件加密设备技术,提出一种基于硬件加密设备USBKey网络环境下的身份认证协议,即UBAP(USBKey-basedAuthenticationProtocol)协议,以下简称UBAP协议。
它采用软硬件相结合一次一密的强双因子认证模式,很好地解决了安全性与易用性之间的矛盾。
四、协议实现
4.1新增符号说明
KPS:
认证服务器的RSA公钥
E[x,KPS]:
对消息x用公钥KPS加密
M1:
用户本次认证时的认证信息
M2:
服务器本次认证时的认证信息,M2=H(M1)=H(H(M))
N1:
用户下次认证时的认证信息
N2:
服务器下次认证时的认证信息,N2=H(N1)=H(H(N))
N3:
认证服务器发送给用户的认证结果信息,N3=H(N2)=H(H(N1))=H(H(H(N)))
4.2UBAP协议流程
4.2.1认证信息的初始化过程
用户认证信息的初始化在认证服务器端完成。
只有初始化后的用户才能参与后续的入网身份认证。
(1)为初始化用户认证信息,服务器为申请用户分配一个硬件加密设备USBKey,并记录该Key唯一的ID序列号。
服务器在本地数据库中为该用户创建一条包含如下字段的记录:
此时,ID号取为用户Key的ID序列号。
服务器上次认证信息和服务器本次认证信息都为空。
(2)初始化的第二步是为用户生成一个随机数M,并对M求如下的散列:
M2=H(M1)=H(H(M))
其中,服务器此时为“服务器本次认证信息”字段赋值M2,将“服务器上次认证信息”字段仍置为空。
(3)初始化的第三步是服务器利用本地的USB读写驱动,将M1和服务器RSA公钥写入USBKey中。
4.2.2UBAP协议流程
在初始化完成之后,用户可以利用USBKey中的认证信息,向认证服务器证明自己的身份。
客户端与认证服务器之间需要完成以下三个消息的交互,完成两者之间的身份认证。
其认证协议示意图如图2所示
图2UBAP认证协议图
(1)S=>U:
Rand
PPP连接建立阶段完成后,服务器向客户端用户U发送一个随机数Rand,作为“挑战”消息,并保存该Rand。
(2)U=>S:
E[(ID,M1,N2,Rand),KPS]
客户端用户在收到Rand之后,生成一个随机数N,并计算:
N2=H(N1)=H(H(N)),客户端从USBKey中取出Key的唯一ID号,客户端身份认证信息M1以及将用于下次用户身份认证的N2用认证服务器的RSA公钥加密,形成E[(ID,M1,N2,Rand),KPS]作为“应答”消息,发送给服务器。
服务器收到E[(ID,M1,N2,Rand),KPS]之后,利用本地的RSA私钥解密消息,得到用户ID,M1,N2,Rand等信息。
将Rand与服务器数据库中对应用户ID的Rand进行比较(Rand的作用是保证一次认证过程信息的新鲜性)。
此时服务器将完成如下操作:
(a)如果Rand不一致,则表明此消息是一个重放消息或者伪造消息,服务器停止后续认证。
(b)如果Rand一致,则收到的消息是对上一Rand消息的响应。
此时,服务器计算H(M1),并与本地数据库中对应记录的“服务器端本次认证信息”M2字段值比较。
(Ⅰ)如果相等,则用户的身份是真实的。
因为除此之外,没有人知道M2的散列输入。
此时,服务器对数据库中ID对应的记录做以下修改:
将“服务器端上次认证信息”的值置为M2;将“服务器端本次认证信息”的值置为N2。
(Ⅱ)如果不相等,则表明待认证用户的身份可能不真实,或者用户的身份可能真实,但在上次认证中出现了认证不同步。
此时,服务器必须将H(M1)和“服务器端上次认证信息”的取值进行比较。
如果一致,表明用户的身份真实。
此时,服务器对用户ID所对应的数据库记录必须做以下更新:
保持“服务器端上次认证信息”不变;将本次收到的N2赋值给“服务器端本次认证信息”。
(3)S=>U:
N3
如果服务器认证成功,服务器计算当前N2的散列值N3,将N3发送给客户端。
如果服务器认证不成功,服务器将认证失败消息发送给客户端。
客户端接收到认证结果,并进行用户信息的更新。
(a)当收到N3时,验证N3与H(N2)是否相等。
若相等,则表明服务器端已成功认证本用户,而且也证明了认证服务器的身份是真实的(因为能解开用RSA公钥加密的消息)。
此时,客户端用N1替换USB端的“客户端认证信息”M1。
N1成为下一次用户认证的“客户端认证信息”。
(b)如果客户端在认证超时时限之内,没有收到N3,客户端保持当前“客户端认证信息”不变,丢弃N,N1,N2。
当重新启动后续身份认证时,再生成新的N。
五、安全性分析
下面对UBAP协议的安全性进行分析,分析常见的攻击方法对协议双方的攻击效果:
(1)重放攻击:
身份认证协议由服务器发起,通过服务器和客户端分别产生仅对一次会话有效的随机数,而且认证服务器每次选取的随机数Rand不同,每次都是对新的认证信息和随机数进行加密,可以有效抵御网络重放攻击。
(2)服务器欺骗:
如果入侵者在第2步假冒认证服务器向用户发送挑战信息Rand,但由于他不知道服务器本次认证信息M2,无法验证用户发回的响应信息,进而不能进行后续操作。
(3)网络监听:
认证协议过程中,客户端发给服务器端的认证数据包E[(ID,M1,N2,Rand),KPS],使用认证服务器的公钥进行加密,密钥和口令字不在网络上传送,而且网络中传输的认证信息是加密的,所以网络监听攻击是无效的。
同时由于认证信息是动态变化的,因此这对攻击者来说可利用的攻击时间很短,根本就没有足够的时间进行攻击。
(4)插入信道攻击:
为了防止这种攻击,在每隔一段时间,认证服务器重新向客户端发起一次的认证请求,这时由于攻击者无法完成后续的认证,攻击失效。
(5)中间人攻击:
通过用户与认证服务器双方相互认证,真正解决了通信双方的身份认证问题,攻击者无法冒充或者进行中间修改然后转发认证信息,有效地避免中间人攻击。
(6)暴力攻击:
采用高强度RSA加密算法和MD5摘要算法,RSA加密算法的密钥长度为1024bit,MD5的摘要长度为128bit,密钥长度为1024bit的RSA算法和MD5算法在计算上是安全的,因此可以很好地抵御暴力攻击。
六、课程设计心得、总结
根据上文的分析可知,CHAP身份认证协议存在致命的安全缺陷,不能有效地抵卸字典攻击、服务器欺骗以及插入信道攻击等,只能实行单向身份认证,不能满足基本的安全要求,不能实现可靠的身份认证。
本文提出的UBAP协议是对CHAP协议的改进,它将密码学、身份认证技术以及硬件加密技术有机结合起来,支持通信双方的双向身份认证,能够积极有效地防范各类网络攻击。
可以预见,身份认证技术必将越来越广泛地应用于生活和工作的各个领域,将发挥越来越重要的作用。
通过这次课程设计学习和巩固了《网络安全协议》的基本知识,熟悉了网络安全协议的设计原则和方法,掌握了现有TCP/IP协议族存在的安全缺陷,了解了现有的安全协议的设计思路。
参考文献
[1]冯登国.网络安全原理与技术[M].北京:
科学出版社,2003.
[2]王凤英,程震.网络与信息安全.北京:
中国铁道出版社,2006
[3]李世平.Internet环境下动态身份认证的研究[博士学位论文].
北京理工大学,2003.
[4]万涛.网络中身份认证技术的研究[硕士学位论文].西安电子
科技大学,2003.
[5]张焕国等.计算机安全保密.机械工业出版社,1997.
[6]阳富民,刘兴国.PPPoE协议的安全隐患及解决方案.华中科技大学学报(自然科学版).2004
课程设计评价
课程设计教师评语及成绩
指导教师:
彭维平
日期:
2013年7月10日