1、12 TCP/IP是一组通信协议的缩写是一组通信协议的缩写 ISO/OSI模型及其与模型及其与TCP/IP的关系的关系3 互联网上每个接口必须有一个唯一的互联网地址互联网上每个接口必须有一个唯一的互联网地址(IP地地址址),长,长32bit,层次结构层次结构 32bit写成写成4个十进制数,点分十进制表示法个十进制数,点分十进制表示法4 当应用程序用当应用程序用TCP/IP传送数据时,数据送入协议栈,传送数据时,数据送入协议栈,通过各层,直到被当作一串比特流送入网络。通过各层,直到被当作一串比特流送入网络。5 6 7 初始化连接初始化连接:三次握手,确保双方做好传输准备,:三次握手,确保双方做
2、好传输准备,统一序列号。统一序列号。SYN, SEQ = x主机 BSYN, ACK, SEQ = y, ACK= x 1ACK, SEQ = x + 1, ACK = y 1确认确认主机 A连接请求89 TCP假定只要接受到的数据包含有正确的序列号假定只要接受到的数据包含有正确的序列号就认为数据是可以接受的。一旦连接建立,服务就认为数据是可以接受的。一旦连接建立,服务器无法确定进入的数据包是否来自真实的机器。器无法确定进入的数据包是否来自真实的机器。10在发送在发送IPIP数据包之前,对数据包之前,对IPIP包的一些重要部分进包的一些重要部分进行加密和验证计算,由接收端对这部分进行解密行加密
3、和验证计算,由接收端对这部分进行解密和验证,从而实现安全传输的目的。和验证,从而实现安全传输的目的。IPSecIPSec实现了网络层的加密和认证,它在网络体实现了网络层的加密和认证,它在网络体系结构中提供了一种端到端的安全解决方案。系结构中提供了一种端到端的安全解决方案。 11IPSecIPSec提供三种不同的形式来保护通过公有或私提供三种不同的形式来保护通过公有或私有有IPIP网络传送的私有数据。网络传送的私有数据。(1)(1)认证:通过认证可以确定所接受的数据与所认证:通过认证可以确定所接受的数据与所发送的数据是否一致,同时可以确定申请发送者发送的数据是否一致,同时可以确定申请发送者在实际
4、上是真实的,还是伪装的发送者;在实际上是真实的,还是伪装的发送者;(2)(2)数据完整性验证:通过验证,保证数据在从数据完整性验证:通过验证,保证数据在从发送者到接收者的传送过程中没有被修改;发送者到接收者的传送过程中没有被修改;(3)(3)保密:使相应的接收者能获取发送的真正内保密:使相应的接收者能获取发送的真正内容,而无关的接收者无法获知数据的真正内容。容,而无关的接收者无法获知数据的真正内容。12IPSec由三个基本要素来提供以上三种保护形式由三个基本要素来提供以上三种保护形式验证头验证头(AH)封装安全载荷封装安全载荷(ESP)互联网密钥管理协议互联网密钥管理协议(IKMP)。 认证协
5、议头和安全加载封装是一套协议中两个不认证协议头和安全加载封装是一套协议中两个不同的机制。所以,它们可以被单独使用,也可以同的机制。所以,它们可以被单独使用,也可以被组合起来使用,可以满足不同的安全要求。被组合起来使用,可以满足不同的安全要求。13帧头帧头应用数据应用数据应用数据应用数据应用数据应用数据应用数据应用数据TCP头头TCP头头TCP头头IP头头IP头头应用层应用层传输层传输层网络层网络层数据链路层数据链路层没有没有IPSec的数据封装的数据封装 14应用层应用层传输层传输层网络层网络层IPSec封装封装数 据 链 路数 据 链 路层层帧头帧头IPSec头头应用数据应用数据应用数据应用
6、数据应用数据应用数据应用数据应用数据TCP头头TCP头头TCP头头IP头头IP头头应用数据应用数据TCP头头IP头头IPSec头头IPSecn尾尾IPSec尾尾有有IPSecIPSec数据封装数据封装15体系结构体系结构安全封装载荷安全封装载荷(ESP)协议协议(ESP)协议协议认证头认证头(AH)协议协议认证算法认证算法加密算法加密算法解释域解释域DOI密钥管理密钥管理16各个模块的功能是:各个模块的功能是:体系结构:覆盖了定义体系结构:覆盖了定义IPSecIPSec技术的一般性概念、安全需求、技术的一般性概念、安全需求、定义和机制定义和机制安全封装载荷安全封装载荷( (ESP)ESP):是
7、插入是插入IPIP数据包内的一个协议头,具有数据包内的一个协议头,具有为为IPIP数据包提供机密性、数据完整性、数据源认证和抗重传数据包提供机密性、数据完整性、数据源认证和抗重传攻击等功能。攻击等功能。认证头认证头( (AH)AH):是插入是插入IPIP数据包内的一个协议头,具有为数据包内的一个协议头,具有为IPIP数数据包提供数据完整性、数据源认证和抗重传攻击等功能。据包提供数据完整性、数据源认证和抗重传攻击等功能。加密算法:一组文档描述了怎样将不同的加密算法用于加密算法:一组文档描述了怎样将不同的加密算法用于ESPESP。认证算法:一组文档描述了怎样将不同的认证算法用于认证算法:一组文档描
8、述了怎样将不同的认证算法用于AHAH和和ESPESP可选的鉴别选项。可选的鉴别选项。密钥管理:描述密钥管理机制的文档。密钥管理:描述密钥管理机制的文档。解释域解释域DOIDOI:包含了其他文档需要的为了彼此间相互联系的一包含了其他文档需要的为了彼此间相互联系的一些值。这些值包括经过检验的加密和认证算法的标识以及操些值。这些值包括经过检验的加密和认证算法的标识以及操作参数,例如密钥的生存期。作参数,例如密钥的生存期。17服务类型服务类型AHAHESP(ESP(只加只加密密) )ESP(ESP(加密并加密并认证认证) )访问控制访问控制Y YY YY Y无连接完整性无连接完整性Y YN NY Y数
9、据源的鉴别数据源的鉴别Y YN NY Y拒绝重放攻击拒绝重放攻击Y YY YY Y保密性保密性N NY YY Y有限的通信流保有限的通信流保密性密性N NY YY Y181 1IPSecIPSec传输模式主要对传输模式主要对IPIP包的部分信息提供安全包的部分信息提供安全保护,即对保护,即对IPIP数据包的上层协议数据提供安全保数据包的上层协议数据提供安全保护。护。当采用当采用AHAH传输模式时,主要为传输模式时,主要为IPIP数据包提供认证数据包提供认证保护;而采用保护;而采用ESPESP传输模式时,主要对传输模式时,主要对IPIP数据包的数据包的上层信息提供加密和认证双重保护。这是一种端上
10、层信息提供加密和认证双重保护。这是一种端到端的安全,到端的安全,IPSecIPSec在端点执行加密认证、处理,在端点执行加密认证、处理,在安全通道上传输,因此主机必须配置在安全通道上传输,因此主机必须配置IPSecIPSec。19首部首部有效载荷有效载荷IP 数据报数据报 传输网络传输网络首部首部有效载荷有效载荷IP 数据报数据报 20IPSecIPSec隧道模式对整个隧道模式对整个IPIP数据包提供保护。其基数据包提供保护。其基本原理是构造新的本原理是构造新的IPIP数据包数据包当采用当采用AHAH遂道模式时,主要为整个遂道模式时,主要为整个IPIP数据包提数据包提供认证保护供认证保护( (
11、可变字段除外可变字段除外) );当采用;当采用ESPESP遂道模遂道模式模式时,主要为整个式模式时,主要为整个IPIP数据包提供加密和认证数据包提供加密和认证双重保护。双重保护。这时,对这时,对IPSecIPSec的处理是在安全网关执行的,因的处理是在安全网关执行的,因此两端主机不必知道此两端主机不必知道IPSecIPSec协议的存在。协议的存在。21首部首部有 效 载有 效 载荷荷首部首部有 效 载有 效 载荷荷首部首部有 效 载有 效 载荷荷内部内部IP数据报数据报外首部外首部(新首部新首部)传输网传输网络络首部首部有 效 载有 效 载荷荷内部内部IP数据报数据报内部内部IP数据报数据报内
12、部内部IP数据报数据报 安全网关安全网关安全网关安全网关外首部外首部(新首部新首部)22为为IPIP数据包提供数据完整性、数据源认证和抗重数据包提供数据完整性、数据源认证和抗重传攻击等功能。传攻击等功能。数据完整性是通过消息认证码产生的校验值来保证数据完整性是通过消息认证码产生的校验值来保证的;的;数据源认证是通过在数据包中包含一个将要被认证数据源认证是通过在数据包中包含一个将要被认证的共享秘密或密钥来保证的;的共享秘密或密钥来保证的;抗重传攻击是通过使用了一个经认证的序列号来实抗重传攻击是通过使用了一个经认证的序列号来实现的。现的。23AHAH为为IPIP数据包提供了数据完整性和认证服务。数
13、据包提供了数据完整性和认证服务。注意注意AHAH并不提供保密性保护,因此当数据通过一并不提供保密性保护,因此当数据通过一个网络的时候仍然可以被看到。个网络的时候仍然可以被看到。下一个首部下一个首部载荷长度载荷长度保留保留安全参数索引安全参数索引( (SPI)SPI)序列号序列号认证数据认证数据ICV(ICV(长度可变长度可变) )24ICVICV是消息认证码是消息认证码( (message authentication codemessage authentication code,MAC)MAC)的一种截断版本,它是用的一种截断版本,它是用MACMAC算法计算的。算法计算的。只使用前只使用前
14、9696bitbit。ICVICV使用下面的域来计算:使用下面的域来计算:在传输中不变化的在传输中不变化的IPIP头域,或者其值在到达使用该头域,或者其值在到达使用该AHAH关联的关联的端点时可以预测的端点时可以预测的IPIP头域。头域。AHAH首部,为了在源和目的地进行计算,必须将认证数据域置首部,为了在源和目的地进行计算,必须将认证数据域置为为0 0。所有的上层协议数据,假定它们在传输中不变化所有的上层协议数据,假定它们在传输中不变化( (例如例如TCPTCP报报文段或隧道方式的一个内部文段或隧道方式的一个内部IPIP分组分组) )。25重放攻击指的是攻击者获得了认证分组的副本,并重放攻击
15、指的是攻击者获得了认证分组的副本,并且以后将它传输到它的目的地址。收到了重复的认且以后将它传输到它的目的地址。收到了重复的认证证IPIP分组可能会以某种方式中断服务或者出现其他分组可能会以某种方式中断服务或者出现其他一些意想不到的后果。序号字段是设计用来阻挡这一些意想不到的后果。序号字段是设计用来阻挡这种攻击的。种攻击的。IPSecIPSec数据包专门使用了一个序列号,以及一个数据包专门使用了一个序列号,以及一个“滑动滑动”的接收窗口。的接收窗口。因为因为IPIP是无连接、不可靠的服务,协议不能保证分是无连接、不可靠的服务,协议不能保证分组的按序交付,也不能保证所有的分组都会被交付,组的按序交
16、付,也不能保证所有的分组都会被交付,因此,因此,IPSecIPSec认证文档规定接收者应该实现大小为认证文档规定接收者应该实现大小为W W的接收窗口。的接收窗口。2627窗口最左端对应于窗口起始位置的序列号,窗口的右边界则窗口最左端对应于窗口起始位置的序列号,窗口的右边界则代表目前已经收到的合法分组的最高序号。对于任何已经正代表目前已经收到的合法分组的最高序号。对于任何已经正确接收的确接收的( (即经过了正确鉴别的即经过了正确鉴别的) )其序号处于其序号处于N-W+1N-W+1到到N N范围之范围之间的分组,窗口的相应插槽被标记。当收到一个分组时,按间的分组,窗口的相应插槽被标记。当收到一个分
17、组时,按照如下步骤进行进入处理:照如下步骤进行进入处理: 如果收到的分组落在窗口之内并且是新的,就进如果收到的分组落在窗口之内并且是新的,就进行行MACMAC检查。如果分组被鉴别,就对窗口的相应插槽做检查。如果分组被鉴别,就对窗口的相应插槽做标记。标记。 如果收到的分组落在窗口的右边并且是新的,就如果收到的分组落在窗口的右边并且是新的,就进行进行MACMAC检查。如果分组被检查。如果分组被鉴别鉴别,那么窗口就向前走,那么窗口就向前走,使得该序号成为窗口的右边界,并对窗口的相应插槽使得该序号成为窗口的右边界,并对窗口的相应插槽做标记。做标记。 如果收到的分组落在窗口的左边,或者鉴别失败,如果收到
18、的分组落在窗口的左边,或者鉴别失败,就丢弃该分组。就丢弃该分组。28AHAH服务可以以两种方式来使用:传输服务可以以两种方式来使用:传输( (transport)transport)模式和隧道模式和隧道( (tunnel)tunnel)模式。模式。AHAH的实际位置决定于的实际位置决定于使用何种模式以及使用何种模式以及AHAH是应用于一个是应用于一个IPv4IPv4还是一个还是一个IPv6IPv6数据包。数据包。29原始的原始的IP头头(任何选项任何选项)TCP数据数据原始的原始的IP头头(任何选项任何选项)TCP数据数据AH(载荷载荷长度长度, SPI, 序序号号, MAC)标准标准IPv4
19、数据报数据报 传输模式下的传输模式下的IPv4IPv4认证范围:所有不变的域认证范围:所有不变的域30原始的原始的IP头头(任何选项任何选项)TCP数据数据扩展项头扩展项头(如果有如果有)标准的标准的IPv6数据报数据报 传输模式下的传输模式下的IPv6 原始的原始的IP头头(任何选项任何选项)目的目的选项选项数据数据逐跃点、目的逐跃点、目的、路由、分段、路由、分段TCPA H ( 载 荷载 荷 长 度长 度 , SPI, 序号序号, MAC)认证范围:所有不变的域认证范围:所有不变的域31原始的原始的IP头头(任何选项任何选项)TCP数据数据AH(载荷载荷长度长度, SPI, 序号序号, M
20、AC)新的新的IP头头(任何选项任何选项) 隧道模式下的隧道模式下的IPv4 隧道模式下的隧道模式下的IPv6 认证范围:所有不变的域认证范围:所有不变的域新的新的IP头头(任何选项任何选项)扩展项头扩展项头(如果有如果有)数据数据扩展项头扩展项头(如果有如果有)TCPAH(载荷载荷长度长度, SPI, 序号序号, MAC)认证范围:所有不变的域认证范围:所有不变的域32ESPESP主要支持主要支持IPIP数据包的机密性,它将需要保护数据包的机密性,它将需要保护的用户数据进行加密后再封装到新的的用户数据进行加密后再封装到新的IPIP数据包中。数据包中。另外另外ESPESP也可提供认证服务,但与
21、也可提供认证服务,但与AHAH相比,二者的相比,二者的认证范围不同,认证范围不同,ESPESP只认证只认证ESPESP头之后的信息,比头之后的信息,比AHAH认证的范围要小。认证的范围要小。33 34ESPESP服务对有效载荷数据、填充、填充长度和下服务对有效载荷数据、填充、填充长度和下一个首部字段加密。下面是一些已定义的算法:一个首部字段加密。下面是一些已定义的算法:l l 三密钥三重三密钥三重DESDESl l RC5RC5l l IDEAIDEAl l CASTCASTl l BlowfishBlowfishl l 三密钥三重三密钥三重IDEAIDEA35ESP尾尾TCP数据数据ESP头
22、头(SPI,序序列号列号)源源IP头头E S P 认认证证ESP尾尾TCP数据数据ESP头头(SPI,序列号序列号)源源IP头头E S P认证认证目 的目 的选项选项逐跃点、目逐跃点、目的、路由、的、路由、分段分段传输模式下的传输模式下的IPv4 ESP 传输模式下的传输模式下的IPv6 ESP 被加密的被加密的 被加密的被加密的 被认证的被认证的 被认证的被认证的 36传输方式的操作总结如下:传输方式的操作总结如下:在源站,由在源站,由ESPESP尾部加上整个传输级的报文段组成的尾部加上整个传输级的报文段组成的数据块被加密,这个数据块的明文被其密文所代替,以数据块被加密,这个数据块的明文被其
23、密文所代替,以形成用于传输的形成用于传输的IPIP分组。如果认证选项被选中,还要加分组。如果认证选项被选中,还要加上认证。上认证。然后分组被路由到目的站。每个中间路由器都要检查然后分组被路由到目的站。每个中间路由器都要检查和处理和处理IPIP首部加上任何明文的首部加上任何明文的IPIP扩展首部,但是不需要扩展首部,但是不需要检查密文。检查密文。目的结点检查和处理目的结点检查和处理IPIP首部加上任何明文的首部加上任何明文的IPIP扩展首扩展首部。然后,在部。然后,在ESPESP首部的首部的SPISPI基础上目的结点对分组的其基础上目的结点对分组的其他部分进行解密以恢复明文的传输层报文段。他部分
24、进行解密以恢复明文的传输层报文段。传输方式操作为使用它的任何应用程序提供了机密性,传输方式操作为使用它的任何应用程序提供了机密性,因此避免了在每一个单独的应用程序中实现机密性,这因此避免了在每一个单独的应用程序中实现机密性,这种方式的操作也是相当有效的,几乎没有增加种方式的操作也是相当有效的,几乎没有增加IPIP分组的分组的总长度。总长度。37ESP尾尾TCP数据数据ESP头头(SPI,序列号序列号)原原IP头头ESP认认证证新新IP头头ESP尾尾TCP数据数据ESP头头(SPI,序列号序列号)原原IP头头E S P认证认证新新IP头头原扩原扩展头展头新扩新扩展头展头隧道模式下的隧道模式下的I
25、Pv4 ESP 隧道模式下的隧道模式下的IPv6 ESP 被加密的被加密的 被认证的被认证的 被加密的被加密的 被认证的被认证的 38 当利用当利用IPSecIPSec进行通信时,采用哪种认证算法、进行通信时,采用哪种认证算法、加密算法以及采用什么密钥都是事先协商好的。加密算法以及采用什么密钥都是事先协商好的。一旦通信双方取得一致后,在通信期间将共享一旦通信双方取得一致后,在通信期间将共享这些安全参数信息来进行安全信息传输。这些安全参数信息来进行安全信息传输。 为了使通信双方的认证算法、加密算法保持一为了使通信双方的认证算法、加密算法保持一致,相互间建立的联系被称为安全关联致,相互间建立的联系
26、被称为安全关联(Security Association,SA)。 也就是在使用也就是在使用AHAH或或ESPESP之前,先要从源主机到目之前,先要从源主机到目的主机建立一条网络层的逻辑连接。的主机建立一条网络层的逻辑连接。 SA是构成是构成IPSec的基础。的基础。39 安全关联是单向的,意味着每一对通信系统连安全关联是单向的,意味着每一对通信系统连接都至少需要两个安全关联。一个是从接都至少需要两个安全关联。一个是从A到到B,一个是从一个是从B到到A。 如如A需要有一个需要有一个SA(out)用来处理外发数据包;用来处理外发数据包;一个一个SA(in)用来处理进入数据包。用来处理进入数据包。
27、 如如B需要有需要有SB(out) 和和SB(in) SA(out) 和和SB(in)共享一个加密参数共享一个加密参数 SA(in) 和和SB(out)共享一个加密参数共享一个加密参数 因此对外发和进入的因此对外发和进入的SA分别需要维护一张单独分别需要维护一张单独的数据表的数据表40 一个一个SASA由三个参数来惟一地标识:由三个参数来惟一地标识: l l 安全参数索引安全参数索引( (SPI)SPI):该比特串惟一地标识一该比特串惟一地标识一个与某一安全协议个与某一安全协议( (例如例如AHAH或者置或者置SP)SP)相关的安相关的安全关联。全关联。SPISPI位于位于AHAH和和ESPE
28、SP头内,因此接收系统头内,因此接收系统可以挑选出用于处理接收到的可以挑选出用于处理接收到的I IP P数据包的数据包的SASA。 l l 目的目的IPIP地址:该参数表明该地址:该参数表明该SASA的目的的目的IPIP地址。地址。端点可能会是最终用户系统或者一个如网关或端点可能会是最终用户系统或者一个如网关或防火墙这样的网络系统。尽管从概念上讲该参防火墙这样的网络系统。尽管从概念上讲该参数可以是任意地址类型数可以是任意地址类型( (多播、广播等多播、广播等) ),但是,但是目前它只能是一个单播地址。目前它只能是一个单播地址。 l l 安全协议标识符:该参数表明本关联是一个安全协议标识符:该参
29、数表明本关联是一个AH安全关联还是一个安全关联还是一个ESP安全关联。安全关联。 41 IPSecIPSec实施方案最终会构建一个实施方案最终会构建一个SASA数据库数据库( (SADB)SADB),由它来维护由它来维护IPSecIPSec协议用来保障数据包安全的协议用来保障数据包安全的SASA记录。记录。 在在IPSecIPSec保护保护IPIP报文之前,必须先建立一个安全报文之前,必须先建立一个安全联 盟 。 安 全 联 盟 可 以 手 工 或 动 态 建 立 。联 盟 。 安 全 联 盟 可 以 手 工 或 动 态 建 立 。InternetInternet密钥交换密钥交换( (IKE)
30、IKE)用于动态建立安全联盟,用于动态建立安全联盟,IKEIKE代表代表IPSecIPSec对对SASA进行协商,并对进行协商,并对SADBSADB进行填进行填充。充。42 安全策略数据库安全策略数据库(Security Policy Database,SPD)和安全关联数据库和安全关联数据库(Security Association Database,SAD)。 SPD指定了决定所有输入或者输出的指定了决定所有输入或者输出的IP通信部通信部署的策略。署的策略。 SAD包含有与当前活动的安全关联相关的参数。包含有与当前活动的安全关联相关的参数。 安全关联是双方所协商的安全策略的一种描述。安全关
31、联是双方所协商的安全策略的一种描述。 43 安全策略决定了为一个包提供的安全服务安全策略决定了为一个包提供的安全服务 根据根据“选择符选择符”对数据库进行检索,选择符从对数据库进行检索,选择符从网络层和传输层头提取出来网络层和传输层头提取出来 IP包的外出和进入都需要查询包的外出和进入都需要查询SPD,以判断为以判断为这个包提供的安全服务有哪些。这个包提供的安全服务有哪些。44目的目的IPIP地址:这可以是一个单一的地址:这可以是一个单一的IPIP地址、一个地址地址、一个地址列表或者是一个通配的地址。多个地址和通配地址用于列表或者是一个通配的地址。多个地址和通配地址用于多于一个的源系统共享同一
32、个多于一个的源系统共享同一个SASA的情况的情况( (例如,位于一个例如,位于一个网关之后网关之后) )。源源IPIP地址:这可以是一个单一的地址:这可以是一个单一的IPIP地址、一个地址范地址、一个地址范围或者是一个通配的地址。围或者是一个通配的地址。名称:这可以是一个名称:这可以是一个X X500500特定名称特定名称( (DN)DN)或者是一个或者是一个来自操作系统的用户标识符。来自操作系统的用户标识符。传输层协议:这可以从传输层协议:这可以从IPv4IPv4协议域或者协议域或者IPv6IPv6的下一个的下一个头域中得到。它可以是一个单独的协议号码、一个协议头域中得到。它可以是一个单独的
33、协议号码、一个协议号的列表,或者是一个协议号码范围。号的列表,或者是一个协议号码范围。源端口和目的端口:这些端口可以是单个的源端口和目的端口:这些端口可以是单个的UDPUDP或或TCPTCP端口值,真正应用协议的便是这些端口。如果端口不能端口值,真正应用协议的便是这些端口。如果端口不能访问,便需要使用通配符。访问,便需要使用通配符。数据敏感级:这被用于提供信息流安全的系统数据敏感级:这被用于提供信息流安全的系统( (例如例如无分级的或者秘密的无分级的或者秘密的) )。45 下面的参数用于定义一个下面的参数用于定义一个SASA:序列号计数器:用于生成位于序列号计数器:用于生成位于AHAH或者或者
34、ESPESP头中的序列头中的序列号域的一个号域的一个3232比特值。比特值。序列号计数器溢出:这是一个标志。序列号计数器溢出:这是一个标志。抗重放窗口:一个抗重放窗口:一个3232位计数器,用于决定一个输入的位计数器,用于决定一个输入的AH AH 或者或者ESPESP数据包是否是一个重放包。数据包是否是一个重放包。AHAH信息:与使用信息:与使用AHAH有关的参数有关的参数( (如认证算法、密钥和如认证算法、密钥和密钥生存期密钥生存期) )。ESPESP信息:与使用信息:与使用ESPESP有关的参数有关的参数( (如加密算法、密钥、如加密算法、密钥、密钥生存期和初始化值密钥生存期和初始化值)
35、)。46 SASA的生存期:一个时间间隔或者字节计数,的生存期:一个时间间隔或者字节计数,用于指定一个用于指定一个SASA使用的持续时间。当该持续时使用的持续时间。当该持续时间已结束时,必须用一个新的间已结束时,必须用一个新的SA(SA(以及新的以及新的SPl)SPl)来替代该来替代该SASA,或者终止该或者终止该SASA,同时该参数中包同时该参数中包括一个应该采取何种动作的标识。括一个应该采取何种动作的标识。 IPSecIPSec协议模式:指定对于该协议模式:指定对于该SASA的通信流所使的通信流所使用的操作模式用的操作模式( (传输模式、隧道模式,或通配模传输模式、隧道模式,或通配模式式)
36、 )。47 IPSecIPSec处理分为两类:外出处理和进入处理。处理分为两类:外出处理和进入处理。外出处理过程外出处理过程中,传输层的数据包流进中,传输层的数据包流进IPIP层,层,IPIP层检索层检索SPDSPD数据库,判断应为这个包提供哪些安全数据库,判断应为这个包提供哪些安全服务。需要输入服务。需要输入SPDSPD的是前面已经讨论过的的是前面已经讨论过的“选择选择符符”。48 至于至于SPDSPD检索的输出,则可能有下面几种情况:检索的输出,则可能有下面几种情况: 丢弃这个包。此时包不会得以处理,只是简单地丢丢弃这个包。此时包不会得以处理,只是简单地丢掉。掉。 绕过安全服务。在这种情况
37、下,绕过安全服务。在这种情况下,IPIP层会在载荷内增层会在载荷内增添添IPIP头,然后分发头,然后分发IPIP包。包。 应用安全服务。在这种情况下,假如已建立了一个应用安全服务。在这种情况下,假如已建立了一个SASA,就会返回指向这个就会返回指向这个SASA的指针;的指针; 假如尚未建立假如尚未建立SASA,就会调用就会调用IKEIKE,将这个将这个SASA建立起来。建立起来。如果如果SASA已经建立,已经建立,SPDSPD内便会包含指向内便会包含指向SASA或或SASA集束的一集束的一个指针个指针( (具体由策略决定具体由策略决定) )。如果策略的输出规定强行。如果策略的输出规定强行将将I
38、PSecIPSec应用于数据包,那么在应用于数据包,那么在SASA正式建立起来之前,正式建立起来之前,包是不会传送出去的。包是不会传送出去的。4950 进入处理进入处理有别于外出处理。如果收到的有别于外出处理。如果收到的IPSec包包是一个分段,必须把它保留下来,直到这个包是一个分段,必须把它保留下来,直到这个包的其他部分收完为止。的其他部分收完为止。 收到收到IPIP包后,包后,假如包内根本没有包含假如包内根本没有包含IPSecIPSec头头,那么安全层就会对策略进行检查,判断该如何那么安全层就会对策略进行检查,判断该如何对这个包进行处理。它会用选择符字段来检索对这个包进行处理。它会用选择符
39、字段来检索SPDSPD数据库。策略的输出可能是下述三种选择:数据库。策略的输出可能是下述三种选择:丢弃、绕过或应用。如果策略的输出是丢弃,丢弃、绕过或应用。如果策略的输出是丢弃,那么数据包就会被丢弃;如果是应用,但那么数据包就会被丢弃;如果是应用,但SASA没没有建立,包同样会被丢弃。否则,就将包传递有建立,包同样会被丢弃。否则,就将包传递给下一层,作进一步的处理。给下一层,作进一步的处理。51如果如果IPIP包中包含了包中包含了IPSecIPSec头头,就会由,就会由IPSecIPSec层对这层对这个包进行处理。个包进行处理。IPSecIPSec层会从层会从IPIP数据报中提取出数据报中提取
40、出SPISPI、源地址和目源地址和目标地址。它会利用标地址。它会利用 字元组字元组对对SADBSADB数据库进行检索。数据库进行检索。协议值要么是协议值要么是AHAH,要么是要么是ESPESP。根据这个协议值,根据这个协议值,这个包的处理要么由这个包的处理要么由AHAH层,要么由层,要么由ESPESP层进行。层进行。协议载荷处理完之后,需要查询策略,对载荷进协议载荷处理完之后,需要查询策略,对载荷进行检验。选择符则用作获取策略的依据。验证过行检验。选择符则用作获取策略的依据。验证过程包括:检查程包括:检查SASA的使用是否得当的使用是否得当( (也就是说,也就是说,SASA中中的源和目标地址是
41、否与策略对应的源和目标地址是否与策略对应) ),以及,以及SASA保护的保护的传送层协议是否和要求的相符。传送层协议是否和要求的相符。52使用一个单一的使用一个单一的SA,AH或者或者ESP来实现来实现IP数据包的安数据包的安全。然而,并没有限制使用多个全。然而,并没有限制使用多个SA,这通常称为这通常称为SA束束(bundle)。SA集结的顺序是通过安全策略来定义的。集结的顺序是通过安全策略来定义的。 IPSecIPSec体系结构文档列出了体系结构文档列出了IPSecIPSec兼容的主机或安全网关兼容的主机或安全网关必须支持的四种必须支持的四种SASA组合的例子。组合的例子。这些例子如下图所
42、示,图中,每种情况的下面部分表示这些例子如下图所示,图中,每种情况的下面部分表示的是元素的物理连接;上面部分通过一个或多个嵌套的是元素的物理连接;上面部分通过一个或多个嵌套SASA表示了逻辑连接。每个表示了逻辑连接。每个SASA可以是可以是AHAH或者或者ESPESP。对于主机到对于主机到主机的主机的SASA,可以是传输模式或者隧道模式;其他情况则可以是传输模式或者隧道模式;其他情况则必须是隧道模式。必须是隧道模式。53端到端主机之间应用端到端主机之间应用IPSecIPSec该情况中,对实现该情况中,对实现IPSecIPSec的两个端系统提供安全业务,两个端系的两个端系统提供安全业务,两个端系
43、统必须有共享的秘密密钥。此时统必须有共享的秘密密钥。此时SASA的组合方式可能有:的组合方式可能有:传输模式下的传输模式下的AHAH;传输模式下的传输模式下的ESPESP;AHAH后跟后跟ESPESP,两者都处于传输模式下(即两者都处于传输模式下(即AHAHSASA在在ESPESPSASA的内的内部);部);上面三种情况的任一种在隧道模式下的上面三种情况的任一种在隧道模式下的AH或或ESP里面里面 Internet内部网内部网内部网内部网一个或多个一个或多个SA安全网关安全网关安全网关安全网关主机主机主机主机54原始的原始的IP头头(任何选项任何选项)TCP数据数据AH(载荷载荷长度长度, S
44、PI, 序序号号, MAC)ESP尾尾TCP数据数据ESP头头(SPI,序序列号列号)源源IP头头E S P 认认证证ESP尾尾TCP数据数据ESP头头(SPI,序列号序列号)源源IP头头E S P 认认证证AH(载荷载荷长度长度, S P I , 序 号序 号 , MAC)原始的原始的IP头头(任何选项任何选项)TCP数据数据AH(载荷载荷长度长度, SPI, 序号序号, MAC)新的新的IP头头(任何选项任何选项)55 网关到网关之间实现网关到网关之间实现IPSec IPSec 该情况中,两个主机未实现该情况中,两个主机未实现IPSecIPSec,因此仅在两因此仅在两个网关之间提供安全业务
45、。此时仅需要一个隧个网关之间提供安全业务。此时仅需要一个隧道模式下的道模式下的SASA,可用于支持可用于支持AHAH、ESPESP或具有认证或具有认证选择的选择的ESPESP。由于由于IPSecIPSec安全业务作用于整个内安全业务作用于整个内部数据报,因此不需要使用嵌套的隧道模式。部数据报,因此不需要使用嵌套的隧道模式。Internet内部网内部网内部网内部网隧道隧道 SA安全网关安全网关安全网关安全网关主机主机主机主机56 上面和的组合上面和的组合 该情况在情况的基础上增加了端到端的安全性。在情况和该情况在情况的基础上增加了端到端的安全性。在情况和情况中讨论的组合在这里同样允许。网关到网关
46、的隧道为终情况中讨论的组合在这里同样允许。网关到网关的隧道为终端系统之间的所有通信量提供了鉴别服务或者机密性,或者两端系统之间的所有通信量提供了鉴别服务或者机密性,或者两种服务都提供。当网关到网关的隧道是种服务都提供。当网关到网关的隧道是ESPESP时,它还提供了有限时,它还提供了有限形式的通信量机密性。通过端到端的形式的通信量机密性。通过端到端的SASA,单独的主机可以为给单独的主机可以为给定的应用程序或给定的用户实现任何需要的补充定的应用程序或给定的用户实现任何需要的补充IPSecIPSec。Internet内部网内部网内部网内部网隧道隧道 SA安全网关安全网关安全网关安全网关主机主机主机
47、主机57 远程终端支持远程终端支持 该情况表示一个具有该情况表示一个具有IPSecIPSec的远程主机通过的远程主机通过InternetInternet到到达某一组织的防火墙,然后访问防火墙后面的本地主达某一组织的防火墙,然后访问防火墙后面的本地主机(如服务器或工作站)。此时在远程主机和防火墙机(如服务器或工作站)。此时在远程主机和防火墙之间只要求使用隧道模式,而在远程主机和本地主机之间只要求使用隧道模式,而在远程主机和本地主机之间,则使用一到两个之间,则使用一到两个SASA。Internet内部网内部网隧道隧道 SA一个或多个一个或多个 SA安全网关安全网关主机主机主机主机58 必要性必要性
48、 方式:方式: 手工手工 自动:通过使用自动的密钥管理协议,可以创建自动:通过使用自动的密钥管理协议,可以创建SA所需要的密钥。对于自动管理,可以使用各种各样所需要的密钥。对于自动管理,可以使用各种各样的协议,但是的协议,但是IKE已经成为了当前的工业标准。已经成为了当前的工业标准。 59默认的默认的IPSecIPSec密钥协商方式是密钥协商方式是InternetInternet密钥交换密钥交换协议(即协议(即Internet Key ExchangeInternet Key Exchange,简记作简记作IKEIKE)。)。IKEIKE允许两个实体通过一系列消息得到安全通信允许两个实体通过一
49、系列消息得到安全通信的会话密钥,的会话密钥,IKEIKE交换为通信双方的消息提供认证交换为通信双方的消息提供认证和(或)加密,并且针对洪流、重放、欺骗等攻和(或)加密,并且针对洪流、重放、欺骗等攻击提供不同程度保护。击提供不同程度保护。IKEIKE依赖于公私钥加密技术和密码散列函数等机依赖于公私钥加密技术和密码散列函数等机制制IKEIKE是一个使用已知的是一个使用已知的UDPUDP端口(端口为端口(端口为500500)的)的应用层协议。应用层协议。60ESPIKEAHISKMPOakleySKEME密 钥 交 换 模密 钥 交 换 模式式两个阶段两个阶段框架基础框架基础密钥交换协议密钥交换协议
50、密 钥 共 享 和密 钥 共 享 和更新更新61SKEMESKEME是一种密钥交换协议,是一种密钥交换协议,SKEMESKEME提供了多种模提供了多种模式的密钥交换。式的密钥交换。SKEMESKEME的基本模式中,提供了基于公开密钥的密的基本模式中,提供了基于公开密钥的密钥交换和钥交换和Diffie-HellmanDiffie-Hellman密钥交换。密钥交换。它还包含了对它还包含了对KerberosKerberos模型密钥交换的支持。模型密钥交换的支持。62SKEMESKEME协议的执行过程包含协议的执行过程包含四个主要阶段四个主要阶段:cookiecookie阶段、共享阶段、交换阶段和认证