基于UDP网络安全协议课程设计Word格式.docx
《基于UDP网络安全协议课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《基于UDP网络安全协议课程设计Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
![基于UDP网络安全协议课程设计Word格式.docx](https://file1.bdocx.com/fileroot1/2022-11/24/2414d735-588a-4d8c-92ab-b23f73c67c50/2414d735-588a-4d8c-92ab-b23f73c67c501.gif)
2.2.2TCP协议的往返时延6
第3章UDP协议的改进7
3.1设计目标7
3.2模块的设计概述7
3.3总体设计7
3.3.1体系结构7
3.3.2报文结构8
第4章协议的实现机制9
4.1协议实现采用的方法9
4.1.1建立连接9
4.1.2关闭连接10
4.1.3差错检测10
4.1.4确认技术11
4.1.5序列号11
4.1.6超时重发11
第5章安全性分析11
5.1协议的功能11
5.2协议存在的安全隐患12
第6章小结12
参考文献13
前言
21世纪将是一个以网络为核心的信息时代,一般把Internet定义为一个技术名词,指遵守TCP/IP协议,用各种计算机物理连接方式集合在一起的计算机网络及单机的总和。
TCP/IPInternet协议族已经成为计算机工业中开放系统互连的事实上的标准。
在TCP/IP协议族中,在数据链路层、网络层,传输层和应用层存在很多的已知安全缺陷,选择其中一个存在安全缺陷的协议—UDP协议,针对此协议进行优化。
用户数据报协议UDP提供应用程序之间传送数据报的基本机制基于目。
前UDP通信的不足:
不可靠的无连接服务,在参考TCP/IP协议及ISO7层协议的基础上,设计了一套基于UDP的可靠数据传输。
第1章UDP协议的概述
1.1UDP协议
UDP是UserDatagramProtocol的简称,中文名是用户数据报协议,是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETFRFC768是UDP的正式规范。
在TCP/IP模型中,UDP为网络层(networklayer)以下和应用层(applicationlayer)以上提供了一个简单的接口。
1.2UDP数据报的格式
UDP数据报是UDP协议的数据传输的基本单位,格式见下图:
1.端口(两个)
源端口(16bit):
指源主机上运行的进程使用的端口地址。
目的端口(16bit):
指目的主机上运行的进程使用的端口地址。
UDP使用端口对给定主机上的多个目标进行区分。
源端口是可选域,当其有意义时,指的是发送应用程序的UDP端口。
如果不使用它,则在此域中填0。
目的端口在有特定的目的网络地址时有意义,指目标应用程序的UDP端口。
UDP的著名端口
UDP的端口号
关键字
描述
53
DOMAIN
域名服务器
67
BOOTPS
引导协议服务器
68
BOOPTPC
引导协议客户机
69
TFTP
简单文件传送
161
SNMP
简单网络管理协议
162
SNMP—TRAP
简单网络管理协议陷阱
2.长度
UDP数据报的总长度(首部+数据),用八进制表示(这表明最小的数据报长度是8)。
UDP数据报总长度也可以通过下式进行计算:
UDP数据报总长度=IP总长度-IP首部长度
3.校验和
用于校验整个UDP数据报出现的差错。
它是一种简单的数学运算,即对IP头、UDP头和数据中信息包头的数位取反之和,再取反得到的。
在计算校验和时要在UDP数据报之前增加12B的伪首部(临时加上),其中第三字段全0,第四字段为IP首部中的协议字段(17:
UDP)。
1.3针对UDP协议的攻击
UDPFlood是日渐猖厥的流量型DoS攻击(拒绝服务攻击),原理也很简单。
常见的情况是利用大量UDP小包冲击DNS服务器或Radius认证服务器、流媒体视频服务器。
100kpps的UDPFlood经常将线路上的骨干设备例如防火墙打瘫,造成整个网段的瘫痪。
由于UDP协议是一种无连接的服务,在UDPFlood攻击中,攻击者可发送大量伪造源IP地址的小UDP包。
但是,由于UDP协议是无连接性的,所以只要开了一个UDP的端口提供相关服务的话,那么就可针对相关的服务进行攻击。
正常应用情况下,UDP包双向流量会基本相等,而且大小和内容都是随机的,变化很大。
出现UDPFlood的情况下,针对同一目标IP的UDP包在一侧大量出现,并且内容和大小都比较固定。
第2章需求分析
2.1UDP协议的优缺点
(1)系统开销小、速度快;
(2)对于绝大多数居于消息传递的应用程序来说,基于帧的通信(UDP)比基于流的通信(TCP)更为直接和有效:
(3)对应用部分实现系统冗余、人物分担提供了极大易实现及可操作性:
(4)对等的通信实体、应用部分可方便的根据需要构造成客户/服务器模型及分布处理模型,大大加强应用在可操作性及维护性的能力;
(5)可实现完全图模型的网状网络拓扑结构,可大大增强系统的容错性。
(1)依赖IP协议传送报文;
(2)不确认报文是否到达,不对报文进行排序也不进行流量控制,对于顺序错误或丢失的包,不做纠错或重传;
(3)没有建立初始化连接。
2.2与TCP协议的比较
2.2.1TCP协议的拥赛控制
随着网络带宽时延乘积(BDP)的增加,通常的TCP协议开始变的低效。
这是因为它的AMID(AdditiveIncreaseMuitiplicativeDecrease,即当TCP发送方感受到端到端路径无拥塞时就线性的增加其发送速度,当察觉到路径拥塞时就乘性减小其发送速度,简称“和式增加,积式减少”)算法虽然减少了TCP拥塞窗口,但不能快速的恢复可用带宽。
理论上的流量分析表明TCP在BDP增加到很高的时候比较容易受数据包丢失的影响。
2.2.2TCP协议的往返时延
TCP拥塞控制的不公平的RTT(Round—TripTime,往返时延,表示从发送端发送数据开始,到发送端收到来自接收端的确认,总共经历的时延)也成为在分布式数据密集应用中的严重问题。
拥有不同RTT的并发TCP流将不公平地分享带宽。
尽管在BDP小的网络中可以使用通常的TCP实现来相对平等的共享带宽,但在拥有大量BDP的网络中,通常的基于TCP的程序就必须承受严重的不公平的问题。
这个RTT基于的算法严重的限制了其在广域网分布式应用的效率例如互联网上的网络数据备份。
综上所述,一直到今天,对标准的TCP的提高一直都不能在带宽的利用效率和公平性方面达到一个令人满意的程度),这对运行在低速网络中的应用影响尤为严重。
考虑到上面的背景,需要一种在低速网络中支持高效利用可用带宽的数据传输协议。
为此,本文设计了一个应用程序级别的基于UDP的数据传输协议。
第3章UDP协议的改进
3.1设计目标
基于UDP的可靠传输协议主要目标是效率、稳定。
应该利用所有的可用带宽,即使带宽变化的很剧烈,以保证在低速网络情况下,能够为需一定带宽支持的应用尽可能提供其所需的传输速率。
稳定性要求不能像TCP那样遇到丢包时产生传输速率的大幅波动,分组发送速率应该一直快速会聚可用带宽。
3.2模块的设计概述
本协议是数据传输是单向的,有两个部分:
发送方和接收方。
发送方根据流量控制发送(和重传)数据,触发和处理所有的控制事件,如RTT估计、超时检测和重传。
接收者接收数据分组和控制数据报,并根据接收到的数据报发送控制数据报。
接收程序使用一个固定UDP端口来发送和接收。
本协议将应用层数据封装成固定的大小进行传输,和TCP相似的是,称这个固定的数据报大小叫做MSS(最大分组大小,适宜于快速传输大块数据流。
MSS可以通过应用程序来设置,MSS的选择对传输效率会有影响。
通过滑动窗口的流水技术来进行流量控制,在参数合适事能够充分利用当前可用带宽。
考虑到系统开销,协议并没有引入如流数据加密或身份认证等安全机制,它依赖于应用程序提供的授权和底层提供的安全机制。
然而,由于UDP是无连接的,实现可靠数据传输时,应该检查所有达到的数据报是否是预期的数据报。
3.3总体设计
3.3.1体系结构
从计算机网络层次体系的角度来看,基于UDP的可靠数据传输协议的层次结构如图l所示。
因此,本协议是在原TCP/IP协议的传输层的UDP协议和应用层之间加入了一层。
应用层
基于UDP的可靠传输协议
传输层UDP
网络层IP
网络接口层
图1基于UDP的可靠传输协议的层次
为保证可靠数据传输而实现的,加入了基于UDP的可靠数据传输协议而形成的一个五层体系结构。
这样就可以利用TCP/IP的UDP协议实现一种基于UDP的面向连接可靠数据传输机制。
3.3.2报文结构
协议有两类数据报:
应用数据报和控制数据报。
它们数据报类型域来区分的。
(一)应用数据报
序列号
时间戳
DATA标志类型
数据
4字节4字节1字节
图2应用数据报格式
数据报里含有四个域:
序列号,是四个字节的无符号整数,每个非重传的应用数据报都有一个相对应的序列号,且每个非重传的应用数据报都序号增加l;
时间戳,是一个四字节的无符号整数。
数据报类型域里有数据报对应的值DATA,紧跟在这些数据后面的是应用程序数据。
(二)控制数据报。
控制报文有三种:
序列号
时间戳
SYN
标志类型
需要传送的数据报个数
文件名
4字节4字节1字节4字节
图3协议连接握手报文
图3是建立连接时的数据报,其中包含所要传输的数据报个数和文件名。
ACK标志类型
4字节4字节1字节
图4应答报文
图4是应答(ACK)报文,序列号域填写的是希望接收到的下一报文的序列号。
时间戳填入引起此应答的数据报文的时间戳。
FIN标志类型
图5关闭连接报文
确认报文和关闭连接报文不包含三个域以外的控制信息,图中的类型域所填的值是三个宏定义。
对于应用数据报和控制数据报来说都不需要增加报文长度域,因为可以从UDP协议头中得到实际的数据报大小。
数据报大小信息能被用来得到数据报有效载荷和控制数据报中的控制信息字段大小。
第4章协议的实现机制
4.1协议实现采用的方法
UDP是一个简单的面向数据报的运输层协议,它把应用程序交给它的数据添加上简单的包头就传给IP层发送出去,没有可靠性保证。
基于UDP的可靠数据传输协议是一个面向连接的可靠数据传输协议,在分析它的技术实现问题时,使用了以下实现可靠数据传输所必需的关键技术,并在其中做出了选择。
4.1.1建立连接
作为一种面向连接的协议,在利用协议进行数据通信之前,首先必须在通信的双方之间建立一条连接。
在的实现中,参考了下图中TCP中的3次握手方式。
图6TCP三次握手协议
但是由于协议是单工的,所以在第三个包开始已经传输应用数据了。
4.1.2关闭连接
关闭连接也参考了TCP的方式,TCP在关闭连接时的是以4次握手方法进行连接的关闭的,而且在永久连接的链路中正常情况下是不需要关闭连接的,只有在出现错误的情况下才会进行关闭操作。
根据本协议特点做了一定的修改,过程如下:
发送方收到接收方对最后一个数据报的确认后发送关闭连接数据报而后结束本次连接关闭完成。
接收方发出最后的一个数据报发出确认后启动定时器等待关闭连接数据报,此过程中如果收到最后一个数据报的则发送相应确认,重启定时器;
若定时器超时则表明FIN丢失,但是可知在这种情况无论超时与否都可知数据已正确传输完毕。
若在传输过程中发送方检测到发送多次超时或接收方检测到超时,都会导致关闭连接,并检测出数据没有发送成功。
4.1.3差错检测
UDP头部具有检验和域,提供了差错检测功能,由于本协议是调用UDP提供的服务,因此不需要另外增加校验码就可提供此功能。
4.1.4确认技术
发送方需要接收方对收到数据的反馈来检测数据是否发送成功。
常用的确认技术有逐个确认,捎带确认、累积确认和超时确认,否定确认以及扩展确认这几种方式的结合来实现确认。
综合考虑开销,效率和实现复杂性,本协议采用累积确认。
4.1.5序列号
由于数据会以UDP数据报的方式传输,而UDP数据包的到达可能会失序,因此它本协议的数据报的到达也可能失序,如果必要,需要对收到的数据报文进行重新排序,以便能收到的数据以正确的顺序交给应用层。
对报文的丢失处理方式是重传,这样就引进了报文的重复,包括数据报和应答报文,序列号可以解决这些乱序、丢失和重复的问题。
4.1.6超时重发
数据报文和应答文都有可能丢失,而且UDP协议会丢弃错误的数据报而不向本端应用层或发送方提供任何提示信息,发送方发现这些事件的方法是等待确认时启动超时重发定时器,若发生超时则判断为上述三个事件之一发生,由于无法区分确认丢失还是另外两个事件发生,发送方选择的处理策略是万能的重发,当然它会引入新的问题,但序列号可以解决。
第5章安全性分析
5.1协议的功能
本协议提供的主要功能有:
(1)基于数据报的收发功能,协议调用传输层的UDP协议提供的服务,因而它会将数据分割成合适发送的大小来发送。
(2)处理比特差错,UDP本身具有的校验功能,能够检测出数据包的错误并丢弃出错的数据报。
(3)处理重复的数据报。
(4)处理乱序的数据报。
(5)动态估计RTT。
(6)超时重发功能,采用和TCP类似的超时重发机制来保证数据分组的可靠传输。
5.2协议存在的安全隐患
可能存在的安全缺陷:
1.由于使用序列号,可能会引起类似于TCP序列号猜测的攻击,如果攻击者能够猜测到正确的序列号,他就可以产生他自己的能被目标主机接收的消息片段。
2.由于协议借鉴了TCP协议的建立连接所使用的三次握手,攻击者可能会利用SYNFlood攻击,实现拒绝服务攻击,而且在许多情况下,黑客常利用SYN攻击作为其他复杂欺骗和攻击的基础。
3.由于超时重发可能引起报文消息的大量重复,会加大系统处理报文的负担,而且攻击者会趁机发起重放攻击,引起系统瘫痪。
4.基于UDP协议本身的特点,我们知道UDPFlood攻击是最常见的UDP攻击,会造成服务、网络和服务器超载等严重后果。
第6章小结
在本次课程设计的实习中,通过在网络上查询资料和对平时学习的总结,我更加深刻的理解了TCP\IP协议族存在的安全隐患,通过自身的努力对已有的协议进行改进,对于规范、科学地完成一个安全协议的设计有了系统的体验,也深刻的意识到自身的不足。
在改进协议的过程中我深刻的体会到整体系统的设计时,方方面面的问题必须协调处理,不能够为了弥补系统协议已经存在的缺陷,而为增强这方面的能力做过多的设计,虽然改善了缺陷,却对于系统的整体性能的提高不起作用,反而增加了系统处理问题的开销。
但是对于协议的实现把理论课与实验课所学内容做一综合这一方面还做得不足,不能够用编程语言,开发设计原型系统软件,完成完整的协议功能的实现,所以在实际动手能力和创新能力方面还需要提高。
在今后的学习中我会更加努力提高自身的动手实践能力,努力做到学以致用,理论与实践并重。
作为一名学生,我想学习的目的不在于通过考试获得学分,而是为了获取知识,获取工作技能,换句话说,在学校学习是为了能够适应社会的需要,通过学习保证能够完成将来的工作,为社会做出贡献。
再者,通过本次课程设计的学习,不但获取了知识,更加提高了自身的精神境界,端正自己的学习态度,只有真正下功夫去学习,才能有所收获,正所谓“一分耕耘,一分收获”,没有付出,就没有回报!
参考文献
[1]陈性元,杨艳,任志宇.网络安全通信协议.北京:
高等教育出版社,2008.
[2]谢希仁.计算机网络[M].5版.北京:
电子工业出版社.2008
[3]冯登国.安全协议-理论与实践.北京:
清华大学出版社.2011
[4]秦科,张小松.,郝玉洁.成都:
电子科技大学出版社,2008
课程设计评价
课程设计教师评语及成绩
指导教师:
日期:
2014年7月10日