毕业设计论文基于IPsec的VPN技术的应用与研究.doc
第1章 绪论11 课题的提出随着计算机网络技术的高速发展,利用广泛开放的网络环境进行全球通信已成为时代发展的趋势。但是,网络在提供开放的和共享的资源的同时,也不可避免的存在着安全隐患。目前,安全问题已给网络经济造成严重的威胁,如何保护网络安全。特别是通过网络传输的信息的安全,成为人们关注的焦点。因此,研究和开发广泛适用的网络信息安全产品具有很大的使用价值。通信技术以及计算机网络技术迅猛发展,Internet的用户数量急剧增加,许多新的网络服务如电子商务,电子支付等接踵出现。但随着计算机网络开发性,共享性以及互联规模的进一步扩大,加上黑客攻击手段越来越先进,网络安全的问题变的越来越严重。鉴于此,网络安全成为计算机网络领域研究和发展的一个重要方向。然而VPN的出现解决了网络安全中的很多问题。虚拟专用网(VPN)被定义为通过一个公用网络(通常是Internet)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。它使分布在不同地方的专用网络能在不可信任的公共网络上安全的通信,从而可以帮助远程公司,用户,商业伙伴及供应商同公司的内部建立可信的安全连接,并保证数据的安全的传输。12 本文研究的内容网络已经成为社会和经济发展的强大动力,其地位越来越重要。伴随着网络的不断发展,其中的安全问题也越来越严重。网络安全问题已经引起了全世界各国政府和企业的广泛关注,从而各种网络安全技术(放火墙技术,数据加密技术,入侵检测与审计技术,虚拟专用网技术等)都得到长足发展。特别是VPN(虚拟专用网,基于IPSec的实现)技术,作为一种近几年才出现的网络安全技术,更是成为了网络安全技术的热点。本文从网络安全问题出发,对基于IPSec协议的VPN技术的研究,其中包括网络安全存在的问题,解决方法。还有关于VPN的的关键技术,各种VPN安全协议,VPN的分类。IPSec协议的体系结构(IPSec的组成,两种安全协议的安全功能,包格式,应用模式及对数据包的处理过程)。最后是基于IPSec协议VPN网关的实现。第2章 网络安全概述2.1 网络信息安全的含义 网络安全是指网络系统的硬件,软件和系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏,更改,泄露,系统连续可靠正常的运行,网络服务不中断。网络安全的含义是通过各种计算机,网络,密码技术和信息安全技术,保护在公用通信网络中传输,交换和存储的信息的机密性和真实性,并对信息的传播及内容具有控制能力,网络安全的结构层次包括:物理安全,安全控制和安全服务。 网络信息安全包括5个要素:机密性、完整性、可用性、可控性及可审查性。(1)机密性:是指网络信息的内容不会被未授权的第三方所知。网络信息的完整性,是指信息在存储或传输时不被修改、破坏,不出现信息包的丢失、乱序等,即不能为未授权的第三方修改。(2)完整性:只有得到允许的人才能修改数据,并且能够判别出数据是否以被篡改。(3)可用性:得到受权的实体在需要时可访问数据,既攻击者不能占用所有的资源而阻碍受权者的工作。(4)可控性:可以控制授权范围内的信息流向及行为方式。(5)可审查性:对出现的网络安全问题提供调查的依据和手段。2.2 网络安全的安全措施 通常保障网络信息安全的措施有两大类:以“防火墙”技术为代表的被动防卫型和建立在数据加密、用户授权确认机制上的开放型网络安全保障技术。2.2.1 防火墙技术“防火墙”(Firewall)是一种形象的说法,其实它是一种由计算机硬件和软件的组合,使互联网与内部网之间建立起一个安全网关(scurity gateway),从而保护内部网免受非法用户的侵入。“防火墙”安全保障技术主要是为了保护与互联网相连的企业内部网络或单独节点,它具有简单实用的特点,并且透明度高,可以在不修改原有网络应用系统的情况下达到一定的安全要求。防火墙一方面通过检查、分析、过滤从内部网流出的IP包,尽可能地对外部网络屏蔽被保护网络或节点的信息、结构,另一方面对内屏蔽外部某些危险地址,实现对内部网络的保护。目前技术最为复杂而且安全级别最高的防火墙是隐蔽智能网关,它将网关隐藏在公共系统之后使其免遭直接攻击。隐蔽智能网关提供了对互联网服务进行几乎透明的访问,同时阻止了外部未授权访问者对专用网络的非法访问。一般来说,这种防火墙是最不容易被破坏的。2.2.2 数据加密技术与防火墙配合使用的安全技术还有数据加密技术,是为提高信息系统及数据的安全性和保密性、防止秘密数据被外部破析所采用的主要技术手段之一。按作用不同,数据加密技术主要分为数据传输、数据存储、数据完整性的鉴别以及密钥管理技术四种。 (1)数据传输加密技术。目的是对传输中的数据流加密,常用的方针有线路加密和端端加密两种。前者侧重在线路上而不考虑信源与信宿,是对保密信息通过各线路采用不同的加密密钥提供安全保护;后者则指信息由发送者端自动加密,并进入TCP/IP数据包回封,然后作为不可阅读和不可识别的数据穿过互联网,当这些信息一旦到达目的地,被将自动重组、解密、成为可读数据。 (2)数据存储加密。目的是防止在存储环节上的数据失密,可分为密文存储和存取控制两种。者一般是通过加密算法转换、附加密码、加密模块等法实现;后者则是对用户资格、格限加以审查和限防止非法用户存取数据或合法用户越权存取数据。 (3)数据完整性鉴别技术。目的是对介入信息传送、存取、处理的人的身份和相关数据内容进行验证,达到保密的要求,一般包括口令、密钥、身份、数据等项的鉴别,系统通过对比验证对象输入的特征值是否符合预先设定的参数,实现对数据的安全保护。 (4)密钥管理技术。为了数据使用的方便,数据密在许多场合集中表现为密钥应用,因此密钥往往保密的主要对象。密钥的媒体有:磁卡、磁带、磁盘导体存储器等。密钥的管理技术包括密钥的产生配保存、更换与销毁等各环节上的保密措施。2.2.3 认证技术 认证技术主要解决网络通信过程中通信双方的身份认证。认证过程通常涉及到加密和密钥交换。通常加密可以使用对称加密,不对称加密以及两种方法的混合。认证方式一般有帐户名/口令认证、使用摘要算法的认证、基于PKI(Public Key Infrastructure,公钥基础设施)的认证。第3章 VPN技术的实现3.1 VPN技术简介VPN(Virtual Private Network,虚拟专用网)是指将物理上分布在不同地点的网络通过公用骨干网连接而成逻辑上的虚拟子网,这里的公网主要指Internet。其特点是利用Internet作为介质,构造数据传输隧道,对数据进行加密和验证。为了保证信息在Internet上传输的安全性,VPN技术采用了认证,存取控制,机密性,数据完整性等措施,保证了信息在传输的过程中不被偷看,篡改,复制。虚拟专用网(VPN)是利用公众网资源为客户构成专用网的一种业务。它有三种基本配置:主机到主机,主机到网关,网关到网关。我们这里所提的VPN有两层含义: (1)它是虚拟的网,即没有固定的物理连接,网路只有用户需要时才建立; (2)它是利用公众网络设施构成的专用网。 VPN实际上就是一种服务,用户感觉好象直接和他们的个人网络相连,但实际上是通过服务商来实现连接的。VPN可以为企业和服务提供商带来以下益处: (1)采用远程访问的公司提前支付了购买和支持整个企业远程访问基础结构的全部费用; (2)公司能利用无处不在的Internet通过单一网络结构为职员和商业伙伴提供无缝和安全的连接; (3)对于企业,基于拨号VPN的Extranet能加强与用户、商业伙伴和供应商的联系; 电话公司通过开展拨号VPN服务可以减轻终端阻塞; (4)通过为公司提供安全的外界远程访问服务,ISP能增加收入;通过Extranet分层和相关竞争服务,ISP也可以提供不同的拨号VPN。 VPN兼备了公众网和专用网的许多特点,将公众网可靠的性能、丰富的功能与专用网的灵活、高效结合在一起,是介于公众网与专用网之间的一种网。 VPN能够充分利用现有网路资源,提供经济、灵活的连网方式,为客户节省设备、人员和管理所需的投资,降低用户的电信费用,在近几年得到了迅速的应用。 有专家认为,VPN将是本世纪末发展速度最快的业务之一。 3.2 VPN的关键技术VPN技术是指支持在公共网通信及基础设施上构成虚拟专用连接和虚拟专用网络的技术。其中关键技术包括两种:隧道技术和安全技术。这些技术可以应用在TCP/IP协议层的数据链路层,IP层,TCP层和应用层。3.2.1 隧道技术隧道技术是一种通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将这些其它协议的数据桢或包重新封装在新的包文中发送。新的包头提供了路由信息,从而使封装的负载数据能够通过互联网络传递。被封装的数据包在隧道的两个端点之间通过公共互联网络进行路由。被封装的数据包在公共互联网络上传递时所经过的逻辑路径称为隧道。一旦到达网络终点,数据将被解包并转发到最终目的地。注意隧道技术是指包括数据封装,传输和解包在内的全过程。图2-1给出的是一个网关到网关的VPN实例。图2-1中的两个网络通过一个VPN互连起来,该VPN连接在放火墙的任一一端终止。图 2-1隧道所使用的传输网络可以是任何类型的公共互联网络,本文主要以目前普遍使用Internet为例进行说明。此外,在企业网络同样可以创建隧道。隧道技术在经过一段时间的发展和完善之后,目前较为成熟的技术包括: (1)IP网络上的SNA隧道技术 当系统网络结构(SystemNetworkArchitecture)的数据流通过企业IP网络传送时,SNA数据桢将被封装在UDP和IP协议包头中。 (2)IP网络上的NovellNetWareIPX隧道技术 当一个IPX数据包被发送到NetWare服务器或IPX路由器时,服务器或路由器用UDP和IP包头封装IPX数据包后通过IP网络发送。另一端的IP-TO-IPX路由器在去除UDP和IP包头之后,把数据包转发到IPX目的地。 近几年不断出现了一些新的隧道技术,本文将主要介绍这些新技术。具体包括: (1)点对点隧道协议(PPTP) PPTP协议允许对IP,IPX或NetBEUI数据流进行加密,然后封装在IP包头中通过企业IP网络或公共互联网络发送。 (2)第2层隧道协议(L2TP) L2TP协议允许对IP,IPX或NetBEUI数据流进行加密,然后通过支持点对点数据报传递的任意网络发送,如IP,X.25,桢中继或ATM。 (3)安全IP(IPSec)隧道模式 IPSec隧道模式允许对IP负载数据进行加密,然后封装在IP包头中通过企业IP网络或公共IP互联网络如Internet发送。3.2.2 VPN隧道的类型(1)自愿隧道(Voluntarytunnel) 用户或客户端计算机可以通过发送VPN请求配置和创建一条自愿隧道。此时,用户端计算机作为隧道客户方成为隧道的一个端点。 (2)强制隧道(Compulsorytunnel) 由支持VPN的拨号接入服务器配置和创建一条强制隧道。此时,用户端的计算机不作为隧道端点,而是由位于客户计算机和隧道服务器之间的远程接入服务器作为隧道客户端,成为隧道的一个端点。 目前,自愿隧道是最普遍使用的隧道类型。以下,将对上述两种隧道类型进行详细介绍。 自愿隧道: 当一台工作站或路由器使用隧道客户软件创建到目标隧道服务器的虚拟连接时建立自愿隧道。为实现这一目的,客户端计算机必须安装适当的隧道协议。自愿隧道需要有一条IP连接(通过局域网或拨号线路)。使用拨号方式时,客户端必须在建立隧道之前创建与公共互联网络的拨号连接。一个最典型的例子是Internet拨号用户必须在创建Internet隧道之前拨通本地ISP取得与Internet的连接。 对企业内部网络来说,客户机已经具有同企业网络的连接,由企业网络为封装负载数据提供到目标隧道服务器路由。 大多数人误认为VPN只能使用拨号连接。其实,VPN只要求支持IP的互联网络。一些客户机(如家用PC)可以通过使用拨号方式连接Internet建立IP传输。这只是为创建隧道所做的初步准备,并不属于隧道协议。 强制隧道: 目前,一些商家提供能够代替拨号客户创建隧道的拨号接入服务器。这些能够为客户端计算机提供隧道的计算机或网络设备包括支持PPTP协议的前端处理器(FEP),支持L2TP协议的L2TP接入集线器(LAC)或支持IPSec的安全IP网关。为正常的发挥功能,FEP必须安装适当的隧道协议,同时必须能够当客户计算机建立起连接时创建隧道。 以Internet为例,客户机向位于本地ISP的能够提供隧道技术的NAS发出拨号呼叫。例如,企业可以与某个ISP签定协议,由ISP为企业在全国范围内设置一套FEP。这些FEP可以通过Internet互联网络创建一条到隧道服务器的隧道,隧道服务器与企业的专用网络相连。这样,就可以将不同地方合并成企业网络端的一条单一的Internet连接。 因为客户只能使用由FEP创建的隧道,所以称为强制隧道。一旦最初的连接成功,所有客户端的数据流将自动的通过隧道发送。使用强制隧道,客户端计算机建立单一的PPP连接,当客户拨入NAS时,一条隧道将被创建,所有的数据流自动通过该隧道路由。可以配置FEP为所有的拨号客户创建到指定隧道服务器的隧道,也可以配置FEP基于不同的用户名或目的地创建不同的隧道。 自愿隧道技术为每个客户创建独立的隧道。FEP和隧道服务器之间建立的隧道可以被多个拨号客户共享,而不必为每个客户建立一条新的隧道。因此,一条隧道中不只传输一个客户的数据信息,一条隧道中可能会传递多个客户的数据信息,只有在最后一个隧道用户断开连接之后才终止整条隧道。 3.2.3 隧道协议 为创建隧道,隧道的客户机和服务器双方必须使用相同的隧道协议。 隧道技术可以分别以第2层或第3层隧道协议为基础。上述分层按照开放系统互联(OSI的参考模型划分。第2层隧道协议对应OSI模型中的数据链路层,使用帧作为数据交换单位。PPTP,L2TP和L2F(第2层转发)都属于第2层隧道协议,都是将数据封装在点对点协议(PPP)帧中通过互联网络发送。第3层隧道协议对应OSI模型中的网络层,使用包作为数据交换单位。IP overIP以及IPSec隧道模式都属于第3层隧道协议,都是将IP包封装在附加的IP包头中通过IP网络传送。 VPN的具体实现是采用隧道技术,在公网中建立企业之间的链接,将用户的数据封装在隧道中进行传输。隧道技术与接入方式无关,它可以支持各种形式的接入,如拨号方式接入、CABLE Modem、xDSL以及ISDN、E1专线和无线接入等。一个隧道协议通常包括以下几个方面: 乘客协议被封装的协议,如PPP、SLIP; 封装协议隧道的建立、维持和断开,如L2TP、IPSec等; 承载协议承载经过封装后的数据包的协议,如IP和ATM等。 目前因特网上较为常见的隧道协议大致有两类:第二层隧道协议PPTP、L2F、L2TP和第三层隧道协议GRE、IPSec。第二层和第三层隧道协议的区别主要在于用户数据在网络协议栈的第几层被封装。其中GRE和IPSec主要用于实现专线VPN业务,L2TP主要用于实现拨号VPN业务,也可用于实现专线VPN业务。 (1)第二层隧道协议 第二层隧道协议可以支持多种路由协议,如IP、IPX和AppleTalk;也可以支持多种广域网技术,如帧中继、ATM、X.25或SDHSONET;还可以支持任意局域网技术,如以太网、令牌环和FDDI等。 (1)PPTP协议 点到点隧道协议(PPTP)是由PPTP论坛开发的点到点的安全隧道协议,为使用电话上网的用户提供安全VPN业务,1996年成为IETF草案。PPTP是PPP协议的一种扩展,提供了在IP网上建立多协议的安全VPN的通信方式,远端用户能够通过任何支持PPTP的ISP访问企业的专用网络。PPTP提供PPTP客户机和PPTP服务器之间的保密通信。PPTP客户机是指运行该协议的PC机,PPTP服务器是指运行该协议的服务器。 通过PPTP,客户可以采用拨号方式接入公共的IP网。拨号客户首先按常规方式拨号到ISP的接入服务器(NAS),建立PPP连接;在此基础上,客户进行二次拨号建立到PPTP服务器的连接,该连接称为PPTP隧道,实质上是基于IP协议的另一个PPP连接,其中IP包可以封装多种协议数据,包括TCPIP,IPX和NetBEUI。对于直接连接到IP网的客户则不需要第一次的PPP拨号连接,可以直接与PPTP服务器建立虚拟通路。 PPTP的最大优势是Microsoft公司的支持。NT4.0已经包括了PPTP客户机和服务器的功能,并且考虑了Windows95环境。另外一个优势是它支持流量控制,可保证客户机与服务器间不拥塞,改善通信性能,最大限度地减少包丢失和重发现象。PPTP把建立隧道的主动权交给了客户,但客户需要在其PC机上配置PPTP,这样做既会增加用户的工作量,又会造成网络的安全隐患。另外,PPTP仅工作于IP,不具有隧道终点的验证功能,需要依赖用户的验证。 (2) L2F L2F(Layer 2 Forwarding)是由Cisco公司提出的,可以在多种介质(如ATM、帧中继、IP)上建立多协议的安全VPN的通信方式。它将链路层的协议(如HDLC、PPP、ASYNC等)封装起来传送,因此网络的链路层完全独立于用户的链路层协议。1998年提交给IETF,成为RFC2341。 L2F远端用户能够通过任何拨号方式接入公共IP网络。首先,按常规方式拨号到ISP的接人服务器(NAS),建立PPP连接;NAS根据用户名等信息发起第二次连接,呼叫用户网络的服务器。这种方式下,隧道的配置和建立对用户是完全透明的。 L2F允许拨号服务器发送PPP帧,并通过WAN连接到L2F服务器。L2F服务器将包去封装后,把它们接入到企业自己的网络中。与PPTP和PPP所不同的是,L2F没有定义客户。 (3)L2TP L2TP协议由Cisco、Ascend、Microsoft、3Com和Bay等厂商共同制订,1999年8月公布了L2TP的标准RFC 2661。上述厂商现有的VPN设备已具有L2TP的互操作性。 L2TP结合了L2F和PPTP的优点,可以让用户从客户端或接入服务器端发起VPN连接。L2TP定义了利用公共网络设施封装传输链路层PPP帧的方法。目前用户拨号访问因特网时,必须使用IP协议,并且其动态得到的IP地址也是合法的。L2TP的好处就在于支持多种协议,用户可以保留原来的IPX、AppleTalk等协议或企业原有的IP地址,企业在原来非IP网上的投资不致于浪费。另外,L2TP还解决了多个PPP链路的捆绑问题。 L2TP主要由LAC(接入集中器)和LNS(L2TP网络服务器)构成。LAC支持客户端的L2TP,用于发起呼叫,接收呼叫和建立隧道。LNS是所有隧道的终点。在传统的PPP连接中,用户拨号连接的终点是LAC,L2TP使得PPP协议的终点延伸到LNS。在安全性考虑上,L2TP仅仅定义了控制包的加密传输方式,对传输中的数据并不加密。因此,L2TP并不能满足用户对安全性的需求。如果需要安全的VPN,则依然需要IPSec。 (2) IPSec 利用隧道方式来实现VPN时,除了要充分考虑隧道的建立及其工作过程之外,另外一个重要的问题是隧道的安全。第二层隧道协议只能保证在隧道发生端及终止端进行认证及加密,而隧道在公网的传输过程中并不能完全保证安全。IPSec加密技术则是在隧道外面再封装,保证了隧道在传输过程中的安全性。 IPSec是一个第三层VPN协议标准,它支持信息通过IP公网的安全传输。IPSec系列标准从1995年问世以来得到了广泛的支持,IETF工作组中已制定的与IPSec相关的RFC文档有:RFC214、RFC2401-RFC2409、RFC 2451等。其中 RFC 2409介绍了互连网密钥交换(IKE)协议;RFC 2401介绍了IPSec协议;RFC2402介绍了验证包头(AH);RFC2406介绍了加密数据的报文安全封装(ESP)协议。IPSec兼容设备在OSI模型的第三层提供加密、验证、授权、管理,对于用户来说是透明的,用户使用时与平常无任何区别。密钥交换、核对数字签名、加密等都在后台自动进行。另外,为了组建大型VPN,需要认证中心来进行身份认证和分发用户公共密钥。 IPSec可用两种方式对数据流进行加密:隧道方式和传输方式。隧道方式对整个IP包进行加密,使用一个新的IPSec包打包。这种隧道协议是在IP上进行的,因此不支持多协议。传输方式时IP包的地址部分不处理,仅对数据净荷进行加密。 IPSec支持的组网方式包括:主机之间、主机与网关、网关之间的组网。IPSec还支持对远程访问用户的支持。IPSec可以和L2TP、GRE等隧道协议一起使用,给用户提供更大的灵活性和可靠性。 IPSec的ESP协议和报文完整性协议认证的协议框架已趋成熟,IKE协议也已经增加了椭圆曲线密钥交换协议。由于IPSec必须在端系统的操作系统内核的IP层或网络节点设备的IP层实现,因此需要进一步完善IPSec的密钥管理协议。 3.2.4 VPN安全技术目前VPN主要采用四项技术来保证安全,这四项技术分别是隧道技术(Tunneling)、加解密技术(Encryption & Decryption)、密钥管理技术(Key Management)、使用者与设备身份认证技术(Authentication)。隧道技术前面以述,下面介绍一下另外三种技术。 数据加密技术加解密技术是数据通信中一项较成熟的技术,VPN可直接利用现有技术。 密钥管理技术密钥管理技术的主要任务是如何在公用数据网上安全地传递密钥而不被窃取。现行密钥管理技术又分为SKIP与ISAKMP/OAKLEY两种。SKIP主要是利用Diffie-Hellman的演算法则,在网络上传输密钥;在ISAKMP中,双方都有两把密钥,分别用于公用、私用。 身份认证技术身份认证技术最常用的是使用者名称与密码或卡片式认证等方式。 3.3 VPN的分类 基于不同的角度或出发点,对IP VPN的分类方法是多种多样的,就目前而言,还没有一种公认的最为合理的划分方式。下面是几种常用的划分方法。 按接入方式划分有两类 (1)专线VPN。专线VPN是为已经通过专线接入ISP(因特网服务提供商)边缘路由器的用户提供的VPN实现方案。(2)拨号VPN。拨号VPN又称VPDN,指的是为利用拨号方式通过PSTN(公用电话交换网)或ISDN(综合业务数字网)接入ISP的用户提供的VPN业务。 按隧道协议所属的层次划分 (1)工作在链路层的第二层隧道协议,如点到点隧道协议(PPTP)、第二层转发协议(L2F)、第二层隧道协议(LSTP)。(2)工作在网络层的第三层隧道协议,如通用路由封装协议(GRE)、IP安全协议(IPSec)。(3)介于第二层和第三层之间的隧道协议,如MPLS隧道协议按VPN发起主体不同划分 (1)客户发起。客户发起的VPN也称基于客户的VPN。(2)服务器发起。服务器发起的VPN也称客户透明方式或基于网络的VPN。 按VPN业务类型划分 (1)Intranet VPN。企业的总部与分支机构之间通过公网构筑的虚拟网。(2)Access VPN。企业员工或企业的小分支机构通过公网远程拨号方式构筑的虚拟网。(3)Extranet VPN。企业间发生收购、兼并或企业间建立战略联盟后,使不同企业间通过公网来构筑的虚拟网。 按VPN应用平台划分 (1)软件平台。利用软件公司提供的完全基于软件的VPN产品来实现的VPN。(2)专用硬件平台。利用硬件厂商提供的专用硬件平台来实现的VPN。(3)辅助硬件平台。辅助硬件平台的VPN主要是指以现有网络设备为基础、再增添适当的VPN软件实现的VPN。 按运营商所开展的业务类型划分 (1)拨号VPN业务。它是第一种划分方式中的VPDN。(2)虚拟租用线(VLL)。它是对传统租用线业务的仿真,用IP网络对租用线进行模拟,而这样一条虚拟租用线在两端的用户看来,等价于过去的租用线。(3)虚拟专用路由网(VPRN)业务。VPRN是对多点专用广域路由网络的模拟,利用公共IP网络,在多个VPN成员之间建立起一个虚拟的隧道网络。(4)虚拟专用局域网段(VPLS)。VPLS利用互联网络设施仿真局域网段,转发表中包含介质访问控制层的可达信息。第4章 IP层安全协议IPSec的体系结构4.1 IPSec协议综述4.1.1 IPSec协议概况IPSec协议是IETF安全工作组制定的一套可以用于IPv4和IPv6上的,具有互操作性的,基于密码学的安全协议。它可以提供(无连接的)完整性,数据源头的认证,防重放功能,数据保密和一定的流量保密。IPSec协议产生的最初是解决Internet上IP传输的安全性,它包括从RFC2401到RFC2412的一系列RFC,它定义了一套默认的,强制实施的算法,以保证不同的实施方案可以互通。 IPSec协议是目前基于密码学的安全协议中最完善,安全性最高的,适应范围最广的一套协议,可以为上层协议提供透明的安全保证,它既可以保护端系统到端系统的安全,还可以保证网关到网关的安全性。4.1.2 IPSec协议组成IPSec不是某种特殊的加密算法或认证算法,也没有在它的数据结构中指定某种特殊的加密算法或认证算法,它只是一个开放的框架结构,定义在IP数据包格式中,为目前流行的数据加密或认证实现提供了数据结构,为这些算法的实现提供了统一的体系结构,这有利于数据安全方面的措施进一步发展和标准化。同时不同的加密算法都可以用IPSec定义的体系结构在网络数据传输过程中实施。IPSec提供一种标准的,健壮的以及包容广泛的机制为运用于IP顶部的任何一种协议(如TCP,UDP,ICMP等)提供保护。IPSec在网络内部实施时,既构成了虚拟专用网。IPSec运行在网络层,所以属于第三层隧道协议。IPSec是一种协议套件,我们有必要先了解这些组件的交互方式,如图 4-1体系验证头封装安全负载验证算法加密算法解释域策略密钥管理图 4-1 IPSec体系ESP(Encapsulating Security Payload,封装安全有效负载),ESP机制通过将整个IP分组或上层协议部分(既传输层协议数据,如TCP、UDP或ICMP协议数据)封装到一个ESP负载之中,然后对此负载进行相应的安全处理,如加密处理,别处理等,以实现对通信的机密性和保密性保护。AH(Authentication Header,验证头),AH机制主要用于为通信提供完整性服务,换能为通信提供抗重放攻击服务。加密算法,描述各种身份验证算法如何应用于ESP中,默认的算法为DEC-CBC算法。验证算法,描述各种身份验证算法如何应用于AH中和ESP身份验证选项,默认的有HMAC-MD5和HMAC-SHA1算法。密钥管理,密钥管理的一组方案,IKE(Internet 密钥交换协议)是默认的密钥交换协议。IPSec协议使用IKE协议实现安全的自动安全参数协商。IKE协商的安全参数包括加密及鉴别算法,加密及鉴别密钥,通信的保护模式(传输或隧道模式),密钥的生成期等。IKE还负责这些安全参数的刷新。解释域,DOI(Domain of Interpretation)是整个IPSec协议中很重要的一部分。它实际是一个存放所有IPSec安全参数的主数据库,这些参数可被与IPSec服务相应的系统参考并调用。策略,它决定两个实体之间是否能够通信如何通信,IPSec策略由“安全策略数据库(Security Policy Database,SPD)”加以维护。在SPD数据库中,每个条目都定义了所要保护的通信类别,保护方法以及谁共享这种保护。进入或离开IP堆栈的每个数据包,都必须检索SPD数据库,调查可能的安全应用。每一个SPD条目定义的行为是丢弃,饶过或应用中的一种。行为是“应用的”SPD条目,会指向一个或一套安全联盟(SA),表示对数据包应用安全保护。4.1.3 IPSec的实现 IPSec可以在终端主机,网关或两者中同时实施和配置。(1)在主机实施 在这里,主机的正确定义应该是“数据包的始发设备”。主机实施的好处有:保障端到端的安全性;能够实现所有的IPSec安全模式能够逐数据流提供安全保障。主机实施可分为两类:与操作系统(os)集成实施:由于IPSec是一个网络层协议,所以可当作网络层的一部分来实现。这需要对IP源码和主机的操作权限。堆栈中的块(Bnmp-in-the-stack):OS集成方案中,必须使用OS提供的特性,这可能会限制提供高级方案的能力。要解决这一限制,IPSec应作为一个“楔子”来实施,插入网络层和数据链路层之间。(2)在网关实施采用在网关实施,可在网络的某个部分中对传输的数据包进行安全保护。例如某个公司不打算保护在同一私有网络内部传输的数据,而只对地理位置分散的私有网络之间通过Internet传输的数据进行保护,从而构建自己的内部网VPN。通过在网关实施IPSec,利用VPN网关对数据包进行“通道传输”,从而实现了对它们的保护。在网关实施有下列优点: 能对通过公网(如Internet)在两个子网之间流动的数据提供安全保护; 能进行身份认证,并授权用户进入私有网络。许多公司都利用这一点允许员工在Internet上通过远程通信建立VPN,在之前,只能通过拨号方式来实现(直接通过调制解调器拨号进入公司内网)。网关实施方案有两种类型: 与操作系统(OS)集成实施 线缆中的块(Bnmp-in-the-ware):IPSec的实现在一个设备中进行,该设备直接介入网关的物理接口,来保障数据包的安全。4.2 安全联盟安全联盟(Security Association)对IPSec非常重要。AH和ESP都要用到SA,IKE的一个主要功能就是建立和维护SA。所有的AH和ESP必须支持SA。4.2.1 定义和模式(1)定义一个安全联盟(SA)是一个单一的“连接”,它为其承载的通信提供安全服务。安全服务是通过使用AH或ESP(但不能同时使用)赋予SA的。如果一个通信流同时使用AH和ESP保护,那么就要创建两个(或更多)的SA来提供通信流所需的保护。注意,SA是单向的,为了保证两个主机,两个安全网关之间典型的双向通信的安全,需要两个SA(一个负责一个方向)。可以用一个三元组来唯一标识一个SA,该三元的三组元素是: 安全参数索引(SPI): IP目的地址 安全协议(AH或ESP)标识符。理论上讲,目的地址可以是一个单播地址,一个广播地址或一个组播地址。然而,IPSec的SA管理机制目前只支持单播SA。因此,以下将在点对点通信环境中描述SA。(2)模式定义了两种类型的SA:传输模式和隧道模式.传输模式传输模式的SA是一个位于两个主机之间的“连接”。在该模式下,经过IPSec安全处理的IP数据的格式如图 4-2所示。IP头安全协议头(AH/ESP)高层协议头(TCP)数据图4-2如果选择ESP作为安全协议,则传输模式的SA只为高层协议提供服务;如果选择使用AH,则提供的安全服务可以扩展到IP头的某些在传输过程中不变的字段。具体的论述将在后面有关AH和ESP的章节中展开。隧道模式隧道模式本质上就是将一个SA应用于一条IP隧道。如果一个安全联盟的某一端是一个安全网关,那么该SA必须是隧道模式。因此,当一个SA位于两个安全网关之间或一个主机与一个安全网关之间时,它总是隧道模式。在隧道模式,一个“外部”IP头用于指明IPSec处理的目的地,有个“内部”IP头用于指明包的最终目的。安全协议头部位于“外部”IP头后,“内部”IP头前,如图4-3所示。外部IP头安全协议头(AH/ESP)内部IP头高层协议头(TCP)数据图4-3如果选择ESP作为安全协议,受保护的只有隧道化的IP包(包括内部IP头,高层协议和数据);如果选择使用AH,被保护的除了所有隧道化的IP包,还包括外部IP头某些在传输过程中不变的字段。具体的论述将在后面有关AH和ESP的章节中展开。(3) 总结 一个主机必须支持传输模式和隧道模式。 一个网关只要求支持隧道模式。4.2.2 安全联盟的组合使用在一个单一SA上传输的IP数据包只能由一个安全协议提供保护,既AH和ESP二者只能选其一。有时候一个安全策略要求为一个通信流实施多个服务,这只用一个SA是无法实现的。在这种情况下,就需要利用多个SA来实现所需的安全策略。所谓的“安全联盟束”或“SA束”是指一个SA序列,通过他的处理后,通信必须满足一个安全策略。序列的顺序由策略定义的(注意,组成珠的SA可以终止于不同的端点。例如,一SA可以在一个主机和一个网关之间延伸,另一个嵌套的SA可以延伸到网关后面的一个主机)。有两种将安全联盟组合的成束方法:(1)传输邻接 为同一个IP数据包使用多个安全协议而不 涉及到隧道,如图4-4所示。这种将AH和ESP联合起来的方法只允许一层联合:因为只要每个协议中使用足够健壮的算法,更进一步的嵌套不再产生任何好处。主机2安全网关2Internet安全网关1主机1SA1(ESP传输模式)SA2(AH传输模式)图 4-4(2)多重隧道多个安全协议乘作用于IP隧道。这种方法允许多层嵌套,因为每条隧道都可以开始或终止路径上不同的IP点(可以进行IP处理的设备)。有三种情况:多个SA的两端点是相同的,如图 4-5所示。内部和外部隧道每个都可以是AH或ESP,尽管主机1未必会指定为两个相同的,如AH在AH或ESP在ESP内。安全网关1主机2Internet安全网关2主机1SA1(隧道模式)SA2(隧道模式)图 4-5多个SA的一个端点是相同的,如图4-6所示。内部和外部每个都可以是AH或ESP。主机2主机1安全网关2Internet安全网关1SA1(隧道模式)S