第7章-VPN技术与安全协议.ppt
第十章 虚拟私用网络技术 第第7章章 VPN技术与安全协议技术与安全协议3/8/20231*内容提要内容提要 通过本章的学习,学生应该掌握以下内容:通过本章的学习,学生应该掌握以下内容:q了解虚拟私用网络的概念和作用;了解虚拟私用网络的概念和作用;q理解理解IPSec工作原理;工作原理;q理解虚拟私用网络的解决方案;理解虚拟私用网络的解决方案;q通过实验掌握在通过实验掌握在windows 2000中配置中配置VPN连连接。接。2问题的提出问题的提出q 随着随着Internet的增长,许多公司都开始考虑:的增长,许多公司都开始考虑:“如如何充分利用何充分利用Internet为公司的业务服务为公司的业务服务?”q 最初,只是通过最初,只是通过WWW方式向用户提供公司的图片、方式向用户提供公司的图片、产品及服务。产品及服务。q 现在的焦点已转移到电子商务,对于那些基于传统现在的焦点已转移到电子商务,对于那些基于传统信息系统的关键性商务应用及数据,希望能通过无信息系统的关键性商务应用及数据,希望能通过无处不及的处不及的Internet来实现方便快捷的访问,且企业来实现方便快捷的访问,且企业的信息是安全的。的信息是安全的。q 通过安全的虚拟专用网络的实现,可以把公司的业通过安全的虚拟专用网络的实现,可以把公司的业务安全地、有效地拓展到世界各地。务安全地、有效地拓展到世界各地。31.VPN的概念的概念q 虚拟专用网(虚拟专用网(Virtual Private Network,VPN)提供了一种在公共网络上实现网络安)提供了一种在公共网络上实现网络安全保密通信的方法。全保密通信的方法。4q特征特征虚拟虚拟(V):并不实际存在,而是利用现有网络,通:并不实际存在,而是利用现有网络,通过资源配置以及虚电路的建立而构成的虚拟网络过资源配置以及虚电路的建立而构成的虚拟网络专用专用(P):只有企业自己的用户才可以联入企业自:只有企业自己的用户才可以联入企业自己的网络己的网络网络网络(N):既可以让客户连接到公网所能够到达的:既可以让客户连接到公网所能够到达的任何地方,也可以方便地解决保密性、安全性、任何地方,也可以方便地解决保密性、安全性、可管理性等问题,降低网络的使用成本可管理性等问题,降低网络的使用成本5qVPN与逻辑等同网络VPN虚拟私用网络逻辑等同网络穿越6qVPN是企业网在是企业网在Internet等公共网络上的等公共网络上的延伸延伸,通,通过一个过一个专用的通道专用的通道来创建一个安全的连接。来创建一个安全的连接。q VPN通过安全的数据通道将通过安全的数据通道将远程用户远程用户、公司分支机公司分支机构构、公司的、公司的业务合作伙伴业务合作伙伴等与公司的企业网连接起等与公司的企业网连接起来,构成一个扩展的公司企业网。来,构成一个扩展的公司企业网。Internet服务提服务提供商(供商(ISP)提供高性能、低价位的)提供高性能、低价位的Internet接人接人(直接通过线路或本地电话号码),这样公司就可(直接通过线路或本地电话号码),这样公司就可以摆脱以前使用的昂贵的租用线路。以摆脱以前使用的昂贵的租用线路。7VPN扩展的企业网络扩展的企业网络企业内联网企业内联网远程用户远程用户合作伙伴合作伙伴分支结构分支结构8VPNVPN应用应用通过通过Internet实现远程用户访问实现远程用户访问加密 安全网关VPN认证 公司内部网InternetISPISP9连接企业内部网络计算机连接企业内部网络计算机 加密安全网关VPN认证 公司内部网安全网关 分公司内部网InternetISPISP10业务伙伴访问公司网络业务伙伴访问公司网络加密安全网关认证 公司内部网 业务伙伴安全网关InternetISPISPVPN加密1111001110011100111001010001010001000101001010100100101010010001001001000100100100000100000000010000001100111001110011100101000101000100010100101010010010101001000100100100010010010000010000000001000000明文明文明文明文加密加密加密加密解密解密解密解密明文明文明文明文密文密文密文密文#¥&(&(%#%#%$%&*(!%$%&*(!#$%*(_%$#$%*(_%$#$%*#$%*&*)%$#&*)%$#保证数据在传输保证数据在传输中的机密性中的机密性发起方发起方发起方发起方接受方接受方接受方接受方密文密文密文密文#¥&(%#%$%&*(!#$%*(_%$#$%*&*)%$#1.支持支持IKE密钥协商密钥协商2.密钥自动刷新密钥自动刷新3.128位对称加密位对称加密4.1024位非对称加密位非对称加密5.设备之间采用证书认证设备之间采用证书认证6.支持支持CA认证认证VPN的主要作用之一的主要作用之一12发起方发起方发起方发起方接受方接受方接受方接受方10010001100100010101001001010010100001001000010000001101000011011000101010001010100010101000101010010001100100010101001001010010100001001000010000001101000011011000101010001010HashHashHashHash100010101000101010010001100100010101001001010010100001001000010000001101000011011000101010001010是否一样?是否一样?是否一样?是否一样?验证数据来源的验证数据来源的完整性和真实性完整性和真实性1.1.支持透明模式支持透明模式支持透明模式支持透明模式2.2.支持路由模式支持路由模式支持路由模式支持路由模式VPN的主要作用之二的主要作用之二13VPN数据安全性数据安全性qVPN数据传输的安全需求主要通过三种基本数据传输的安全需求主要通过三种基本要素来实现要素来实现认证认证s确保所连接的远程设备的正确性。确保所连接的远程设备的正确性。加密加密s确保所传输的数据对于第三方来说是没有任何确保所传输的数据对于第三方来说是没有任何意义的。意义的。完整性完整性s确保任何对数据的修改都可以被检测出来。确保任何对数据的修改都可以被检测出来。142.VPN协议协议qVPN基于隧道基于隧道(Tunneling)技术技术普通路由选择封装普通路由选择封装(GRET)隧道隧道点对点隧道协议点对点隧道协议(PPTP)第二层隧道协议第二层隧道协议(L2TP)IP安全协议安全协议(IPSec)15普通路由选择封装普通路由选择封装(GRET)q最简单,配置方便最简单,配置方便q数据在隧道上传输时,封装成数据在隧道上传输时,封装成GRE数据格式数据格式q图中路由器图中路由器A和路由器和路由器D之间建立之间建立GRE隧道隧道q路由器路由器B和路由器和路由器C无法看到原始分组无法看到原始分组16配置路由器配置路由器A和路由器和路由器D的的GRE隧道隧道RouterA#configure terminal4w5d:%SYS-5-CONFIG_I:Configured from console by consoleEnter configuration commands,one per line.End with CNTL/Z.RouterA(config)#interface FastEthernet1/0RouterA(config-if)#ip address 130.130.130.1 255.255.255.0RouterA(config-if)#no shutdownRouterA(config-if)#exitRouterA(config)#interface Tunnel1RouterA(config-if)#ip address 10.10.10.1 255.255.255.252RouterA(config-if)#tunnel destination 140.140.140.1RouterA(config-if)#tunnel source 130.130.130.1RouterA(config-if)#endRouterA#17配置路由器配置路由器A和路由器和路由器D的的GRE隧道隧道RouterD#configure terminal4w5d:%SYS-5-CONFIG_I:Configured from console by consoleEnter configuration commands,one per line.End with CNTL/Z.RouterD(config)#interface FastEthernet1/0RouterD(config-if)#ip address 140.140.140.1 255.255.255.0RouterD(config-if)#no shutdownRouterD(config-if)#exitRouterD(config)#interface Tunnel1RouterD(config-if)#ip address 10.10.10.2 255.255.255.252RouterD(config-if)#tunnel destination 130.130.130.1RouterD(config-if)#tunnel source 140.140.140.1RouterD(config-if)#endRouterD#18缺点缺点q管理费用高、隧道的规模数量大等。管理费用高、隧道的规模数量大等。q因为因为GRE是由手工配置的,所以配置和维护隧道所是由手工配置的,所以配置和维护隧道所需的费用和隧道的数量是直接相关的需的费用和隧道的数量是直接相关的每次隧道每次隧道的终点改变,隧道要重新配置。的终点改变,隧道要重新配置。q隧道也可自动配置,但有缺点,如不能考虑相关路隧道也可自动配置,但有缺点,如不能考虑相关路由信息、性能问题以及容易形成回路问题。一旦形由信息、性能问题以及容易形成回路问题。一旦形成回路,会极大恶化路由的效率。成回路,会极大恶化路由的效率。q不适用远程访问不适用远程访问VPN19 远程访问远程访问VPN中,多数用户是采用拨号中,多数用户是采用拨号上网。这时可以通过上网。这时可以通过PPTP和和L2TP来加以解来加以解决。决。qPPTPqL2TP20点对点隧道协议点对点隧道协议(PPTP)qPoint-to-Point Tunneling Protocol,是由微软所,是由微软所提议的提议的VPN标准,标准,PPTP运行于运行于OSI的第二层。是的第二层。是PPP(点对点协议,用于串行线路上拨号访问点对点协议,用于串行线路上拨号访问)的扩的扩展,将展,将PPP帧封装成帧封装成IP数据包,以便在基于数据包,以便在基于IP的网的网上传输。上传输。认证:认证:MS-CHAP加密:加密:MPPEq通过该协议,远程用户能够通过通过该协议,远程用户能够通过 Microsoft Windows 操作系统以及其它装有点对点协议的系操作系统以及其它装有点对点协议的系统安全访问公司网络,并能拨号连入本地统安全访问公司网络,并能拨号连入本地 ISP,通,通过过 Internet 安全链接到公司网络。安全链接到公司网络。21第二层隧道协议第二层隧道协议(L2TP)qL2TP技术结合了微软的技术结合了微软的PPTP和和Cisco的第二的第二层转发层转发(L2F)技术的优点。技术的优点。q可以在可以在任何提供面向分组的点对点连接上任何提供面向分组的点对点连接上建建立隧道立隧道CHAP认证认证IPSec数据加密和密钥管理数据加密和密钥管理22L2TP和和PPTPq当用于当用于IP网络环境时,网络环境时,L2TP和和PPTP非常相非常相似。似。qL2TP比比PPTP更安全,因为更安全,因为L2TP接入接入服务器服务器能够确定用户从哪里来的。能够确定用户从哪里来的。qL2TP主要用于比较集中的、固定的主要用于比较集中的、固定的VPN用户用户qPPTP比较适合移动的用户。比较适合移动的用户。23IP安全协议安全协议(IPSec)qIPSec是由是由IETF(Internet Engineering Task Force)设计的作为基于设计的作为基于IP通信环境下一种端到通信环境下一种端到端的保证数据安全的机制。端的保证数据安全的机制。q包含两个安全协议和一个密钥管理协议包含两个安全协议和一个密钥管理协议认证报头协议(认证报头协议(AH)封装安全有效载荷协议(封装安全有效载荷协议(ESP)因特网密钥交换协议(因特网密钥交换协议(IKE)24IPSec的优点:的优点:(1)IPSec比其他同类协议具有更好的兼容性。比其他同类协议具有更好的兼容性。(2)比高层安全协议(如)比高层安全协议(如SOCKS5)性能更好,实)性能更好,实现更方便;比低层安全协议更能适应通信介质的多现更方便;比低层安全协议更能适应通信介质的多样性。样性。(3)系统开销小。)系统开销小。(4)透明性好。)透明性好。(5)管理方便。)管理方便。(6)开放性好。)开放性好。25IPSec的体系结构的体系结构qIPSec是是IP与与Security 的简写。的简写。qIPSec联合使用多种安全技术来为联合使用多种安全技术来为IP数据包数据包提供提供保密保密性性、完整性完整性和和真实性真实性。IPSec实际上指的是多个相实际上指的是多个相关的协议,它们在关的协议,它们在RFC2401-2411和和RFC2451中定中定义。义。qIPSec的主要设计目标是良好和互操作性。如果得的主要设计目标是良好和互操作性。如果得到正确的实现,到正确的实现,IPSec对那些不支持它的主机和网对那些不支持它的主机和网络不会产生任何负面的影响,络不会产生任何负面的影响,IPSec的体系结构独的体系结构独立于当前的密码算法,立于当前的密码算法,IPSec对于对于IPv6 是必需的,是必需的,而对而对IPv4是可选的。是可选的。qIPSec使用当前流行的密码学算法。使用当前流行的密码学算法。26IPSec的体系结构的体系结构27安全关联安全关联q为正确封装及提取为正确封装及提取IPSec数据包,要将安全服务、密数据包,要将安全服务、密钥与要保护的通信数据联系到一起;同时要将远程通钥与要保护的通信数据联系到一起;同时要将远程通信实体与要交换密钥的信实体与要交换密钥的IPSec数据传输联系起来。这数据传输联系起来。这样的方案称为样的方案称为安全关联安全关联(Security Association,SA)。qSA是构成是构成IPSec的基础。它由两个通信实体协商建立。的基础。它由两个通信实体协商建立。它们决定了用来保护数据包安全的它们决定了用来保护数据包安全的IPSec协议、密钥协议、密钥以及密钥的有效存在时间等。任何以及密钥的有效存在时间等。任何IPSec实施方案都实施方案都会构建一个会构建一个SA数据库(数据库(SAD),),由它来维护保障数据由它来维护保障数据包安全的包安全的SA记录。记录。28 SA是是单向单向进行的,它仅朝一个方向定义安全服进行的,它仅朝一个方向定义安全服务,要么对通信实体收到的包进行务,要么对通信实体收到的包进行“进入进入”保护,保护,要么对实体外发的包进行要么对实体外发的包进行“外出外出”保护。保护。SA由一个由一个三元组唯一标识:三元组唯一标识:1)安全参数索引安全参数索引(SPI):):存在于存在于IPSec协议头内;协议头内;2)目标目标IP地址地址:它同时决定了关联方向;:它同时决定了关联方向;3)安全协议安全协议(AH、ESP)标识符。标识符。通常通常SA是以成对的形式存在的,每个朝一个方是以成对的形式存在的,每个朝一个方向。既可人工创建它,亦可采用动态创建方式。向。既可人工创建它,亦可采用动态创建方式。SA驻留在驻留在“安全关联数据库(安全关联数据库(SAD)”内。内。29SA管理管理q若用人工方式加以创建,若用人工方式加以创建,SA便会一直存在下便会一直存在下去,除非再用人工方式将其删除。去,除非再用人工方式将其删除。q若用动态方式创建,则若用动态方式创建,则SA有一个存活时间与有一个存活时间与其关联在一起。存活时间(其关联在一起。存活时间(TTL)由由IPSec通通信双方在密钥管理协议中协商。信双方在密钥管理协议中协商。TTL非常重非常重要,因为受一个密钥保护的通信量必须加以要,因为受一个密钥保护的通信量必须加以谨慎地管理。若超时使用一个密钥,会为攻谨慎地管理。若超时使用一个密钥,会为攻击者侵入系统提供更多的机会。击者侵入系统提供更多的机会。30安全关联数据库安全关联数据库SADSAD用于定义每个用于定义每个SA的的参数参数值:值:q序列号:以序列号:以AH/ESP报头中报头中32位位bit值表示值表示q序列号溢出标记:防止溢出数据报的传送序列号溢出标记:防止溢出数据报的传送(外出包外出包)q抗重放窗口:收到的抗重放窗口:收到的AH/ESP数据报是否重放数据报是否重放qAH/ESP信息:认证信息:认证/加密算法、密钥、有效期加密算法、密钥、有效期qSA有效期:该时间间隔之后,有效期:该时间间隔之后,SA结束结束/被替代被替代q模式模式(Mode):传输模式:传输模式/隧道模式隧道模式q路径最大传输单元路径最大传输单元(MPTU):最大数据报长度:最大数据报长度(不分段不分段)31安全策略数据库安全策略数据库SPD SPD(Security Policy Database)定义了对所定义了对所有出有出/入业务应采取的安全策略,为入业务应采取的安全策略,为IP数据项提供什么数据项提供什么服务以及以什么方式提供。对所有出服务以及以什么方式提供。对所有出/入包括非入包括非Ipsec业务的处理必须咨询业务的处理必须咨询SPD,处理有三种可能:处理有三种可能:1)丢弃丢弃:不允许在此主机上存在,或不允许通过此网关。不允许在此主机上存在,或不允许通过此网关。2)绕过绕过IPSec:允许通过而无需允许通过而无需IPSec保护保护3)采用采用IPSec:对这种业务流,对这种业务流,SPD要指明提供的安全服要指明提供的安全服务,采用的协议及使用的算法等。务,采用的协议及使用的算法等。32IPSec模式模式qIPSec提供两种操作模式(提供两种操作模式(保护内容不同保护内容不同)传输模式传输模式隧道模式隧道模式333435认证报头认证报头AH 认认 证证 头头(AuthenticationHeader,AH)是是IPSec协协议议之之一一,用用于于为为IP提提供供数数据据完完整整性性、数数据据身身份份认认证证和和一一些些可可选选的的、有有限限的抗重放服务。的抗重放服务。它它定定义义在在RFC2402中中。AH不不提提供供保保密密性性服服务务,不不需需要要加加密密算算法法(加加密密器器),而而需需要要一一个个认认证证器器(身身份份认认证证器器)。AH定定义义保保护护方方法法、头头的的位位置置、身身份份认认证证的的覆覆盖盖范范围围以以及及输输出出和和输输入入处处理理规规则则,但但没没有有对对所所用用的的身身份份认认证算法进行定义。证算法进行定义。36IPSec认证头认证头37认证头格式认证头格式q下一个头下一个头表示表示AH头之后是什么。头之后是什么。传送模式下,将是处于保护中的上层协议的值,传送模式下,将是处于保护中的上层协议的值,如如UDP或或TCP协议的值。协议的值。在隧道模式下,值为在隧道模式下,值为4,表示,表示IP-in-IP(IPv4)封封装或装或IPv6封装的封装的41这个值。这个值。q负载长度负载长度字段采用字段采用32位的字减位的字减2表示头本身的表示头本身的长度。长度。qSPI和外部和外部IP头的目的地址一起,用于识别对头的目的地址一起,用于识别对这个包进行身份认证的这个包进行身份认证的SA。38认证头格式认证头格式q序列号序列号是一个单向递增的计算器。是一个单向递增的计算器。q认证数据字段认证数据字段长度不固定,其中包括完整性校长度不固定,其中包括完整性校检的结果。检的结果。AH没有定义身份认证器,但有两没有定义身份认证器,但有两个强制实施身份认证器:个强制实施身份认证器:HMAC-SHA-96和和HMAC-MD5-96。输出结果长度为输出结果长度为96比特。比特。39AH模式模式传输模式传输模式q用于保护的是端到端的通信。用于保护的是端到端的通信。AH头插在数据头插在数据包中实现数据包的安全保护。包中实现数据包的安全保护。40隧道模式隧道模式q保护整个数据包,在保护整个数据包,在AH 头之前另加一个头之前另加一个IP头。头。42AH处理处理 外外出出数数据据包包与与一一个个SPD条条目目(表表示示采采用用AH保保护护)匹匹配配时时,要要求求SAD查查看看是是否否存存在在一一个合适的个合适的SA。如果没有,可用如果没有,可用IKE动态地建立一个;动态地建立一个;如如果果有有,就就根根据据相相应应的的SA对对数数据据包包进进行行安安全全处理;处理;如如果果它它是是一一束束SA,应应用用顺顺序序就就由由它它所所涉涉及及的的协议而定。协议而定。44输出处理输出处理q创建一个外出创建一个外出SA时可通过手工或时可通过手工或IKE将序列号计算将序列号计算器初始化成器初始化成0。在利用这个。在利用这个SA构建一个构建一个AH头之前,头之前,计算器就开始递增。这样保证了每个计算器就开始递增。这样保证了每个AH头中的头中的序列序列号号都是一个独一无二的、非零的和单向递增的数。都是一个独一无二的、非零的和单向递增的数。qAH头的头的其余字段其余字段都将填满恰当的值。都将填满恰当的值。SPI字段分配字段分配的值是取自的值是取自SA的的SPI;下一个头字段分配的是跟在下一个头字段分配的是跟在AH头之后的协议数据类型值;载荷长度分配的是头之后的协议数据类型值;载荷长度分配的是“32位字减位字减2”;“身份认证数据身份认证数据”字段设成字段设成0。45输出处理输出处理qAH认证范围扩展到外部认证范围扩展到外部IP头的原有的或预计头的原有的或预计有的字段。因此,要将完整性检查值有的字段。因此,要将完整性检查值(ICV)之之前的前的不定字段设成不定字段设成0。IPv4它的不定字段包括它的不定字段包括Type of service(服务类服务类型)、型)、Flags(标志)、标志)、Fragment offset(分段分段偏移偏移)、Time to live(存活时间存活时间)和和Header checksum(头校验和头校验和)。对对IPv4选项或选项或IPv6扩展头来说,如果它们是固定扩展头来说,如果它们是固定的或预定的,都会包含在的或预定的,都会包含在ICV计算之中。否则,计算之中。否则,必需在计算必需在计算ICV之前,把它们调成零。之前,把它们调成零。46输出处理输出处理q根据身份验证器的要求,可能需要根据身份验证器的要求,可能需要适当填充适当填充。对有些。对有些MAC来说,比如来说,比如DES-CBC MAC,要求在其上面应用要求在其上面应用MAC的数据必须是算法的块尺寸的倍数。对于的数据必须是算法的块尺寸的倍数。对于IPv4,AH头必须是头必须是32个字节的倍数,个字节的倍数,IPv6则是则是64个字节的倍个字节的倍数。若数。若MAC的输出不符合要求,就必须添加的输出不符合要求,就必须添加AH头。头。这个填充项是隐式添加的。它必须一概为零,其大小不包括这个填充项是隐式添加的。它必须一概为零,其大小不包括在载荷长度中,并且不随数据包一起传送。在载荷长度中,并且不随数据包一起传送。q如果强制实施身份认证程序正确对齐了,在用如果强制实施身份认证程序正确对齐了,在用HMAC-MD5-96或或HMAC-SHA-96时,就不再需要填充项。时,就不再需要填充项。47输出处理输出处理q根据根据SA指定的身份验证算法、密钥和整个指定的身份验证算法、密钥和整个IP包(包括包(包括AH头)头),计算出相应的计算出相应的ICV。接。接下来,下来,ICV值被复制到值被复制到AH的的“身份认证数据身份认证数据”字段中字段中,IP头中的不定字段就可根据头中的不定字段就可根据IP处处理的不同得以填充。理的不同得以填充。qAH处理结束处理结束,AH保护的保护的IP包可以输出了。包可以输出了。根据包的大小,在放到网上之前,可将它分根据包的大小,在放到网上之前,可将它分片,或在两个片,或在两个IPSec同级之间的传送过程中,同级之间的传送过程中,由路由器进行分段。由路由器进行分段。48输入处理输入处理q如果一个受安全保护的包在被收到之前被分了片,如果一个受安全保护的包在被收到之前被分了片,就要在就要在AH输入处理前对这些输入处理前对这些分片进行重组分片进行重组。q接收接收IPSec包首先要包首先要找出用来保护这个包的找出用来保护这个包的SA。用用IP头的目的地址、特定协议(这里是头的目的地址、特定协议(这里是AH)和取自)和取自AH头的头的SPI这三者寻找这三者寻找SA。如果没有找到合适的。如果没有找到合适的SA,这个包就会被丢弃。这个包就会被丢弃。q找到找到SA之后,进行之后,进行序列号检查序列号检查。抗重播检查会决定。抗重播检查会决定这个包是新收的还是以前收到的。如果检查失败,这个包是新收的还是以前收到的。如果检查失败,这个包就会被丢弃。这个包就会被丢弃。49输入处理输入处理q检查完整性检查值检查完整性检查值(ICV)。首先将。首先将AH头头的的“验证数据验证数据”字段中的字段中的ICV保存,清零。保存,清零。IP中的所有不定字段也清零,根据身份验中的所有不定字段也清零,根据身份验证器算法以及载荷长度,可能还要进行隐证器算法以及载荷长度,可能还要进行隐式填充。随后,对整个数据包应用式填充。随后,对整个数据包应用“身份身份认证器认证器”算法,并将获得的摘要同保存下算法,并将获得的摘要同保存下来的来的ICV值进行比较。值进行比较。相符,相符,IP包就通过了身份认证;包就通过了身份认证;不符,便丢弃该包。不符,便丢弃该包。50封装安全有效载荷封装安全有效载荷(ESP)(ESP)qESP(Encapsulating Security Payload)属于属于IPSec协议的一种;协议的一种;q提供机密性、数据的完整性以及对数据源的提供机密性、数据的完整性以及对数据源的身份认证。此外,它也要负责对重播攻击的身份认证。此外,它也要负责对重播攻击的抵抗;抵抗;qESP可以单独应用,与可以单独应用,与IP验证头(验证头(AH)结合)结合使用,或者采用嵌套形式。使用,或者采用嵌套形式。51ESP头格式头格式52ESP格式格式q安全参数索引安全参数索引SPI:它和:它和IP头之前的目标地址以及协头之前的目标地址以及协议结合在一起,用来标识用于处理数据包的特定的议结合在一起,用来标识用于处理数据包的特定的SA。q序列号序列号,是一个不重复的,是一个不重复的、单向递增的、由发送端单向递增的、由发送端插在插在ESP头的一个号码,使得头的一个号码,使得ESP具有了抵抗重播具有了抵抗重播攻击的能力。攻击的能力。qESP保护的实际数据包含在保护的实际数据包含在载荷数据载荷数据字段中。因此,字段中。因此,这个字段的长度由数据长度决定。某些加密算法要这个字段的长度由数据长度决定。某些加密算法要用到初始化向量(用到初始化向量(IV),),它也受到保护它也受到保护。53q填充填充(供加密使用),如采用的加密算法要求明文(供加密使用),如采用的加密算法要求明文是某个数量字节的倍数,或者用于隐藏有效载荷的是某个数量字节的倍数,或者用于隐藏有效载荷的实际长度,可能会需要填充字节。实际长度,可能会需要填充字节。q填充长度填充长度q下一个头下一个头是一个是一个8位字段,标识有效载荷字段中包含位字段,标识有效载荷字段中包含的数据类型。例如:隧道模式下的应用的数据类型。例如:隧道模式下的应用ESP,这个,这个值就是值就是4q验证数据验证数据,可变长字段,包含完整性校验值,可选,可变长字段,包含完整性校验值,可选的,只有的,只有SA选择验证服务才包含验证数据字段。选择验证服务才包含验证数据字段。54加密与认证加密与认证q由于由于ESP同时提供了机密性以及身份认证同时提供了机密性以及身份认证机制,所以在其机制,所以在其SA中必须同时定义两套算中必须同时定义两套算法法用来确保机密性的算法叫作用来确保机密性的算法叫作cipher(加密器),而负责身份认证的叫加密器),而负责身份认证的叫作作authenticator(认证器)。每个认证器)。每个ESP SA都至少有一个加密器和一个认证器。都至少有一个加密器和一个认证器。55ESP模式模式qESP头有两种使用方式:头有两种使用方式:传输模式传输模式隧道模式隧道模式q其差别决定了其差别决定了ESP保护的真正对象是什么。保护的真正对象是什么。传输模式传输模式仅在主机中实现仅在主机中实现,提供对上层协议的保,提供对上层协议的保护,不提供对护,不提供对IP头的保护头的保护隧道模式下,整个受保护的隧道模式下,整个受保护的IP包都封装在包都封装在ESP头,头,并且还增加一个新的并且还增加一个新的IP头。头。56ESP传输模式传输模式qESP插在插在IP头之后,上层协议之前,或者在任何头之后,上层协议之前,或者在任何已经插入的已经插入的IPSec头之前,如果选择的身份验证,头之前,如果选择的身份验证,则则IPv4分组中分组中ESP传输模式如下图所示:传输模式如下图所示:57ESP隧道模式隧道模式q隧道模式隧道模式ESP可以在可以在主机主机或者或者安全网关安全网关上实现。该上实现。该模式中,模式中,“内部内部”IP头装在最终的源和目的地址,头装在最终的源和目的地址,而而“外部外部”IP头可能包含不同的头可能包含不同的IP地址,例如安全地址,例如安全网关地址。网关地址。ESP保护整个内部保护整个内部IP分组。分组。59ESP处理处理q用用ESP处理处理IP包与包与ESP采用的具体模式有着采用的具体模式有着部分联系。部分联系。q对于对于ESP来说,来说,密文是得到验证的密文是得到验证的,验证数验证数据则是未加密的据则是未加密的。对于外出包,首先进行的是加密处理对于外出包,首先进行的是加密处理对于进入包,首先进行的是验证处理对于进入包,首先进行的是验证处理61处理外出包:传送模式处理外出包:传送模式q对在对在IPv4上运行的传送模式应用来说,上运行的传送模式应用来说,ESP头头跟在跟在IP头后,头后,IP头的协议字段被复制到头的协议字段被复制到ESP头的头的“下一下一个头个头”字段中,字段中,ESP头的头的其余字段其余字段则被填满:则被填满:SPI字段:来自字段:来自SAD的、用来对这个包进行处理的特定的、用来对这个包进行处理的特定SA的的SPI;填充序列号字段的是序列中的下一个值;填充序列号字段的是序列中的下一个值;填充数据会被插入,其值被分配;同时分配的还有填充长填充数据会被插入,其值被分配;同时分配的还有填充长度值。度值。IP头的协议字段得到的是头的协议字段得到的是ESP的值,的值,50。q除了头插入位置不同之外,除了头插入位置不同之外,IPv6处理规则基本上类处理规则基本上类似于似于IPv4。ESP头可插在任意一个扩展头之后。头可插在任意一个扩展头之后。62处理外出包:隧道模式处理外出包:隧道模式q对隧道模式应用来说,对隧道模式应用来说,ESP头是加在头是加在IP包前面的。包前面的。如果封装的是一个如果封装的是一个IPv4包,那么包,那么ESP头的头的“下一个头下一个头”字字段分配到值段分配到值4;如果封装的是一个如果封装的是一个IPv6包,则分配到值包,则分配到值41。q其他字段的填充方式和在传送模式中一样。随后,其他字段的填充方式和在传送模式中一样。随后,在在ESP头的前面头的前面新增了一个新增了一个IP头头,并对相应的字段,并对相应的字段进行填充(赋值):进行填充(赋值):源地址对应于应用源地址对应于应用ESP的那个设备本身;的那个设备本身;目标地址取自于用来应用目标地址取自于用来应用ESP的的SA;协议设为协议设为50;其他字段的值则参照本地的其他字段的值则参照本地的IP处理加以填充处理加以填充63处理外出包处理外出包q不管哪种模式下,接下去的步骤都是相同的。不管哪种模式下,接下去的步骤都是相同的。加密加密认证认证,从恰当的从恰当的SA中选择加密器(加密算法),中选择加密器(加密算法),对包进行加密(从载荷数据的开头,一直到对包进行加密(从载荷数据的开头,一直到“下一下一个头个头”字段)。随后,使用恰当的字段)。随后,使用恰当的SA中的认证器,中的认证器,对包进行认证(自对包进行认证(自ESP头开始,中间经过加密的密头开始,中间经过加密的密文,一直到文,一直到ESP尾)。随后,将认证器的结果插入尾)。随后,将认证器的结果插入ESP尾的尾的“认证数据认证数据”字段中。字段中。q对外出数据包进行处理的最后一步是:对外出数据包进行处理的最后一步是:重新计算重新计算位位于于ESP前面的前面的IP头的头的校验和校验和。64处理进入包处理进入包q接收端在收到一个接收端在收到一个ESP包之后,若不对这个包之后,若不对这个包进行处理,就无法得知它究竟处于隧道模包进行处理,就无法得知它究竟处于隧道模式,还是传送模式。根据对这个包进行处理式,还是传送模式。根据对这个包进行处理的的SA,便可知道它到底处在便可知道它到底处在什么模式下什么模式下。但。但除非完成了对它的解密,实际上不可能知道除非完成了对它的解密,实际上不可能知道ESP保护的是什么。保护的是什么。q如果收到的如果收到的IPSec包是一个包是一个分段分段,必须把它保,必须把它保留下来,直到这个包的其他部分收完为止。留下来,直到这个包的其他部分收完为止。65处理进入包处理进入包q收到收到ESP包后,首先要检查处理这个包的包后,首先要检查处理这个包的SA是否存在是否存在这是基本的这是基本的IPSec要求,而不是要求,而不是ESP专有的。如果没有专有的。如果没有SA,这个包就会被丢这个包就会被丢弃。弃。q一旦认证通过了一个有效的一旦认证通过了一个有效的SA,就可用它开就可用它开始对包的处理。始对包的处理。q首先首先检查序列号检查序列号。q由于由于ESP身份认证密文而不是明文,接下来身份认证密文而不是明文,接下来进行的便是对这个进行的便是对这个包进行身份认证包进行身份认证。66处理进入包处理进入包q然后是解密。通过取自然后是解密。通过取自SA的密钥和密码算法,的密钥和密码算法,就可对就可对ESP包进行解密包进行解密,这个,这个ESP包从载荷数包从载荷数据开始到下一个头结束。据开始到下一个头结束。q身份认证和解密检查成功之后,就可对结果数身份认证和解密检查成功之后,就可对结果数据包进行初步的据包进行初步的有效性检验有效性检验。如果这个包与要。如果这个包与要求的模式不符,就必须把它丢弃。求的模式不符,就必须把它丢弃。67处理进入包处理进入包q下面,就可以对没有下面,就可以对没有ESP头的包进行处理了。头的包进行处理了。对于传送模式,上层协议头与对于传送模式,上层协议头与IP头是同步的,头是同步的,ESP头的下头的下一个头字段被复制到一个头字段被复制到IP头的协议字段中,并计算出一个新头的协议字段中,并计算出一个新的的IP校验和;校验和;对于隧道模式,就抛开外部对于隧道模式,就抛开外部IP头和头和ESP头头我们需要的我们需要的是这个解开封装的包。是这个解开封装的包。q为进行下一步的处理,可将一个经过改造和认证的包为进行下一步的处理,可将一个经过改造和认证的包转发转发出去。如果它是一个传送模式