信息安全网络安全协议.ppt
1 1第6讲 网络安全协议第第6 6讲讲 网络安全协议网络安全协议6.1 TCP/IP协议簇协议簇6.2 网络安全协议网络安全协议6.3 IPSec协议协议6.4 SSL协议协议习题习题2 2第6讲 网络安全协议 6.1 6.1 TCP/IP协议簇协议簇6.1.1 6.1.1 协议簇的基本构成协议簇的基本构成 因特网因特网(Internet)依赖于一组称为依赖于一组称为TCP/IP的协议组。的协议组。TCP/IP是一组通信协议集的缩写,它包含了一组互补和合作是一组通信协议集的缩写,它包含了一组互补和合作的协议。所有这些协议共同工作,以便在因特网上传输信息。的协议。所有这些协议共同工作,以便在因特网上传输信息。我们知道,我们知道,ISO/OSI模型将网络表示为一个垂直的模块模型将网络表示为一个垂直的模块(或分层或分层)协议栈,每层完成特定的功能。协议栈,每层完成特定的功能。TCP/IP协议栈只是协议栈只是许多支持许多支持ISO/OSI分层模型的协议栈的一种。分层模型的协议栈的一种。TCP/IP通常被通常被认为是一个四层协议系统,如图所示。认为是一个四层协议系统,如图所示。3 3第6讲 网络安全协议4 4第6讲 网络安全协议5 5第6讲 网络安全协议6.1.2 TCP6.1.2 TCP协议的头结构协议的头结构 基于基于TCP/IP协议的所有应用层的数据协议的所有应用层的数据(如如HTTP、FTP、EMAIL、DNS等等)在传输层都是通过在传输层都是通过TCP(或或UDP)数据包的格数据包的格式进行封装的,如图所示。式进行封装的,如图所示。TCP协议的头结构是固定的,各字段信息如下协议的头结构是固定的,各字段信息如下:(1)源端口源端口:指数据流的流出端口,取值范围是指数据流的流出端口,取值范围是065535。(2)目的端口目的端口:指数据流的流入端口,取值范围是指数据流的流入端口,取值范围是065535。(3)序列号序列号:指出指出“IP数据报数据报”在发送端数据流中的位置在发送端数据流中的位置(依依次递增次递增)。(4)确认序列号确认序列号:指出本机希望下一个接收的字节的序号。指出本机希望下一个接收的字节的序号。6 6第6讲 网络安全协议7 7第6讲 网络安全协议 (5)头长度头长度:指出以指出以32 bit为单位的段头标长度。为单位的段头标长度。(6)码位码位:指出该指出该IP包的目的与内容,如表所示。包的目的与内容,如表所示。URG 紧急指针有效紧急指针有效 ACK 确认序列号有效确认序列号有效 PSH 接收方应当尽快将这个报文接收方应当尽快将这个报文交给应用层交给应用层 RST 连接复位连接复位 SYN 同步序列号用来发起一个连同步序列号用来发起一个连接接 FIN 发送端完成发送任务发送端完成发送任务 8 8第6讲 网络安全协议 (7)窗口窗口(滑动窗口滑动窗口):用于通告接收端接收数据的缓冲区用于通告接收端接收数据的缓冲区的大小。的大小。(8)校验和校验和:不仅对头数据进行校验,还对封包内容进行校不仅对头数据进行校验,还对封包内容进行校验。验。(9)紧急指针紧急指针:当当URG为为1时有效。时有效。TCP的紧急方式是发送的紧急方式是发送紧急数据的一种方式。紧急数据的一种方式。在基于在基于TCP/IP协议的所有应用层的数据通过传输层的封协议的所有应用层的数据通过传输层的封装后,送给网络层,在网络层是通过装后,送给网络层,在网络层是通过IP数据包的格式进行传数据包的格式进行传输,其结构是固定的,如图所示。输,其结构是固定的,如图所示。6.1.3IP6.1.3IP协议的头结构协议的头结构9 9第6讲 网络安全协议版本号版本号,值值=4IP 报头长度,报头长度,4Byte为单位为单位,值:值:5-15服务类型服务类型:PPPDTR00PPP:优先级优先级D=1:低延时低延时T=1:高吞吐高吞吐R=1:高可靠高可靠IP 报文长度,报文长度,含报头和数据含报头和数据,值:值:0-65536 即即 64KBIP 报文编号报文编号标识,标识,判断分段属于哪判断分段属于哪一个一个IP报报高层协议标示高层协议标示TCP/UDP跳步数,跳步数,64-255包含选项的包含选项的IP包包头头CheckSum,每每经过一个路由器经过一个路由器需重新计算。需重新计算。分段偏移,说明分段偏移,说明本本段在当前段在当前IP包包中中的位置的位置,以,以8Byte为单位。为单位。DF=1:未分段未分段DF=0:分段分段MF=1:中间段中间段MF=0:最后段最后段1010第6讲 网络安全协议 IP数据包各字段的信息如下数据包各字段的信息如下:(1)版本版本:占第一个字节的高四位。占第一个字节的高四位。(2)头长度头长度:占第一个字节的低四位(可表示的最大长度是占第一个字节的低四位(可表示的最大长度是15个单位个单位,一个单位,一个单位4个字节个字节,最大值,最大值60字节)。字节)。(3)服务类型:服务类型:前前3位为优先字段权,现在已经被忽略。接位为优先字段权,现在已经被忽略。接着着4位用来表示位用来表示最小延迟最小延迟、最大吞吐量最大吞吐量、最高可靠性最高可靠性和和最小费最小费用用。(4)封包总长度:封包总长度:整个整个IP报的长度,单位为字节。报的长度,单位为字节。(5)标识标识:一个报文一个报文的的所有分片所有分片标识相同标识相同,目标主机根据,目标主机根据主机的标识字段来确定新到的分组属于哪一个数据报。主机的标识字段来确定新到的分组属于哪一个数据报。1111第6讲 网络安全协议 (6)标志:标志:占占 3 位,目前只有前两位有意义。标志字段的最低位,目前只有前两位有意义。标志字段的最低位是位是 MF(More Fragment)。MF 1 表示后面表示后面“还有分片还有分片”。MF 0 表示最后一个分片。标志字段中间的一位是表示最后一个分片。标志字段中间的一位是 DF(Dont Fragment)。只有当。只有当 DF 0 时才允许分片。时才允许分片。(7)片偏移片偏移(13(13 位位):较长的分组在分片后某片在原分组中较长的分组在分片后某片在原分组中的相对位置。片偏移以的相对位置。片偏移以 8 个字节个字节为偏移单位。为偏移单位。(8)生存时间生存时间:表示表示IP包在网络的包在网络的存活时间存活时间(跳数跳数),缺省值,缺省值为为64。(9)协议类型协议类型:该字段用来说明此该字段用来说明此IP包中的数据类型,如包中的数据类型,如1表示表示ICMP数据包,数据包,2表示表示IGMP数据,数据,6表示表示TCP数据,数据,17表表1212第6讲 网络安全协议示示UDP数据包。数据包。(10)头标校验和头标校验和:该字段用于校验该字段用于校验IP包的头信息,防止数包的头信息,防止数据传输时发生错误。据传输时发生错误。(11)IP选项选项:IP选项由选项由3部分组成,即选项部分组成,即选项(选项类别、选选项类别、选项代号项代号)、长度和选项数据。、长度和选项数据。6.1.4 TCP6.1.4 TCP连接的建立与释放过程连接的建立与释放过程 基于基于TCP/IP协议的连接,通常采用协议的连接,通常采用客户端客户端/服务器服务器模式。模式。客户端与服务器之间的客户端与服务器之间的面向连接面向连接的访问是的访问是基于基于TCP的的“三次三次握手协议握手协议”。当数据传输结束后,连接的释放要通过四次数。当数据传输结束后,连接的释放要通过四次数据传输,就是常说的基于据传输,就是常说的基于TCP的的“四次释放协议四次释放协议”。如图所。如图所示。示。1313第6讲 网络安全协议1414第6讲 网络安全协议1515第6讲 网络安全协议6.1.5 TCP/IP6.1.5 TCP/IP协议簇的安全问题协议簇的安全问题 随着随着Internet的发展,的发展,TCP/IP协议得到了广泛的应用,几协议得到了广泛的应用,几乎所有的网络均采用了乎所有的网络均采用了TCP/IP协议。由于协议。由于TCP/IP协议在最初协议在最初设计时是基于一种可信环境的,没有考虑安全性问题,因此设计时是基于一种可信环境的,没有考虑安全性问题,因此它自身存在许多固有的安全缺陷,它自身存在许多固有的安全缺陷,例如例如:(1)对对IP协议,其协议,其IP地址可以通过软件进行设置,这样会地址可以通过软件进行设置,这样会造成造成地址假冒地址假冒和和地址欺骗地址欺骗两类安全患。两类安全患。(2)IP协议支持源路由方式,即源发方可以指定信息包传协议支持源路由方式,即源发方可以指定信息包传送到目的节点的中间路由,为送到目的节点的中间路由,为源路由攻击源路由攻击埋下了隐患。埋下了隐患。(3)在在TCP/IP协议的实现中也存在着一些协议的实现中也存在着一些安全缺陷安全缺陷和和漏漏洞洞1616第6讲 网络安全协议,如,如序列号产生容易被猜测序列号产生容易被猜测、参数不检查而导致的缓冲区溢参数不检查而导致的缓冲区溢出出等。等。(4)在在TCP/IP协议簇中的各种应用层协议协议簇中的各种应用层协议(如如Telnet、FTP、SMTP等等)缺乏认证和保密措施,这就为欺骗、否认、拒绝、缺乏认证和保密措施,这就为欺骗、否认、拒绝、篡改、窃取等行为开了方便之门,使得基于这些缺陷和漏洞篡改、窃取等行为开了方便之门,使得基于这些缺陷和漏洞的攻击形式多样。的攻击形式多样。6.2 网络安全协议网络安全协议 为了解决为了解决TCP/IP协议簇的安全性问题,弥补协议簇的安全性问题,弥补TCP/IP协议协议簇在设计之初对安全功能的考虑不足,以簇在设计之初对安全功能的考虑不足,以Internet工程任务组工程任务组(IETF)为代表的相关组织不断通过对现有协议的改进和设计为代表的相关组织不断通过对现有协议的改进和设计1717第6讲 网络安全协议新的安全通信协议,对现有的新的安全通信协议,对现有的TCP/IP协议簇提供相关的安全协议簇提供相关的安全保证,在协议的不同层次设计了相应的安全通信协议,从而保证,在协议的不同层次设计了相应的安全通信协议,从而形成了由各层安全通信协议构成的形成了由各层安全通信协议构成的TCP/IP协议簇的安全架构。协议簇的安全架构。1818第6讲 网络安全协议 6.3 IPSec6.3 IPSec协议协议6.3.1 IPSec6.3.1 IPSec概述概述IPSec是网络层的安全协议,它的出现是因为是网络层的安全协议,它的出现是因为IPV4存在以存在以下的一些主要安全缺陷:下的一些主要安全缺陷:缺乏缺乏对通信双方身份真实性的鉴别对通信双方身份真实性的鉴别能力;能力;缺乏缺乏对传输数据的完整性和机密性的保护机制。对传输数据的完整性和机密性的保护机制。IP层层存在的威胁有:业务流被监听和捕获、存在的威胁有:业务流被监听和捕获、IP地址欺骗、信息泄地址欺骗、信息泄露和数据项篡改等。所以网络层的安全需求主要是:身份鉴露和数据项篡改等。所以网络层的安全需求主要是:身份鉴别、数据完整性和保密性。网络层实施安全协议,对于应用别、数据完整性和保密性。网络层实施安全协议,对于应用层透明,使用较为广泛。层透明,使用较为广泛。1919第6讲 网络安全协议1.1.IPSec历史 1994年年IETF专门成立专门成立IP安全协议工作组,来制定和推安全协议工作组,来制定和推动一套称为动一套称为IPSec的的IP安全协议标准。安全协议标准。1995年年8月公布了一系列关于月公布了一系列关于IPSec的建议标准。的建议标准。1996年,年,IETF公布了下一代公布了下一代IP的标准的标准IPv6,把鉴别和,把鉴别和加密作为必要的特征,加密作为必要的特征,IPSec成为其必要的组成部分。成为其必要的组成部分。1999年底,年底,IETF安全工作组完成了安全工作组完成了IPSec的扩展,在的扩展,在IPSec协议中加上协议中加上ISAKMP协议、密钥分配协议协议、密钥分配协议IKE、Oakley。ISAKMP/IKE/Oakley支持自动建立加密、鉴别信道,以及密支持自动建立加密、鉴别信道,以及密钥的自动安全分发和更新。钥的自动安全分发和更新。2020第6讲 网络安全协议2.2.IPSec的应用的应用 IPSec在在LAN、WAN和和Internet上的通讯提供安全性上的通讯提供安全性 IPSec的主要特征是可以支持的主要特征是可以支持IP层所有流量的加密和层所有流量的加密和/或或鉴别。因此可以增强所有分布式应用的安全性。鉴别。因此可以增强所有分布式应用的安全性。IPSec的应用方式主要有:的应用方式主要有:端到端端到端(end-end),主机到),主机到主机的安全通信;主机的安全通信;端到路由端到路由(end-router),主机到路由设备),主机到路由设备之间的安全通信;之间的安全通信;路由到路由路由到路由(router-router),路由设备之间路由设备之间的安全通信,常用于在两个网络之间建立虚拟专有网。的安全通信,常用于在两个网络之间建立虚拟专有网。2121第6讲 网络安全协议2222第6讲 网络安全协议3.3.IPSec的好处的好处 对应用和最终用户透明。对应用和最终用户透明。在防火墙或路由器实现时:可以防止在防火墙或路由器实现时:可以防止IP旁路;可以对旁路;可以对所有跨越周界的流量实施强安全性,而公司内部或工作组不所有跨越周界的流量实施强安全性,而公司内部或工作组不必招致与安全相关处理的负担。必招致与安全相关处理的负担。需要时需要时IPSec可以提供个人安全性。可以提供个人安全性。弥补弥补IPv4在协议设计时缺乏安全性考虑的不足。在协议设计时缺乏安全性考虑的不足。2323第6讲 网络安全协议6.3.2 6.3.2 IPSec体系结构体系结构IPSec协议确保基于无连接的数据的真实性、机密性和完协议确保基于无连接的数据的真实性、机密性和完整性的要求,加强了整性的要求,加强了IP协议的安全性,克服了原有协议的安全性,克服了原有IPv4协议在协议在安全性方面存在的不足安全性方面存在的不足。IPSec 协议不是一个单独的协议,它给出了应用于协议不是一个单独的协议,它给出了应用于IP层上层上网络数据安全的一整套体系结构,包括网络数据安全的一整套体系结构,包括网络认证协议网络认证协议(AH)、封装安全载荷协议封装安全载荷协议(ESP)、密钥管理协议密钥管理协议(IKE)和用于网络)和用于网络认证及加密的一些算法等。认证及加密的一些算法等。IPSec 规定了如何在对等实体之间规定了如何在对等实体之间选择安全协议、确定安全算法和密钥交换,向上提供了选择安全协议、确定安全算法和密钥交换,向上提供了数据源数据源认证认证、数据加密、拒绝重放数据加密、拒绝重放等网络安全服务。等网络安全服务。2424第6讲 网络安全协议2525第6讲 网络安全协议 1.1.IPSec 体系体系 体系文档是体系文档是RFC2401,2401,它定义了它定义了IPSec的基本结构的基本结构,包括总包括总体概念、安全需求、安全定义,以及定义体概念、安全需求、安全定义,以及定义IPSec技术机制。技术机制。2.2.AH(认证报头)(认证报头)协议文档协议文档RFC2402RFC2402定义了定义了AHAH头格式、服务类型及包处理规头格式、服务类型及包处理规则。它则。它可提供可提供数据源认证数据源认证和和无连接的数据完整性无连接的数据完整性服务,使得服务,使得通信的一方能够确认另一方的身份,并能够确认数据在传输通信的一方能够确认另一方的身份,并能够确认数据在传输的过程中没有遭到篡改。还可以提供一些可选的、有限的的过程中没有遭到篡改。还可以提供一些可选的、有限的抗抗重传重传服务。服务。3.3.ESP(安全封装载荷)(安全封装载荷)2626第6讲 网络安全协议 协议文档是协议文档是RFC2406,定义了载荷头定义了载荷头(ESP 头头)格式和服格式和服务类型以及包处理规则。它务类型以及包处理规则。它主要主要为为IP报文提供报文提供数据完整性校数据完整性校验验、数据加密数据加密以及以及重放攻击保护重放攻击保护等可选的等可选的身份认证身份认证服务。服务。4.4.加密算法加密算法 描述将各种不同加密算法用于描述将各种不同加密算法用于ESP文档。文档。5.5.认证算法认证算法 描述将各种不同鉴别算法用于描述将各种不同鉴别算法用于AH以及以及ESP鉴别选项的文鉴别选项的文档。档。6.6.DOI(解释域解释域)包括一些参数,批准的加密和鉴别算法标识以及运行参数。包括一些参数,批准的加密和鉴别算法标识以及运行参数。2727第6讲 网络安全协议 7.7.IKE(因特网密钥交换协议)(因特网密钥交换协议)协议文档是协议文档是RFC2409,RFC2409,定义了定义了IPSecIPSec通信双方如何动态建立通信双方如何动态建立共享安全参数共享安全参数 (即即建立安全联盟建立安全联盟)和经认证过的和经认证过的密钥密钥。IKE的功能包括的功能包括:加密算法和密钥的协商加密算法和密钥的协商、密钥生成密钥生成、交换交换及管理及管理。IKE是是ISAKMP(RFC2408)、Oakley(RFC2412)和和SKEME(RFC2408)三个协议揉合而成的一个协议。其中,三个协议揉合而成的一个协议。其中,ISAKMP只只规定了一个认证和密钥交换的框架规定了一个认证和密钥交换的框架,Oakley 给出了密钥交换的给出了密钥交换的步骤步骤,而而SKEME 则提供了一种通用的密钥交换技术。则提供了一种通用的密钥交换技术。IKE结合结合三者的功能组成了一个密钥交换协议。三者的功能组成了一个密钥交换协议。2828第6讲 网络安全协议 8.8.策略策略 它决定两个实体之间能否通信,以及如何进行通信。策略它决定两个实体之间能否通信,以及如何进行通信。策略的核心由三部分组成:的核心由三部分组成:SA、SAD、SPD。SA(安全关联)表(安全关联)表示了策略实施的具体细节,包括源示了策略实施的具体细节,包括源/目的地址、应用协议、目的地址、应用协议、SPI、所用算法所用算法/密钥密钥/长度;长度;SAD为进入和外出包处理维持一个活动为进入和外出包处理维持一个活动的的SA列表;列表;SPD决定了整个安全通信的安全需求。策略部分决定了整个安全通信的安全需求。策略部分是唯一尚未成为标准的组件。是唯一尚未成为标准的组件。2929第6讲 网络安全协议6.3.3 6.3.3 SA(安全关联)(安全关联)1.1.SA概述概述 IPSec 提供了多种选项来完成网络加密和认证。每个提供了多种选项来完成网络加密和认证。每个IPSec连接都能够提供加密,完整性和认证当中的一种或者两连接都能够提供加密,完整性和认证当中的一种或者两种。一旦确定了所需的安全服务,那么通信节点双方必须明种。一旦确定了所需的安全服务,那么通信节点双方必须明确规定需要使用的算法确规定需要使用的算法(例如,例如,DES或或IDEA用来加密;用来加密;MD5或或SHA用于完整性服务用于完整性服务)。在确定了算法以后,双方必须共享。在确定了算法以后,双方必须共享会话密钥。正如我们后面将看到的,这需要管理大量的信息,会话密钥。正如我们后面将看到的,这需要管理大量的信息,而而安全关联安全关联正是正是IPSec用于用于跟踪某一个特定跟踪某一个特定IPSec通信会话所涉通信会话所涉及的细节问题的一种方法及的细节问题的一种方法。所以。所以SA是两个通信实体经是两个通信实体经3030第6讲 网络安全协议过协过协商建立起来的一种商建立起来的一种单向单向的逻辑的逻辑“连接连接”,规定规定用来保护用来保护数据的数据的IPSec协议类型、加密算法、认证方式、加密和认证密协议类型、加密算法、认证方式、加密和认证密钥、密钥的生存时间以及抗重播攻击的序列号等,为所承载钥、密钥的生存时间以及抗重播攻击的序列号等,为所承载的流量提供安全服务的流量提供安全服务。SA是是单向单向的。的。如果需要一个对等的关系用于双向的安全如果需要一个对等的关系用于双向的安全交换,就要有两个交换,就要有两个SA。一个是从一个是从A到到B,而另外一个是从,而另外一个是从B到到A。比如比如主机主机A需要有一个需要有一个SA(out)用来处理外发的数据包;另用来处理外发的数据包;另外还需要有一个不同的外还需要有一个不同的SA(in)用来处理进入的数据包。相对应用来处理进入的数据包。相对应的主机的主机B的两个安全关联分别是的两个安全关联分别是SB(in)和和SB(out)。主机。主机A的的SA(out)和主机和主机B B的的SB(in)将共享相同的加密参数将共享相同的加密参数(比如密钥比如密钥)。3131第6讲 网络安全协议类似地,主机类似地,主机A的的SA(in)和主机和主机B的的SB(out)也会共享相同的加也会共享相同的加密参数。密参数。SA可以为可以为AH或者或者ESP提供安全服务,但提供安全服务,但不能同时不能同时提供。提供。如果一个流量同时使用了如果一个流量同时使用了AH和和ESP,那就必须为该流量建立,那就必须为该流量建立两个两个(或更多个或更多个)SA。2.2.SA的标识的标识 每个安全关联可以由一个三元组惟一确定:每个安全关联可以由一个三元组惟一确定:安全参数索引安全参数索引(Security Parameter Index):):SPI是一个是一个3232第6讲 网络安全协议3232位长的数据,发送方在每个数据包上加载一个位长的数据,发送方在每个数据包上加载一个SPI,接受方,接受方使用这个值在安全关联数据库使用这个值在安全关联数据库SAD中进行检索查询,提取所中进行检索查询,提取所需要的需要的SA,以便处理接收的分组。,以便处理接收的分组。目的目的IP地址地址(IP Destination Address):):可以是终端主可以是终端主机的机的IP地址,也可以是前端设备(如防火墙或路由器)的地址,也可以是前端设备(如防火墙或路由器)的IP地址。地址。安全协议标识符安全协议标识符(Security Protocol):):标明该标明该SA是用是用于于AH还是还是ESP。3.3.SA的参数的参数 SA一般由下面的参数定义。一般由下面的参数定义。3333第6讲 网络安全协议 序列号序列号(Sequence Number):序列号是一个:序列号是一个32位的字段,位的字段,在数据包的在数据包的“外出外出”处理期间使用。它同时属于处理期间使用。它同时属于AH及及ESP头头的一部分。每次用的一部分。每次用SA来保护一个数据包,序列号的值便会递来保护一个数据包,序列号的值便会递增增l。通信的目标主机利用这个字段来侦测所谓的。通信的目标主机利用这个字段来侦测所谓的“重放重放”攻攻击。击。SA刚刚建立时,该字段的值设为刚刚建立时,该字段的值设为0。通常,在这个字段的。通常,在这个字段的值溢出之前,值溢出之前,SA会重新进行协商。会重新进行协商。序列号溢出序列号溢出(Sequence Number Overflow):该字段用于该字段用于外出包处理,并在序列号溢出的时候加以设置。安全策略决外出包处理,并在序列号溢出的时候加以设置。安全策略决定了一个定了一个SA在序列号溢出时是否仍可用来处理其余的数据包。在序列号溢出时是否仍可用来处理其余的数据包。抗重放窗口抗重放窗口(Anti-Replay):该字段在数据包的该字段在数据包的“进入进入”3434第6讲 网络安全协议处理期间使用。当今,与网络安全有关的一个重要问题便是处理期间使用。当今,与网络安全有关的一个重要问题便是重放攻击。在重放攻击过程中,网络应用会受到不断重放数重放攻击。在重放攻击过程中,网络应用会受到不断重放数据包的轰炸。据包的轰炸。存活时间存活时间(Time To Live,TTL):一个时间间隔或字节一个时间间隔或字节计数,到时间后,一个计数,到时间后,一个SA必须用一个新的必须用一个新的SA替换或终止。替换或终止。AH信息信息:使用使用AH的身份验证算法、密钥、密钥生命的身份验证算法、密钥、密钥生命周期和相关参数。周期和相关参数。ESP信息信息:使用使用ESP的加密和身份验证算法、密钥、初的加密和身份验证算法、密钥、初始向量、密钥生命周期和相关参数。始向量、密钥生命周期和相关参数。模式模式(Mode):IPSec协议可同时用于隧道模式及传输模协议可同时用于隧道模式及传输模3535第6讲 网络安全协议式。依据这个字段的值,载荷的处理方式也会有所区别。可式。依据这个字段的值,载荷的处理方式也会有所区别。可将该字段设为隧道模式、传输模式或者一个通配符。将该字段设为隧道模式、传输模式或者一个通配符。隧道目的地隧道目的地(Tunnel Destination):对于隧道模式中的对于隧道模式中的IPSec来说,需要该字段指出隧道的目的地来说,需要该字段指出隧道的目的地-亦即外部头的目亦即外部头的目标标IP地址。地址。路径最大传输参数路径最大传输参数(PMTU):在隧道模式下使用在隧道模式下使用IPSec 时,必须维持正确的时,必须维持正确的PMTU 信息,以便对数据包进行相应的信息,以便对数据包进行相应的分段。分段。4.4.SA的创建和删除的创建和删除 SA管理的两大主要任务就是创建和删除。管理的两大主要任务就是创建和删除。SA管理管理既可以3636第6讲 网络安全协议手工进行手工进行,也可以通过一个,也可以通过一个Internet标准密钥管理协议来完成标准密钥管理协议来完成,比如,比如IKE。为了进行。为了进行SA的管理,要求用户应用程序的一个的管理,要求用户应用程序的一个接口同接口同IPSec内核通信,以便实现对内核通信,以便实现对SA数据库的管理。数据库的管理。SA的创建分两步进行的创建分两步进行先协商先协商SA参数参数,再用,再用SA更新更新SADB(安全关联数据库安全关联数据库)。安全关联数据库包含了每个安全关联数据库包含了每个SA的参数信息,如的参数信息,如AH和和ESP的的算法和密钥、序列号、协议模式和有效期等。算法和密钥、序列号、协议模式和有效期等。人工密钥协商是必须支持的,在人工密钥协商是必须支持的,在IPSec的早期开发及测试过的早期开发及测试过程中,这种方式曾得到广泛的应用。在人工密钥协商过程中,程中,这种方式曾得到广泛的应用。在人工密钥协商过程中,通信双方都需要离线同意通信双方都需要离线同意SA的各项参数。所谓的各项参数。所谓“人工人工”协商,协商,3737第6讲 网络安全协议不外乎通过电话或电子邮件的方式,不外乎通过电话或电子邮件的方式,SPISPI的分配、参数的选择的分配、参数的选择都是人工进行的。但是非常明显,这个过程非常容易出错,都是人工进行的。但是非常明显,这个过程非常容易出错,既麻烦又不安全。同时也只能以人工方式删除,否则这些既麻烦又不安全。同时也只能以人工方式删除,否则这些SASA永远不会过期。永远不会过期。在已经配置好的在已经配置好的IPSec环境中,环境中,SA的建立可以通过因特网的建立可以通过因特网标准密钥管理协议标准密钥管理协议(比如比如IKE)来完成。如果安全策略要求建立来完成。如果安全策略要求建立安全、保密的连接,但却找不到相应的安全、保密的连接,但却找不到相应的SA,IPSec的内核便会的内核便会自动调用自动调用IKE。IKE会与目标主机或者途中的主机会与目标主机或者途中的主机/路由器协路由器协商具体的商具体的SA;SA创建好且加入创建好且加入SADB数据库后,在两个主机数据库后,在两个主机间正常流动的数据包便会采用间正常流动的数据包便会采用SA参数实现相应的安全服务。参数实现相应的安全服务。3838第6讲 网络安全协议 可能有很多方面的理由需要删除可能有很多方面的理由需要删除SA,例如:,例如:存活时间过期;存活时间过期;密钥已遭破解;密钥已遭破解;使用使用SA加密加密/解密或验证的字节数已超过策略设定的解密或验证的字节数已超过策略设定的某一个阈值;某一个阈值;另一端要求删除这个另一端要求删除这个SA。3939第6讲 网络安全协议 6.3.4 6.3.4 SPD(安全策略库)(安全策略库)1.1.SPD策略策略 SPD定定义义了了对对所有所有进进出出业务应该业务应该采取的安全策略,决定了采取的安全策略,决定了为为特定的数据包提供特定的安全服特定的数据包提供特定的安全服务务。我我们们根据根据“选择选择符符”对对该该数据数据库进库进行行检检索,索,库库内包含了内包含了为为一个一个IPIP包提供安全服包提供安全服务务的的有关信息。有关信息。IP数据包的收数据包的收发发都以安全策略都以安全策略为为依据依据。对对出入的出入的IPIP包的包的处处理有三种可能的理有三种可能的选择选择:丢丢弃弃:不允不允许该许该IP包在此主机上存在,不允包在此主机上存在,不允许许通通过过此安此安全网关或是根本就不能全网关或是根本就不能传传送送给给上上层应层应用程序的用程序的业务业务流。流。绕过绕过IPSec:不需要不需要进进行行IPSec安全保安全保护处护处理,可直接理,可直接 4040第6讲 网络安全协议通通过过。采用采用IPSec:需要:需要进进行行IPSec安全保安全保护处护处理。理。对对于于这这种种业业务务流,流,SPD还还必必须须指明所需提供的安全服指明所需提供的安全服务务,采用的,采用的协议类协议类型型以及使用何种算法等。以及使用何种算法等。2.2.SPD结构结构以下参数可用来确定以下参数可用来确定SPD入口入口(又称为又称为选择符选择符):目的目的IP地址:可以是单地址或多地址地址:可以是单地址或多地址 源地址:单地址或多地址源地址:单地址或多地址 UserID:操作系统中的操作系统中的用户标识。用户标识。策略策略策略入口策略入口4141第6讲 网络安全协议 传输层协议:传输层协议:IPSec协议(协议(AH,ESP,AH/ESP)源源/目的端口目的端口 服务类型服务类型(TOS)选择符决定了提供给一个包的安全服务。选择符决定了提供给一个包的安全服务。选择符选择符是从是从网络网络层层和和传输层传输层头头内提取出来的。内提取出来的。4242第6讲 网络安全协议 4343第6讲 网络安全协议 6.3.5 6.3.5 IPSec的工作模式的工作模式 在在IPSec协议中,无论是协议中,无论是AH还是还是ESP,都可工作于传输模,都可工作于传输模式式(Transport Mode)和隧道模式和隧道模式(Tunnel Mode)。1.1.传输模式传输模式 传输模式主要为上层协议提供保护,即传输模式的保护传输模式主要为上层协议提供保护,即传输模式的保护扩充到扩充到IP分组的有效载荷。传输模式使用原始的明文分组的有效载荷。传输模式使用原始的明文IP头,头,只加密数据部分只加密数据部分(包括包括TCP头或头或UDP头头)。传输模式的传输模式的典型应用典型应用是用于两个主机之间的端到端的通是用于两个主机之间的端到端的通信。信。2.2.隧道模式隧道模式4444第6讲 网络安全协议与传输模式相比,隧道模式对整个与传输模式相比,隧道模式对整个IP分组提供保护,整分组提供保护,整个个IP数据包全部被加密封装,得到一个新的数据包全部被加密封装,得到一个新的IP数据包,而新数据包,而新的的IP头可以包含完全不同的源地址和目的地址,因此在传输头可以包含完全不同的源地址和目的地址,因此在传输过程中,由于路由器不能够检查内部过程中,由于路由器不能够检查内部IP头,从而增加了数据头,从而增加了数据安全性。安全性。隧道模式通常用于隧道模式通常用于当当SA的一端或两端是安全网关的一端或两端是安全网关,如实,如实现了现了IPSec的防火墙或路由器的情况。的防火墙或路由器的情况。4545第6讲 网络安全协议 6.3.6 6.3.6 AH认证头认证头 1.1.AH概述概述 认证头认证头(AH)(AH)的协议代号为的协议代号为5151 ,是基于网络层的一个安全,是基于网络层的一个安全协议。它是协议。它是IPSecIPSec协议的重要组成部分,是用于为协议的重要组成部分,是用于为IPIP数据包提数据包提供安全认证的一种安全协议。供安全认证的一种安全协议。认证头是为认证头是为IPIP数据包提供强认证的一种安全机制,它具数据包提供强认证的一种安全机制,它具有为有为IPIP数据包提供数据包提供数据完整性数据完整性、数据源认证数据源认证和和抗重传攻击抗重传攻击等等功能。在功能。在IPSec中,这中,这三项功能组合在一起统称为认证三项功能组合在一起统称为认证。利用利用MAC码进行鉴别,双方需要共享一个密钥,鉴别算码进行鉴别,双方需要共享一个密钥,鉴别算法有法有SA指定。指定。AH协议可以用于传输模式和隧道模式。协议可以用于传输模式和隧道模式。4646第6讲 网络安全协议4747第6讲 网络安全协议2.2.AH数据格式数据格式4848第6讲 网络安全协议 AH的格式在的格式在RFC 2402 2402中有明确的规定由中有明确的规定由6 6个字段构成个字段构成:下一负载头标识下一负载头标识:是标识是标识AH后的有效负载的类型,域后的有效负载的类型,域长度为长度为8 8 bit。在。在传输模式传输模式下,将是处于保护中的上层协议的下,将是处于保护中的上层协议的值,比如值,比如UDP或或TCP协议的值。在协议的值。在隧道模式隧道模式下,其数值下,其数值4 4表示表示IP-in-IP(IPv4)封装;数值封装;数值4141表示表示IPv6封装。封装。净载荷长度净载荷长度:是以是以32 32 bit为单位的认证头总长度减为单位的认证头总长度减2 2,或者或者SPI后的以后的以32 32 bit为单位的总长度,域长度为为单位的总长度,域长度为8 8 bit。保留保留:保留为今后使用,将全部保留为今后使用,将全部16bit16bit置成零。置成零。安全参数索引安全参数索引(SPI):是一个是一个32 32 bit的整数。它与目的的整数。它与目的IP地址和安全协议结合在一起即可唯一地标识用于此数据项地址和安全协议结合在一起即可唯一地标识用于此数据项的的4949第6讲 网络安全协议安全关联。安全关联。序列号序列号(SN):长度为长度为32 32 bit,是一个无符号单调递增计,是一个无符号单调递增计数值,每当一个特定的数值,每当一个特定的SPI数据包被传送时,序列号加数据包被传送时,序列号加1 1,用,用于防止数据包的重传攻击。于防止数据包的重传攻击。认证数据认证数据:是一个长度可变的域,长度为是一个长度可变的域,长度为32 32 bit的整数的整数倍。该字段包含了这个倍。该字段包含了这个IP数据包中的不变信息的完整性检验数据包中的不变信息的完整性检验值值(ICV),用于提供认证和完整性检查。具体格式随认证算法,用于提供认证和完整性检查。具体格式随认证算法而不同,但至少应该支持而不同,但至少应该支持RFC 24032403规定的规定的HMAC-MD5和和RFC24042404规定的规定的HMAC-SHA1。5050第6讲 网络安全协议3.3.AH处理过程处理过程 输出处理输出处理 查找查找SA 产生序列号产生序列号 计算计算ICV(Integrity Check Value),),内容包括:内容包括:IP头中的部分域,头中的部分域,AH自身,上层协议数据。自身,上层协议数据。分片分片 5151第6讲 网络安全协议 输入处理输入处理 分片装配分片装配 查找查找SA 依据:目标依据:目标IP地址、地址、AH协议、协议、SPI 检查序列号(可选,针对重放攻击)检查序列号(可选,针对重放攻击)使用一个滑动窗口来检查序列号的重放使用一个滑动窗口来检查序列号的重放 检查检查ICV的值的值 5252第6讲 网络安全协议5353第6讲 网络安全协议 6.3.7 6.3.7 ESP 1.1.ESPESP概述概述 封装安全有效载荷头在封装安全有效载荷头在IPv4和和IPv6中提供一种混合的安全中提供一种混合的安全服务。服务。ESP提供机密性、数据源的身份验证