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