《信息安全网络安全协议》由会员分享,可在线阅读,更多相关《信息安全网络安全协议(86页珍藏版)》请在金锄头文库上搜索。
1、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是一组通信协议集的缩写,它包含了一组互补和合作是一组通信协议集的缩写,它包含了一组互补和合作的协议。所有这些协议共同工作,以便在因特网上传输信息。的协议。所有这些协议共同工作,以便在因
2、特网上传输信息。 我们知道,我们知道,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协议的所有应用层的数据协议的所有应用层的数据(如如HT
3、TP、FTP、EMAIL、DNS等等)在传输层都是通过在传输层都是通过TCP(或或UDP)数据包的格数据包的格式进行封装的,如图所示。式进行封装的,如图所示。 TCP协议的头结构是固定的,各字段信息如下协议的头结构是固定的,各字段信息如下: (1)源端口源端口: :指数据流的流出端口,取值范围是指数据流的流出端口,取值范围是065535。 (2)目的端口目的端口: :指数据流的流入端口,取值范围是指数据流的流入端口,取值范围是065535。 (3)序列号序列号: 指出指出“IP数据报数据报”在发送端数据流中的位置在发送端数据流中的位置(依依次递增次递增)。 (4)确认序列号确认序列号:指出本机
4、希望下一个接收的字节的序号。指出本机希望下一个接收的字节的序号。6 6第6讲 网络安全协议7 7第6讲 网络安全协议 (5)头长度头长度: :指出以指出以32 bit为单位的段头标长度。为单位的段头标长度。 (6)码位码位: :指出该指出该IP包的目的与内容,如表所示。包的目的与内容,如表所示。URG 紧急指针有效紧急指针有效 ACK 确认序列号有效确认序列号有效 PSH 接收方应当尽快将这个报文接收方应当尽快将这个报文交给应用层交给应用层 RST 连接复位连接复位 SYN 同步序列号用来发起一个连同步序列号用来发起一个连接接 FIN 发送端完成发送任务发送端完成发送任务 8 8第6讲 网络安
5、全协议 (7)窗口窗口( (滑动窗口滑动窗口) ): 用于通告接收端接收数据的缓冲区用于通告接收端接收数据的缓冲区的大小。的大小。 (8)校验和校验和:不仅对头数据进行校验,还对封包内容进行校不仅对头数据进行校验,还对封包内容进行校验。验。 (9)紧急指针紧急指针: 当当URG为为1时有效。时有效。TCP的紧急方式是发送的紧急方式是发送紧急数据的一种方式。紧急数据的一种方式。 在基于在基于TCP/IP协议的所有应用层的数据通过传输层的封协议的所有应用层的数据通过传输层的封装后,送给网络层,在网络层是通过装后,送给网络层,在网络层是通过IP数据包的格式进行传数据包的格式进行传输,其结构是固定的,
6、如图所示。输,其结构是固定的,如图所示。 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包包头头CheckS
7、um,每每经过一个路由器经过一个路由器需重新计算。需重新计算。分段偏移,说明分段偏移,说明本本段在当前段在当前IP包包中中的位置的位置,以,以8Byte为单位。为单位。DF=1:未分段未分段DF=0:分段分段MF=1:中间段中间段MF=0:最后段最后段1010第6讲 网络安全协议 IP数据包各字段的信息如下数据包各字段的信息如下: (1)版本版本: :占第一个字节的高四位。占第一个字节的高四位。 (2)头长度头长度: :占第一个字节的低四位(可表示的最大长度是占第一个字节的低四位(可表示的最大长度是15个单位个单位 ,一个单位,一个单位4个字节个字节,最大值,最大值60字节)。字节)。 (3)
8、服务类型:服务类型:前前3位为优先字段权,现在已经被忽略。接位为优先字段权,现在已经被忽略。接着着4位用来表示位用来表示最小延迟最小延迟、最大吞吐量最大吞吐量、最高可靠性最高可靠性和和最小费最小费用用。 (4)封包总长度:封包总长度:整个整个IP报的长度,单位为字节。报的长度,单位为字节。 (5)标识标识: : 一个报文一个报文的的所有分片所有分片标识相同标识相同,目标主机根据,目标主机根据主机的标识字段来确定新到的分组属于哪一个数据报。主机的标识字段来确定新到的分组属于哪一个数据报。 1111第6讲 网络安全协议 (6)标志:标志:占占 3 位,目前只有前两位有意义。标志字段的最低位,目前只
9、有前两位有意义。标志字段的最低位是位是 MF (More Fragment)。MF 1 表示后面表示后面“还有分片还有分片”。MF 0 表示最后一个分片。标志字段中间的一位是表示最后一个分片。标志字段中间的一位是 DF(Dont Fragment) 。只有当。只有当 DF 0 时才允许分片。时才允许分片。 (7)片偏移片偏移(13 (13 位位) ):较长的分组在分片后某片在原分组中较长的分组在分片后某片在原分组中的相对位置。片偏移以的相对位置。片偏移以 8 个字节个字节为偏移单位。为偏移单位。 (8)生存时间生存时间: :表示表示IP包在网络的包在网络的存活时间存活时间(跳数跳数),缺省值,
10、缺省值为为64。 (9) 协议类型协议类型: : 该字段用来说明此该字段用来说明此IP包中的数据类型,如包中的数据类型,如1表示表示ICMP数据包,数据包,2表示表示IGMP数据,数据,6表示表示TCP数据,数据,17表表1212第6讲 网络安全协议示示UDP数据包。数据包。 (10)头标校验和头标校验和: : 该字段用于校验该字段用于校验IP包的头信息,防止数包的头信息,防止数据传输时发生错误。据传输时发生错误。 (11) IP选项选项: : IP选项由选项由3部分组成,即选项部分组成,即选项(选项类别、选选项类别、选项代号项代号)、长度和选项数据。、长度和选项数据。 6.1.4 TCP6.
11、1.4 TCP连接的建立与释放过程连接的建立与释放过程 基于基于TCP/IP协议的连接,通常采用协议的连接,通常采用客户端客户端/服务器服务器模式。模式。客户端与服务器之间的客户端与服务器之间的面向连接面向连接的访问是的访问是基于基于TCP的的“三次三次握手协议握手协议”。当数据传输结束后,连接的释放要通过四次数。当数据传输结束后,连接的释放要通过四次数据传输,就是常说的基于据传输,就是常说的基于TCP的的“四次释放协议四次释放协议”。如图所。如图所示。示。1313第6讲 网络安全协议1414第6讲 网络安全协议1515第6讲 网络安全协议6.1.5 TCP/IP6.1.5 TCP/IP协议簇
12、的安全问题协议簇的安全问题 随着随着Internet的发展,的发展,TCP/IP协议得到了广泛的应用,几协议得到了广泛的应用,几乎所有的网络均采用了乎所有的网络均采用了TCP/IP协议。由于协议。由于TCP/IP协议在最初协议在最初设计时是基于一种可信环境的,没有考虑安全性问题,因此设计时是基于一种可信环境的,没有考虑安全性问题,因此它自身存在许多固有的安全缺陷,它自身存在许多固有的安全缺陷,例如例如: (1)对对IP协议,其协议,其IP地址可以通过软件进行设置,这样会地址可以通过软件进行设置,这样会造成造成地址假冒地址假冒和和地址欺骗地址欺骗两类安全患。两类安全患。 (2)IP协议支持源路由
13、方式,即源发方可以指定信息包传协议支持源路由方式,即源发方可以指定信息包传送到目的节点的中间路由,为送到目的节点的中间路由,为源路由攻击源路由攻击埋下了隐患。埋下了隐患。 (3)在在TCP/IP协议的实现中也存在着一些协议的实现中也存在着一些安全缺陷安全缺陷和和漏漏洞洞1616第6讲 网络安全协议,如,如序列号产生容易被猜测序列号产生容易被猜测、参数不检查而导致的缓冲区溢参数不检查而导致的缓冲区溢出出等。等。 (4)在在TCP/IP协议簇中的各种应用层协议协议簇中的各种应用层协议(如如Telnet、FTP、SMTP等等)缺乏认证和保密措施,这就为欺骗、否认、拒绝、缺乏认证和保密措施,这就为欺骗
14、、否认、拒绝、篡改、窃取等行为开了方便之门,使得基于这些缺陷和漏洞篡改、窃取等行为开了方便之门,使得基于这些缺陷和漏洞的攻击形式多样。的攻击形式多样。 6.2 网络安全协议网络安全协议 为了解决为了解决TCP/IP协议簇的安全性问题,弥补协议簇的安全性问题,弥补TCP/IP协议协议簇在设计之初对安全功能的考虑不足,以簇在设计之初对安全功能的考虑不足,以Internet工程任务组工程任务组(IETF)为代表的相关组织不断通过对现有协议的改进和设计为代表的相关组织不断通过对现有协议的改进和设计1717第6讲 网络安全协议新的安全通信协议,对现有的新的安全通信协议,对现有的TCP/IP协议簇提供相关
15、的安全协议簇提供相关的安全保证,在协议的不同层次设计了相应的安全通信协议,从而保证,在协议的不同层次设计了相应的安全通信协议,从而形成了由各层安全通信协议构成的形成了由各层安全通信协议构成的TCP/IP协议簇的安全架构。协议簇的安全架构。1818第6讲 网络安全协议 6.3 IPSec6.3 IPSec协议协议6.3.1 IPSec6.3.1 IPSec概述概述IPSec是网络层的安全协议,它的出现是因为是网络层的安全协议,它的出现是因为IPV4存在以存在以下的一些主要安全缺陷:下的一些主要安全缺陷:缺乏缺乏对通信双方身份真实性的鉴别对通信双方身份真实性的鉴别能力;能力;缺乏缺乏对传输数据的完
16、整性和机密性的保护机制。对传输数据的完整性和机密性的保护机制。IP层层存在的威胁有:业务流被监听和捕获、存在的威胁有:业务流被监听和捕获、IP地址欺骗、信息泄地址欺骗、信息泄露和数据项篡改等。所以网络层的安全需求主要是:身份鉴露和数据项篡改等。所以网络层的安全需求主要是:身份鉴别、数据完整性和保密性。网络层实施安全协议,对于应用别、数据完整性和保密性。网络层实施安全协议,对于应用层透明,使用较为广泛。层透明,使用较为广泛。1919第6讲 网络安全协议1. 1. IPSec历史 1994年年IETF专门成立专门成立IP安全协议工作组,来制定和推安全协议工作组,来制定和推动一套称为动一套称为IPS
17、ec的的IP安全协议标准。安全协议标准。 1995年年8月公布了一系列关于月公布了一系列关于IPSec的建议标准。的建议标准。 1996年,年,IETF公布了下一代公布了下一代IP的标准的标准IPv6,把鉴别和,把鉴别和加密作为必要的特征,加密作为必要的特征,IPSec成为其必要的组成部分。成为其必要的组成部分。 1999年底,年底,IETF安全工作组完成了安全工作组完成了IPSec的扩展,在的扩展,在IPSec协议中加上协议中加上ISAKMP协议、密钥分配协议协议、密钥分配协议IKE、Oakley。ISAKMP/IKE/Oakley支持自动建立加密、鉴别信道,以及密支持自动建立加密、鉴别信道
18、,以及密钥的自动安全分发和更新。钥的自动安全分发和更新。2020第6讲 网络安全协议2. 2. IPSec的应用的应用 IPSec在在LAN、WAN和和Internet上的通讯提供安全性上的通讯提供安全性 IPSec的主要特征是可以支持的主要特征是可以支持IP层所有流量的加密和层所有流量的加密和/或或鉴别。因此可以增强所有分布式应用的安全性。鉴别。因此可以增强所有分布式应用的安全性。 IPSec的应用方式主要有:的应用方式主要有:端到端端到端(end-end),主机到),主机到主机的安全通信;主机的安全通信;端到路由端到路由(end-router),主机到路由设备),主机到路由设备之间的安全通
19、信;之间的安全通信;路由到路由路由到路由(router-router),路由设备之间路由设备之间的安全通信,常用于在两个网络之间建立虚拟专有网。的安全通信,常用于在两个网络之间建立虚拟专有网。2121第6讲 网络安全协议2222第6讲 网络安全协议3. 3. IPSec的好处的好处 对应用和最终用户透明。对应用和最终用户透明。 在防火墙或路由器实现时:可以防止在防火墙或路由器实现时:可以防止IP旁路;可以对旁路;可以对所有跨越周界的流量实施强安全性,而公司内部或工作组不所有跨越周界的流量实施强安全性,而公司内部或工作组不必招致与安全相关处理的负担。必招致与安全相关处理的负担。 需要时需要时IP
20、Sec可以提供个人安全性。可以提供个人安全性。 弥补弥补IPv4在协议设计时缺乏安全性考虑的不足。在协议设计时缺乏安全性考虑的不足。2323第6讲 网络安全协议6.3.2 6.3.2 IPSec体系结构体系结构IPSec协议确保基于无连接的数据的真实性、机密性和完协议确保基于无连接的数据的真实性、机密性和完整性的要求,加强了整性的要求,加强了IP协议的安全性,克服了原有协议的安全性,克服了原有IPv4协议在协议在安全性方面存在的不足安全性方面存在的不足。 IPSec 协议不是一个单独的协议,它给出了应用于协议不是一个单独的协议,它给出了应用于IP层上层上网络数据安全的一整套体系结构,包括网络数
21、据安全的一整套体系结构,包括网络认证协议网络认证协议(AH)、封装安全载荷协议封装安全载荷协议(ESP)、密钥管理协议密钥管理协议(IKE)和用于网络)和用于网络认证及加密的一些算法等。认证及加密的一些算法等。 IPSec 规定了如何在对等实体之间规定了如何在对等实体之间选择安全协议、确定安全算法和密钥交换,向上提供了选择安全协议、确定安全算法和密钥交换,向上提供了数据源数据源认证认证、数据加密、拒绝重放数据加密、拒绝重放等网络安全服务。等网络安全服务。 2424第6讲 网络安全协议2525第6讲 网络安全协议 1. 1. IPSec 体系体系 体系文档是体系文档是RFC2401,2401,它
22、定义了它定义了IPSec的基本结构的基本结构, ,包括总包括总体概念、安全需求、安全定义,以及定义体概念、安全需求、安全定义,以及定义IPSec技术机制。技术机制。 2.2. AH(认证报头)(认证报头) 协议文档协议文档RFC2402RFC2402定义了定义了AHAH头格式、服务类型及包处理规头格式、服务类型及包处理规则。它则。它可提供可提供数据源认证数据源认证和和无连接的数据完整性无连接的数据完整性服务,使得服务,使得通信的一方能够确认另一方的身份,并能够确认数据在传输通信的一方能够确认另一方的身份,并能够确认数据在传输的过程中没有遭到篡改。还可以提供一些可选的、有限的的过程中没有遭到篡改
23、。还可以提供一些可选的、有限的抗抗重传重传服务。服务。 3.3. ESP(安全封装载荷)(安全封装载荷) 2626第6讲 网络安全协议 协议文档是协议文档是RFC2406 ,定义了载荷头定义了载荷头( ESP 头头) 格式和服格式和服务类型以及包处理规则。它务类型以及包处理规则。它主要主要为为IP报文提供报文提供数据完整性校数据完整性校验验、数据加密数据加密以及以及重放攻击保护重放攻击保护等可选的等可选的身份认证身份认证服务。服务。 4.4.加密算法加密算法 描述将各种不同加密算法用于描述将各种不同加密算法用于ESP文档。文档。 5.5.认证算法认证算法 描述将各种不同鉴别算法用于描述将各种不
24、同鉴别算法用于AH以及以及ESP鉴别选项的文鉴别选项的文档。档。 6.6.DOI(解释域解释域) 包括一些参数,批准的加密和鉴别算法标识以及运行参数。包括一些参数,批准的加密和鉴别算法标识以及运行参数。2727第6讲 网络安全协议 7.7. IKE (因特网密钥交换协议)(因特网密钥交换协议) 协议文档是协议文档是RFC2409 ,RFC2409 ,定义了定义了IPSecIPSec通信双方如何动态建立通信双方如何动态建立共享安全参数共享安全参数 ( (即即建立安全联盟建立安全联盟) )和经认证过的和经认证过的密钥密钥。 IKE的功能包括的功能包括: :加密算法和密钥的协商加密算法和密钥的协商、
25、密钥生成密钥生成、交换交换及管理及管理。 IKE是是ISAKMP(RFC2408)、Oakley(RFC2412)和和SKEME(RFC2408)三个协议揉合而成的一个协议。其中,三个协议揉合而成的一个协议。其中,ISAKMP只只规定了一个认证和密钥交换的框架规定了一个认证和密钥交换的框架, ,Oakley 给出了密钥交换的给出了密钥交换的步骤步骤, ,而而SKEME 则提供了一种通用的密钥交换技术。则提供了一种通用的密钥交换技术。IKE结合结合三者的功能组成了一个密钥交换协议。三者的功能组成了一个密钥交换协议。2828第6讲 网络安全协议 8.8. 策略策略 它决定两个实体之间能否通信,以及
26、如何进行通信。策略它决定两个实体之间能否通信,以及如何进行通信。策略的核心由三部分组成:的核心由三部分组成:SA、SAD、SPD。SA(安全关联)表(安全关联)表示了策略实施的具体细节,包括源示了策略实施的具体细节,包括源/目的地址、应用协议、目的地址、应用协议、SPI、所用算法所用算法/密钥密钥/长度;长度;SAD为进入和外出包处理维持一个活动为进入和外出包处理维持一个活动的的SA列表;列表;SPD决定了整个安全通信的安全需求。策略部分决定了整个安全通信的安全需求。策略部分是唯一尚未成为标准的组件。是唯一尚未成为标准的组件。2929第6讲 网络安全协议6.3.3 6.3.3 SA(安全关联)
27、(安全关联) 1.1. SA概述概述 IPSec 提供了多种选项来完成网络加密和认证。每个提供了多种选项来完成网络加密和认证。每个IPSec连接都能够提供加密,完整性和认证当中的一种或者两连接都能够提供加密,完整性和认证当中的一种或者两种。一旦确定了所需的安全服务,那么通信节点双方必须明种。一旦确定了所需的安全服务,那么通信节点双方必须明确规定需要使用的算法确规定需要使用的算法(例如,例如,DES或或IDEA用来加密;用来加密;MD5或或SHA用于完整性服务用于完整性服务)。在确定了算法以后,双方必须共享。在确定了算法以后,双方必须共享会话密钥。正如我们后面将看到的,这需要管理大量的信息,会话
28、密钥。正如我们后面将看到的,这需要管理大量的信息,而而安全关联安全关联正是正是IPSec用于用于跟踪某一个特定跟踪某一个特定IPSec通信会话所涉通信会话所涉及的细节问题的一种方法及的细节问题的一种方法。所以。所以SA是两个通信实体经是两个通信实体经3030第6讲 网络安全协议过协过协商建立起来的一种商建立起来的一种单向单向的逻辑的逻辑“连接连接”,规定规定用来保护用来保护数据的数据的IPSec协议类型、加密算法、认证方式、加密和认证密协议类型、加密算法、认证方式、加密和认证密钥、密钥的生存时间以及抗重播攻击的序列号等,为所承载钥、密钥的生存时间以及抗重播攻击的序列号等,为所承载的流量提供安全
29、服务的流量提供安全服务。 SA是是单向单向的。的。如果需要一个对等的关系用于双向的安全如果需要一个对等的关系用于双向的安全交换,就要有两个交换,就要有两个SA。一个是从一个是从A到到B,而另外一个是从,而另外一个是从B到到A。比如比如主机主机A需要有一个需要有一个SA(out)用来处理外发的数据包;另用来处理外发的数据包;另外还需要有一个不同的外还需要有一个不同的SA(in)用来处理进入的数据包。相对应用来处理进入的数据包。相对应的主机的主机B的两个安全关联分别是的两个安全关联分别是SB(in)和和SB(out)。主机。主机A的的SA(out)和主机和主机B B的的SB(in)将共享相同的加密
30、参数将共享相同的加密参数( (比如密钥比如密钥) )。3131第6讲 网络安全协议类似地,主机类似地,主机A的的SA(in)和主机和主机B的的SB(out)也会共享相同的加也会共享相同的加密参数。密参数。 SA可以为可以为AH或者或者ESP提供安全服务,但提供安全服务,但不能同时不能同时提供。提供。如果一个流量同时使用了如果一个流量同时使用了AH和和ESP,那就必须为该流量建立,那就必须为该流量建立两个两个( (或更多个或更多个) )SA。 2.2. SA的标识的标识 每个安全关联可以由一个三元组惟一确定:每个安全关联可以由一个三元组惟一确定: 安全参数索引安全参数索引(Security Pa
31、rameter Index):):SPI是一个是一个3232第6讲 网络安全协议3232位长的数据,发送方在每个数据包上加载一个位长的数据,发送方在每个数据包上加载一个SPI,接受方,接受方使用这个值在安全关联数据库使用这个值在安全关联数据库SAD中进行检索查询,提取所中进行检索查询,提取所需要的需要的SA,以便处理接收的分组。,以便处理接收的分组。 目的目的IP地址地址(IP Destination Address):):可以是终端主可以是终端主机的机的IP地址,也可以是前端设备(如防火墙或路由器)的地址,也可以是前端设备(如防火墙或路由器)的IP地址。地址。 安全协议标识符安全协议标识符(
32、Security Protocol):):标明该标明该SA是用是用于于AH还是还是ESP。 3. 3. SA的参数的参数 SA一般由下面的参数定义。一般由下面的参数定义。3333第6讲 网络安全协议 序列号序列号(Sequence Number):序列号是一个:序列号是一个32位的字段,位的字段,在数据包的在数据包的“外出外出”处理期间使用。它同时属于处理期间使用。它同时属于AH及及ESP头头的一部分。每次用的一部分。每次用SA来保护一个数据包,序列号的值便会递来保护一个数据包,序列号的值便会递增增l。通信的目标主机利用这个字段来侦测所谓的。通信的目标主机利用这个字段来侦测所谓的“重放重放”攻
33、攻击。击。SA刚刚建立时,该字段的值设为刚刚建立时,该字段的值设为0。通常,在这个字段的。通常,在这个字段的值溢出之前,值溢出之前,SA会重新进行协商。会重新进行协商。 序列号溢出序列号溢出( (Sequence Number Overflow) ):该字段用于该字段用于外出包处理,并在序列号溢出的时候加以设置。安全策略决外出包处理,并在序列号溢出的时候加以设置。安全策略决定了一个定了一个SA在序列号溢出时是否仍可用来处理其余的数据包。在序列号溢出时是否仍可用来处理其余的数据包。 抗重放窗口抗重放窗口(Anti-Replay) :该字段在数据包的该字段在数据包的“进入进入”3434第6讲 网络
34、安全协议处理期间使用。当今,与网络安全有关的一个重要问题便是处理期间使用。当今,与网络安全有关的一个重要问题便是重放攻击。在重放攻击过程中,网络应用会受到不断重放数重放攻击。在重放攻击过程中,网络应用会受到不断重放数据包的轰炸。据包的轰炸。 存活时间存活时间(Time To Live,TTL):一个时间间隔或字节一个时间间隔或字节计数,到时间后,一个计数,到时间后,一个SA必须用一个新的必须用一个新的SA替换或终止。替换或终止。 AH信息信息:使用使用AH的身份验证算法、密钥、密钥生命的身份验证算法、密钥、密钥生命周期和相关参数。周期和相关参数。 ESP信息信息:使用使用ESP的加密和身份验证
35、算法、密钥、初的加密和身份验证算法、密钥、初始向量、密钥生命周期和相关参数。始向量、密钥生命周期和相关参数。 模式模式(Mode): IPSec协议可同时用于隧道模式及传输模协议可同时用于隧道模式及传输模3535第6讲 网络安全协议式。依据这个字段的值,载荷的处理方式也会有所区别。可式。依据这个字段的值,载荷的处理方式也会有所区别。可将该字段设为隧道模式、传输模式或者一个通配符。将该字段设为隧道模式、传输模式或者一个通配符。 隧道目的地隧道目的地(Tunnel Destination):对于隧道模式中的对于隧道模式中的IPSec来说,需要该字段指出隧道的目的地来说,需要该字段指出隧道的目的地-
36、亦即外部头的目亦即外部头的目标标IP地址。地址。 路径最大传输参数路径最大传输参数(PMTU): 在隧道模式下使用在隧道模式下使用IPSec 时,必须维持正确的时,必须维持正确的PMTU 信息,以便对数据包进行相应的信息,以便对数据包进行相应的分段。分段。 4.4. SA的创建和删除的创建和删除 SA管理的两大主要任务就是创建和删除。管理的两大主要任务就是创建和删除。SA管理管理既可以3636第6讲 网络安全协议手工进行手工进行,也可以通过一个,也可以通过一个Internet标准密钥管理协议来完成标准密钥管理协议来完成,比如,比如IKE。为了进行。为了进行SA的管理,要求用户应用程序的一个的管
37、理,要求用户应用程序的一个接口同接口同IPSec内核通信,以便实现对内核通信,以便实现对SA数据库的管理。数据库的管理。 SA的创建分两步进行的创建分两步进行先协商先协商SA参数参数,再用,再用SA更新更新SADB(安全关联数据库安全关联数据库)。 安全关联数据库包含了每个安全关联数据库包含了每个SA的参数信息,如的参数信息,如AH和和ESP的的算法和密钥、序列号、协议模式和有效期等。算法和密钥、序列号、协议模式和有效期等。 人工密钥协商是必须支持的,在人工密钥协商是必须支持的,在IPSec的早期开发及测试过的早期开发及测试过程中,这种方式曾得到广泛的应用。在人工密钥协商过程中,程中,这种方式
38、曾得到广泛的应用。在人工密钥协商过程中,通信双方都需要离线同意通信双方都需要离线同意SA的各项参数。所谓的各项参数。所谓“人工人工”协商,协商,3737第6讲 网络安全协议不外乎通过电话或电子邮件的方式,不外乎通过电话或电子邮件的方式,SPISPI的分配、参数的选择的分配、参数的选择都是人工进行的。但是非常明显,这个过程非常容易出错,都是人工进行的。但是非常明显,这个过程非常容易出错,既麻烦又不安全。同时也只能以人工方式删除,否则这些既麻烦又不安全。同时也只能以人工方式删除,否则这些SASA永远不会过期。永远不会过期。 在已经配置好的在已经配置好的IPSec环境中,环境中,SA的建立可以通过因
39、特网的建立可以通过因特网标准密钥管理协议标准密钥管理协议(比如比如IKE)来完成。如果安全策略要求建立来完成。如果安全策略要求建立安全、保密的连接,但却找不到相应的安全、保密的连接,但却找不到相应的SA,IPSec的内核便会的内核便会自动调用自动调用IKE。IKE会与目标主机或者途中的主机会与目标主机或者途中的主机/路由器协路由器协商具体的商具体的SA;SA创建好且加入创建好且加入SADB数据库后,在两个主机数据库后,在两个主机间正常流动的数据包便会采用间正常流动的数据包便会采用SA参数实现相应的安全服务。参数实现相应的安全服务。3838第6讲 网络安全协议 可能有很多方面的理由需要删除可能有
40、很多方面的理由需要删除SA,例如:,例如: 存活时间过期;存活时间过期; 密钥已遭破解;密钥已遭破解; 使用使用SA加密加密/解密或验证的字节数已超过策略设定的解密或验证的字节数已超过策略设定的某一个阈值;某一个阈值; 另一端要求删除这个另一端要求删除这个SA。3939第6讲 网络安全协议 6.3.4 6.3.4 SPD(安全策略库)(安全策略库) 1. 1. SPD策略策略 SPD定定义了了对所有所有进出出业务应该采取的安全策略,决定了采取的安全策略,决定了为特定的数据包提供特定的安全服特定的数据包提供特定的安全服务。我我们根据根据“选择符符”对该数据数据库进行行检索,索,库内包含了内包含了
41、为一个一个IPIP包提供安全服包提供安全服务的的有关信息。有关信息。 IP数据包的收数据包的收发都以安全策略都以安全策略为依据依据。对出入的出入的IPIP包的包的处理有三种可能的理有三种可能的选择: 丢弃弃:不允不允许该IP包在此主机上存在,不允包在此主机上存在,不允许通通过此安此安全网关或是根本就不能全网关或是根本就不能传送送给上上层应用程序的用程序的业务流。流。 绕过IPSec:不需要不需要进行行IPSec安全保安全保护处理,可直接理,可直接 4040第6讲 网络安全协议通通过。 采用采用IPSec:需要:需要进行行IPSec安全保安全保护处理。理。对于于这种种业务流,流,SPD还必必须指
42、明所需提供的安全服指明所需提供的安全服务,采用的,采用的协议类型型以及使用何种算法等。以及使用何种算法等。 2.2.SPD结构结构以下参数可用来确定以下参数可用来确定SPD入口入口(又称为又称为选择符选择符): 目的目的IP地址:可以是单地址或多地址地址:可以是单地址或多地址 源地址:单地址或多地址源地址:单地址或多地址 UserID: 操作系统中的操作系统中的用户标识。用户标识。 策略策略策略入口策略入口4141第6讲 网络安全协议 传输层协议:传输层协议: IPSec协议(协议(AH, ESP, AH/ESP) 源源/目的端口目的端口 服务类型服务类型(TOS) 选择符决定了提供给一个包的
43、安全服务。选择符决定了提供给一个包的安全服务。选择符选择符是从是从网络网络层层和和传输层传输层头头内提取出来的。内提取出来的。4242第6讲 网络安全协议 4343第6讲 网络安全协议 6.3.5 6.3.5 IPSec的工作模式的工作模式 在在IPSec协议中,无论是协议中,无论是AH还是还是ESP,都可工作于传输模,都可工作于传输模式式( (Transport Mode) )和隧道模式和隧道模式( (Tunnel Mode) )。 1.1.传输模式传输模式 传输模式主要为上层协议提供保护,即传输模式的保护传输模式主要为上层协议提供保护,即传输模式的保护扩充到扩充到IP分组的有效载荷。传输模
44、式使用原始的明文分组的有效载荷。传输模式使用原始的明文IP头,头,只加密数据部分只加密数据部分( (包括包括TCP头或头或UDP头头) )。 传输模式的传输模式的典型应用典型应用是用于两个主机之间的端到端的通是用于两个主机之间的端到端的通信。信。 2.2.隧道模式隧道模式4444第6讲 网络安全协议与传输模式相比,隧道模式对整个与传输模式相比,隧道模式对整个IP分组提供保护,整分组提供保护,整个个IP数据包全部被加密封装,得到一个新的数据包全部被加密封装,得到一个新的IP数据包,而新数据包,而新的的IP头可以包含完全不同的源地址和目的地址,因此在传输头可以包含完全不同的源地址和目的地址,因此在
45、传输过程中,由于路由器不能够检查内部过程中,由于路由器不能够检查内部IP头,从而增加了数据头,从而增加了数据安全性。安全性。 隧道模式通常用于隧道模式通常用于当当SA的一端或两端是安全网关的一端或两端是安全网关,如实,如实现了现了IPSec的防火墙或路由器的情况。的防火墙或路由器的情况。4545第6讲 网络安全协议 6.3.6 6.3.6 AH认证头认证头 1.1. AH概述概述 认证头认证头(AH)(AH)的协议代号为的协议代号为5151 ,是基于网络层的一个安全,是基于网络层的一个安全协议。它是协议。它是IPSecIPSec协议的重要组成部分,是用于为协议的重要组成部分,是用于为IPIP数
46、据包提数据包提供安全认证的一种安全协议。供安全认证的一种安全协议。 认证头是为认证头是为IPIP数据包提供强认证的一种安全机制,它具数据包提供强认证的一种安全机制,它具有为有为IPIP数据包提供数据包提供数据完整性数据完整性、数据源认证数据源认证和和抗重传攻击抗重传攻击等等功能。在功能。在IPSec中,这中,这三项功能组合在一起统称为认证三项功能组合在一起统称为认证。 利用利用MAC码进行鉴别,双方需要共享一个密钥,鉴别算码进行鉴别,双方需要共享一个密钥,鉴别算法有法有SA指定。指定。AH协议可以用于传输模式和隧道模式。协议可以用于传输模式和隧道模式。4646第6讲 网络安全协议4747第6讲
47、 网络安全协议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封装。封装。 净载荷长度净载
48、荷长度:是以是以32 32 bit为单位的认证头总长度减为单位的认证头总长度减2 2,或者或者SPI后的以后的以32 32 bit为单位的总长度,域长度为为单位的总长度,域长度为8 8 bit。 保留保留: : 保留为今后使用,将全部保留为今后使用,将全部16bit16bit置成零。置成零。 安全参数索引安全参数索引( (SPI) ): :是一个是一个32 32 bit的整数。它与目的的整数。它与目的IP地址和安全协议结合在一起即可唯一地标识用于此数据项的地址和安全协议结合在一起即可唯一地标识用于此数据项的4949第6讲 网络安全协议安全关联。安全关联。 序列号序列号( (SN) ): : 长
49、度为长度为32 32 bit,是一个无符号单调递增计,是一个无符号单调递增计数值,每当一个特定的数值,每当一个特定的SPI数据包被传送时,序列号加数据包被传送时,序列号加1 1,用,用于防止数据包的重传攻击。于防止数据包的重传攻击。 认证数据认证数据: 是一个长度可变的域,长度为是一个长度可变的域,长度为32 32 bit的整数的整数倍。该字段包含了这个倍。该字段包含了这个IP数据包中的不变信息的完整性检验数据包中的不变信息的完整性检验值值(ICV),用于提供认证和完整性检查。具体格式随认证算法,用于提供认证和完整性检查。具体格式随认证算法而不同,但至少应该支持而不同,但至少应该支持RFC 2
50、4032403规定的规定的HMAC-MD5和和RFC24042404规定的规定的HMAC-SHA1。 5050第6讲 网络安全协议3. 3. AH处理过程处理过程 输出处理输出处理 查找查找SA 产生序列号产生序列号 计算计算ICV(Integrity Check Value),), 内容包括:内容包括:IP头中的部分域,头中的部分域,AH自身,上层协议数据。自身,上层协议数据。 分片分片 5151第6讲 网络安全协议 输入处理输入处理 分片装配分片装配 查找查找SA 依据:目标依据:目标IP地址、地址、AH协议、协议、SPI 检查序列号(可选,针对重放攻击)检查序列号(可选,针对重放攻击)
51、使用一个滑动窗口来检查序列号的重放使用一个滑动窗口来检查序列号的重放 检查检查ICV的值的值 5252第6讲 网络安全协议5353第6讲 网络安全协议 6.3.7 6.3.7 ESP 1.1.ESPESP概述概述 封装安全有效载荷头在封装安全有效载荷头在IPv4和和IPv6中提供一种混合的安全中提供一种混合的安全服务。服务。ESP提供机密性、数据源的身份验证、数据的完整性和提供机密性、数据源的身份验证、数据的完整性和抗重播服务。提供的这组服务由抗重播服务。提供的这组服务由SA的相应组件决定。的相应组件决定。ESP也也是既可以采用传输模式,也可以采用隧道模式。是既可以采用传输模式,也可以采用隧道
52、模式。5454第6讲 网络安全协议5555第6讲 网络安全协议2.2. ESP数据格式数据格式5656第6讲 网络安全协议 安全参数索引安全参数索引(SPI)(SPI):SPISPI是一个任意的是一个任意的3232位值,它与位值,它与目的目的IPIP地址和安全协议地址和安全协议(ESP)(ESP)结合,惟一地标识这个数据报的结合,惟一地标识这个数据报的SASA。通常在建立。通常在建立SASA时由目的系统选择时由目的系统选择SPISPI。 序列号序列号(Sequence Number):这个无符号的、这个无符号的、3232位字段位字段包含一个单调递增的计数器值包含一个单调递增的计数器值( (序列
53、号序列号) )。 有效载荷数据有效载荷数据(Payload Data):有效载荷数据是可变长有效载荷数据是可变长字段,它包含字段,它包含ESPESP要保护的数据要保护的数据( (下一个头字段描述的数据下一个头字段描述的数据) )。有效载荷数据字段是强制性的,一个加密算法需要的初始化有效载荷数据字段是强制性的,一个加密算法需要的初始化向量向量(IV)(IV)可在该字段中传输。可在该字段中传输。 填充填充( (供加密使用供加密使用) ):多种情况需要使用填充字段。多种情况需要使用填充字段。5757第6讲 网络安全协议 填充长度填充长度(Pad Length):填充长度字段指明紧接其前的填充长度字段
54、指明紧接其前的填充字节的个数。有效值范围是填充字节的个数。有效值范围是0 0 255255,0 0表明没有填充字表明没有填充字节。填充长度字段是强制性的。节。填充长度字段是强制性的。 下一个头下一个头(Next Header):下一个头是一个下一个头是一个8 8位字段,它位字段,它标识有效载荷字段中包含的数据类型,例如,标识有效载荷字段中包含的数据类型,例如,IPv6IPv6中的扩展中的扩展头或者上层协议标识符。下一个头字段是强制性的。如果在头或者上层协议标识符。下一个头字段是强制性的。如果在隧道模式隧道模式下应用下应用ESPESP,这个值就是,这个值就是4 4,表示,表示IP-in-IPIP
55、-in-IP。如果在。如果在传输模式传输模式下使用下使用ESPESP,这个值表示的就是它背后的,这个值表示的就是它背后的上一级协议上一级协议的类型的类型,比如,比如TCPTCP对应的就是对应的就是6 6。 验证数据验证数据(Authentication Data):验证数据是可变长字验证数据是可变长字段,它包含一个完整性校验值段,它包含一个完整性校验值(ICV)(ICV)。5858第6讲 网络安全协议3. ESP3. ESP处理过程处理过程 输出处理输出处理 查找查找SA 产生序列号产生序列号 加密加密 封装必要的数据,根据不同的模式,封装数据的封装必要的数据,根据不同的模式,封装数据的 范围
56、不同;范围不同; 增加必要的增加必要的Padding; 进行加密操作。进行加密操作。 计算计算ICV,针对加密后的数据计算,针对加密后的数据计算 分片分片5959第6讲 网络安全协议 输入处理输入处理 分片装配分片装配 查找查找SA 依据:目的依据:目的IP地址、地址、ESP协议、协议、SPI 检查序列号(可选,针对重放攻击)检查序列号(可选,针对重放攻击) ICV检查检查 解密解密 根据根据SA中指定的算法和密钥、参数,对于被加密中指定的算法和密钥、参数,对于被加密 部分的数据进行解密;部分的数据进行解密; 去掉去掉Padding; 重构原始重构原始IP包。包。 6060第6讲 网络安全协议
57、 6.3.8 6.3.8 IKE协议协议 用用IPSec保护一个保护一个IP包之前,必须建立一个安全关联,包之前,必须建立一个安全关联,SA可以手工创建或动态建立。可以手工创建或动态建立。 因特网密钥交换协议因特网密钥交换协议(IKE)用于动态建立安全关联,用于动态建立安全关联,IKE以以UDP的方式通信,其端口号为的方式通信,其端口号为500500。 IKE是一个混合协议,使用到是一个混合协议,使用到ISAKMP、Oakley密钥确密钥确定协议(基于定协议(基于DH协议)和协议)和SKEME协议。协议。IKE分为分为两个阶段两个阶段: :第一阶段建立第一阶段建立IKE本身使用的安全信道而本身
58、使用的安全信道而协商协商IKE SA,主要,主要是协商是协商“主密钥主密钥”;第二阶段,利用第一阶建立的安全信道;第二阶段,利用第一阶建立的安全信道来交换来交换 IPSec SA。IPSEC 外外出出处处理理流流程程IPSEC 进进入入处处理理流流程程6363第6讲 网络安全协议 6.3.9 6.3.9 IPSec和和IKE总结总结 IPSec在网络层上提供安全服务:在网络层上提供安全服务:AH和和ESP IKE提供了密钥交换功能提供了密钥交换功能 SA把两部分结合起来把两部分结合起来 已经发展成为已经发展成为Internet标准标准 一些困难一些困难 IPSec太复杂太复杂 协议太复杂,导致
59、很难达到真正的安全性;协议太复杂,导致很难达到真正的安全性; 管理和配置复杂,使得安全性下降。管理和配置复杂,使得安全性下降。 实现上的兼容性实现上的兼容性6464第6讲 网络安全协议攻击:网络层之上、之下的协议的弱点攻击:网络层之上、之下的协议的弱点 还在进一步完善还在进一步完善 IPSec实现:实现: 一些网络设备厂商:比如一些网络设备厂商:比如CISCO等等 各种操作系统:比如各种操作系统:比如Linux、Unix、Windows等等 IPv6实现实现 一些一些VPN软件包软件包 6565第6讲 网络安全协议 6.4 SSL6.4 SSL协议协议6.4.1 6.4.1 SSL协议概述协议
60、概述 为传输层提供安全保护的协议主要有为传输层提供安全保护的协议主要有SSL和和TLS。TLS用用于在两个通信应用程序之间提供保密性和数据完整性服务。于在两个通信应用程序之间提供保密性和数据完整性服务。 到现在为止,到现在为止,SSL有有3 3个版本个版本: : SSL1.0、SSL2.0和和 SSL3.0。SSL3.0规范在规范在19961996年年3 3月正式发行,相比前个版本提供了更月正式发行,相比前个版本提供了更多的算法支持和一些安全特性。多的算法支持和一些安全特性。19991999年,年,IETF在基于在基于SSL3.0协议的基础上发布了协议的基础上发布了TLS1.0版本。版本。66
61、66第6讲 网络安全协议6.4.2 6.4.2 SSL协议的安全功能协议的安全功能 SSLSSL协议可提供以下协议可提供以下3 3种基本的安全功能服务:种基本的安全功能服务: 信息加密信息加密。SSL 所采用的加密技术既有对称加密技术所采用的加密技术既有对称加密技术( (如如DES、 IDEA) ),也有非对称加密技术,也有非对称加密技术( (如如RSA) ),从而确保,从而确保了信息传递过程中的机密性。了信息传递过程中的机密性。 身份认证身份认证。通信双方的身份可通过。通信双方的身份可通过RSA( (数字签名技术数字签名技术) )、DSA( (数字签名算法数字签名算法) )和和ECDSA(
62、(椭圆曲线数字签名算法椭圆曲线数字签名算法) )来验来验证,证,SSL协议要求在握手交换数据前进行身份认证,以此来确协议要求在握手交换数据前进行身份认证,以此来确保用户的合法性。保用户的合法性。 信息完整性校验信息完整性校验。通信的发送方通过散列函数产生消通信的发送方通过散列函数产生消6767第6讲 网络安全协议息验证码息验证码(MAC),接收方通过验证,接收方通过验证MAC来保证信息的完整性。来保证信息的完整性。SSL 提供完整性校验服务,使所有经过提供完整性校验服务,使所有经过SSL协议处理的业务协议处理的业务都能全部准确、无误地到达目的地。都能全部准确、无误地到达目的地。6868第6讲
63、网络安全协议6.4.3 SSL6.4.3 SSL协议体系结构协议体系结构6969第6讲 网络安全协议 记录协议记录协议:提供分块、压缩、加密、完整性服务。:提供分块、压缩、加密、完整性服务。 握手协议握手协议:SSL握手协议是用来在客户端和服务器端传握手协议是用来在客户端和服务器端传输应用数据之前建立安全通信机制。首次通信时,双方通过输应用数据之前建立安全通信机制。首次通信时,双方通过握手协议协商密钥加密算法、数据加密算法和报文摘要算法;握手协议协商密钥加密算法、数据加密算法和报文摘要算法;然后互相验证对方身份,最后使用协商好的密钥交换算法产然后互相验证对方身份,最后使用协商好的密钥交换算法产
64、生一个只有双方知道的秘密信息,客户端和服务器各自根据生一个只有双方知道的秘密信息,客户端和服务器各自根据这个秘密信息确定数据加密算法的参数这个秘密信息确定数据加密算法的参数(一般是密钥一般是密钥)。 密钥更改协议密钥更改协议:用于会话间的密钥修改。:用于会话间的密钥修改。 告警协议告警协议: 用于传输警告信息。用于传输警告信息。7070第6讲 网络安全协议6.4.4 6.4.4 SSL的重要概念的重要概念 SSL连接连接 ,一个一个SSL连接是提供一种恰当类型的传输,连接是提供一种恰当类型的传输,是点对点的关系。连接是暂时的,每一个连接和一个会话相是点对点的关系。连接是暂时的,每一个连接和一个
65、会话相联系。联系。 SSL会话会话,一个一个SSL会话是一个在客户机和服务器之间会话是一个在客户机和服务器之间的关联,由的关联,由SSL握手协议来创建。会话定义了握手协议来创建。会话定义了加密安全参数的加密安全参数的一个集合一个集合,该集合可以被多个连接所共享,避免为每个连接,该集合可以被多个连接所共享,避免为每个连接进行昂贵的安全参数的协商。进行昂贵的安全参数的协商。7171第6讲 网络安全协议 6.4.5 6.4.5 SSL记录协议记录协议 1.1.SSLSSL协议概述协议概述SSL记录协议从它的高层记录协议从它的高层SSL子协议收到数据后,进行数子协议收到数据后,进行数据分段、压缩、认证
66、和加密,即它把输入的任意长度的数据据分段、压缩、认证和加密,即它把输入的任意长度的数据输出为一系列的输出为一系列的SSL数据段数据段( (或者叫或者叫“SSL记录记录”) ),每个这样,每个这样的数据段最大为的数据段最大为16383(216383(21414-1)-1)个字节。个字节。 每个每个SSL记录包括内容类型、协议版本号、长度、记录包括内容类型、协议版本号、长度、 数据数据有效载荷和有效载荷和MAC等信息。等信息。7272第6讲 网络安全协议应用数据应用数据分段分段 压缩压缩添加添加 MAC加密加密添加添加SSLSSL记录头记录头 数据分段数据分段 数据分段数据分段数据分段数据分段 应
67、用数据应用数据7373第6讲 网络安全协议2.2.SSL记录格式记录格式7474第6讲 网络安全协议 6.4.6 6.4.6 SSL握手协议握手协议 SSL握手协议负责建立当前会话状态的参数。双方协商一握手协议负责建立当前会话状态的参数。双方协商一个协议版本,选择密码算法,互相认证(不是必需的),并个协议版本,选择密码算法,互相认证(不是必需的),并且使用公钥加密技术通过一系列交换的消息在客户端和服务且使用公钥加密技术通过一系列交换的消息在客户端和服务器之间生成共享密钥。器之间生成共享密钥。 SSL握手协议动作包含四个阶段:握手协议动作包含四个阶段:第一阶段第一阶段建立安全能力;建立安全能力;
68、第二阶段第二阶段服务器认证和密钥交换服务器认证和密钥交换; ;第三阶段第三阶段客户认证和密钥交客户认证和密钥交换换; ;第四阶段第四阶段结束握手。结束握手。客户端客户端服务器服务器Client HelloSSLServer HelloCertificateServer Key ExchangeCertificate RequestServer Hello doneCertificateClient Key ExchangeCertificate VerifyChange Cipher SpecFinishedChange Cipher SpecFinished时时间间第一阶段第一阶段第二阶段第
69、二阶段第三阶段第三阶段第四阶段第四阶段7676第6讲 网络安全协议 1.1.第一阶段(建立安全协商)第一阶段(建立安全协商) 7777第6讲 网络安全协议 客户端发送一个客户端发送一个Client_hello消息,包括以下参数:版消息,包括以下参数:版本、随机数(本、随机数(3232位时间戳位时间戳+28+28字节随机序列)、会话字节随机序列)、会话ID、客户、客户支持的密码算法列表(支持的密码算法列表(CipherSuite)、客户支持的压缩方法)、客户支持的压缩方法列表。列表。 然后,客户等待服务器的然后,客户等待服务器的Server_hello消息。消息。 服务器发送服务器发送Serve
70、r_hello消息,参数:客户端建议的低消息,参数:客户端建议的低版本及服务器支持的最高版本、服务器产生的随机数、会话版本及服务器支持的最高版本、服务器产生的随机数、会话ID、服务器从客户段建议的密码算法中挑出一套、服务器从、服务器从客户段建议的密码算法中挑出一套、服务器从客户端建议的压缩函数中挑出一个。客户端建议的压缩函数中挑出一个。7878第6讲 网络安全协议 2.2.第二阶段(服务器鉴别和密钥交换)第二阶段(服务器鉴别和密钥交换)7979第6讲 网络安全协议 服务器发送自己的证书,消息包含一个服务器发送自己的证书,消息包含一个X.509证书,或证书,或者一条证书链。(除了匿名者一条证书链
71、。(除了匿名DH之外的密钥交换方法都需要)之外的密钥交换方法都需要) 服务器发送服务器发送Server_key_exchange消息(可选的,有些消息(可选的,有些情况下可以不需要。只有当服务器的证书没有包含必须的数情况下可以不需要。只有当服务器的证书没有包含必须的数据的时候才发送此消息。消息包含签名,签名内容包括两个据的时候才发送此消息。消息包含签名,签名内容包括两个随机数和服务器参数)随机数和服务器参数) 服务器发送服务器发送Certificate_request消息。(非匿名消息。(非匿名Server可可以向客户请求一个证书)以向客户请求一个证书) 服务器发送服务器发送Server_he
72、llo_done消息,然后等待应答。消息,然后等待应答。8080第6讲 网络安全协议 3.3.第三阶段(客户鉴别和密钥交换)第三阶段(客户鉴别和密钥交换)8181第6讲 网络安全协议 客户端收到客户端收到Server_done消息后,它根据需要检查服务消息后,它根据需要检查服务器提供的证书,并判断器提供的证书,并判断Server_hello的参数是否可以接受,如的参数是否可以接受,如果都没有问题的话,发送一个或多个消息给服务器。果都没有问题的话,发送一个或多个消息给服务器。 如果服务器请求证书的话,则客户首先发送一个如果服务器请求证书的话,则客户首先发送一个certificate消息,若客户没
73、有证书,则发送一个消息,若客户没有证书,则发送一个no_certificate警告。警告。 然后,发送然后,发送Client_key_exchange消息,消息的内容取决消息,消息的内容取决于密钥交换的类型。于密钥交换的类型。 最后,客户发送一个最后,客户发送一个certificate_verify消息,其中包含消息,其中包含对从第一条握手消息以来的所有握手消息的对从第一条握手消息以来的所有握手消息的HMAC值的签名。值的签名。8282第6讲 网络安全协议 4.4.第四阶段(结束)第四阶段(结束)8383第6讲 网络安全协议 第四阶段建立起一个安全的连接第四阶段建立起一个安全的连接 客户端发送
74、一个客户端发送一个change_cipher_spec消息,并且把协商消息,并且把协商得到的得到的CipherSuite拷贝到当前的连接状态当中。拷贝到当前的连接状态当中。 然后,客户用新的算法、密钥参数发送一个然后,客户用新的算法、密钥参数发送一个finished消消息,这条消息可以检查密钥交换和鉴别过程是否已经成功。息,这条消息可以检查密钥交换和鉴别过程是否已经成功。其中包括一个校验值,对所有以来的消息进行校验。其中包括一个校验值,对所有以来的消息进行校验。 服务器同样发送服务器同样发送change_cipher_spec消息和消息和finished消息。消息。 握手过程完成,双方可以交换
75、应用层数据。握手过程完成,双方可以交换应用层数据。8585第6讲 网络安全协议 6.3.7 6.3.7 SSL协议的特点协议的特点 SSL协议存在一些问题,比如协议存在一些问题,比如SSL提供的保密连接有很大提供的保密连接有很大的漏洞。的漏洞。 另外,另外,SSL对应用层不透明,只能提供交易中客户与服务对应用层不透明,只能提供交易中客户与服务器间的双方认证,在涉及多方的电子交易中,器间的双方认证,在涉及多方的电子交易中,SSL协议并不能协议并不能协调各方间的安全传输和信任关系。协调各方间的安全传输和信任关系。8686第6讲 网络安全协议 习习 题题 1. IPSec协议有哪几部分构成?各部分的
76、主要功能是什么协议有哪几部分构成?各部分的主要功能是什么?2. IPSec提供的主要安全服务有哪些?提供的主要安全服务有哪些?3. IPSec密钥协商分几步?每一步的主要目的是什么?密钥协商分几步?每一步的主要目的是什么?4. IPSec安全通信有哪两种工作模式,有什么不同之处?安全通信有哪两种工作模式,有什么不同之处?5. 简述简述IPSec在网络层数据输出和输入的处理过程。在网络层数据输出和输入的处理过程。 6. SSL协议有哪几部分组成,各部分的功能是什么?协议有哪几部分组成,各部分的功能是什么? 7. SSL提供的安全服务有哪些?提供的安全服务有哪些? 8. 简述简述SSL记录协议及握手协议的工作过程。记录协议及握手协议的工作过程。