河南理工大学网络协议课程设计报告.docx
《河南理工大学网络协议课程设计报告.docx》由会员分享,可在线阅读,更多相关《河南理工大学网络协议课程设计报告.docx(11页珍藏版)》请在冰豆网上搜索。
河南理工大学网络协议课程设计报告
《网络安全协议》
课程设计
题目TCP/IP协议的缺陷分析与优化
班级
学号
姓名
指导老师
2013年07月04日
目录
摘要:
3
一、基本概述3
1.1课程设计的目的3
1.2课程设计的内容4
1.3课程设计的要求4
二、问题分析5
2.1TCP/IP现实需求5
2.2TCP/IP基本介绍5
2.3TCP/IP协议的主要特点6
2.4TCP/IP优化的理论基础7
三、TCP/IP安全协议总体设计8
3.1TCP/IP协议缺陷分析8
3.2TCP协议的优化8
3.3IP协议的优化11
四、TCP/IP协议实现12
4.1网络接口层的安全实现12
4.2网络层的安全实现13
4.3传输层的安全实现13
4.4应用层的安全实现14
五、安全性分析14
六、课程设计心得、总结14
参考文献15
摘要:
TCP(传输控制协议)是一系列规则的集合,它和IP(网际协议)共同使用,通过互联网在计算机之间以信息单元的形式发送数据。
IP协议控制实际的数据传输,TCP协议主要负责追踪在互联网上传送的信息所划分的各个数据单元(包)。
TCP协议是面向连接的协议,就是说在两端传送信息时,连接是一直建立和保持的,TCP协议负责把信息划分成IP协议所能够处理的,也要能把接收到的包拼成一个完整的信息。
在开放式系统互连(OSI)通信模型中,TCP协议位于第四层传输层中。
TCP/IP是Internet/Intranet使用的协议体系,也是大多数网络采用的协议。
本次课程设计主要阐述有关TCP/IP协议中相关的安全漏洞以及如何优化。
关键字:
TCP(传输控制协议)、IP(网际协议)、网络、信息、数据传输、安全漏洞、优化
一、基本概述
1.1课程设计的目的
《网络安全协议》课程设计是信息安全相关专业的重要实践性教学环节,是《网络安全协议》课程的后续实践教学环节。
通过该课程设计,使学生掌握网络安全协议的基本概念,结合实际的操作和设计,巩固课堂教学内容,使学生掌握网络安全协议的基本概念、原理和技术,将理论与实际相结合,参考已学习到的安全协议设计思路和方法,规范、科学地完成一个安全协议的设计与实现,把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力和创新能力。
同时熟悉网络安全协议的设计原则和方法,掌握现有TCP/IP协议族存在的安全缺陷,了解现有的安全协议的设计思路,针对已知安全缺陷,能设计合理的安全协议。
基于TCP/IP协议的服务很多,人们比较熟悉的有WWW服务、FTP服务、电子邮件服务,不太熟悉的有TFTP服务、NFS服务、Finger服务等等。
这些服务都存在不同程度上的安全缺陷,当用户构建安全可信网络时,就需要考虑,应该提供哪些服务,应该禁止哪些服务。
同时,在使用这些服务的时候,你可能没有想到,TCP/IP从一开始设计的时候就没有考虑到安全设计。
1.2课程设计的内容
网络协议是计算机之间为了互联共同遵守的规则。
TCP/IP协议的安全隐患是造成操作系统漏洞的一个重要原因,协议本身的缺陷给系统带来的攻击点。
目前的互联网络所采用的主流协议是TCP/IP协议,由于在其设计初期人们过分强调其开发性和便利性,没有仔细考虑其安全性,因此很多的网络协议都存在严重的安全漏洞,给Internet留下了许多安全隐患。
另外,有些网络协议缺陷造成的安全漏洞还会被黑客直接用来攻击受害者系统。
由于IP层的主要缺陷是缺乏有效的安全认证和保密机制,其中最主要的因素就是IP地址问题。
TCP/IP协议用IP地址来作为网络节点的惟一标识,许多TCP/IP服务,包括Berkeley中的R命令、NFS、XWindow等都是基于IP地址对用户进行认证和授权。
当前TCP/IP网络的安全机制主要是基于IP地址的包过滤(PacketFiltering)和认证(Authentication)技术,它的有效性体现在可以根据IP包中的源IP地址判断数据的真实性和安全性。
然而IP地址存在许多问题,协议的最大缺点就是缺乏对IP地址的保护,缺乏对IP包中源IP地址真实性的认证机制与保密措施。
这也就是引起整个TCP/IP协议不安全的根本所在。
本次课程设计就TCP/IP协议自身所存在的安全问题和协议作用进行了详细讨论,指出针对这些安全隐患的攻击。
并给予相应的优化参考。
1.3课程设计的要求
根据需求分析详细设计安全协议,包括通信双方交换不同类型信息(如请求、应答)时,使用的数据包格式、每部分数据项的长度,每部分数据项表示的含义等;包括通信双方进行消息交换的详细步骤;采用了哪些安全机制来保证通信的安全;分析采用此方案的安全性并在此基础上分析该协议的设计缺陷同时给出优化方案。
二、问题分析
2.1TCP/IP现实需求
在长期的发展过程中,IP逐渐取代其他网络。
这里是一个简单的解释。
IP传输通用数据,数据能够用于任何目的,并且能够很轻易地取代以前由专有数据网络传输的数据。
一个专有的网络开发出来用于特定目的。
如果它工作很好,用户将接受它。
为了便利提供IP服务,经常用于访问电子邮件或者聊天,通常以某种方式通过专有网络隧道实现。
隧道方式最初可能非常没有效率,因为电子邮件和聊天只需要很低的带宽。
通过一点点的投资IP基础设施逐渐在专有数据网络周边出现。
用IP取代专有服务的需求出现,经常是根据用户需求,IP替代品遍布整个因特网,这使IP替代品比最初的专有网络更加有价值,因此专有网络受到压制。
许多用户开始维护使用IP替代品的复制品。
IP包的间接开销很小,少于1%,这样在成本上非常有竞争性。
人们开发了一种能够将IP带到专有网络上的,适合大部分用户的不昂贵的传输媒介。
大多数用户为了削减开销,专有网络被取消。
于是TCP/IP网络应运而生并且获得了较好的发展。
TCP/IP(传输控制协议/互联网络协议)协议是Internet最基本的协议,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。
TCP协议承载了Internet上80%的流量,几乎所有基于浏览器和http的互联网应用都是由TCP协议承载的,同时IP协议作为TCP/IP协议族中的核心协议之一,IP地址在因特网中具有唯一性,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。
任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。
2.2TCP/IP基本介绍
TCP/IP协议(TransmissionControlProtocol/InternetProtocol)叫做传输控制/网际协议,又叫网络通讯协议,这个协议是Internet国际互联网络的基础。
TCP/IP协议族是很多的不同的协议组成。
主要核心由TCP(传输控制协议)和IP(网际协议)组成,TCP用户数据报表协议,也称作TCP传输控制协议(TransportControlProtocol,可靠的主机到主机层协议),这里要先说明一下,传输控制协议是OSI网络的第四层的叫法,TCP传输控制协议是TCP/IP传输的6个基本协议的一种。
两个TCP意思不相同)。
TCP是一种可靠的面向连接的传送服务。
它在传送数据时是分段进行的,主机交换数据必须建立一个会话。
它用比特流通信,即数据被作为无结构的字节流。
通过每个TCP传输的字段指定顺序号,以获得可靠性。
是在OSI参考模型中的第四层,TCP是使用IP的网间互联功能而提供可靠的数据传输,IP不停的把报文放到网络上,而TCP是负责确信报文到达。
在协同IP的操作中TCP负责:
握手过程、报文管理、流量控制、错误检测和处理(控制),可以根据一定的编号顺序对非正常顺序的报文给予从新排列顺序。
TCP/IP协议同时是网络中使用的基本的通信协议。
虽然从名字上看TCP/IP包括两个协议:
传输控制协议(TCP)和网际协议(IP),但TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:
远程登录、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。
通常说TCP/IP是Internet协议族,而不单单是TCP和IP。
TCP/IP协议使用范围极广,是目前各种网络通信使用的主要协议体系,适用于连接多种机型,既可用于局域网,又可用于广域网,许多厂商的计算机操作系统和网络操作系统产品都采用或含有TCP/IP协议。
TCP/IP协议已成为目前事实上的国际标准和工业标准。
2.3TCP/IP协议的主要特点
TCP/IP协议并不完全符合OSI的七层参考模型。
传统的开放式系统互连参考模型是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。
该模型的目的是使各种硬件在相同的层次上相互通信。
这7层是:
物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
表1四层协议结构簇
TCP/IP层主要协议主要功能
应用层HTTP、TELNET、向传输层传送数据或从应用程序获得数据
DNSSNMPFTP
传输层TCPUDP实现源主机和目的主机之间对等实体间
会话提供端到端的连接,
TCP要实现差错控制流量控制
网络层IP、ICMP、IGMP异种网络互联,路由选择提供点到点的
连接
网络接口层ETHERNETPPP接入不同结构的网络以利用网络传递IP
FDDL、ATM分组
2.4TCP/IP优化的理论基础
TCP/IP网络通信协议有着开放的协议标准,可以免费使用,并且独立于特定的计算机硬件与操作系统;TCP/IP网络通信协议独立于特定的网络硬件,可以运行在局域网、广域网,更适用于互联网中;TCP/IP网络通信协议统一的网络地址分配方案,使得整个TCP/IP设备在网中都具有惟一的地址;TCP/IP网络通信协议标准化的高层协议,可以提供多种可靠的用户服务。
但是TCP/IP网络通信协议模型又有以下主要缺点。
首先,该模型没有清楚地区分哪些是规范、哪些是实现;其次,TCP/IP模型的主机——网络层定义了网络层与数据链路层的接口,并不是常规意义上的一层,接口和层的区别是非常重要的,TCP/IP模型没有将它们区分开来;再次就是TCP/IP协议用IP地址来作为网络节点的惟一标识,许多TCP/IP服务,包括Berkeley中的R命令、NFS、Windows等都是基于IP地址对用户进行认证和授权。
当前TCP/IP网络的安全机制主要是基于IP地址的包过滤(PacketFiltering)和认证(Authentication)技术,它的有效性体现在可以根据IP包中的源IP地址判断数据的真实性和安全性。
然而IP地址存在许多问题,协议的最大缺点就是缺乏对IP地址的保护,缺乏对IP包中源IP地址真实性的认证机制与保密措施。
这也就是引起整个TCP/IP协议不安全的根本所在。
三、TCP/IP安全协议总体设计
3.1TCP/IP协议缺陷分析
TCP使用三次握手机制来建立一条连接,握手的第一个报文为SYN包;第二个报文为SYN/ACK包,表明它应答第一个SYN包同时继续握手的过程;第三个报文仅仅是一个应答,表示为ACK包。
若A放为连接方,B为响应方,TCP协议把通过连接而传输的数据看成是字节流,用一个32位整数对传送字节编号。
初始序列号(ISN)在TCP握手时产生,产生机制与协议实现有关。
攻击者只要向目标主机发送一个连接请求,即可获得上次连接的ISN,再通过多次测量来回传输路径,得到进攻主机到目标主机之间数据包传送的来回时间RTT。
已知上次连接的ISN和RTT,很容易就能预测下一次连接的ISN。
若攻击者假冒信任主机向目标主机发出TCP连接,并预测到目标主机的TCP序列号,攻击者就能伪造有害数据包,使之被目标主机接受。
IP协议在互连网络之间提供无连接的数据包传输。
IP协议根据IP头中的目的地址项来发送IP数据包。
也就是说,IP路由IP包时,对IP头中提供的源地址不作任何检查,并且认为IP头中的源地址即为发送该包的机器的IP地址。
这样,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。
其中最重要的就是利用IP欺骗引起的各种攻击。
以防火墙为例,一些网络的防火墙只允许网络信任的IP数据包通过。
但是由于IP地址不检测IP数据包中的IP源地址是否为放送该包的源主机的真实地址,攻击者可以采用IP源地址欺骗的方法来绕过这种防火墙。
另外有一些以IP地址作为安全权限分配依据的网络应用,攻击者很容易使用IP源地址欺骗的方法获得特权,从而给被攻击者造成严重的损失。
事实上,每一个攻击者都可以利用IP不检验IP头源地址的特点,自己填入伪造的IP地址来进行攻击,使自己不被发现。
3.2TCP协议的优化
要对TCP协议进行优化就需要了解利用TCP协议进行通信的双方交换不同类型信息时,使用的数据包格式、每部分数据项的长度,每部分数据项表示的含义等;包括通信双方进行消息交换的详细步骤,采用了哪些安全机制来保证通信的安全。
然后分析采用此方案的安全性,并在此基础上进行优化。
利用TCP协议建立连接的过程:
步骤1:
TCP客户端发送带同步序列号(SYN)控制标志设置的数据段,指示包含在报头中的序列号字段的初始值,用以开启三次握手。
序列号的初始值称为初始序列号(ISN),由系统随机选取,并用于跟踪会话过程中从客户端到服务器的数据流。
在会话过程中,每从客户端向服务器发送一个字节的数据,数据段报头中包含的ISN值就要加1。
步骤2:
TCP服务器需要确认从客户端处收到SYN数据段,从而建立从客户端到服务器的会话。
为了达到此目的,服务器应向客户端发送带ACK标志设置的数据段,表明确认编号有效。
客户端将这种带确认标志设置的数据段理解为确认信息,即服务器已收到从TCP客户端发出的SYN信息。
步骤3:
最后,TCP客户端发送包含ACK信息的数据段,以示对服务器发送的TCPSYN信息的响应。
在该数据段中,不包括用户数据。
确认号字段的值比从服务器接收的初始序列号值大1。
一旦在客户端和服务器之间建立了双向会话,该通信过程中交换的所有数据段都将包含ACK标志设置。
在TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为SYNTimeout,一般来说这个时间是分钟的数量级(大约为30秒-2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源--数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。
实际上如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃---即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求,此时从正常客户的角度看来,服务器失去响应,这种情况我们称作:
服务器端受到了SYNFlood攻击(SYN洪水攻击)。
目前自己还没有想到完全有效的方法,但可以从以下几个方面加以优化:
1.对系统设定相应的内核参数,使得系统强制对超时的SYN请求连接数据包的复位,同时通过缩短超时常数和加长等候队列使得系统能迅速处理无效的SYN请求数据包。
2.可以在该网段的路由器上做些配置的调整,这些调整包括限制SYN半开数据包的流量和个数。
3.可以在路由器的前端多必要的TCP拦截,使得只有完成TCP三次握手过程的数据包才可以进入该网段,这样可以有效的保护本网段内的服务器不受此类攻击。
3.3IP协议的优化
要对IP协议进行优化同样需要了解利用IP协议进行通信的双方交换不同类型信息时,使用的数据包格式、每部分数据项的长度,每部分数据项表示的含义等;包括通信双方进行消息交换的详细步骤,采用了哪些安全机制来保证通信的安全。
然后分析采用此方案的安全性,并在此基础上进行优化。
IP数据包的第一字段是版本字段,其长度为4位,表示所使用的IP协议的版本。
目前的版本IPV4,版本字段的值为4,下一代的版本是IPV6,版本字段的值为6。
报头标长(IHL)字段为4位,它定义了以4B为一个单位的IP包的报头长度。
报头除了选项字段和填充域字段外,其他各字段是定长的。
因此,IP数据包的头长度在20-40B之间,是可变的。
0 4 8 16 19 2431(位)
版本
报头标长
服务类型
总长度
标识
标志
片偏移
生存时间
协议
头校验和
源IP地址
目的IP地址
任选项(0或多项)
填充
数据部分
图1IP数据包的格式
IP协议实际上是把各种不同“帧”统一转换成“IP数据包”格式,这种转换是因特网的一个最重要的特点,使所有各种计算机都能在因特网上实现互通,即具有“开放性”的特点。
数据包也是分组交换的一种形式,就是把所传送的数据分段打成“包”,再传送出去。
但是,与传统的“连接型”分组交换不同,它属于“无连接型”,是把打成的每个“包”(分组)都作为一个“独立的报文”传送出去,所以叫做“数据包”。
每个数据包都有报头和报文这两个部分,报头中有目的地址等必要内容,使每个数据包不经过同样的路径都能准确地到达目的地。
在目的地重新组合还原成原来发送的数据。
这就要IP具有分组打包和集合组装的功能。
在实际传送过程中,数据包还要能根据所经过网络规定的分组大小来改变数据包的长度,IP数据包的最大长度可达65535个字节。
IP协议中还有一个非常重要的内容,那就是给因特网上的每台计算机和其它设备都规定了一个唯一的地址,叫做“IP地址”。
由于有这种唯一的地址,才保证了用户在连网的计算机上操作时,能够高效而且方便地从千千万万台计算机中选出自己所需的对象来。
目前掌握的IP协议攻击有源地址欺骗(SourceAddressSpoofing)或IP欺骗(IPSpoofing);源路由选择欺骗(SourceRoutingSpoofing);路由选择信息协议攻击(RIPAttacks);鉴别攻击(AuthenticationAttacks)等。
针对IP协议的攻击可以从以下几个方面加以优化:
1.抛弃基于地址的信任策略。
这是最简单的方法。
2.进行包过滤。
如果网络是通过路由器接入Internet的,那么可以利用路由器来进行包过滤。
确认只有内部LAN可以使用信任关系,而内部LAN上的主机对于LAN以外的主机要慎重处理。
路由器可以过滤掉所有来自于外部而希望与内部建立连接的请求。
3.使用加密技术。
阻止IP欺骗的一种简单的方法是在通信时要求加密传输和验证。
当有多种手段并存时,加密方法可能最为适用。
四、TCP/IP协议实现
4.1网络接口层的安全实现
TCP/IP中的网络接口层对应OSI模型中的物理层和数据链路层,是TCP/IP的最底层。
它综合了OSI模型中的物理层和数据链路层的功能,主要负责数据在网络上的无差错的传输,网络接口层在发送端将上层的IP数据报封装成帧后发送到网络上;数据帧通过网络到达接收端时,该结点的网络接口层对数据帧拆封,并检查帧中包含的MAC地址。
如果该地址就是本机的MAC地址或者是广播地址,则上传到网络层,否则丢弃该帧。
4.2网络层的安全实现
网络层安全协议(NLSP)是由国际标准化组织为无连接网络协议(CLNP)制定的安全协议标准。
集成化NLSP(I-NLSP)是由美国国家科技研究所提出的包括IP和CLNP在内的统一安全机制。
SWIPE是另一个网络层的安全协议,由Ioannidis和Blaze提出并实现原型。
所有这些提案的共同点多于不同点。
事实上,他们用的都是IP封装技术。
其本质是,纯文本的包被加密,封装在外层的IP报头里,用来对加密的包进行Internet上的路由选择。
到达另一端时,外层的IP报头被拆开,报文被解密,然后送到收报地点。
网络安全性的主要优点是它的透明性,也就是说,安全服务的提供不需要应用程序、其他通信层次和网络部件做任何改动。
它最主要的缺点是:
网络层一般对进程和相应条例的包不做区别。
对所有去往同一地址的包,它将按照同样的加密密钥和访问控制策略来处理。
这可能导致提供不了所需要的功能,也会导致性能下降。
总之,网络层是非常适合提供基于主机对主机的安全服务的。
相应的安全协议可以用来在Internet上建立安全的IP通道和虚拟私有网。
例如,利用它对IP包的加密和解密功能,可以简捷地强化防火墙系统的防卫能力。
RSA数据安全公司已经发起了一个倡议,来推进多家防火墙和TCP/IP软件厂商联合开发虚拟私有网,该倡议被称为S-WAN(安全广域网)倡议,其目标是制定和推荐网络层的安全协议标准。
4.3传输层的安全实现
在网络应用编程中,通常使用广义的进程间通信(IPC)机制来与不同层次的安全协议打交道。
在Internet中提供安全服务的首先一个想法便是强化它的IPC界面,如BSD、Sockets等,具体做法包括双端实体的认证,数据加密密钥的交换等。
Netscape通信公司遵循了这个思路,制定了建立在如TCP/IP所提供可靠的传输服务基础上的安全接层协议(SSL)。
网络安全机制的主要优点是它的透明性,即安全服务的提供不要求应用层做任何改变。
这对传输层来是说是做不到的。
原则上,任何TCP/IP应用,只要应用传输层安全协议,比如说SSL或IPC,就必定要进行若干修改以增加相应的功能,并使用不同的IPC界面。
于是,传输层安全机制的主要缺点就是要对传输层IPC界面和应用程序两端都进行修改。
可是,比起Internet层和应用层的安全机制来,这里修改还是相当小的。
另一个缺点是,基于UDP的通信很难在传输层建立起安全机制来。
同网络层安全机制相比,传输层安全机制的主要优点是它提供基于进程对进程的(而不是主机对主机的)安全服务。
这一成就如果再加上应用级的安全服务,就可以再向前跨越一大步了。
4.4应用层的安全实现
应用层是与其他计算机进行通讯的一个应用,它是对应应用程序的通信服务的。
网络层的安全协议允许为主机(进程)之间的数据通道增加安全属性,这意味着真正的数据通道还是建立在主机(或进程)之间,但却不可能区分在同一通道上传输的一个具体文件的安全性要求。
比如说,如果一个主机与另一个主机之间建立起一条安全的IP通道,那么所有在这条通道上传输的IP包就到要自动的被加密。
同样,如果一个进程和另一个进程之间通过传输层安全协议建立起了一条安全的数据通道,那么两个进程间传输的所有消息就都要自动的被加密。
一般来说,在应用层提供安全服务是对每个应用(及应用协议)分别进行修改。
一些重要的TCP/IP应用已经这样做了。
五、安全性分析
在互联网上最常见的攻击就是DoS/DDoS,用的最多的就是SYN攻击,其实就是利用TCP的SYN来进行攻击,很多网络攻击都以TCP为依据。
SynCookie和DelayBinding(延迟绑定)技术可以用来解决这个问题。
在F5的TMOS中,采用的是双TCP堆栈技术,客户端和F5设备先建立TCP连接,在F5设备收到真正的请求包后