




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章绪论1.1引言在最近的几年里计算机网络得到飞速的发展,特别是因特网(Intemet)〔’,2]。它走进了我们日常生活的方方面面,影响并改变着我们的生活方式。电子商务活动,网上购物,网络商务会议以及网络视频教学等等极大地改善了我们的生活和工作方式,带来了极大的便利,我们正经历着一场信息化的革命。但是正像网络带给我们的惊喜一样,网络安全问题也越来越引起我们的关注,各种安全威胁也离我们越来越近。大型商务网络或公众网络越来越受到各种病毒以及木马黑客程序的攻击,使网络瘫痪或大量敏感信息泄露;同样个人电脑中的重要信息也被窃取,或电脑被远程控制成为“肉机”攻击别的电脑或网络,所以无论对公司还是个人都受到了网络安全问题的威胁,己经或即将造成很大的损失。随着企业规模不断扩大,分支机构不断扩展,移动办公不断增加,企业内部及企业间信息传递越来越多。如何以最低的费用保障通信的高效性和安全性,是企业极其关注的问题。流行的解决方案是利用Intemet等公共网络建立VPN(虚拟专用网)〔3,4]。银行是专用网络应用的先行者,构造了庞大复杂的银行金融机构专用网。这种专线专网的最大弊端就是成本很高。随着全球一体化经济的发展,产生了越来越多的跨国、跨地区的企业及机构,网络化办公、远程办公等等依附于互联网的办公、经营方式也越来越多。而构建专线专网的方式,无论从成本还是拓展灵活性方面都不是最佳选择。那么,虚拟专用网(VPN)技术正好弥补了专线网的缺点,并且越来越受到网络用户的欢迎。虚拟专用网技术允许公司用户在家或在公司外,通过公共网络(Intemet)与远程公司的服务器建立一个端到端的连接,构成一个虚拟的专用网络,进行网络办公或营销。VPN也可以让各分公司的网络通过公共网络连接到公司总部网络中,那么这些分散的网络就像一张专用的大网连接到一起。在这两种情况下,虽然通信数据经过了公众网络(Intemet),但由于采用了一些密码认证等措施,其安全性像专线网络一样,甚至更好。近年来,随着网络带宽的大幅度提升,网络数据也更加顺畅,这都加速了VPN的更广泛的应用。现在VPN技术的应用日趋成熟,在技术的可行性、可靠性和安全性以及可管理性等各个方面都成为研究的热点。1.2选题背景1.2.1IPSeeVPN研究背景随着因特网(Intemet)用户及网络设备的迅猛增加,现行的第四版因特网协议(IPv4)[2]所能提供的IP地址空间面临枯竭。IP的下一个版本(IPv6)[5]将可以解决地址空间短缺的问题,但是从IPv4向IPV6迁移的过程需要对现行网络基础实施进行整体的协议转换,所以这个过程非常缓慢。同时,由IETF(IntemeEngineeringTaskForce)[6]提出的N灯(Netwo改^ddressTranslation)[7]协议可提供更多的私有地址空间。NAT设备放置在私有网络连接因特网的网络边界,可以使私有网络中的多个用户共享一个或几个的公网IP接入因特网。NAT也用于保护内网安全,通过IP隐藏(IPmasquerade)来保护内网的网络结构等信息。IP安全协议(IPsec)[8]广泛应用于因特网应用中来提供强端到端安全(strongend一。一endsecurity)服务,其在IP网络层为通信双方提供数据的完整性、私密性和认证性。然而IPSec和NAT结合在一起使用将产生一系列严重问题,由于NAT地址翻译的本质和IPSec保护数据包完整性、机密性相抵触的结果。在IPSee通信数据包通过基于NAT的私有网络和因特网的网络边界时就会产生这种问题。IPSec也是PV6的必需组成部分,无论是现在还是将来都迫切需要一种解决方案,既可以提供地址转换的灵活性又能提供安全的通信服务。一般的IPSeeVPN只提供设备级认证(通过预共享密钥和数字证书),而没有提供用户级认证,这样存在极大的安全隐患。IPSeeVPN穿越NAT问题,至今也没有成熟的解决方案,IETF只有几个草案说明这个问题,无完整的解决方案。1.2.2SSLVPN研究背景当今世界商业活动更加繁忙,特别是移动办公工作量迅速增加。经常移动办公的用户他们希望从任何地方接入公司总部,无论在家里、在宾馆里、在飞机场候机亭等等。SSLVPN技术是特别为远程接入用户设计,提高用户的工作效率。它帮助用户简易、安全地接入到目的网络中的各种应用程序和资源。同时使相关的安全风险降低到最低,最重要的是大大降低各种相关管理和支持费用。SSLVPN无论在理论还是市场上都成为热点。同时,由于实现技术和功能千差万别,SsLVPN还没有一个统一的认识和标准,厂家也大肆宣传其功能强大,揭示ssLVPN的本质也非常必要1.3主要工作虽然现在IPSec技术是构建VPN的一种比较成熟的技术,但还有一些技术难题值得我们去研究探索。首先重点研究了认证扩展体制XAuth,然后基于RADIUS结合LDAP和OTP构造了一个适用、有效的方案,可以验证用户动态口令和用户权限,并在实践中实现。IPsec和NAT存在本质上的不兼容性。通过认真分析它们的原理找出它们之间的不兼容性。对IETF提供的UDP封装方案进行研究,并对它的一个改进方案进行了研究分析,找出其不足。提出自己的解决方案,力求一种安全有效的解决方法,使IPsec和NAT协调工作。SSL技术构建vPN己成为一个热点。分析了SsL协议并用SSLDump来跟踪SSL连接的过程消息,使对SSL的连接过程有一个感性认识,分析了SSLVPN的提出背景。从最简单的SSLVPN一M总b反向代理开始研究其运行原理并提出了一个端到端安全的SSLVPN方案,对SSLVPN从概念、原理及其方案应用上的有一个较全面理解。对SSLVPN和主流的IPSecVPN进行了一个对比分析,对各自的优缺点进行分析,针对不同的应用场合的VPN部署方案。1.4论文结构第1章绪论介绍了选题的背景、现状和主要工作。第2章主要介绍了本文需要的一些相关基础理论包括网络安全、密码学方面,这为下面的理解奠定了理论基础。第3章介绍了虚拟专用网技术,它的概念、类型、优点和关键技术第4章重点介绍了IPsec协议簇。包括:IPSec安全体系结构总体框架、AH和ESP协议及其格式运行模式和处理过程、IKE协议格式及其交换模式和密钥生成相关理论,以及IKE认证扩展XAuth并设计一个有效的基于RADIUS方案。第5章介绍了IPsec和NAT的协同工作。介绍了IPsec和NAT之间的兼容性分析,己有的解决方案以及对其分析改进。第6章介绍了SSLVPN。仔细研究了SSL协议,并对SSL的连接过程进行了重点分析研究,使对其有一个感性认识。对SSLVPN基本模型—Web反向代理技术进行了研究,同时介绍了SSLVPN和IPSeeVPN的对比分析,通过分析对比,对它们有更深的认识,为应用部署提供理论依据。最后总结对所做的工作进行了总结并对将来工作的展望。第二章虚拟专用网2.1VPN的概念VPN(VirtualPrivateNetwork虚拟专用网,是利用公共网络基础设施,通过“隧道”技术等手段达到类似私有专网的数据安全传输。VPN具有虚拟特点:VPN并不是企业专有的封闭线路但同时又具有专线的数据传输功能,因为VPN能够像专线一样在公共网络上处理自己企业的信息。2.2VPN的类型1、按应用范围划分这是最常用的分类方法,大致可以划分为远程接入VPN(AccesssVPN)、IntranetVPN和ExtranetVPN等3种应用模式。远程接入VPN用于实现移动用户或远程办公室安全访问企业网络;IntranetVPN用于组建跨地区的企业内部互联网络;ExtranetVPN用于企业与客户、合作伙伴之间建立互联网络。2、按VPN网络结构划分VPN可分为以下3种类型。①基于VPN的远程访问即单机连接到网络,又称点到站点,桌面到网络。用于提供远程移动用户对公司内部网的安全访问。②基于VPN的网络互联即网络连接到网络,又称站点到站点,网关(路由器)到网关(路由器)或网络到网络。用于企业总部网络和分支机构网络的内部主机之间的安全通信时,还可用于企业的内部网与企业合作伙伴网络之间的信息交流,并提供一定程度的安全保护,防止对内部信息的非法访问。③基于VPN的点对点通信即单机到单机,又称端对端,用于企业内部网的两台主机之间的安全通信。3、按接入方式划分在Internet上组建VPN,用户计算机或网络需要建立到ISP的连接。与用户上网接入方式相似,根据连接方式,可分为两种类型。①专线VPN通过固定的线路连接到ISP,如DDN、帧中继等都是专线连接。②拨号接入VPN简称VPDN,使用拨号连接(如模拟电话、ISDN和ADSL等)连接到ISP,是典型的按需连接方式。这是—种非固定线路的VPN。4、按隧道协议划分按隧道协议的网络分层,VPN可划分为第2层隧道协议和第3层隧道协议。PPTP、L2P和L2TP都属于第2层隧道协议,IPSec属于第3层隧道协议,MPLS跨越第2层偷?层。VPN的实现往往将第2层和第3层协议配合使用,如L2TP/IPSec。当然,还可根据具体的协议来进一步划分VPN类型,如PPTPVPN、L2TPVPN、IPSecVPN和MPLSVPN等。第2层和第3层隧道协议的区别主要在于用户数据在网络协议栈的第几层被封装。第2层隧道协议可以支持多种路由协议,如IP、IPX和AppleTalk,也可以支持多种广域网技术,如帧中继、ATM、X.25或SDH/SONET,还可以支持任意局域网技术,如以太网、令牌环网和FDDI网等。另外,还有第4层隧道协议,如SSLVPN。5、按隧道建立方式划分根据VPN隧道建立方式,可分为两种类型。①自愿隧道(Voluntarytunnel)指客户计算机或路由器可以通过发送VPN请求配置和创建的隧道。这种方式也称为基于用户设备的VPN。VPN的技术实现集中在VPN用户端,VPN隧道的起始点和终止点都位于VPN用户端,隧道的建立、管理和维护都由用户负责。ISP只提供通信线路,不承担建立隧道的业务。这种方式技术实现容易,不过对用户的要求较高。不管怎样,这仍然是目前最普遍使用的VPN组网类型。②强制隧道(Compulsorytunnel)指由VPN服务提供商配置和创建的隧道。这种方式也称为基于网络的VPN。VPN的技术实现集中在ISP,VPN隧道的起始点和终止点都位于ISP,隧道的建立、管理和维护都由ISP负责。VPN用户不承担隧道业务,客户端无需安装VPN软件。这种方式便于用户使用,增加了灵活性和扩展性,不过技术实现比较复杂,一般由电信运营商提供,或由用户委托电信运营商实现。6、按路由管理方式划分按路由管理方式划分,VPN分为两种模式。①叠加模式(OverlayModel)也译为“覆盖模式”。目前大多数VPN技术,如IPSec、GRE都基于叠加模式。采用叠加模式,各站点都有一个路由器通过点到点连接(IPSec、GRE等)到其他站点的路由器上,不妨将这个由点到点的连接以及相关的路由器组成的网络称为“虚拟骨干网”。叠加模式难以支持大规模的VPN,可扩展性差。如果一个VPN用户有许多站点,而且站点间需要全交叉网状连接,则一个站点上的骨干路由器必须与其他所有站点建立点对点的路由关系。站点数的增加受到单个路由器处理能力的限制。另外,增加新站点时,网络配置变化也会很大,网状连接上的每一个站点都必须对路由器重新配置。②对等模式(PeerModel)对等模式是针对叠加模式固有的缺点推出的。它通过限制路由信息的传播来实现VPN。这种模式能够支持大规模的VPN业务,如一个VPN服务提供商可支持成百上千个VPN。采用这种模式,相关的路由设备很复杂,但实际配置却非常简单;容易实现QoS服务;扩展更加方便,因为新增一个站点,不需与其他站点建立连接。这对于网状结构的大型复杂网络非常有用。MPLS技术是当前主流的对等模式VPN技术。2.3VPN的优点(1)安全性高。VPN提供用户一种私人专用(Private)的感觉,因此建立在不安全、不可信任的公共数据网的首要任务是解决安全性问题。VPN采用多种安全机制,如信道、加密、认证、防火墙等,确保信息在公网传输时不被窃取,或即使被窃取,对方亦无法读取、修改封包所传输内容,确保传输信息的保密性、完整性。(2)费用低廉。企业不必租用长途专线建设专网,不必大量的网络维护人员和设备投资。利用现有的公用网组建的Intranet,要比租用专线或铺设专线要节省开支,而且当距离越远时节省的越多。(3)扩展容易。用户自己组建的专网如需要扩展容,则须考虑架设新链路、增加新设备等;采用VPN技,用户可选择多种网络连接技术,且网络容量可按需量定制,增加新用户时,只需连接到公网上,对新的网络终端进行逻辑设置即可,不需要考虑公网容量问题、设备问题等。2.4VPN关键技术(一)隧道技术隧道技术是一种通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将这些其它协议的数据帧或包重新封装在新的包头中发送。新的包头提供了路由信息,从而使封装的负载数据能够通过互联网络传递。被封装的数据包在隧道的两个端点之间通过公共互联网络进行路由。被封装的数据包在公共互联网络上传递时所经过的逻辑路径称为隧道。一旦到达网络终点,数据将被解包并转发到最终目的地。隧道技术是指包括数据封装,传输和解包在内的全过程。隧道所使用的传输网络可以是任何类型的公共互联网络,目前主要的技术包括:(1)IP网络上的SNA隧道技术当系统网络结构(SysterhNetworkArchitecture)的数据流通过企业IP网络传送时,SNA数据帧将被封装在UDP和IP协议包头中。(2)IP网络上的NovellNetWareIPX隧道技术当一个IPX数据包被发送到NetWare服务器或IPX路由器时,服务器或路由器用UDP和IP包头封装IPX数据包后通过IP网络发送。另一端的IP-TO-IPX路由器在去除UDP和IP包头之后,把数据包转发到IPX目的地。(3)点对点隧道协议(PPTP)PPTP协议允许对IP,IPX或NetBEUI数据流进行加密,然后封装在IP包头中通过企业IP网络或公共互联网络发送。PPTP建立过程:①用户通过串口以拨号访问等方式与NAS建立连接并取得网络服务;②用户通过路由信息定位PPTP并接人服务器;③用户形成一个PPTP虚拟接口;④用户通过该接口与PPTP接人服务器协商、认证,建立一条PPP访问服务隧道;⑤用户通过该隧道获得VPN服务。(4)第2层隧道协议(L2TP)L2TP协议允许对IP,IPX或NetBEUI数据流进行加密,然后通过支持点对点数据报传递的任意网络发送,如IP,X.25,帧中继或ATMoL2TP建立过程:①用户通过Modem与NAS建立连接;②用户通过NAS的L2TP接人服务器身份认证;③在政策配置文件或者NAS与政策服务器进行协商的基础上,NAS和L2TP接人服务器动态地建立一条L211P隧道;④用户与L2TP接人服务器之间建立一条PPP协议访问服务隧道;⑤用户通过该隧道获得VPN服务。(5)安全IP(IPSec)隧道模式IPSec是几种安全技术结合在一起形成的范围广泛的、开放的VPN安全协议,是第三层VPN协议标准。IPSec隧道模式允许对IP负载数据进行加密,然后封装在IP包头中通过企业IP网络或公共IP互联网络如Internet发送。IPSec由提供IP包真实性及完整的IP认证头、提供机要内容的IP安全有效负荷、负责密钥分发的密钥管理协议组成,能提供所有在网络层上的数据保护及透明的安全通信。该协议采用隧道方式或传输方式对所传输数据流进行加密。前者对整个IP包进行加密,能提供多个防火墙和服务器问安全性,但系统开销较大,且不支持多协议;后者不处理IP包地址部分,仅对数据净荷进行加密。IPSec支持的组网方式包括主机之间、主机与网关、网关之间的组网,还具有对远程访问用户的支持功能。该协议可以和L2TP,GRE等隧道协议一起使用,给用户提供更大的灵活性、可靠性、安全性。其缺点是决支持TCP/IP协议、动态分配IP地址时不适合等。为创建隧道,隧道的客户机和服务器双方必须使用相同的隧道协议。隧道技术可以分别以第2层或第3层隧道协议为基础。上述分层按照开放系统互联(OSI)的参考模型划分。第2层隧道协议对应OSI模型中的数据链路层,使用帧作为数据交换单位。PPTP,L2TP和L2F第2层转发)都属于第2层隧道协议,都是将数据封装在点对点协议(PPP)帧中通过互联网络发送。第3层隧道协议对应OSI模型中的网络层,使用包作为数据交换单位。IPoverIP以及IPSec隧道模式都属于第3层隧道协议,都是将IP包封装在附加的IP包头中通过IP网络传送。(二)安全技术由于VPN直接连接到公网,虽然实现简单、方便、灵活,但安全问题也较为突出。只有确保传输信息的安全可靠且不被非法访问、修改、截取等,VPN才能被广泛应用。例如,能验证用户身份并确保只有合法用户才能访问VPN;能为用户分配专用网络上的地址并确保地址保密性;对传输信息进行加密以确保安全性;能生成并更新客户端及服务器加密密钥等。显然,在保证服务质量的同时,安全问题是VPN首先需考虑的。VPN安全技术包括加密技术、认证技术等。(1)加密技术。其基本思想是在协议栈的任意层对数据或报文头进行加密,由于所选算法极为保密,故难以破解,从而有效保护传输的信息。考虑到该技术已比较成熟且广泛应用于诸多领域的信息加密传输,VPN可直接利用现有加密技术。由于VPN实际上是通过软件实现的技术,因而VPN加密的载体也是多方面的,包括路由器(将VPN软件加载于路由器,使之既是路由器,又是具有加密功能的VPN设备)、防火墙(在1企业防火墙上实现VPN的功能,该组合方式能彻底解决网络互联安全问题)、专用VPN硬件(这种设备的加密亦通过硬件实现,可显著提高安全效率)。VPN加密技术发展趋势是实现端到端的安全,只有这样才能真正确保完全的加密。(2)认证技术。目的是防止传输数据的伪造、篡改,主要采用“摘要”技术,该技术通过HASH函数将一段长的报文进行变换,映射为一段短的报文即摘要,HASH函数的特性确保两个相异报文不可能有相同摘要,从而实现数据完整性验证及用户身份认证。(三)QoS技术基于公共网络并利用隧道技术和加密技术建立的VPN稳定性较差。因为公网流量的不确定性导致其带宽利用率较低,流量高峰易产生网络瓶颈,使实时性要求高的数据不能及时传输,流量低时又会造成带宽浪费。此外,用户及业务的差异对服务质量要求也不同如移动办公用户提供广泛连接、覆盖是保证VPN服务的主要因素;而拥有众多分支机构的交互式内部网则要求提供良好的稳定性等,这些均要求网络根据需要提供不同等级的服务质量QoS。要充分利用有限的公网资源为重要数据提供可靠的带宽,需在主机网络中采用QoS技术。通过流量预测及流量控制策略,按优先级分配带宽资源,实现各类数据的有效传输,预防阻塞等情况的发生。此外,还需从多角度实现VPN的有效管理,目的是保证VPN系统安全性、提高其可靠性、扩展性。本质上说,VPN.管理就是远程访问服务管理,具体包括安全管理、设备管理、配置管理、访问控制列表管理、QoS管理等。用户选择VPN技术时必须考虑到管理方面的诸多问题,既包括管理使用者权限,还有对存取资源的存取或远程访问原则的建立等。这样,用户才能将其网络管理从局域网无缝地延伸到公用网,甚至是客户和合作伙伴。要实现VPN系统的有效管理,网管应实时跟踪、掌握系统使用者、连接情况、异常活动、出错情况等信息。2.5小结基于公共网的VPN通过隧道技术、数据加密技术以及QoS机制,使得企业能够降低成本、提高效率、增强安全性。特别是VPN能保证传输数据真实性、完整性、通道的机密性,并提供动态密匙交换功能、安全防护措施及访间控制等,更使之成为众多用户实现数据安全传输的首选。可以相信,随着VPN技术日趋完善,安全性、可靠性日趋提高,其应用领域将更加广泛。第三章IPSecVPN技术3.1IPSec安全体系结构3.1.1IPSec的概念IPSec(IPseeurity)是一种由IETr设计的端到端的确保Ip层通信安全的机制。IPSee不是一个单独的协议,而是一组协议,这一点对我们认识IPSec是很重要的。IPSec协议的定义文件包含了12个RFC文件和几十个Iniemet草案,已经成为工业标准的网络安全协议。欲详细了解参见各盯C文档httP://、vw、v‘faqs.o叼rfcs。IPSec随IPv6的制定而产生的,鉴于IPv4的应用仍然很广泛,所以后来在IPSee的制定中也增加了对IPv4的支持。IPSee在IPv6中是必须支持的,而在IPv4中是可选的。IP协议在当初设计时并没有过多的考虑安全问题,而只是为了能够使网络方便的进行互联互通,因此IP协议在本质上是不安全的。仅仅依靠IP头部的校验和字段是无法保证IP包的安全,修改IP包并重新正确计算校验和是很容易的。如果不采取安全措施,IP通信会暴露在多种威胁之下:窃听、篡改、IP欺骗和重放攻击法。IP协议之所以如此不安全,就是因为IP协议没有采取任何安全措施,既没有对数据包的内容进行完整性验证,有没有进行加密。IPSec协议可以为IP网络通信提供透明的安全服务,保护TCP八P通信免遭窃听和篡改,保证数据的完整性和机密性,有效抵御网络攻击,同时保持易用性。3.1.2IPSee体系结构IPSec协议簇对IPSec的方方面面都进行了定义—体系、密钥管理、基本协议以及为了实现基本协议进行的强制转码。为了更易于理解、实施和使用IPSec,有必要先了解这些组件之间的关系。IPSec体系结构定义了IPsec各个组件之间的交互方式,如图3一l所示。图3—1IPSec体系结构从图3一l中可以看出,IPsee包含了3个最重要的协议:AH[25]、EsP[261和IKEI27]。l、AH协议为IP数据包提供三种服务:无连接的数据完整性验证、数据身份认证和防重放攻击。数据完整性验证通过杂凑函数(如MDS)产生的校验来保证;数据源身份认证通过在计算验证码时加入一个共享密钥来实现;AH报头中的序列号可以防止重放攻击。2、EsP协议除了为IP数据包提供AH已有的三个服务外,还提供另外两种服务:数据包加密和数据流加密。加密是ESP的基本功能,而数据源身份认证数据完整性验证以及防重放攻击都是可选的。数据包加密是指对一个数据包进加密,可以是对整个IP包,也可以只加密IP包的载荷部分,一般用于客户端算机;数据流加密一般用于支持IPSee的路由器,源端路由器并不关心IP包内容,对整个IP包进行加密后传输,目的端路由器将该包解密后将原始包继续转发。3、AH和ESP可以单独使用,也可以嵌套使用。通过这些组合方式,可以在两台主机、安全网关(防火墙和路由器),或者主机与安全网关之间使用。4、IKE协议负责密钥管理,定义了通信实体间进行身份认证、协商加密算法以及生产共享的会话密钥的方法。IKE将密钥协商的结果保留在安全关联(sA)中,供AH和ESP以后通信时使用。5、解释域(DOI)为使用IKE进行协商SA的协议统一分配标识符。共享一个DOI的协议从一个共同的命名空间中选择安全协议和交换、共享密码以及交换协议的标识符等,DOI将IPSec的这些RFC文档联系在一起。3.1.3IPSec的运行模式Ipsee有两种运行模式:传输模式(肠ansportMode)和隧道模式(TunnelMode)。AH和ESP都支持这两种模式,因此有4种可能的组合:传输模式的AH、隧道模式的AH、传输模式的ESP和隧道模式的ESP。但在实际应用中,我们并不采用隧道模式中的AH,因为它保护的数据与传输模式中的AH保护的数据是一样的。AH和ESP头在隧道和传输模式之间不会发生变化。两种模式的区别非常直观一创门保护的东西不同,一个是伊包,一个是IP载荷。l、IPSee传输模式传输模式要保护的内容是IP包的载荷,可能是TCP/IP等传输层协议,也可能是ICMP协议,还可能是AH或ESP协议(在嵌套的情况下)。传输模式为上层协议提供安全保护。通常情况下,传输模式只用于两台主机之间的安全通信(端到端的安全保护)。在图3一2中,A和B是两个已经配置好的主机,它们之间流通的所有传送层数据包都应得到加密。在这种情况下,我们采用的是ESP的“传输”模式。但假如这项要求只是为了对传送层的数据包进行验证,就应使用AH的传送模式。图3—2实施ESP传输模式的两台主机如果没有启用安全保护时,’传送层(比如TCP和UDP)数据包会流入网络层(IP),IP会在其中增加IP头,然后转到数据链路层。如果在传送层启用了安全保护,传送层的包会流入IPSec组件。IPSec组件作为网络层的一部分来实现(与05集成在一起时)。IPSec组件会增加AH;增加ESP;或者两个头都增加。随后,会调用网络层的一部分,令其增加网络层的头。只有在要求端到端的安全保障时,才能使用IPSec的传送模式。正如前面指出的那样,由器主要通过检查网络层来作出路由决定,而且路由器不会、也不应该改变网络层头之外的其它东西。如果通过路由器为数据包流插入传送模式的IPSec头,便违反了这一规则。应用AH或ESP的传输模式后数据包的格式如图3一3所示。图3—3AH和ESP的传输模式数据包格式AH和ESP两者都在传送模式中使用时,首先应该应用EP。原因很明显:如果先用AH保护传送包,再用ESP,数据的完整性便只能适用于传送载荷,因为ESP头是在以后增添的,如图3一4所示。图3—4先后应用AH和ESP的数据包格式这并不是我们想看到的局面,因为数据的完整性应以尽可能多的数据为基础计算出来。如果先用ESP保护以后,再用AH重新保护一遍数据包,那么数据的完整性就能同时应用于ESP载荷,其中包含了传送载荷,如图3—5所示。图3—5先后应用ESP和AH的数据包格式2、IPSee隧道模式隧道模式保护的内容是整个原始IP包,隧道模式为IP协议提供安全保护。通常情况下,只要IPSec双方有一方是安全网关或路由器,就必须使用隧道模式。即是说有一方在数据包最终目的地不是安全终点,需由一个设备来提供,而该设备并非数据包的始发点(比如在VPN的情况下);或者数据包需要保密传送到与实际目的地不同的另一个目的地,便需要采用隧道模式。图3—6隧道模式下的IPSec在隧道模式中,IPSec在一个IP包内封装了IPSec头,并增加了一个新的外部IP头,如图3一7所示。图3—7IPSec隧道传送模式的数据包格式IPSec隧道模式的数据包有两个IP头一内部头和外部头。其中,内部头由主机创建,而外部头是由提供安全服务的那个设备添加的。提供安全服务的设备既可以是主机,也可以是一个路由器。没有什么可妨碍主机提供端到端的隧道模式安全服务。尽管如此,在这种情况下,用隧道模式来代替传输模式并没有什么实质性的好处。事实上,如果安全保护服务是以端到端的形式提供的,那么用传输模式还要好一些,因为它不会添加额外的IP头。隧道模式下,通信终点由受保护的内部IP头指定,而IPsec终点则由外部IP头指定。如果IPSec终点为安全网关,则该网关会还原出内部IP包,再转发到最终目的地。3.1.4安全关联(SA)和安全关联数据库(SAD)“安全关联,,(SeeurityAssoeiation,SA)是构成Ipsee的基础,理解SA这一概念对于理解IPSec是至关重要的。AH和ESP两个协议都使用SA来保护通信,而IKE的主要功能就是在通信双方协商SA。SA是两个通信实体经协商建立起来的一种协定。它们决定了用来保护数据包安全的IPSec协议、转码方式、密钥以及密钥的有效存在时间等等。任何IPsec实施方案始终会构建一个SA数据库(SAD),由它来维护IPSec协议用来保障数据包安全的SA记录。SA是单向的,换言之,它的设计非常简化。如果两个主机(比如A和B)正在通过ESP进行安全通信,那么主机A就需要有一个sA,即SA(outbound),用来处理外发的数据包;另外还需要有一个不同的SA,即SA(inbound),用来处理进入的数据包。主机A的sA(outbound)和主机B的SA(inbound)将共享相同的加密参数(比如密钥)。类似地,主机A的SA(inbound)和主机B的SA(outbound)也会共享同样的加密参数。由于SA是单向的,所以针对外发和进入处理使用的SA,分别需要维护一张单独的(数据)表。另外,SA还是“与协议相关”的。每种协议都有一个SA。如果主机A和B同时通过AH和ESP进行安全通信,那么每个主机都会针对每一种协议来构建一个独立的SA。伊See体系中有另一个组件,名为“安全策略数据库(SPD)”。在包处理过程中,SPD和SAD这两个数据库需要联合使用。策略是IPSec结构中非常重要的一个组件。它定义了两个实体之间的安全通信特性:定义了在什么模式下使用什么协议;还定义了如何对待IP包。在后续的小节内,这些问题还会得到详细讲述。安全参数索引(SPI)在SA中,spl(seeurityParameterIndex)是一种非常重要的元素。SPI实际上是一个长度为32位的数据实体,用于独一无二地标识出接收端上的一个SA。前面提到过,安全场景或者SA是两个主机秘密通信的一种协定,它决定了像密钥和加密算法这样的参数。要解决在目的地(目标主机)上标识SA的问题,随每个数据包一道,需要发送一个SPI,以便将SA独一无二地标识出来。目标主机再利用这个值对接收SAD数据库进行检索,提取出适当的SA。SPI和SA之间映射的唯一性由接收端/目标主机来保证这种独一无二的性质(唯一性)。针对每种协议,都有必要维护一个独立的SPI域。根据IPsec结构文档的规定,在数据包内,<sPi,dst>应独一无二地标识出一个SA。接收端对在发送端上作为SA一部分保存的SPI进行分配。接收端可用它唯一地标识出一个SA。发送主机根据选择符对发送SAD数据库进行检索。检索操作的输出便是一个SA,其中已协商好所有安全参数一包括SPI。负责分配SPI的主机也要担保其唯一性。一旦SA过期,SPI便会重新使用,但要保证在每一点上<sPi,d中能匹配,而且SA是一对一。假如主机属于多宿主类型的(换言之,一个主机含有多个IP接口),便需使用源地址。在这种情况下,<sPi,dst>索引或许会失去其唯一性,所以要用源地址(src)来加一道保险。sPI被当作AH和EsP头的一部分传送。接收主机使用<sPi,dst,protoco卜这个字元组来唯一地标定sA。此外,除了<sPi,dst,protocol>三元组之外,还有可能加上一个源地址(src),来唯一标定一个SA,以节省SPI空间。SA管理的两大主要任务就是创建与删除。SA管理既可手工进行,亦可通过一个Intemet标准密钥管理协议来完成,比如IKE。为进行SA的管理,要求用户应用(含IKE)的一个接口同内核通信,以便实现对SAD数据库的管理。安全关联数据库(SAD)SAD(seeurityAssoeiationDatabase,安全关联数据库)并不是通常意义上的“数据库”,而是将所有的SA以某种数据结构集中存储的一个列表。对于外出的流量,如果需要IPSec处理,而相应的SA不存在,则IPSec将启动IKE来协商一个SA,并存于SAD中。对于进入的流量,如果需要进行IPSec处理,则IPSec将从IP包中得到三元组,并利用这个三元组在SAD中查找一个SA。SA需要同时保存由具体协议所规定的字段,以及一些通用字段。有些字段用于包的外出处理,有些用于包的进入处理,有些则同时应用于两个方向的处理,具体由字段的用法决定。一些特殊的字段会在用SA处理一个包的时候得以更新。3.1.5安全策略(SP)和安全策略数据库(SPD)sP(securityPolicy,安全策略)指对IP数据包提供何种保护,以及何种方式实施保护。sPo(securityPo一icyoatabase,安全策略数据库)是将所有的sp以某种数据结构集中存储的列表。根据“选择符”对该策略数据库进行检索,库内包含了为一个IP包提供安全服务的有关信息。IP包的外出和进入处理都要以安全策略为准。在进入和外出包处理过程中,需查阅SPD,以判断为这个包提供的安全服务有哪些。为了提供对非对称策略的支持(亦即在两个主机之间,分别为进入和外出的数据包提供不同的安全服务),可为进入与外出的数据包分别维持不同的5PD。然而,密钥管理协议总是协商的双向SA。在实际应用中,大多数都是对称的。对外出通信而言,在SAD中进行SA检索的结果是一个指针,指向SA或SA集束(前提是已建立了SA)。SA或SA集束需要根据策略的要求,按指定的顺序依次对外出包进行处理。假如SA尚未建立,就会调用密钥管理协议(IKE)来建立数据包。对进入通信来说,首先要对包进行安全处理。然后,根据选择符对SPD数据库进行检索,证实对包采取的策略。安全策略要求策略管理应用能够增添、删除和修改策略。由于SPD保存在内核,所以对一个具体的IPSec实施方案而言,它应提供一个恰当的接口,以便对SPD进行操纵。至于SPD的具体管理方式,则要由实施方案来决定,而且并未为此专门定义一套统一的标准。然而,对管理应用来说,它至少应该具有对选择符内定义的所有字段进行处理的能力。3.1.6选择符选择符决定了提供给一个包的安全服务。选择符是从网络层和传输层头内提取出来的。包括源地址、目标地址、名字、协议、上层端口字段。3.1.7IPSee处理IPsec处理分为两类:外出处理和进入处理,如图4一8简单描述了在IPSee体系下各部分如何联合起来协调工作。图3—8IPSec体系下各部分如何联合起来协调工作1、外出外出处理过程中,传输层的数据包流进IP层。IP层根据“选择符”检索SPD数据库,判断应为这个包提供哪些安全服务。至于SPD检索的输出,则可能有下面这几种情况:1.丢弃这个包。此时包不会得以处理,只是简单地丢掉。2.绕过安全服务,不使用IPSec处理。在这种情况下,IP层会在载荷内增添IP头,然后分发IP包。3.应用安全服务,使用IPSec处理。在这种情况下,假如己建立了一个SA,就会返回指向这个SA的指针;假如尚未建立SA,就会调用IKE,将这个SA建立起来。如果SA已经建立,SPD内会便会包含指向SA或SA集束的一个指针(具体由策略决定)。如果策略的输出规定强行将IPSec应用于数据包,那么在SA正式建立起来之前,包是不会传送出去的。除非建好用于这个包的SA,否则IPSec实施方案就会一直守候下去。SA建好之后,就会增添适当的AH和ESP头,开始对包进行处理。SA含有所有必要的信息,并已排好顺序,使IPSec头能够按正确的顺序加以构建。2、进入进入处理有别于外出处理。收到IP包后,假如包内根本没有包含IPSec头,那么安全层就会对策略进行检查,判断该如何对这个包进行处理。它会用选择符字段来检索SPD数据库。策略的输出可能是下述三种选择:丢弃、绕过或应用。如果策略的输出是丢弃,那么数据包就会被放弃;如果是应用,但SA没有建立,包同样会被丢弃。否则,就将包传递给下一层,作进一步的处理。如果IP包中包含了IPSee头,就会由IPSee层对这个包进行处理。IPSee层会从IP数据报中提取出SPI、源地址和目标地址。它会利用<SPI,目标地址,协议>字元组对SAD数据库进行检索。协议值要么是AH,要么是ESP。根据这个协议值,这个包的处理要么由AH层,要么由ESP层进行。协议载荷处理完之后,需要查询策略,对载荷进行校验。选择符则用作获取策略的依据。验证过程包括:检查SA的使用是否得当(也就是说,SA中的源和目标地址是否与策略对应),以及SA保护的传送层协议是否和要求的相符。对通道包来说,源和目的选择符字段属于内部头;假若根据外部源和目标地址值来检索SPD数据库,会得到无效的结果,因为条目是根据真实的源和目标地址构建的,而非根据通道终点。3.2认证头(AH)认证头(AuthentieationHeader,AH)是一种IPSee协议,用于为IP提供数据完整性、数据原始身份验证和一些可选的、有限的抗重播服务。它定义在RFC2402中。除了机密性之外,AH提供ESP能够提供的一切东西。AH不对受保护的IP数据报的任何部分进行加密。AH协议对IP层的数据使用密码学中的HMAC验证算法,从而使得对IP包的修改可以被检测出来,常用的算法有:HMAC一MDS和HMAC一SHAI。3.2.1AH头部格式AH协议和TCP、UDP协议一样,是被IP协议封装的协议之一。一个IP包的载荷是否是AH协议,由IP协议头部中的协议字段判断,AH协议是51。如果一个IP包封装的是AH协议,在IP包头(包括选项字段)后面紧跟的就是AH协议头部,格式如图4一9所示。图3—9AH协议头部格式4.2.2AH的运行模式AH有两种运行模式:传输模式和隧道模式1、传输模式AH用于传送模式时,保护的是端到端的通信。通信的终点必须是IPSec终点。AH头被插在数据报中,紧跟在IP头之后(和任意选项),和需要保护的上层协议之前,对这个数据报进行安全保护。如图3一10所示。图3—10AH传输模式数据包格式变化2、隧道模式AH用于隧道模式时,它将自己保护的数据报封装起来,另外,在AH头之前,另添了一个IP头。“里面的”IP数据报中包含了通信的原始寻址,而“外面的”新的IP数据报则包含了IPSee端点的地址。如图3一11所示。图3—11AH隧道模式数据包格式变化隧道模式可用来替换端对端安全服务的传输模式,但是,由于这一协议中没有提供机密性,因此,相应地就没有通信分析这一保护措施,所以它没什么用处。AH只用于保证收到的数据包在传输过程中不会被修改,保证由要求发送它的当事人将它发送出去,以及保证它是一个新的非重播的数据包。3.2.3AH处理AH对数据流的处理,一些具体的细节可能因具体的IPSee实施而不同;然而,对于AH的规范而言,每个实现都应遵循下面的通用方案。外出处理当一个IPSe。实现从IP协议栈中收到外出的数据包,它使用相应的选择符(目的IP地址,端口和传输协议等)来查找安全策略数据库(SPD)并确认对数据流应用怎么样的策略。如果需要对数据包进行IPSec处理,并且到目的主机的一个SA或SA束已经建立,那么符合数据包选择符的SPD将指向外出SA数据库的一个相应SA束,如果SA还未建立,IPSec实现将调用IKE协商一个SA并将其连接到SPD条目上,然后SA用于如下数据包的处理:l、产生或增加序列号值,序列号用于防止以前发送过的包的重放。2、计算ICV。3、转发数据包到目的地。3.2.12进入处理当一个数据包(若分段的数据包,等所有分段全部到达并重组后)到达主机后要进行以下操作:1、使用IP头(如果是隧道模式下则是外层IP头)中的SPI、目的IP地址以及IPSee协议在进入的SAD中查找数据包所属数据流的SA。如果查找失败,它将抛弃该数据包并记录事件。2、使用步骤1中查找到的SA进行IPSec处理。首先要确定IP头(隧道模式中是内部头)中的选择符和SA中的选择符是否匹配。如果选择符不匹配,应用将抛弃数据包并审核事件;如果选择符匹配,IPSec应用跟踪SA以及它相对于其他的SA的应用顺序,并重复步骤l、2直到遇到传输层协议或一个非IPSec扩展头(对IPv6而言)。3、使用数据包中的选择符进入SPD中查找一条与选择符匹配的策略。4、检查步骤1、2查到的SA是否和步骤3中查找的策略匹配。如果匹配失败,重复步骤4、5,直到处理完所有的策略条目或直接匹配成功。5、如果启用了抗重放功能,则使用SA的抗重放窗口检查数据包是否是重放包。如果是重放包,则抛弃它并审核事件。6、使用SA指定的MAC算法计算数据包的ICV,并将它和认证域中的值相比较。如果两个值不同,则抛弃数据包并审核事件。在这些步骤之后,如果数据包未被抛弃,则将发送到IP协议栈的传输层或转发到指定的节点。4.3封装安全载荷(ESP)与AH一样,Esp(Ene即sulatingSeeuritypayload,封装安全载荷)协议也是一种增强IP层安全的IPSec协议,由RFC2406定义。ESP协议除了可以提供无连接的完整性、数据来源验证和抗重放攻击之外,还提供数据包加密和数据流加密服务。ESP协议提供数据完整性和数据来源验证的原理和AH一样,也是通过验证算法实现。然而,与AH相比,ESP验证的数据范围要小一些。ESP协议规定了所有IPSee系统必须实现的验证算法:HMAC一MDS、HMAC一SHAI、NULL。NULL认证算法是指实际不进行认证。数据包加密服务通过对单个IP包或IP载荷应用加密算法实现的;数据流加密是通过隧道模式下对整个IP包应用加密算法实现的。ESP协议规定了所有IPSec系统必须实现的算法:DES一CBC、NULL。NULL加密算法是指实际不进行加密。之所以有NULL算法,是因为加密和认证都是可选的,但是ESP协议规定加密和认证不能同时为NULL。换句话说,如果采用ESP,加密和认证至少必选其一,当然也可以二者都选,但不能两者都不选。4.3.1ESP头部格式ESP协议和TCP、UDP、AH协议一样,是被IP协议封装的协议之一。一个IP包的载荷是否是ESP协议,由IP协议头部中的协议字段判断,ESP协议字段是50。如果一个IP包封装的是ESP协议,在IP包头(包括选项字段)后面紧跟的就是ESP协议头部,格式如图3一12所示。图3—12ESP协议头部格式3.12ESP运行模式和AH一样,ESP也有两种运行模式:传输模式和隧道模式。运行模式决定了ESP插入的位置以及保护的对象。1、传输模式传输模式保护的是IP包的载荷,如TCP、UDP、ICMP等,也可以是其他IPSec协议的头部。ESP插入到IP头部(含选项字段)之后,任何被IP协议所封装的协议之前。图4一13是在应用ESP传输模式前后的IP包格式。图3—13ESP传输模式数据包格式变化2、隧道模式隧道模式保护的是整个数据包,对整个IP包进行加密。ESP插入到原IP头部(含选项字段)之前,在ESP之前再插入新的IP头部。图3一14是在应用ESP传输模式前后的数据包格式。图3—14ESP传输模式数据包格式变化与传输模式一样,ESP头部含有SPI和序列号字段;ESP尾部含有填充、填充头部和下一个头字段:如果选用了验证,ESP的验证数据字段中包含了验证数据。同样,ESP头部和ESP验证数据不加密。隧道模式中的加密和验证范围如4一12所示,内部lP头部被加密和验证,而外部IP头部既不被加密也不被验证。不被加密是因为路由器需要这些信息来为其寻找路由:不被验证是为了使用于NAT等情况,后面我们会详细论述。重要的是,ESP隧道模式的验证和加密能够提供比ESP传输模式更加强大的安全功能,因为隧道模式下对整个原始IP包进行验证和加密,可以提供数据流加密服务;而ESP在传输模式下不能提供流加密服务,因为源、目的lP地址不被加密。但隧道模式要增加一个额外的IP头部,因此将占用更多的带宽。尽管ESP隧道模式提供的验证功能没有AH那么强大,但ESP隧道模式提供的安全功能己经足够。4.4Internet密钥交换协议(IK卫用IPSec保护一个IP包之前,必须先建立一个安全关联(sA)。正如前面指出的那样,SA可以手工创建或动态建立。Intemet密钥交换(IKE)用于动态建立SA。IKE代表IPSec对SA进行协商,并对SAD数据库进行填充。IKE127,29]属于一种混合型协议。它建立在由Intemet安全关联和密钥管理协议(IsAKMP)[2829J定义的一个框架上。同时,IKE还实现了两种密钥管理协议的一部分一Oakley[RFC2412]和SKEME。此外,IKE还定义了它自己的两种密钥交换方式。ISAKMP、Oakley和SKEME一这三个协议构成了IKE的基础。因此,我们说IKE是一种“混合型”协议,它沿用了IsAKMP的基础、oakley的模式以及SKEME的共享和密钥更新技术,从而定义出自己独一无二的验证加密材料生成技术,以及协商共享策略。3.4.1ISAKMPIsAKMP定义了双方如何沟通,如何构建彼此间用以沟通的消息,还定义了保障通信安全所需的状态变换。ISAKMP提供了对对方的身份进行验证的方法,密钥交换时交换信息的方法,以及对安全服务进行协商的方法。然而,它既没有定义一次特定的验证密钥交换如何完成,也未定义建立安全关联所需的属性。IsAKMP通信是通过UDP端口500来进行的。当然,你也可以选择其他端口/协议的组合,但是UDP端口500是由IANA为ISAKMP保留的,而且所有IsAKMP方案都要求通过UDP端口500来提供通信支持。报文和载荷对一个用基于IsAKMP的密钥管理协议交换的消息来说,它的构建方法是:将ISAKMP所有载荷链接到一个ISAKMP头。图3—15IsKMP头格式“发送方Cookie’’和“接收方Cookie’’是由通信的对方创建的,并随“报文ID’,一道,用来标识状态,以便对进行中的一次IsAKMP交换进行定义。“下一个载荷”字段指出在各个IsAKMP载荷中,哪一个紧随在这个头之后。IsAKMP版本的标识是用“主版本”和“副版本”字段中的主/副编号来进行的。ISAKMP交换的具体类型则是由“交换类型”字段来标识的。IsAKMP消息的全长(包括头自身的长度)是由“消息长度”字段来标识的。至于“标志”字段,则为接收方提供了与消息有关的特殊信息。总共定义了三个标志(采用八位长度的字段,易于扩展)一加密、委托和“纯验证”标志。目前在ISAKMP中,总共定义了13种不同的载荷。它们都是以相同格式的头开始的,如图3一16所示。图3—16通用载荷头格式跟随在当前载荷之后的ISAKMP载荷的类型由“下一个载荷”字段来指定。一个IsAKMP载荷的总长度由“载荷长度”字段来表示。至于保留字段,则未使用,必须设为0。IsAKMP定义了在一次交换中用来表达特定构建方式的载荷。其中一些是通用的,比如散列摘要或者伪随机nonce;有些则是专用的,比如证书或者安全关联。通用载荷基本上完全一致,唯一的区别就是它们的载荷标识符(它实际上在前一个载荷的“下一个载荷”字段中),它们包括:《一》今散列载荷,其中包括一个特定的散列函数摘要输出;《二》签名载荷,其中包括一个数字签名;《三》nonce载荷,其中包括一些伪随机信息,它们是密钥交换所必需的;《四》厂商ID载荷,它实际上是独一无二的。每家厂商都定义有其自己的ID,可在整个网络上进行识别;《五》.密钥交换载荷,其中包含一次密钥交换所必需的信息,比如一个Diffie一Hellman公开值。《六》.安全关联载荷,用来定义要建立的一个安全关联一无论是一个ISAKMPSA,是一个用于其他安全协议(如IPSee)的SA;《七》证书载荷;《八》证书请求载荷;《九》身份载荷。还有另外两种载荷,它们依赖于一个安全关联载荷,并由那个安全关联封装,而且可能不会单独出现。这两种载荷分别是“提案”载荷和“转换”载荷。其中,前者定义了对一种安全关联的提议,后者则对一种提议的转码方式进行了描述。一个载荷就像积木中的一个小方块,这些载荷按照某种规则“叠放”在一起,然后在最前面加上IsAKMP头部,这样就组成了一个ISAKMP报文,这些报文按照一定的模式进行交换,从而完成SA的协商、修改和删除等功能,如图3一17所示。图3—17IsAKMP载荷链接到一起,构成了一条报文4·4.1.2ISAKMP协商阶段IsAKMP提供两个协商阶段:阶段ISAKMP和阶段2。每个阶段的协商都使用(例如IKE)定义的交换完成。阶段定义的交换和其他密钥交换协议1协商在这个阶段中,ISAKMP通信双方建立一个IsAKMPSA,这个SA实际上是关于如何保护双方以后的协商通信的一致意见。然后就使用这个SA来保护其他协议SA的协商,例如ESP或AH。阶段2协商这个阶段用于建立其他安全服务的SA,例如ESP或AH。一个单独的阶段1的SA可以用于建立很多阶段2的SA。IsAKMP交换类型ISAKMP定义了5种交换类型。交换规定了双方通信期间在IsAKMP报文中的ISAKMP载荷的类型及其排列顺序。交换类型不同是因为它们对传输的信息提供了不同级别的保护。各种交换类型的负载也不相同。l、基本交换基本交换被设计为允许同时传送域密钥交换和认证相关的信息。将这些信息组织到一个消息中减少了带宽的使用,但是无法对身份信息进行保护。因为身份信息是在建立共享密钥之前传送的。2、身份保护交换身份保护交换和基本交换的区别在于它将密钥交换信息与身份信息和认证消息分开。这样交换为通信的双方提供了保护,但增加了两个额外的消息。3、仅认证交换仅认证交换允许交换认证消息而没有生成密钥的计算开销。在阶段1协商中,仅认证交换传输的信息未被加密。然而这个交换可以在阶段2进行,在这种情况下交换的消息将被加密。4、野蛮交换野蛮交换被设计成用于不需要对通信双方身份进行保护的ISAKMP协商。这个交换允许同时传送SA、密钥交换和认证相关载荷。将这些载荷组合到一个消息中减少了消息的来回数,但是没有对通信双方的身份进行保护。野蛮交换和基本交换相似,因为它们都不对身份进行保护;不同的是,基本交换要4条消息,而野蛮交换仅需3条。5、信息交换信息交换提供了发送单向信息的方法,它可以用于安全关联的管理。4一4一2IKElsAKMP本身没有定义具体的密钥交换技术。密钥交换的定义留给其他协议处理。对IPSec而言,己定义的密钥交换就是IKE一即intemet密钥交换。IKE利用IsAKMP语言来定义密钥交换,是对安全服务进行协商的手段。事实上,IKE定义了为数众多的交换方式,以及相关的选项。IKE交换的最终结果是一个通过验证的密钥以及建立在双方同意基础上的安全服务一亦即所谓的“IPSec安全关联(IPSecSA)”。但是,IKE并非仅由IPSec专用的。只要其他协议需要,比方说RIPvZ或OSPF,便可用它协商具体的安全服务。IKE使用了两个阶段的IsAKMP。第一阶段建立IKE安全关联,第二阶段利用这个既定的安全关联为IPsec协商具体的安全关联。和ISAKMP不一样,IKE为其安全关联的属性进行了定义。但尽管如此,还是没有定义其他任何安全关联的属性。这种定义留待解释域(DOI)进行。对IPSec而言,目前已经规定了针对IntemetIP安全的解释域。而对其他协议来说,可自由制订自己的IKE专用DOI。迄今为止,人们己经拟定了用于RIPvZ和OSPF的一个DOI。DOI规定了IKE在阶段2交换中需要协商解决的可选及必需属性。尽管IKE没有定义自己的DOI,但却围绕安全关联的使用,规定了相关的条款。IKE定义了两个阶段l交换;一个阶段2交换;以及两个额外的交换(用于对安全关联进行正确的维护)。对阶段1交换来说,IKE采用的是身份保护交换,以及根据基本ISAKMP文档制订的野蛮交换法。对此,我们分别叫作“主模式”和“野蛮模式”。对阶段2来说,IKE则定义了一种快速模式交换。它的作用是为除IKE之外的其他协议协商安全服务一主要是IPSec;IKE是一种非常通用的协议,所以快速模式交换足可为RIPvZ/OSPF以及要求保密的其他任何协议协商解决安全服务的问题。IKE定义的另外两种交换均属信息方面的交换。在这种交换中,IKE通信双方可相互间传达有关错误和状态的信息,而且一种新的组交换模式可使各方协商如何在它们之中使用一个新的Diffie一Hellman组。对两个阶段1交换来说一亦即主模式和野蛮模式交换,它们各自做的都是相同的事情:建立一个保密和验证无误的通信信道(IKESA),以及建立验证过的密钥,为双方的IKE通信提供机密性、消息完整性以及消息源验证服务。IKE中定义的其他所有交换都要求一个验证过的IKESA作为首要条件。所以一次阶段1交换一无论主模式还是野蛮模式一必须在进行其他任何交换之前完成。IKESA提供了各种各样的参数,它们是由通信双方协商制定的。由于有些IKE消息经过了加密处理,而且已经验证,所以通信双方必须协商拟定一种方式,对消息进行加密和验证。由于每一方都要验证对方的身份,所以它们也必须协商好相应的验证方式。针对所有协商好的参数,IKE规定了它们可能用到的一系列属性以及取值范围。将所有参数称为一个“保护套件”一包括加密算法、散列算法、验证方法以及Diffie一Hellman组。保护套件将作为一个整体进行协商,具体的作法是对IsAKMPSA载荷进行交换。保护套件中的每一种属性都包含在转换载荷中。除了这些强制使用的属性之外,还有一些可选属性,它们可作为保护套件的一部份进行协商。在这些可选属性之前,必须加上一个“存活时间”(有效期)。“存活时间”属性决定了IKESA能够存在多久,对一种具体的实施方案来说,最好在其保护套件之内,设定一个比较短的存活时间。IKE交换模式IKE定义了4种可能的交换模式:主模式、野蛮模式、快速模式和新组模式。前三种模式协商sA,第四种协商Diffie一Hellman交换的组。SA或组提议(gro叩offer)以变换载荷的形式封装在建议载荷中,而建议载荷又封装在安全关联载荷中。用到的符号:HDR:一个ISAKMP头,它的交换类型就是交换的模式。HDR*表明ISAKMP头后面的载荷是加密的。SA:带有一个或多个建议载荷的安全关联载荷。KE:密钥交换载荷。IDx:标识载荷。其中的x是ii或者是ir。ii代表IsAKMP发起者,而ir代表ISAKMP响应者。HASH:杂凑载荷。SIG:签名载荷。被签名的数据和具体的交换有关。AUTH:通用的认证机制,例如sIG或HASH。CERT:证书载荷。Nx:x的nonee载荷。x是i或这r,分别代表ISAKMP发起者和响应者。<P>_b:载荷<P>的主体,就是没有ISAKMP通用头的载荷。Ck-I:ISAKMP头中的发起者eookieoCk-R:ISAKMP头中的响应者eookie。g.:发起者的Diffie一Hellman公开值。g:响应者的Diffie一Hellman公开值。Prf(key,msg):使用密钥key和输入消息msg的伪随机数函数,如HMAc。SKEYSTR:一个衍生自仅有通信双方知道的密码密钥信息的密钥串。SKEYSTR_eIsAKMP用来保持它的消息保密性的密钥信息。SKEYSTR_aISAKMP用来认证它的消息的密钥信息。SKEYSTRZ用来在阶段2协商中为非ISAKMPSA生成密钥的密钥信息。<x>y:表明用密钥y加密x。->:代表发起者到响应者的通信。<_:代表响应者到发起者的通信。xIy:代表x与y相链接。[x]:表明x是可选的1、主模式主模式是对讨论过的ISAKMP身份保护交换方式的一个修订。它包括一个经认证的Diffie一Hellman密钥交换。主模式用于协商阶段l的ISAKMPSA。这个交换模式被设计成将密钥交换信息与身份、认证信息分离。这种分离保护了身份信息;交换的身份信息受到了前面生成的Diffie一Hellman共享秘密的保护。这样就增加了3条信息的开销。图3一18说明了一个主模式交换的例子。图3—18主模式交换例子消息l发起者向响应者发送一个封装有变换载荷。建议载荷的SA载荷,而建议载荷中又封装有变换载荷。消息2响应者发送一个SA载荷,该载荷表明它所接受的正在协商的SA的建议。消息3和4发起者和响应者交换Diffie一Hellman公开值和辅助数据,如nonCeo消息5和6发送者和响应者交换标识数据并认证Diffie一Hellman交换。这两个消息中传递的信息是加密的,用于加密的密钥使用消息3和4中交换的密钥信息生成;所以身份受到了保护。2、野蛮模式野蛮模式是讨论过的野蛮模式交换的实现。在不需要保护身份信息时,用它来协商阶段1的SA。这个交换模式允许同时传送与SA、密钥交换和认证相关的载荷。将这些载荷组合在一条消息中减少了消息的往返次数,但是这样无法提供身份保护,图3一19给出了一个野蛮模式交换的例子。图3—19野蛮模式交换的例子消息1发起者向响应者发送一个封装有单个建议载荷的SA载荷,而建议载荷中又封装有一个变换载荷。在野蛮模式中,只提供带有一个变换的建议载荷;响应者可以选择接受或者拒绝该建议。Diffie一Hellman公开值、需要的随机数据和身份信息也在第一条消息中传送。消息2如果响应者接受发起者的建议,它发送一个SA载荷,其中封装有一个包含发起者的建议和推荐的变换的建议载荷。它将Diffie一Hellman公开值、需要的随机数据和身份信息作为消息的一部分同时传送。同时,这个消息受到协商一致的认证函数保护。消息3发起者发送应用一致同意的认证函数生成的结果。实际上,这个消息认证发起者并且证明它是交换的参与者。这个消息使用前两个消息交换的密钥信息生成的密钥进行加密,但包含身份信息的消息未被加密,所以和主模式不同,野蛮模式不提供身份保护。3、快速模式快速模式用于协商阶段2的SA,协商受到在阶段l协商好的IsAKMPSA的保护。在快速模式下交换的载荷都是加密的。快速交换可以如图3一20所示:图3—20快速模式交换例子消息1发起者向响应者发送一个杂凑载荷、一个SA载荷、一个nonce载荷、可选的密钥交换信息和标识信息。杂凑载荷中包含消息摘要,它是使用前面协商好的伪随机函数(prf)对消息头中的消息ID连同杂凑函数后面的全部消息部分(包含所有的载荷头)进行计算的结果。即:HASH(l)二Prf(SKEYSTR少,MsgID}SA}Ni[}KE][IIDi}IDrl)消息2这个消息中的载荷和消息1中的载荷类似。HASH(2)中包含的指纹的生成和HAsH(l)类似,只是把发起者nonce载荷除去了载荷头,并插入在消息ID之后。HASH(2)=Prf(SKEYST凡a,MsgID}Ni一}SA}Nr[}KE][}IDi】IDr])消息3这个消息用于对前面的交换进行认证,它仅由ISAKMP头和杂凑载荷组成。杂凑载荷中的消息摘要是以一个为。的字节连接着MsgID以及去掉了载荷头的发起者nonce载荷和去掉了载荷头的响应者nonce载荷为输入生成的。HASH(3)=Prf(SKEYSTR--a,0}MsgID}N吵{N吵)4、新组模式新组模式(NewGro叩Model)用于为Diffie一Hellman密钥交换协商一个新的组。该模式是在ISAKMP阶段1中交换的SA的保护下进行的,如图3一21所示。图3—21新组模式交换例子其中HAsH(l)=prf(SKEYST凡a,MsgID,sA)且HASH(2)=Prf(SKEYSTRes,,MsgID}SA)。封装在SA载荷中的建议载荷指定了组的特征。3.4.2.2密钥的生成前面讲到主模式和野蛮模式允许三种认证方法:预共享密钥、数字签名和公钥加密。SKEYSTR值依赖于认证方法:l、预共享密钥:SKEYsTR=prf(preshared一ke丫Ni_b四r--b)2、数字签名:s旺YsTR=prf(Ni少}Nr--b,gxy)3、对于公钥加密:sKEYSTR=Prf(Hash困i少INr--b),Ck一I!Ck一R)主模式和野蛮模式交换都生成三组经认证的密钥信息。它们在KE载荷中的密钥交换数据域中传送。计算过程如下:SKEYSTR‘2=Pr叹SKEYSTR,岁}Ck一I】Ck一R}0)SKEYSTR--a=prf(sKEYSTR,SKEYSTR夕!gxy!Ck一I!Ck一R{l)SKEYSTR--e=Prf(SKEYSTR,SKEYST凡a}岁}Ck一I}Ck一R}2)表达式中的0、1、2用一个字节表示。交换分别由交换的发起者和响应者各自生成的HASH--i和HASHeer来进行认证。其中:HASH--i=Prf(SKEYSTR,g}g户}Ck一I}Ck一R!SAi一IIDii_b)HASHser=Pr代SKEYSTR,g}g}Ck一R!Ck一1ISAi少}IDir--b)3..5IPSec认证和授权模型扩展IPsecIKE协议只提供设备级的认证,但不提供用户级认证。即是说在两个VPN网关安全连接通道建立以后,两边网络(例如图3一2)中的用户就可以毫无限制的登录到对方网络中,这样就存在极大的安全隐患。诸如远程认证拨号用户服务(RemoteAuthentieationDialInUse:Service,RADIUs)[39]、Seeurelo[40]、s/KEYI42]和OTP(OneTimePassword,一次胜口令)[4’】等认证方案常用于提供安全远程接入。而IKE正好可以利用这些单向的认证方案·扩展的认证及授权方案称为从uth(ExtendedAuthenti。atio。withi。IKE)138],可以提供用户级的认证授权方案。XAuth允许IPSec网关要求远程用户进行扩展认证,强制远程用户应答以自己的凭证,然后才能建立VPN连接,这样就增加了一层认证,并且要求这两层认证都必须成功。XAuth通过以下方式来发挥作用:首先使用传统的IKE来建立IKEPhaselSA,然后扩展IKE交换使其包含额外的用户认证交换。Xauth认证工作过程如下:1.双方相互通知对方是否支持兼容版本的XAuth。这由IKE阶段l的SA协商完成。IPSec网关发给远程主机一个厂商ID载荷,作为它在主模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 茶山出租合同协议书
- 社交媒体下的网络直播市场分析与趋势预测
- 2025年LCP项目合作计划书
- 淘宝天猫店铺代运营合同
- 知识产权评估与交易的法律框架研究
- 石墨烯技术未来科技的新引擎
- 社群营销在办公领域的创新应用
- 在建工程抵押担保合同
- 2025年度手术室病人满意度提升计划
- 电子商务平台的信息安全保护策略研究
- 罪犯教育学课程
- 纪检监察办案谈话应注意的问题研讨
- 超实用工程结算单excel模板
- 一年级小学生新学期开学计划
- ISO9001-2015质量手册和全套程序文件
- 医疗器械产品放行程序
- 07j306排水沟图集标准
- 装饰材料复试清单
- GB/T 10089-1988圆柱蜗杆、蜗轮精度
- 人教版八年级美术下册全册课件汇总
- 质量管理-AQL抽样基础知识培训课件
评论
0/150
提交评论