您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 网络安全传输通道技术的研究
1概述随着因特网的高速发展,网络上开发的应用越来越多,一些关键业务也开始通过因特网提供。而Internet的一大特性是他的开放性,正是这种开放性给因特网上服务的安全构成了严重威胁。为了保证它健康有序的发展,必须在网络安全上提供强有力的保证。所谓网络安全传输通道,就是利用安全通道技术(SecureTunnelingTechnology),通过将待传输的原始信息进行加密和协议封装处理后再嵌套装入另一种协议的数据包送入网络中,像普通数据包一样进行传输。经过这样的处理,只有源端和目的端的用户对通道中的嵌套信息能够进行解释和处理,而对于其他用户而言只是无意义的信息。网络安全传输通道应该提供以下功能和特性:1.机密性:通过对信息加密保证只有预期的接收者才能读出数据。2.完整性:保护信息在传输过程中免遭未经授权的修改,从而保证接收到的信息与发送的信息完全相同。3.对数据源的身份验证:通过保证每个计算机的真实身份来检查信息的来源以及完整性。4.反重发攻击:通过保证每个数据包的唯一性来确保攻击者捕获的数据包不能重发或重用。在因特网上普遍采用的是TCP/IP协议,TCP/IP协议的体系结构相对于OSI/ISO体系结构的7层模型是比较简单而实用的,其模型如下:应用层传输层网络层主机到网络层此体系结构中,最下面的主机到网络层实际上包括了OSI模型中的2层:数据链路层和物理层。本文将从TCP/IP的各个层次介绍相关的安全传输通道技术。2在数据链路层实现安全传输通道的技术[1]数据链路层技术涉及到软件和硬件两个方面,硬件方面不在本文中讨论。当前能在此层提供安全通道技术的安全协议主要有:PPTP和L2TP。它们主要是为了组建远程访问VPN而提出的。PPTP是第2层协议,它将PPP帧封装在IP数据报里以在IP网络中传输。它是微软开发的一个较旧的协议。相反,L2TP是基于Cisco的“第2层转发(L2F)”协议和微软的PPTP协议的较新协议。它可以封装在IP、X.25、帧中继、异步传输模式等上发送的PPP帧。虽然L2TP比PPTP更灵活,但它比PPTP需要更多的CPU能力。L2TP和PPTP的主要技术性区别如下:1.PPTP要求传输网络基于IP,而L2TP只要求传输网络提供点对点连通性;2.PPTP只支持VPN客户机和VPN服务器之间的一个隧道,L2TP允许在终点间使用多个隧道。使用L2TP可以为不同服务质量而创建不同的隧道或满足不同安全要求;3.L2TP提供信息头压缩,当启用信息头压缩时,L2TP以4字节开销运行相当于PPTP以6字节运行。2.1PPTP的封装原始IP数据报在PPTP客户机和PPTP服务器之间传输时,PPTP封装它。图1显示了PPTP信息包的封装格式:图1PPTP的封装格式在上图中,原始数据报首先封装在PPP帧里。使用PPP可压缩和加密该部分数据。然后将PPP帧封装在GRE(GenericRoutingEncapsulation)帧里,该帧是PPTP客户机和PPTP服务器之间发送的新IP数据报的有效负载。该新数据报的源和目标IP地址将和PPTP客户机及PPTP服务器的IP地址相对应。执行中该数据报将进一步封装在数据链路层帧里并且有正确的信息头和信息尾。2.2L2TP的封装和PPTP相似,当经过传输网络传送时,L2TP封装原始IP数据报。由于在L2TP中,是靠IPSec提供加密功能,所以L2TP封装分两个阶段完成:初始L2TP封装和IPSec封装。阶段1:初始L2TP封装阶段2:IPSec封装图2L2TP的两阶段封装如图2所示,L2TP首先将原始数据报封装在PPP帧里(和PPTP一样);然后将PPP帧插入到有UDP信息头和L2TP信息头的新IP数据报。然后结果数据报再应用IPSec加密。在这里,应用了IPSec标准中的封装安全载荷(ESP)协议的信息头和信息尾以及IPSec验证信息尾,这样就保证了信息的完整性和机密性以及信息源的身份验证。最外层IP报头所包含的源和目标IP地址与VPN客户机和VPN服务器相对应。3在网络层实现安全传输通道的技术[2]当前,在网络层实现安全已经成为一大研究热点,并且Internet工程任务组(IETF)于1998年公布了因特网安全体系结构——IPSec规范,这更加速了这方面的研究和实施。3.1IPSec简介它是由IETF的IPSec工作组提出的将安全机制引入TCP/IP网络的一系列标准,包括安全协议(验证头AH和封装安全净荷ESP)、安全联盟、密钥管理和安全算法等,它定义了IP数据包格式和相关基础结构,以便为网络通信提供端对端、加强的身份验证、完整性、反重播和保密性等。使用IETF定义的Internet密钥交换(IKE),还提供按需要的安全协商和自动密钥管理服务。IPSec可保障主机之间、安全网关之间(如路由器或防火墙)或主机与安全网关之间的数据报的安全。它可以实现各种方式的VPN:ExtraNetVPN、IntraNetVPN和远程访问VPN。3.2安全协议包括验证头(AH)和封装安全载荷(ESP)。他们既可用来保护一个完整的IP载荷,亦可用来保护某个IP载荷的上层协议。这两方面的保护分别是由IPSec两种不同的实现模式来提供的,如图3所示:传送模式用来保护上层协议;而隧道模式用来保护整个IP数据包。在传送模式中,IP头与上层协议之间需插入一个特殊的IPSec头;而在通道模式中,要保护的整个IP包都需封装到另一个IP数据报里,同时在外部与内部IP头之间插入一个IPSec头。两种安全协议均能以传送模式或隧道模式工作。封装安全载荷(EncapsulatingSecurityPayload,简称ESP):属于IPSec的一种安全协议,它可确保IP数据报的机密性、数据的完整性以及对数据源的身份验证。此外,它也能负责对重放攻击的抵抗。具体做法是在IP头(以及任何选项)之后,并在要保护的数据之前,插入一个新头,亦即ESP头。受保护的数据可以是一个上层协议,或者是整个IP数据报。最后,还要在后面追加一个ESP尾,格式如图4所示。ESP是一种新的协议,对它的标识是通过IP头的协议字段来进行的。假如它的值为50,就表明这是一个ESP包,而且紧接在IP头后面的是一个ESP头。[3]IP头ESP头要保护的数据ESP尾图4一个受ESP保护的IP包验证头(AuthenticationHeader,简称AH):与ESP类似,AH也提供了数据完整性、数据源验证以及抗重放攻击的能力。但要注意它不能用来保证数据的机密性。正是由于这个原因,AH比ESP简单得多,AH只有头,而没有尾,格式如图5所示。[4]IP头AH头要保护的数据图5一个受AH保护的IP包3.3安全联盟(SecurityAssociation,简称SA)的概念为了正确封装及提取IPSec数据报,有必要采取一套专门的方案,将安全服务/密钥与要保护的通信数据联系到一起;同时要将远程通信实体与要交换密钥的IPSec数据传输联系到一起。换言之,要解决如何保护通信数据、保护什么样的通信数据以及由谁来实行保护的问题,这样的构建方案称为“安全联盟”。3.4Internet密钥交换(InternetKeyExchange,简称IKE)IKE的用途就是在IPSec通信双方之间建立起共享的安全参数及验证过的密钥(亦即建立“安全联盟”关系)。IKE协议是Oaklay和SKEME协议的一种混合,并在由ISAKMP规定的框架内运作。ISAKMP是“Internet安全联盟和密钥管理协议”的简称,它定义了包格式、重发计数器以及消息构建要求,事实上,它定义了整套加密通信语言。IKE采用了“安全联盟SA”的概念,IKESA定义了双方的通信形式。举例来说,用哪种算法来加密IKE通信;怎样对远程通信方的身份进行验证;等等。随后,便可用IKESA在通信双方之间提供任何数量的IPSecSA。[5]运用IPSec进行安全通信的大体步骤是:①建立IKESA;②在已经建立好的IKESA上建立IPSecSA;③在已经建立好的IPSecSA上,进行实际的通信;④通信完毕,撤消IPSecSA;⑤当此IKESA上的所有IPSecSA都撤消以后,最后撤消IKESA。3.5IPSec的实现机制IPSec既可在主机系统上实现,亦可在某种安全网关上实现(如路由器或防火墙)。由于IPSec的实现是与系统密切相关的,所以在主机上和在安全网关上的实现机制是不相同的,这里仅简述主机上的实现机制。3.5.1主机实现[6]可分为两类。1)与操作系统集成:由于IPSec是一个网络层协议,所以可作为网络层的一部分来实现,如下图6。它需要IP层的服务来构建IP头,实现机制与其它网络层协议(如ICMP)相似,需要访问IP堆栈。2)堆栈中的块(BumpInTheStack,简称BITS):倘若根本无法访问一台主机的IP堆栈,便需将IPSec作为“堆栈内的块”来实现。通常以一个额外的“填充物”的形式出现,插入到网络层和数据链路层之间,负责从IP堆栈提取数据报,处理后再将其插入,如图7所示。应用层应用层传输层传输层网络层+IPSec网络层数据链路层IPSec图6OS集成实现的分层数据链路层图7BITS实现的分层与OS集成方案有许多好处,其中关键的是:由于IPSec与网络层紧密集成到一起,因此它更有利于诸如分段、PMTU和用户场景(如套接子)之类的网络服务,使实现方案更为有效。但需要访问IP堆栈,即开发人员能拿到IP堆栈的源代码。堆栈中的块实现方案不必访问IP堆栈,开发人员只要掌握操作系统的链接机制,将IPSec组件插入网络层和数据链路层之间即可。但它最大的问题是功能的重复,要求实现网络层的大部分功能,比如分段和路由,而这些问题又是很难解决的。3.5.2在操作系统中实现由于IPSec的实现是与操作系统密切相关,所以必须研究各操作系统提供的实现机制。1)WindowsNT/2000系统:由于微软采用了相对比较封闭的策略,它的内核源码一般是拿不到,所以开发人员只能利用系统公布的编程接口。在内核中有两个公共的接口:网络驱动程序接口规范NDIS和传输驱动程序接口TDI。TCP/IP堆栈就是在这两个接口之间实现的,而此堆栈几乎是无法插入的,开发人员只能在NDIS接口上做文章。[7]2)LINUX系统:由于LINUX的所有内核源码都可以免费得到,所以协议模块开发人员是完全可以在它上实现IPSec的。在LINUX中,各层协议之间以及协议层与网络设备驱动程序之间只传递套接字缓冲区,即一个比较复杂的数据结构sk_buff,在sk_buff中有指针和长度域等,这样各层协议即可通过标准函数或方法使用数据。另外,LINUX在文件net/ipv4/protocol.c中也提供了协议模块的注册和注销机制。一旦模块编程完毕,重新编译内核即可。[8]4在传输层实现安全传输通道当前,在传输层能够实现安全传输通道的协议是Netscape通信公司制定的安全套接层协议(SecureSocketLayer,简称SSL),它建立在可靠的传输服务(如TCP/IP所提供)基础之上。SSL当前为版本3(SSLv3)于1995年12月制定。它主要由以下两个协议组成:SSL记录协议:它涉及应用程序提供的信息的分段、压缩、数据认证和加密。SSLv3提供对数据认证用的MD5和SHA以及数据加密用的R4和DES等的支持,用来对数据进行认证和加密的密钥可以通过SSL的握手协议来协商。SSL握手协议:用来交换版本号、加密算法、(相互)身份认证并交换密钥。SSLv3提供对Deffie-Hellman密钥交换算法、基于RSA的密钥交换机制和另一种实现在Fortezzachip上的密钥交换机制的支持。1996年4月,IETF授权一个传输层安全(TLS)工作组着手制定一个传输层安全协议(TLSP),以便作为标准提案向IESG正式提交。TLSP将会在许多地方酷似SSL。因特网层安全机制的主要优点是它的透明性,即安全服务的提供不要求应用层做任何改变,这对传输层来说是做不到的。原则上,任何TCP/IP应用,只要应用传输层安全协议,
本文标题:网络安全传输通道技术的研究
链接地址:https://www.777doc.com/doc-2142232 .html