毕业设计(论文)文献综述IP协议及IPSec协议安全分析.doc
文献综述题 目 IP协议及IPSec协议安全分析 学生姓名 专业班级 计算机科学与技术 2003-1班 学 号 56 院 (系) 计算机与通信工程学院 指导教师 完成时间 2007 年 6 月 6 日 IP协议及IPSec协议安全分析摘 要随着对Internet和Windows NT日益浓厚的兴趣,网络安全已成为世界上各个国家主要关心的问题。破坏网络安全所需的信息和工具随处可得,这一事实更增加了对这个问题的关注。而基于PKI技术的IPSec协议的诞生,完善了网络层中端对端的安全通讯。它具备允许部署可信计算基础架构的基本特征。IPSec数据包验证能够确保整个IP报头、下一层协议(例如TCP、UPD或ICMP)报头以及数据包有效负载的数据完整性。并且IPSec协议与生俱来的特性就是他本身就支持面向未来的协议IPv6,这使得IPSec更是如虎添翼,作为IP层上的协议,它很容易便成为了全世界范围内的一种标准,非常通用。关键词: IPSec/IPv6/验证报头/封装安全有效载荷/钥匙管理1 前言众所周知,TCP/IP模型是为了解决OSI七层模型所遗留的问题的基础上而诞生的。今天,基于TCP/IP协议的服务很多,WWW服务、FTP服务、POP3服务,TFTP服务、NFS服务、Finger服务等等。虽然它支持的服务很多,但是我们在互联网上的“冲浪”,依赖的是质量,而不是它功能的数量。这些服务都存在不同程度上的安全缺陷,当用户构建安全可信网络时,就需要考虑,应该提供哪些服务,应该禁止哪些服务。同时,在使用这些给我们提供的服务时候,可能没有想到,TCP/IP协议它从一开始设计的时候就没有考虑到安全设计。其实TCP/IP协议IP层就是问题的症结所在。它的主要问题是缺乏有效的安全认证和保密机制。因此正是因为上面的原因,才产生了许多安全问题。TCP/IP协议用IP地址作为网络节点的惟一标识,许多TCP/IP服务,包括Berkeley中的R命令、NFS、X Window等都是基于IP地址对用户进行认证和授权。当前TCP/IP网络的安全机制主要是基于IP地址的包过滤(Packet Filtering)和认证(Authentication)技术,它的有效性体现在可以根据IP包中的源IP地址判断数据的真实性和安全性。然而IP地址存在许多问题,协议的最大缺点就是缺乏对IP地址的保护,缺乏对IP包中源IP地址真实性的认证机制与保密措施。这也就是引起整个TCP/IP协议不安全的根本所在。 于是下一代互联网IPv6逐渐被网络安全界提到日程上来了。2 TCP/IP协议的瓶颈和改善众所周知,计算机网络从最初的SNA系统网络体系结构的指定,到OSI/RM模型再到到“事实上的国际标准”TCP/IP模型,以及现如今的下一代网络(NGN)、3G、3G演进及下一代宽带无线(NGBW),互联网已经陪我们走过了半个多世纪了。然而,真正的互联网发展基础还是IP或TCP/IP协议1 Y. Richter, B. Muscovite, D. Bahrenberg, and G. de Grout. Address Allocation for Private Internets. RFC 1597, March 1994.2 A 。我们知道,没有TCP/IP协议,就没有不同操作系统在不同网络环境中畅通无阻的通信。然而也许是因为当时网络软、硬件设备的局限性,当初设计该协议时就在着重考虑了网络的速度,而对网络的安全性没作太多的考虑,甚至根本没作考虑,也许是当时开发TCP/IP协议的人根本没有预料互联网会发展如此之迅速,所以说TCP/IP本身在安全设计上就先天不足。 而这,正是桎梏了它前进的脚步,即使我们一次又一次的改版、升级,也终因先天因素并且考虑到软件的可继承性的原因,导致改善的步伐依旧不尽如人意。2.1 IPv4在安全领域存在的问题很长时间以来,我们都认为安全性不是网际层的任务。在这种情况下,安全性意味着对数据的加密。其他安全性概念还包括对数据的数字签名、密钥交换、实体的身份验证和资源的访问控制。这些功能一般由较高层处理,通常是应用层,有时是传输层。例如,广泛应用的安全套接字层(SSL)协议由IP之上的传输层处理,而应用相对较少的安全HTTP(SHTTP)则由应用层处理。另外,由于最初设计TCP/IP协议簇时,人们并没有重点考虑它的安全性。因此,以IPv4为代表的TCP/IP协议簇存在的安全脆弱性概括起来主要有四点:(1)IP协议没有为通信提供良好的数据源认证机制。仅采用基于IP地址的身份认证机制,用户通过简单的IP地址伪造就可以冒充他人。即在IP网上传输的数据,其声称的发送者可能不是真正的发送者。因此,需要为IP层通信提供数据源认证。(2)IP协议没有为数据提供强的完整性保护机制。虽然通过IP头的校验和为IP分组提供一定程度的完整性保护,但这对蓄意攻击者远远不够,他可以在修改分组后重新计算校验和。因此,需要在IP层对分组提供一种强的数据完整性保护机制。(3)IP协议没有为数据提供任何形式的机密性保护。网上的任何信息都以明文传输,无任何机密而言,这已经成为电子商务应用的瓶颈问题。因此,对IP网的通信数据的机密性保护势在必行。(4)协议本身的设计存在一些细节上的缺陷和实现上的安全漏洞,使各种安全攻击有机可乘。2 Naganand Daresay, Dan Harkins. The New Security Standard for the Internet, Intranets, and Virtual Private Networks, March 13, 2003 B 因此,IPSec正是为了弥补TCP/IP协议簇的安全缺陷,为IP层以及上层协议提供保护而设计的。如今,随着虚拟专用网(VPN)软件和硬件产品的引入,安全隧道协议和机制有所扩展。这些产品通常会对一个IP数据报流加密,即把这些包本身作为另一些IP数据报来处理。IP数据报可想象为一个包装好的盒子,里面还包含着一个小盒子,在小盒子中还包含另一个盒子。最小的盒子中包含的是应用数据,下一个盒子中是传输层数据,而最外面的盒子包含IP数据。实际上隧道的工作方法就是把一个IP盒子放在不同地址信息的另一个IP盒子中。隧道协议,如微软的点到点隧道协议(PPTP),首先对IP数据报加密,然后打包,再发送到隧道上。3 G. Tsarists and P. Seizures. Design of VPN Gateway Based on IPSec, March 1998. Work In Progress C.4 J. Mogul and S. Dearing. Path MTU Discovery, RFC 1191, November 20035 P. Seizures and K. Peeving. The IP Network Address Translator (NAT). RFC 1631, May 1998.16 Beerhouse A. Furfuran, Sophia Chung Fagan. TCP/IP protocols, December 20017 W.Richard Stevens. Illustrated Volume1:The Protocols. Addison-Wesley, March 2000然而,所有这些关于IP安全性的办法都有问题。首先,在应用层进行加密使很多信息被公开。尽管应用层数据本身是加密的,携带它的IP数据仍会泄露参与处理的进程和系统的信息。在传输层加密要好一些,并且SSL为Web的安全性工作得很好,但它要求客户机和服务器应用程序都要重写以支持SSL。隧道协议也工作得不错,但却被缺乏标准的问题所困扰。2.2 IPSec安全协议的发展及其作用IETF的IP安全性(IPSec)工作组一直致力于设计一种机制和协议来同时保证IPv4和IPv6业务流的安全性。虽然已有一些基于IP选项的关于IPv4安全性的机制,但在实际应用中并不成功。因此,IPSec的出现就是为了弥补IPv4的遗留问题。8 Ed Tattle. Guide to TCP/IP, Sep 2004 D 9 Mark Lewis, CCIE #6280 Troubleshooting Virtual Private Networks, feb 200610 Jeff Doyle CCIE #1919 ,Jennifer Deafen Carroll CCIE#1402 .Routing TCP/IP Volume 1,Second Edition11 RFC2373: IP Version 6 Addressing Architecture12 赵季中, 宋政湘, 齐勇. 对基于TCP/IP协议的几个网络安全问题的分析与讨论, 计算机应用研究, 第17卷, 第5期, 2000.5. E 13 汪晓平. 网络通信协议分析与应用实现.人民邮电出版社 2000.214 谢希仁. 计算机网络教程. 人民邮电出版社 2003.815 祁明.网络安全与保密. 北京:高等教育出版社,200116 雷震甲.网络工程师教程. 北京:清华大学出版社,2004.5而IPSec设计目标是为IPv4和Ipv6提供可互操作的,高质量的,基于密码学的安全性。它工作在IP层,提供访问控制,无连接的完整性,数据源认证,机密性,以及有限的数据流机密性,以及防重放攻击等安全服务。在IP层上提供安全服务,具有较好的安全一致性和共享性及应用范围。这是因为,IP层可为上层协议无缝地提供安全保障,各种应用程序可以享用IP层提供的安全服务和密钥管理,而不必设计自己的安全机制,因此减少密钥协商的开销,也降低了产生安全漏洞的可能性。通过使用两种通信安全协议(AH协议和ESP协议)以及Internet密钥交换(IKE)协议等密钥管理过程和协议,IPSec实现了这些目标。安全协议部分定义了对通信的各种保护方式,密钥协商部分定义了如何为安全协议协商保护参数,以及如何认证通信实体的身份。IPSec (Internet 协议安全)是一个工业标准网络安全协议,为 IP 网络通信提供透明的安全服务,保护 TCP/IP 通信免遭窃听和篡改,可以有效抵御网络攻击,同时保持易用性。IPSec有两个基本目标:1)保护IP数据包安全;2)为抵御网络攻击提供防护措施。由于IPSec结合密码保护服务、安全协议组和动态密钥管理三者来实现上述两个目标,因此他给我们提供了3层网络安全保护屏障来保障我们的网络通信安全:2.2.1 纵深防御首先,让我们了解下什么叫“边界防护”。所谓边界防护,是指使用防火墙、安全路由器(安全网关)以及对拨号用户进行身份认证等。这些措施通常是我们所说的“防外不防内”。然而,IPSec采用的是端-对-端加密模式,其工作原理是:发送方在数据传输前对数据实施加密,在整个传输过程中,报文都是以密文方式传输,直到数据到达目的节点,才由接收端对其进行解密。IPSec对数据的加密以数据包而不是整个数据流为单位,这不仅更灵活,也有助于进一步提高IP数据包的安全性。因此通过提供强有力的加密保护,IPSec可以有效防范网络攻击,保证专用数据在公共网络环境下的安全性。2.2.2 抵御常见网络攻击如前所述,IPSec对数据的加密是通过各种严格的加密算法而实现的。即使有人想去破译它,谈何容易!就攻击方式,我们可以大致分4种(细分则会有很多衍生手法!)首先就是大名鼎鼎的Ethereal:它可以采集并读取数据包中的任何信息,因此对抗Ethereal,最有效的方法就是对数据进行严格的ESP加密。IPSec的封装安全载荷ESP协议通过对IP包进行加密来保证数据的私密性。其次是身份欺骗和中间人攻击:我之所以把他们合二为一,因为他们的机制基本相似,手法也比较雷同。都是通过截取目的方主机的口令进而取得控制权。只是前者是比较笼统的说法,而后者则是通过以太网中ARP欺骗的手法(当然有很多手法,如MAC欺骗,IP地址欺骗等)来实现的。但是IPSec的身份交换和认证机制不会暴露任何信息,不给攻击者有可趁之机,双向认证在通信系统之间建立信任关系,只有可信赖的系统才能彼此通信。因此完全可以抵挡二者的攻击。然后是拒绝服务攻击,就是我们常说的DOS攻击。此种攻击大多是由于错误配置或者软件弱点导致的。某些DoS攻击是由于开发协议固有的缺陷导致的,某些DoS攻击可以通过简单的补丁来解决,还有一些导致攻击的系统缺陷很难被弥补。最后,还有一些非恶意的拒绝服务攻击的情况,这些情况一般是由于带宽或者资源过载产生瓶颈导致的。不过IPSec使用IP包过滤法,依据IP地址范围、协议、甚至特定的协议端口号来决定哪些数据流需要受到保护,哪些数据流可以被允许通过,哪些需要拦截。最后就是数据篡改。IPSec用密钥为每个IP包生成一个数字检查和,该密钥为且仅为数据的发送方和接收方共享。对数据包的任何篡改,都会改变检查和,从而可以让接收方得知包在传输过程中遭到了修改。2.2.3 基于IP层的策略执行策略执行(Strategic Implementation)几乎不需要什么额外开销就可以实现为绝大多数应用系统、服务和上层协议提供较高级别的保护;为现有的应用系统和操作系统配置IPSec几乎无须做任何修改,安全策略可以在Active Directory里集中定义也可以在某台主机上进行本地化管理。我们之所以说IPSec是现有IP层的安全增强协议,其原因就在于此:IPSec策略在OSI参考模型第三层即网络层上实施的安全保护,其范围几乎涵盖了TCP/IP协议簇中所有IP协议和上层协议,如TCP、UDP、ICMP,Raw(第255号协议)、甚至包括在网络层发送数据的客户自定义协议。IPSec设计者当初如此设计它,一是为了使他运行在IP协议上,能让它广泛传播发展;二是为了让所有使用IP协议进行数据传输的应用系统和服务都可以使用IPSec,而不必对这些应用系统和服务本身做任何修改。2.3 IPSec体系结构2.3.1 Authentication Header(AH)协议结构AH协议为IP通信提供数据源认证、数据完整性和反重播保证,它能保护通信免受篡改,但不能防止窃听,适合用于传输非机密数据。2.3.2 Encapsulating SecurityPayload(ESP)协议结构ESP为IP数据包提供完整性检查、认证和加密,可以看作是"超级AH",因为它提供机密性并可防止篡改。2.3.3 ESP隧道模式和AH隧道模式在隧道模式下,整个原数据包被当作有效载荷封装了起来,外面附上新的IP报头。ESP隧道模式中签名不包括新IP头。AH隧道模式为整个数据包提供完整性检查和认证,认证功能优于ESP。但在隧道技术中,AH协议很少单独实现,通常与ESP协议组合使用。3 基于Ethereal的网络安全防御系统3.1 简述Ethereal网络协议分析系统Ethereal是一个开放源码的网络协议分析系统,也是目前最好的开放源码的网络协议分析器,支持Linux和Windows平台。Ethereal基本类似于tcpdump,但Ethereal还具有设计完美的GUI和众多分类信息及过滤选项。用户通过Ethereal,同时将网卡插入混合模式,可以查看到网络中发送的所有通信流量。其最常用的功能是被攻击者用来检测被攻击电脑通过23(telnet)和110(pop3)端口进行的一些明文传输数据,以轻松得到用户的登录口令和邮件账号密码。对于网络管理员来说,它既可以通过对现有TCP/IP协议以及其他网络协议作分析,来作出安全策略,也可以通过捕包分析,来确定一些异常的流量和局域网内部的非正常用户与外界的通信,比如说对于现在比较占用网络带宽的诸如Bit torrent 等P2P应用软件流量,通过使用该软件确定这些流量,网络管理员就可以使用流量控制的方法来规范、合理的分配带宽资源,提高网络的利用率。3.2 Ethereal工作模式Ethereal网络分析系统首先依赖于一套捕捉网络数据包的函数库。从协议上说,这套函数库将一个数据包从链路层接收,至少将其还原至传输层以上,以供上层分析。而且它采用的是双层次化的数据包协议分析方法。因为它取得捕包函数捕回的数据包后就需要进行协议分析和协议还原工作了。另外,Ethereal最值得称道也是它广泛普及的基于插件技术的协议分析器所谓插件技术。因此我认为由于Ethereal采用了插件方式,而良好的结构设计让开发人员只需要关系自己开发的协议模块,不需要关心整个系统结构,需要将模块整合进系统只需要写一个注册函数即可,连初始化时调用这个注册函数都由脚本自动完成了。我想也正是因为有很好的体系结构,这个系统才能够开发出如此多的协议解析器。4 基于IPv6协议的IPSec研究和发展4.1 IPv6的优势简介目前,作为下一代互联网开发的安全协议IPSec是TCP/IP协议族IP层唯一的安全协议,同时适用于IPv4和IPv6,IPSec在IP层提供了IP报文的机密性,完整性,IP报文源地址认证以及有限的抗重播攻击能力.IPSec可以保护在所有支持IP的传输介质上的通信,保护所有运行于IP层上的所有协议在主机间进行安全传输.IPSec网关可以安装在需要安全保护的任何地方,如路由器,防火墙,应用服务器,客户机等.IPSec是IPv6的一个组成部分,IPv6的节点必须支持IPSec.在IPv4上可以使用IPSec,但并不要求强制IPSec,除IPv4与IPv6本身的区别外,IPSec安全体系在IPv4和IPv6中的功能,结构,作用完全相同.而所谓优势,就是IPv4的缺陷或者说是不具备的功能模块。IPv6的优势具体现在1.地址数量的扩充;2.规划简单;3.层次区划;4.即插即用(自动配置新增IP地址);5.Qos保障;最后一点也是我们的重点:IPSec的集成。4.2 IPv6与IPSec协议的关系我们都知道,作为下一代网络协议的核心标准,IPv6应该是方便,安全,快捷,高效的网络通信协议。由于在IPv6协议中,IPSec不仅仅是TCP/IP协议族IP层唯一的安全协议,同时也被强制使用。因此,作为IPv6的一个默认的集成的组成部分,提供支持数据源发认证、完整性和保密性的能力,同时可以抗重放攻击。IPv6内嵌的安全机制主要由以下两个扩展报头来实现:认证头AH(Authentication Header)和封装安全载荷ESP(Encapsulation Security Payload)。其中认证头AH可以实现以下三个功能:保护数据完整性(即不被非法篡改);数据源发认证(即防止源地址假冒)和抗重放(Replay)攻击。AH是在所有数据包头加入一个密码。通过一个只有密匙持有人才知道的"数字签名"来对用户进行认证。这个签名是数据包通过特别的算法得出的独特结果;AH还能维持数据的完整性,因为在传输过程中无论多小的变化被加载,数据包头的数字签名都能把它检测出来。IPv6的验证主要由验证报头(AH)来完成。验证报头是IPv6的一个安全扩展报头,它为IP数据包提供完整性和数据来源验证,防止反重放攻击,避免IP欺骗攻击。而封装安全有效载荷数据(Encapsulating Security Payload)通过对数据包的全部数据和加载内容进行全加密来严格保证传输信息的机密性,这样可以避免其他用户通过监听来打开信息交换的内容,因为只有受信任的用户拥有密匙打开内容。ESP也能提供认证和维持数据的完整性。ESP用来为封装的有效载荷提供机密性、数据完整性验证。AH和ESP两种报文头可以根据应用的需要单独使用,也可以结合使用,结合使用时,ESP应该在AH的保护下。但是IPSec毕竟只是基于IP层的安全协议,因此我认为由于密钥管理问题可能仍然难以广泛部署和实施,许多安全攻击发生在应用层而不是网络层,因为安全的网络是众多安全技术的综合,而IPv6中IPSec机制是其中重要的组成部分。它提供了协议层面上的一致性解决方案,这也是IPv6相比IPv4的重大优越性。而随着IPv6技术的推广和IPv6网络的建设,加之IPv6和IPSec的关系密切,它们之间的相互推动,必将使得IPSec应用更加广泛。基于IPSec的网络安全访问技术理所当然也会因此而得到大力推广和应用。4.3 IPv6的安全机制(1) 将原先独立于IPv4协议族之外的报头认证和安全信息封装作为IPv6的扩展头置于IPv6基本协议之中,为IPv6网络实现全网安全认证和加密封装提供了协议上的保证。(2)地址解析放在ICMP(Internet Control Message Protocol)层中,这使得其与ARP(Address Resolution Protocol)相比,与介质的偶合性更小,而且可以使用标准的IP认证等安全机制。(3)对于协议中的一些可能会给网络带来安全隐患的操作,IPv6 协议本身都做了较好的防护。例如:因为一条链路上多个接口同时启动发送邻居请求消息而带来的链路拥塞隐患,IPv6采用在一定范围内的随机延时发送方法来减轻链路产生拥塞的可能,这同时也减少了多个节点在同一时间竞争同一个地址的可能。(4)在IP协议设计之初并没有考虑安全性,原来的Internet安全机制只建立于应用程序级,如E-mail加密、SNMPv2网络管理安全、接入安全等,无法从IP层来保证Internet的安全。而IPv6在网络安全方面最为显著的就是将IPSec安全协议集成到内部,实现了IP级的安全,IPSec主要有3个方面的安全机制,即数据包确认、数据包的保密和数据包的完整,安全功能具体在其扩展数据包中实现。(5)除了IPSec和IPv6本身对安全所做的措施之外,其他的安全防护机制在IPv6上仍然有效。诸如:NAT-PT(Net Address Translate- Protocol Translate)可以提供和IPv4中的NAT相同的防护功能;通过扩展的ACL(Access Control List)在IPv6上可以实现IPv4 ACL所提供的所有安全防护。另外,基于VPLS(Virtual Private LAN Segment)、VPWS(Virtual Private Wire Service)的安全隧道和VPN(Virtual Private Network)等技术,在IPv6上也可以完全实现。4.4 IPv6的安全网络架构(1)协议安全IPv6的AH(Authentication Header)和ESP(Encapsulating Security Payload)中的扩展头结合多样的加密算法可以在协议层面提供安全保证。(2)网络安全所谓网络安全,就是IPSec隧道和传输模式的各种组合应用,可以提供网络各层面的安全保证。它包括下面四项:1、 端到端的安全保证2、 内部网络保密3、 IPSec安全隧道实现VPN4、 隧道嵌套提供多重安全保护(3)安全加密的硬件通常使用ASIC(专用集成电路)实现加密处理,或者通过网络处理器来实现加密处理和转发。总 结IPv6网络由于IPSec提供的安全服务,能有效防止长期困扰人们的许多网络攻击,如IP欺骗、拒绝服务攻击、数据篡改和网络嗅探活动等。所以,IPSec是目前可提供的最好的网络安全解决方案之一,它努力使Internet上的安全机制标准化,向更安全的Internet迈进了一大步。尽管如此,IPSec中仍可能有许多安全问题需要解决,如FTP, Telnet, DNS, SNMP;实施IPSec会带来系统处理数据报能力的大幅度下降;不同操作系统所支持的IPSec各有千秋,互不兼容,缺乏统一的安全策略标准。但是,IPSec毕竟是目前为止最为先进的IP安全协议体系,在设计思想,体系结构方面的先进性和前瞻性,保证了它今后发展的可延续性和灵活性.例如,针对采用IPSec加密之后数据不能压缩传输的缺点,人们设计了"IP压缩协议(IP Compression Protocol)",简称IP Comp.采用IP Comp会在一定程度上提高IPSec系统处理大量数据的能力.我相信基于IPv6技术的下一代互联网的进步,能够为我们从其体系结构角度根本解决互联网的安全问题提供了机遇:一方面,由于IPv6 和IPSec的关系密切,它们之间的相互推动,必将使得IPSec应用更加广泛.基于IPSec的网络访问技术理所当然也会因此而得到大力推广和应用;另一方面,下一代互联网的建设为新的网络体系结构和网络技术的快速发展和安全保障提供了机会和平台。参考文献