资源描述
网络安全传输通道技术的研究2007-9-12 16:15:49【大 中 小】【您是本文第位读者】摘要:安全传输通道是对待传输的原始信息进行加密和协议封装处理,从而实现安全传输的技术,本文从 介 绍TCP/IP协议栈的分层体系结构出发,分 别 在TCP/IP的各个层次上提出了实现安全传输通道的技术和解决方案。特别是对网络层的安全传输通道技术提出了实现机制。关键词:安全传输通道、TCP/IP协议栈、安全协议、PPTP、L2TP、IPSec、S SL、SSH1 概述随着因特网的高速发展,网络上开发的应用越来越多,一些关键业务也开始通过因特网提供。而Internet的一大特性是他的开放性,正是这种开放性给因特网上服务的安全构成了严重威胁。为了保证它健康有序的发展,必须在网络安全上提供强有力的保证。所谓网络安全传输通道,就是利用安全通道技术(Secure Tunneling Technology),通过将待传输的原始信息进行加密和协议封装处理后再嵌套装入另一种协议的数据包送入网络中,像普通数据包一样进行传输。经过这样的处理,只有源端和目的端的用户对通道中的嵌套信息能够进行解释和处理,而对于其他用户而言只是无意义的信息。网络安全传输通道应该提供以下功能和特性:1.机密性:通过对信息加密保证只有预期的接收者才能读出数据。2.完整性:保护信息在传输过程中免遭未经授权的修改,从而保证接收到的信息与发送的信息完全相同。3.对数据源的身份验证:通过保证每个计算机的真实身份来检杳信息的来源以及完整性。4.反重发攻击:通过保证每个数据包的唯一性来确保攻击者捕获的数据包不能重发或重用。在因特网上普遍采用的是TCP/IP协议,TCP/IP协议的体系结构相对于OSI/ISO体系结构的7层模型是比较简单而实用的,其模型如下:此体系结构中,最下面的主机到网络层实际I:包括了 O SI模型中的2层:数据链路层和物理层。本文将从TCP/IP的各个层次介绍相关的安全传输通道技术。2 在数据链路层实现安全传输通道的技术1数据链路层技术涉及到软件和硬件两个方面,硬件方面不在本文中讨论。当前能在此层提供安全通道技术的安全协议主要有:PPTP和 L2TP。它们主要是为了组建远程访问VPN而提出的。PPTP是 第 2 层协议,它 将 PPP帧封装在1P数据报里以在I P 网络中传输。它是微软开发的一个较旧的协议。相反,L2TP是基于Cisco的“第 2 层转发(L2F)”协议和微软的PPTP协议的较新协议。它可以封装在I P、X.25、帧中继、异步传输模式等上发送的PPP帧。虽 然 L2Tp比 PPTP更灵活,但它比PPTP需要更多的C PU 能力。L2TP和 PPTP的主要技术性区别如下:1.PPTP要求传输网络基于I P,而 L2TP只要求传输网络提供点对点连通性;2.PPTP只支持VPN客户机和VPN服务器之间的一个隧道,L21P允许在终点间使用多个隧道。使用 L2TP可以为不同服务质量而创建不同的隧道或满足不同安全要求;3.L2TP提供信息头压缩,当启用信息头压缩时,L2TP以 4 字节开销运行相当于PPTP以 6 字节运行。2.1 PPTP的封装原 始 IP 数据报在PPTP客户机和PPTP服务器之间传输时,PPTP封装它。图 1 显示了 PPTP信息包的封装格式:IP*PPPIPrTCP 或 UDP c用户数据1原始数据报,图1 PPT P的封装格式在上图中,原始数据报首先封装在P P P帧里。使 用P P P可压缩和加密该部分数据。然后将P P P帧封装 在GRE(Generic Routing Encapsulation)帧里,该帧是PPTP客户机和PPTP服务器之间发送的新IP数据报的有效负载。该新数据报的源和目标I P地址将和PPTP客户机及PPTP服务器的I P地址相对应。执行中该数据报将进一步封装在数据链路层帧里并且有正确的信息头和信息尾。2.2 L2TP的封装和PPTP相似,当经过传输网络传送时,L2TP封装原始I P数据报。由于在L2TP中,是*IPSec提供加密功能,所 以L2TP封装分两个阶段完成:初 始L2TP封装和IPSec封装。阶 段I:初 始L2Tp封装IP-UDP。L2Tp PPP-TCP 或 UDP+用户数据目。初始数据报,阶 段2:IPSec封装阶 段2:更 酗 封 装,IP-ESP 头,UDP+L2TP,ppp*TCP 或 UDP+用户数据ESP尾史瞌验证信息.i初始数据报,使 用 更 腺 加 密-图2 L 2 T p的两阶段封装如 图2所示,L2TP首先将原始数据报封装在P P P帧 里(和PPTP 一样);然后将P P P帧插入到有U D P信息头和L2TP信息头的新I P数据报。然后结果数据报再应用IPSec加密。在这里,应用了 IPSec标准中的封装安全载荷(ESP)协议的信息头和信息尾以及IPSec验证信息尾,这样就保证了信息的完整性和机密性以及信息源的身份验证。最外层I P报头所包含的源和目标IP地址与V PN客户机和VPN服务器相对应。3在网络层实现安全传输通道的技术2当前,在网络层实现安全已经成为一大研究热点,并 且Internet工程任务组(IETF)于1998年公布了因特网安全体系结构IPSec规范,这更加速了这方面的研究和实施。3.1 IPSec 简介它是由IET F的IPSec工作组提出的将安全机制引入TCP/IP网络的一系列标准,包括安全协议(验证头A H和封装安全净荷ESP)、安全联盟、密钥管理和安全算法等,它定义了 I P数据包格式和相关基础结构,以便为网络通信提供端对端、加强的身份验证、完整性、反重播和保密性等。使 用IET F定义的Internet密钥交换(1KE),还提供按需要的安全协商和自动密钥管理服务。IPSec可保障主机之间、安全网关之间(如路由器或防火墙)或主机与安全网关之间的数据报的安全。它可以实现各种方式的VPN:ExtraNet V PN、IntraNet VPN 和远程访问 VPN。3.2 安全协议包括验证头(AH)和封装安全载荷(ESP)。他们既可用来保护一个完整的I P载荷,亦可用来保护某个I P载荷的上层协议。这两方面的保护分别是由IPSec两种不同的实现模式来提供的,如 图3所示:传送模式用来保护上层协议;而隧道模式用来保护整个I P数据包。在传送模式中,I P头与上层协议之间需插入一个特殊的IPSec头;而在通道模式中,要保护的整个I P包都需封装到另一个I P数据报里,同时在外部与内部I P头之间插入一个IPSec头。两种安全协议均能以传送模式或隧道模式工作。I P头d TC P头”数据2初始数据报“IP头a更 版 头 TC P 头。数据。2传送模式下经史四,处理后的数据报格式,外 层I P头2 IPSOJTP内 层F头PTC P 头。数据隧道模式下经脸照处理后的数据报格式”S3两种模式下的数据报格式一封装安全载荷(Encapsulating Security Pay load,简 称ESP):属 于IPSec的种安全协议,它可确保I P数据报的机密性、数据的完整性以及对数据源的身份验证。此外,它也能负责对重放攻击的抵抗。具体做法是在I P头(以及任何选项)之后,并在要保护的数据之前,插入一个新头,亦 即E S P头。受保护的数据可以是一个上层协议,或者是整个I P数据报。最后,还要在后面追加一个E SP尾,格式如图4所示。E S P是 种新的协议,对它的标识是通过I P头的协议字段来进行的。假如它的值为50,就表明这是一个E SP包,而且紧接在I P头后面的是一个E S P头。I P头E S P头要保护的数据E S P尾图4 一个受E S P保护的I P包验证头(Authentication Header,简 称AH):与E SP类似,A H也提供了数据完整性、数据源验证以及抗重放攻击的能力。但要注意它不能用来保证数据的机密性。正是由于这个原因,A H比E S P简单得多,A H只有头,而没有尾,格式如图5所示。4卜 头A H头要保护的数据图5 个受A H保护的I P包3.3 安全联盟(Security Association,简 称SA)的概念为了正确封装及提取IPSec数据报,有必要采取套专门的方案,将安全服务/密钥与要保护的通信数据联系到一起;同时要将远程通信实体与要交换密钥的IPSec数据传输联系到一起。换言之,要解决如何保护通信数据、保护什么样的通信数据以及由谁来实行保护的问题,这样的构建方案称为“安全联盟”。3.4 Internet 密钥交换(Internet Key Exchange,简称 IKE)IK E的用途就是在IPSec通信双方之间建立起共享的安全参数及验证过的密钥(亦即建立“安全联盟”关系)。IK E协议是Oaklay和SKEM E协议的种混合,并在由ISAKMP规定的框架内运作。ISAKMP是“Internet安全联盟和密钥管理协议”的简称,它定义了包格式、重发计数器以及消息构建要求,事实上,它定义了整套加密通信语言。IK E采用了“安全联盟SA”的概念,1KESA定义了双方的通信形式。举例来说,用哪种算法来加密IK E通信;怎样对远程通信方的身份进行验证;等等。随后,便可用IKESA在通信双方之间提供任何数量的IPSec S A。5运 用IPSec进行安全通信的大体步骤是:建立IKE SA:在已经建立好的IK ESA上建立IPSecSA;在已经建立好的IPSec S A上,进行实际的通信;通信完毕,撤 消IPSec SA;当此IKESA上的所有IPSec S A都撤消以后,最后撤消1K ESA。3.5 IPSec的实现机制IPSec既可在主机系统上实现,亦可在某种安全网关上实现(如路由器或防火墙)。由于IPSec的实现是与系统密切相关的,所以在主机上和在安全网关上的实现机制是不相同的,这里仅简述主机上的实现机制。3.5.1 主机实现6可分为两类。1)与操作系统集成:由 于IPSec是 个网络层协议,所以可作为网络层的部分来实现,如下图6。它需要IP层的服务来构建I P头,实现机制与其它网络层协议(如ICMP)相似,需要访问I P堆栈。2)堆栈中的块(Bump In The Stack,简 称BITS):倘若根本无法访问一台主机的I P堆栈,便需将IPSec作 为“堆栈内的块”来实现。通常以一个额外的“填充物”的形式出现,插入到网络层和数据链路层之间,负责从I P堆栈提取数据报,处理后再将其插入,如 图7所示。应用层应用层传输层传输层网络层+IPSec网络层数据链路层IPSec图6 O S集成实现的分层数据链路层图7 B ITS实现的分层图7 BITS实现的分层与O S集成方案有许多好处,其中关键的是:由于IPSec与网络层紧密集成到一起,因此它更有利于诸如分段、PM TU和用户场景(如套接子)之类的网络服务,使实现方案更为有效。但需要访问I P堆栈,即开发人员能拿到IP堆栈的源代码。堆栈中的块实现方案不必访问I P堆栈,开发人员只要掌握操作系统的链接机制,将IPSec组件插入网络层和数据链路层之间即可。但它最大的问题是功能的重复,要求实现网络层的大部分功能,比如分段和路由,而这些问题又是很难解决的。3.5.2在操作系统中实现由 于IPSec的实现是与操作系统密切相关,所以必须研究各操作系统提供的实现机制。1)Windows NT/2000系统:由于微软采用了相对比较封闭的策略,它的内核源码一般是拿不到,所以开发人员只能利用系统公布的编程接口。在内核中有两个公共的接口:网络驱动程序接口规范N D IS和传输驱动程序接口 TDI o TCP/IP堆栈就是在这两个接口之间实现的,而此堆栈几乎是无法插入的,开发人员只能在NDIS接口上做文章。72)LINUX系统:由 于LINUX的所有内核源码都可以免费得到,所以协议模块开发人员是完全可以在它上实现IPSec的。在LINUX中,各层协议之间以及协议层与网络设备驱动程序之间只传递套
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关搜索