信息安全原理与技术ch07-网络安全协议_第1页
信息安全原理与技术ch07-网络安全协议_第2页
信息安全原理与技术ch07-网络安全协议_第3页
信息安全原理与技术ch07-网络安全协议_第4页
信息安全原理与技术ch07-网络安全协议_第5页
已阅读5页,还剩116页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、信息安全原理与技术信息安全原理与技术 2 第第7章章 网络安全协议网络安全协议 网络安全协议按照其完成的功能可以分为: (1)密钥交换协议密钥交换协议 :一般情况下是在参与协 议的两个或者多个实体之间建立共享的秘 密,通常用于建立在一次通信中所使用的 会话密钥。 (2)认证协议认证协议:认证协议中包括实体认证 (身份认证)协议、消息认证协议、数据 源认证和数据目的认证协议等,用来防止 假冒、篡改、否认等攻击。 3 (3)认证和密钥交换协议认证和密钥交换协议 :这类协议将认 证和密钥交换协议结合在一起,是网络通 信中最普遍应用的安全协议。该类协议首 先对通信实体的身份进行认证,如果认证 成功,进

2、一步进行密钥交换,以建立通信 中的工作密钥,也叫密钥确认协议。 4 网络层的安全协议:网络层的安全协议:IPSecIPSec 传输层的安全协议:传输层的安全协议:SSL/TLSSSL/TLS 应用层的安全协议应用层的安全协议: SHTTPSHTTP(Web安全协议) PGPPGP(电子邮件安全协议) S/MIMES/MIME(电子邮件安全协议) MOSSMOSS(电子邮件安全协议) PEMPEM(电子邮件安全协议) SSHSSH(远程登录安全协议) Kerberos Kerberos(网络认证协议)等。 常见的网络安全协议常见的网络安全协议 5 7.1 7.1 简单的安全认证协议简单的安全认证

3、协议 Needham-Schroeder Needham-Schroeder 认证协议认证协议 是最为著名的早期的认证协议,许多广泛使 用的认证协议都是以Needham-Schroeder协议为基 础而设计的。 Otway-ReesOtway-Rees协议协议 Otway-Rees协议的主要功能是完成身份的双 向认证,使用对称密码。 6 7.1.1 7.1.1 Needham-Schroeder Needham-Schroeder 认证协议认证协议 Needham-Schroder协议的目的是使得 通讯双方能够互相证实对方的身份并且为后 续的加密通讯建立一个会话密钥(session key)。

4、 协议涉及三个主体:A和B,以及A,B信 赖的可信第三方,也叫认证服务器 (authentication server)S。 7 Needham和Schroeder于1978年提出的基于共享密基于共享密 钥体系的协议过程:钥体系的协议过程: 图7.1 Needham-Schroeder认证过程 其中,Kas是A与S之间的共享密钥,Kbs是B与S 之间的共享密钥。Kab 是认证服务器临时生成的密钥, 用于A、B双方认证之后的加密通讯,称为会话密钥。 Na和Nb分别是A和B生成的随机量(nonce)。 AB S 1 3 4 5 2 (1) A S:A,B,Na (2)S A:Na, B,Kab,K

5、ab, AKbsKas (3) A B:Kab,AKbs (4) B A:NbKab (5) A B:Nb-1Kab 8 Needham-Schroeder Needham-Schroeder共享密钥协议的漏洞共享密钥协议的漏洞 假定有攻击者H记录下A与B之间执行 Needham-Schroeder 共享密钥协议的一轮消息, 并且进而破获了其会话密钥Kab (如经过蛮力 攻击等),攻击者可以在第3步冒充A利用旧的 会话密钥欺骗B。 在这个攻击中,攻击者H首先向B发送一 个他记录的从A的第三步发出的旧消息,此消 息用于向B表明是A在与B通讯并且Kab是会话 密钥。 9 B无法知道这是不是一个A发

6、送的正常通讯 请求,也不记得他过去曾经用过Kab作为会话 密钥。遵循协议,B将向A发送一个加密的新随 机量作为挑战。 H截获之,并用Kab 解密得到此随机量, 然后向B返回一个响应消息,使得B相信他正在 用会话密钥 Kab与A通讯,而实际上A根本没有 参加这一轮协议的运行。 除非B记住所有以前使用的与A通信的会话 密钥,否则B无法判断这是一个重放攻击,攻 击者由此可以随意冒充A与B进行通讯了! 10 Denning协议协议使用时间戳修正了这个漏洞,改 进的协议如下: 其中T表示时间戳。T记录了认证服务器S发送 消息(2)时的时间,A、B根据时间戳验证消息的“新 鲜性”,从而避免了重放攻击。 (

7、1) A S:A,B ( 2 ) S A: B , K a b , T ,K a b , A,TKbsKas (3) A B:Kab,A,TKbs (4) B A:NbKab (5) A B:Nb-1Kab 11 7.1.2 7.1.2 Otway-ReesOtway-Rees协议协议 图7.2 Otway-Rees认证过程 标号1表示A产生一消息,包括用和S共享的密 钥Kas加密的一个索引号R、A的名字、B的名字 和一随机数Ra。 标号2表示B用A消息中的加密部分构造一条新消 息。包括用和S共享的密钥Kbs加密的一个索引 号R、A的名字、B的名字和一新随机数Rb。 AB S 1 2 3 4

8、12 标号3表示S检查两个加密部分中的索引号R 是否相同,如果相同,就认为从B来的消息 是有效的。S产生一个会话密钥Ks用Kb和Ka 分别加密后传送给B,每条消息都包含S接 收到的随机数。 标号4表示B把用A的密钥加密的消息连同索 引号R一起传给A。 13 7.2 7.2 KerberosKerberos协议协议 在一个开放的分布式网络环境中,用户通过工作 站访问服务器上提供的服务时, 一方面,工作站无法可信地向网络服务证实用户的 身份,可能存在着以下三种威胁: 用户可能访问某个特定工作站,并假装成另一 个用户在操作工作站。 用户可能会更改工作站的网络地址,使从这个 已更改的工作站上发出的请求

9、看似来自伪装的工作 站。 用户可能窃听他人的报文交换过程,并使用重 放攻击来获得对一个服务器的访问权或中断服务器 的运行。 14 另一方面,在开放的网络环境中,客户也必须 防止来自服务端的欺骗。 以自动取款机ATM为例,如果存在欺骗,那 么客户将泄漏自己的帐户信息。 如何使用一个集中的认证服务器,提供用 户对服务器的认证以及服务器对用户的认证, 这就是Kerberos要解决的问题。 15 7.2.1 7.2.1 KerberosKerberos概述概述 Kerberos是由美国麻省理工学院(MIT)提出的基 于可信赖的第三方的认证系统,它是基于Needham- Schroeder协议设计的,采

10、用对称密码体制。 Kerberos一词源自希腊神话,在希腊神话故事中, Kerberos是一种长有三个头的狗,还有一个蛇形尾 巴,是地狱之门的守卫者。现代取Kerberos这个名 字意指要有三个“头”来守卫网络之门,这“三头” 包括: -认证认证(authentication) -清算清算(accounting) -审计审计(audit) 16 KerberosKerberos协议中的一些概念协议中的一些概念 Principal(Principal(安全个体安全个体) ) 被鉴别的个体,有一个名字(name)和口令 (password)。 KDC(Key distribution center

11、KDC(Key distribution center,密钥分配中心密钥分配中心) 可信的第三方,即Kerberos服务器,提供 ticket和临时的会话密钥。 TicketTicket(访问许可证)访问许可证) 是一个记录凭证,客户可以用它来向服务器证 明自己的身份,其中包括客户的标识、会话密钥、 时间戳,以及其他一些信息。Ticket中的大多数 信息都被加密,密钥为服务器的密钥。 17 AuthenticatorAuthenticator(认证符)认证符) 是另一个记录凭证,其中包含一些最近 产生的信息,产生这些信息需要用到客户和 服务器之间共享的会话密钥。 CredentialsCred

12、entials(证书)证书) 由一个ticket加上一个秘密的会话密钥 组成。 18 7.2.2 7.2.2 KerberosKerberos协议的工作过程协议的工作过程 KerberosKerberos基本思想基本思想 采用对称密钥体制对信息进行加密,能正确对 信息进行解密的用户就是合法用户。用户在对应 用服务器进行访问之前,必须先从第三方 (Kerberos 服务器)获取该应用服务器的访问 许可证(ticket)。 认证服务器认证服务器ASAS(Authentication Server) 许可证颁发服务器许可证颁发服务器TGSTGS(Ticket Granting Server) 19

13、7.2.2 7.2.2 KerberosKerberos协议的工作过程协议的工作过程 认证服务器认证服务器AS许可证颁发服务器许可证颁发服务器 TGS 用户用户C应用服务应用服务 器器V 图7.3 Kerberos的认证过程 20 用户想要获取访问某一应用服务器的许可证时, 先以明文方式向认证服务器AS发出请求,要求获 得访问TGS的许可证。 AS以证书(credential)作为响应,证书包括 访问TGS的许可证和用户与TGS间的会话密钥。会 话密钥以用户的密钥加密后传输。 用户解密得到TGS的响应,然后利用TGS的许可 证向TGS申请应用服务器的许可证,该申请包括 TGS的许可证和一个带有

14、时间戳的认证符 (authenticator)。认证符以用户与TGS间的会 话密钥加密。 21 TGS从许可证中取出会话密钥、解密认证符, 验证认证符中时间戳的有效性,从而确定用户的 请求是否合法。TGS确认用户的合法性后,生成 所要求的应用服务器的许可证,许可证中含有新 产生的用户与应用服务器之间的会话密钥。TGS 将应用服务器的许可证和会话密钥传回到用户。 用户向应用服务器提交应用服务器的许可证和 用户新产生的带时间戳的认证符(认证符以用户 与应用服务器之间的会话密钥加密)。 应用服务器从许可证中取出会话密钥、解密认 证符,取出时间戳并检验有效性。然后向用户返 回一个带时间戳的认证符,该认

15、证符以用户与应 用服务器之间的会话密钥进行加密。据此,用户 可以验证应用服务器的合法性。 22 KerberosKerberos的主要优点:的主要优点: 通过对实体和服务的统一管理实现单一注册, 也就是说用户通过在网络中的一个地方的一次登 录就可以使用网络上他可以获得的所有资源。 KerberosKerberos存在存在的的问题:问题: Kerberos服务器的损坏将使得整个安全系统无法 工作; AS在传输用户与TGS间的会话密钥时是以用户密钥 加密的,而用户密钥是由用户口令生成的,因此 可能受到口令猜测的攻击; Kerberos使用了时间戳,因此存在时间同步问题; 要将Kerberos用于某

16、一应用系统,则该系统的客 户端和服务器端软件都要作一定的修改。 23 7.3 7.3 SSLSSL协议协议 SSLSSL(安全套接字层,安全套接字层,Secure Socket LayerSecure Socket Layer)协协 议是网景(议是网景(NetscapeNetscape)公司提出的基于公司提出的基于WEBWEB应用的安应用的安 全协议,是一种用于全协议,是一种用于传输层安全传输层安全的协议。的协议。 传输层安全协议的目的是为了保护传输层的安全,传输层安全协议的目的是为了保护传输层的安全, 并在传输层上提供实现并在传输层上提供实现数据保密数据保密、用户和服务器的双用户和服务器的双

17、 向认证向认证和和数据完整性数据完整性的方法。的方法。 SSL SSL指定了一种在指定了一种在应用程序协议应用程序协议( (例如例如httphttp、 telnettelnet、NNTPNNTP、FTP)FTP)和和TCP/IPTCP/IP之之间提供间提供数据安全性分数据安全性分 层层的机制。它的机制。它为为TCP/IPTCP/IP连接连接提供数据加密、服务器认提供数据加密、服务器认 证、消息完整性以及可选的客户机认证。证、消息完整性以及可选的客户机认证。 24 7.3.1 7.3.1 SSLSSL协议概述协议概述 SSLSSL的体系结构的体系结构 SSLSSL握手握手 协议协议 SSLSSL

18、修改修改 密文协议密文协议 SSLSSL告警告警 协议协议 应用层协应用层协 议议 SSLSSL记录协议记录协议 TCPTCP IPIP 25 SSLSSL协议位于传输层的上层。而它自己也协议位于传输层的上层。而它自己也 是一个分层协议。底层是是一个分层协议。底层是SSLSSL记录协议层,记录协议层, 用于传输各种加密和认证信息,为不同的用于传输各种加密和认证信息,为不同的 高层协议提供基本的安全服务。高层协议提供基本的安全服务。 而而SSL握手协议、握手协议、SSL修改密文协议和修改密文协议和 SSL告警协议位于上层告警协议位于上层。 26 SSLSSL中有两个重要概念:中有两个重要概念:

19、SSLSSL连接连接:连接是为两台主机提供恰当类型安全:连接是为两台主机提供恰当类型安全 服务的传输。服务的传输。SSLSSL连接是端到端的关系,连接是端到端的关系,每一个每一个 连接与一个会话相联系连接与一个会话相联系。 SSLSSL会话会话:SSLSSL会话是客户和服务器之间的关联,会话是客户和服务器之间的关联, SSLSSL会话通过握手协议会话通过握手协议( (在在SSLSSL协议的高层协议的高层) )来创来创 建。建。 SSLSSL会话定义了加密等安全参数的一个集会话定义了加密等安全参数的一个集 合,例如加密算法描述、密钥等。合,例如加密算法描述、密钥等。 一个一个SSLSSL会话可以

20、被多个会话可以被多个SSLSSL连接所共享连接所共享。即。即SSLSSL 会话可以用来避免为每个会话可以用来避免为每个SSLSSL连接进行昂贵的新连接进行昂贵的新 安全参数的协商。安全参数的协商。 27 SSLSSL中的中的写密钥写密钥代表对代表对输出输出信息计算数字信息计算数字 签名和加密的密钥。签名和加密的密钥。 SSL SSL中的中的读密钥读密钥代表对代表对输入输入信息验证数字信息验证数字 签名和解密的密钥。签名和解密的密钥。 注意:客户的注意:客户的写密钥写密钥就是服务器的就是服务器的读密钥。读密钥。 客户的客户的读密钥读密钥就是服务器的就是服务器的写密钥。写密钥。 28 SSLSSL

21、中每一个会话定义了一个密码套件。中每一个会话定义了一个密码套件。 密码套件包括密钥交换算法(密码套件包括密钥交换算法(Diffie-HellmanDiffie-Hellman 密钥交换算法、基于公钥体制密钥交换算法、基于公钥体制RSARSA分发秘密的方分发秘密的方 法)、散列函数(法)、散列函数(SHA1SHA1)和对称加密算法)和对称加密算法 (DESDES)。)。 密码套件的命名密码套件的命名 SSL_DH_anon_WITH_DES_CBC_SHASSL_DH_anon_WITH_DES_CBC_SHA。 使用使用Diffie-HellmanDiffie-Hellman密钥交换算法密钥交

22、换算法 对称加密算法为对称加密算法为DESDES 散列函数为散列函数为SHA1SHA1 29 SSL_DHESSL_DHE: 使用带认证(数字签名)使用带认证(数字签名)Diffie-HellmanDiffie-Hellman SSL_RSASSL_RSA: 使用基于使用基于RSARSA公钥密码体制的对称密钥分公钥密码体制的对称密钥分 发方法发方法 30 7.3.2 7.3.2 SSLSSL记录协议记录协议 SSLSSL记录协议位于传输层之上,为了实现机密性和消息完记录协议位于传输层之上,为了实现机密性和消息完 整性等安全服务,它从上一层协议(整性等安全服务,它从上一层协议(SSLSSL握手协

23、议、握手协议、SSLSSL改改 变密文规格协议、变密文规格协议、SSLSSL告警协议或告警协议或应用层协议)应用层协议)取得的数取得的数 据需要据需要重定格式重定格式(分片、可选的压缩、应用(分片、可选的压缩、应用MACMAC、加密等)加密等) 后才能传给后才能传给传输层传输层进行发送。进行发送。 同样,当同样,当SSLSSL协议从传输层接收到数据后需要协议从传输层接收到数据后需要对其进行对其进行 解密等操作解密等操作后才能交给上层的应用层。这个工作是由后才能交给上层的应用层。这个工作是由SSLSSL 记录协议记录协议完成的。完成的。 31 上层报文 分片1分片2分片n 压缩(可选) 加密 增

24、加MAC 增加SSL记录首部 图7.6 SSL记录协议的发送方执行的操作步骤 32 SSLSSL记录协议中发送方执行的操作步骤:记录协议中发送方执行的操作步骤: 从从上层接受上层接受传输的应用报文;传输的应用报文; 分片分片:将数据分片成可管理的块,每个上层报文:将数据分片成可管理的块,每个上层报文 被分成被分成1616KBKB或更小的数据块;或更小的数据块; 进行数据压缩进行数据压缩( (可选可选) ):压缩是可选的,压缩的前压缩是可选的,压缩的前 提是不能丢失信息,并且压缩后的内容长度不能提是不能丢失信息,并且压缩后的内容长度不能 超过超过10241024字节,缺省的压缩算法为空;字节,缺

25、省的压缩算法为空; 应用应用MACMAC:加入加入信息认证信息认证码(码(MACMAC),),这一步需要这一步需要 用到共享的密钥,用到共享的密钥,确保数据完整性确保数据完整性; 加密加密:利用:利用IDEAIDEA、DESDES、3DES3DES或其他加密算法对或其他加密算法对 压缩报文和压缩报文和MACMAC码进行码进行数据加密数据加密; 增加增加SSLSSL首部首部:增加由内容类型、主要版本、次:增加由内容类型、主要版本、次 要版本和压缩长度组成的首部。要版本和压缩长度组成的首部。 将结果将结果传输到下层传输到下层。 33 SSLSSL记录协议中记录协议中接收方接收数据的接收方接收数据的

26、工作过程工作过程 从低层接受报文;从低层接受报文; 解密;解密; 用事先商定的用事先商定的MACMAC码校验数据的完整性;码校验数据的完整性; 如果是压缩的数据,则解压缩;如果是压缩的数据,则解压缩; 重装配数据;重装配数据; 传输信息到上层。传输信息到上层。 34 SSLSSL记录协议首部格式记录协议首部格式 协议协议版本版本长度长度 压缩的数据部分压缩的数据部分 0 8 24 310 8 24 31 除除4040位的首部外全位的首部外全 部加密(包括部加密(包括MACMAC部分)部分) 计算计算MACMAC(检验消息的完整性)(检验消息的完整性) 长度长度 35 SSLSSL记录协议中协议

27、字段为记录协议中协议字段为2020表示表示SSLSSL修改密修改密 文规格协议,文规格协议,2121表示表示SSLSSL告警协议,告警协议,2222表示表示SSLSSL握握 手协议,手协议,2323表示来自应用层协议的数据表示来自应用层协议的数据。 两字节的版本字段分主版本(当前主版本为两字节的版本字段分主版本(当前主版本为3 3) 和次版本(当前次版本为和次版本(当前次版本为0 0)。 两字节的长度字段以字节数确定压缩后信息两字节的长度字段以字节数确定压缩后信息 的大小(不计入首部长度)。的大小(不计入首部长度)。 36 7.3.3 7.3.3 SSLSSL修改密文规格协议修改密文规格协议

28、在握手协议期间,双方确定所使用的密在握手协议期间,双方确定所使用的密 码套件和密钥等秘密参数。码套件和密钥等秘密参数。SSLSSL修改密文规修改密文规 格协议用来决定双方在何时同步地使用这些格协议用来决定双方在何时同步地使用这些 秘密参数提供安全保护。秘密参数提供安全保护。 客户首先发出一个修改密文规格的信息,客户首先发出一个修改密文规格的信息, 然后客户把自己的写密钥从未定状态转移到然后客户把自己的写密钥从未定状态转移到 活动状态。收到该信息后服务器把自己的读活动状态。收到该信息后服务器把自己的读 密钥从未定状态转移到活动状态。密钥从未定状态转移到活动状态。 37 收到客户的完成信息后,服务

29、器也发送收到客户的完成信息后,服务器也发送 一个修改密文规格信息。然后服务器把自己一个修改密文规格信息。然后服务器把自己 的写密钥从未定状态转移到活动状态。收到的写密钥从未定状态转移到活动状态。收到 该信息后客户把自己的读密钥从未定状态转该信息后客户把自己的读密钥从未定状态转 移到活动状态。移到活动状态。 此后,新的双方约定的密钥就将一直使此后,新的双方约定的密钥就将一直使 用到下次提出修改密文规格的请求为止。用到下次提出修改密文规格的请求为止。 38 SSLSSL修改密文规格协议的内容修改密文规格协议的内容 2020版本版本0 0 CCSCCS:1 1(1 1字节)字节) 0 8 24 31

30、0 8 24 31 计算计算MACMAC(检验消息的完整性)(检验消息的完整性) 1 1 39 7.3.4 7.3.4 SSLSSL告警协议告警协议 SSLSSL告警协议是用来将告警协议是用来将SSLSSL有关的告警传送给有关的告警传送给 对方实体的。和其他使用对方实体的。和其他使用SSLSSL的情况一样,告警报的情况一样,告警报 文按照当前状态说明被文按照当前状态说明被SSLSSL记录协议压缩和加密。记录协议压缩和加密。 SSL SSL告警协议的每个报文由两个字节组成。第告警协议的每个报文由两个字节组成。第 一个字节的值用来表明警告的的级别,第二个字一个字节的值用来表明警告的的级别,第二个字

31、 节表示特定告警的代码。如果在通信过程中某一节表示特定告警的代码。如果在通信过程中某一 方发现任何异常,就需要给对方发送一条警示消方发现任何异常,就需要给对方发送一条警示消 息通告。息通告。 40 警示消息有两种警示消息有两种: :一种是一种是 FatalFatal错误错误, ,如传递如传递 数据过程中,发现错误的数据过程中,发现错误的MACMAC,双方就需要立即中双方就需要立即中 断会话,同时消除自己缓冲区相应的会话记录;断会话,同时消除自己缓冲区相应的会话记录; 第二种是第二种是WarningWarning消息,这种情况,通信双方通常消息,这种情况,通信双方通常 都只是记录日志,而对通信过

32、程不造成任何影响。都只是记录日志,而对通信过程不造成任何影响。 41 SSLSSL告警协议的内容告警协议的内容 2121版本版本0 0 级别与描述级别与描述 0 8 24 310 8 24 31 计算计算MACMAC(检验消息的完整性)(检验消息的完整性) 2 2 级别与描述各占级别与描述各占1 1字节字节 级别分级别分FatalFatal与与WarningWarning 描述用于确定错误类型,例如无证描述用于确定错误类型,例如无证 书(书(4141)、证书过期()、证书过期(4545),证书),证书 撤销(撤销(4444)、非法参数()、非法参数(4747)等)等 42 7.3.5 7.3.

33、5 SSLSSL握手协议握手协议 2222版本版本长度长度 长度长度 0 8 16 24 310 8 16 24 31 长度长度 长度长度 类型类型 43 类型类型信息信息 0HelloRequest 1ClientRequest 2ServerHello 11证书证书 12服务器密钥交换服务器密钥交换 13证书请求证书请求 14ServerHelloDone 15证书验证证书验证 16客户密钥交换客户密钥交换 20完成完成 一个一个SSLSSL会话工作在不同的状态,即会话状会话工作在不同的状态,即会话状 态和连接状态。态和连接状态。 会话状态会话状态: 会话标识符会话标识符 对方的证书对方的

34、证书 压缩方法压缩方法 密文规约密文规约 主密钥主密钥 可重新开始标志可重新开始标志 连接状态连接状态: 服务器和客户随机数服务器和客户随机数 服务器写服务器写MACMAC密钥密钥 客户写客户写MACMAC密钥密钥 服务器写密钥服务器写密钥 客户写密钥客户写密钥 初始化向量初始化向量 序号序号 45 会话状态会话状态 会话标识符:由服务器选择的对活动的或会话标识符:由服务器选择的对活动的或 可恢复的会话的标识。可恢复的会话的标识。 对方的证书:对方的对方的证书:对方的X.509证书,可选证书,可选 压缩方法:即压缩算法压缩方法:即压缩算法 密文规格:指定加密算法和密文规格:指定加密算法和MAC

35、算法算法 主密钥:主密钥:48位长的客户和服务器的共享密位长的客户和服务器的共享密 钥钥 可重新开始标志:用于指示会话是否可用可重新开始标志:用于指示会话是否可用 于新连接的标志。于新连接的标志。 46 连接状态连接状态 服务器和客户随机数:由服务器和客户分别选择服务器和客户随机数:由服务器和客户分别选择 的随机数。的随机数。 服务器写服务器写MAC密钥:服务器用于密钥:服务器用于MAC操作的密钥操作的密钥 客户写客户写MAC密钥:客户用于密钥:客户用于MAC操作的密钥操作的密钥 服务器写密钥:服务器的加密密钥服务器写密钥:服务器的加密密钥 客户写密钥:客户的加密密钥客户写密钥:客户的加密密钥

36、 初始化向量:对加密算法设置初始状态。初始化向量:对加密算法设置初始状态。 序号:记录自从上次发送修改密文规格信息后所序号:记录自从上次发送修改密文规格信息后所 传输的信息数量(为之提供安全服务)。传输的信息数量(为之提供安全服务)。 SSL SSL握手协议用于初始化握手协议用于初始化认证认证和传输密和传输密 钥,它使得服务器和客户能相互认证对方钥,它使得服务器和客户能相互认证对方 的身份,并为的身份,并为SSLSSL记录协议提供相应的安全记录协议提供相应的安全 参数(例如密钥),保护在参数(例如密钥),保护在SSLSSL记录协议中记录协议中 发送的数据。因此在传输任何应用数据前,发送的数据。

37、因此在传输任何应用数据前, 都必须使用握手协议。都必须使用握手协议。 一个一个SSLSSL会话按如下方式初始化:会话按如下方式初始化: (1 1)客户方用)客户方用URLURL发出的请求中发出的请求中httphttp用用httpshttps 代替;代替; (2 2)客户方的客户方的SSLSSL请求通过请求通过TCPTCP的的443443端口与端口与 服务器方的服务器方的SSLSSL进程建立连接。进程建立连接。 (3 3)客户方初始化客户方初始化SSLSSL握手状态,以握手状态,以SSLSSL记录记录 协议为载体,此时客户与服务器双方的连接中协议为载体,此时客户与服务器双方的连接中 还没有加密和

38、进行完整性检查的信息。还没有加密和进行完整性检查的信息。 客户和服务器共同协商决定客户和服务器共同协商决定SSLSSL连接期间所需的连接期间所需的 参数,例如协议版本、对称加密算法、客户和服参数,例如协议版本、对称加密算法、客户和服 务器的双向认证和公钥加密算法等。所有的信息务器的双向认证和公钥加密算法等。所有的信息 均由均由SSLSSL记录协议传输。记录协议传输。 49 图7.7 SSL握手过程 SSLSSL客户端客户端SSLSSL服务器端服务器端 发送发送”hello”hello”消息消息 传送数据传送数据 回复回复”hello”hello”消息消息, , 发出服务器证书发出服务器证书,

39、, 服务器密钥交换信息服务器密钥交换信息, , 证书请求证书请求, , 服务器服务器HELLO DONEHELLO DONE 发送证书发送证书, , 客户密钥交换信息客户密钥交换信息, , 证书验证信息证书验证信息, , 结束结束 发修改密文规格信息发修改密文规格信息 结束结束 发修改密文规格信息发修改密文规格信息 传送数据传送数据 2 1 4 3 5 50 SSLSSL握手的详细过程握手的详细过程 第一步:客户发出一个带有客户第一步:客户发出一个带有客户HELLOHELLO信息的连接信息的连接 请求。这信息包括:请求。这信息包括: 想要使用的想要使用的SSLSSL版本号。版本号。 时间信息,

40、以标准的时间信息,以标准的UNIX32UNIX32位格式标识的时间和位格式标识的时间和 日期。日期。 会话标识(可选),如果没有指定的话,则服务会话标识(可选),如果没有指定的话,则服务 器便重用上一次的会话标识或返回一个错误信息器便重用上一次的会话标识或返回一个错误信息 密文组(客户方所支持的各种加密算法选项清单。密文组(客户方所支持的各种加密算法选项清单。 包括认证码、密钥交换方法、加密和包括认证码、密钥交换方法、加密和MACMAC算法)。算法)。 客户方所支持的压缩算法。客户方所支持的压缩算法。 随机数。随机数。 51 SSLSSL握手的详细过程握手的详细过程 第二步:服务器评估客户方发

41、来的第二步:服务器评估客户方发来的HELLOHELLO信息中的信息中的 各项参数,并且返回一个服务器方的各项参数,并且返回一个服务器方的HELLOHELLO信息,信息, 其中含有服务器选来用于其中含有服务器选来用于SSLSSL会话的各项参数(版会话的各项参数(版 本号、时间信息、以标准的本号、时间信息、以标准的UNIX32UNIX32位格式标识的现位格式标识的现 时和日期、会话标识、密文组、压缩方法、随机时和日期、会话标识、密文组、压缩方法、随机 数)。数)。 在服务器在服务器HELLOHELLO信息之后,服务器发出如下信息:信息之后,服务器发出如下信息: 服务器证书,如果客户需要鉴别服务器的

42、身份。服务器证书,如果客户需要鉴别服务器的身份。 服务器密钥交换信息,用于计算会话密钥。证服务器密钥交换信息,用于计算会话密钥。证 书请求,如果服务器要求鉴别客户的身份。书请求,如果服务器要求鉴别客户的身份。 最后,服务器发出一个服务器最后,服务器发出一个服务器HELLO DONEHELLO DONE信息,开信息,开 始等待客户的回音。始等待客户的回音。 52 SSLSSL握手的详细过程握手的详细过程 第三步:客户发送下列信息:第三步:客户发送下列信息: 如果服务器发出了一个证书请求,那么客户方必须如果服务器发出了一个证书请求,那么客户方必须 发送一个证书或非证书信息。发送一个证书或非证书信息

43、。 如果服务器发送了一个服务器密钥交换信息,那么如果服务器发送了一个服务器密钥交换信息,那么 客户方就发送一个基于公钥算法的、由客户方就发送一个基于公钥算法的、由HELLOHELLO信息信息 决定的密钥交换信息。决定的密钥交换信息。 如果客户方已经发送了一个客户证书,那么客户方如果客户方已经发送了一个客户证书,那么客户方 就需验证服务器方的证书并且发出一个证书验证信就需验证服务器方的证书并且发出一个证书验证信 息指明结果。息指明结果。 然后,客户方发出一个结束信息,指出协商过然后,客户方发出一个结束信息,指出协商过 程已经完成。客户方还发送一个修改密文规格信息程已经完成。客户方还发送一个修改密

44、文规格信息 来产生共享的会话密钥。应该注意这部分工作不是来产生共享的会话密钥。应该注意这部分工作不是 由握手协议控制,是由修改密文规格协议管理的。由握手协议控制,是由修改密文规格协议管理的。 53 SSLSSL握手的详细过程握手的详细过程 第四步:服务器发出一个结束信息指出协商协第四步:服务器发出一个结束信息指出协商协 商阶段完成。然后服务器发出一个密文修改规商阶段完成。然后服务器发出一个密文修改规 格信息。格信息。 第五步:会话双方分别产生一个加密密钥,然第五步:会话双方分别产生一个加密密钥,然 后他们再根据这些密钥导出会话主密钥。握手后他们再根据这些密钥导出会话主密钥。握手 协议改变状态至

45、连接状态。所有从应用层的来协议改变状态至连接状态。所有从应用层的来 的数据传输作为特定信息传输给对方。的数据传输作为特定信息传输给对方。 54 SSLSSL允许客户和服务器重用会话密钥开始下一次允许客户和服务器重用会话密钥开始下一次 的连接。的连接。 55 7.3.6 7.3.6 TLSTLS协议协议 传输层安全TLS(Transport Layer Security)协 议是IETF正在定义一种新的协议。它建立在 Netscape所提出的SSL3.0协议规范基础上。 两个互相不知其代码的应用程序可用TLS来安全 地通信。 56 .7 SSL协议应用协议应用 一个使用一个使用W

46、EBWEB客户机和服务器的范例客户机和服务器的范例 WEB WEB客户机通过连接到一个支持客户机通过连接到一个支持SSLSSL的服务器,的服务器, 启动一次启动一次SSLSSL会话。支持会话。支持SSLSSL的典型的典型WEBWEB服务器在一服务器在一 个与标准个与标准HTTPHTTP请求(请求(默认为端口默认为端口8080)不同的端口)不同的端口 (默认为默认为443443)上接受)上接受SSLSSL连接请求。当客户机连连接请求。当客户机连 接到这个端口上时,它将启动一次建立接到这个端口上时,它将启动一次建立SSLSSL会话的会话的 握手。当握手。当握手握手完成之后,通信内容被完成之后,通信

47、内容被加密加密,并且,并且 执行执行消息完整性检查消息完整性检查,直到,直到SSLSSL会话过期。会话过期。SSLSSL创创 建一个会话,在此期间,握手必须只发生过一次。建一个会话,在此期间,握手必须只发生过一次。 57 步骤步骤1 1:SSLSSL客户机连接到客户机连接到SSLSSL服务器,并要求服服务器,并要求服 务器证明它自身的身份。务器证明它自身的身份。 步骤步骤2 2:服务器通过发送它的数字证书证明其身:服务器通过发送它的数字证书证明其身 份。这个交换还可以包括整个证书链,直到某个份。这个交换还可以包括整个证书链,直到某个 根证书权威机构根证书权威机构( (CA)CA)。通过检查有效

48、日期并确认通过检查有效日期并确认 证书包含有可信任证书包含有可信任CACA的数字签名,来验证证书。的数字签名,来验证证书。 步骤步骤3 3:服务器发出一个请求,对客户端的证书:服务器发出一个请求,对客户端的证书 进行验证。但是,因为缺乏公钥体系结构,当今进行验证。但是,因为缺乏公钥体系结构,当今 的大多数服务器不进行客户端认证。的大多数服务器不进行客户端认证。 58 步骤步骤4 4:双方协商用于加密的消息加密算法和用:双方协商用于加密的消息加密算法和用 于完整性检查的哈希函数。通常由客户机提供它于完整性检查的哈希函数。通常由客户机提供它 支持的所有算法列表,然后由服务器选择最强健支持的所有算法

49、列表,然后由服务器选择最强健 的加密算法。的加密算法。 步骤步骤5 5:客户机和服务器生成会话密钥(例如基:客户机和服务器生成会话密钥(例如基 于于Diffie-HellmanDiffie-Hellman密钥交换算法的实现)。密钥交换算法的实现)。 59 SSLSSL协议的优点协议的优点 机密性机密性 即连接是私有的。在初始握手阶段,双方建立对 称密钥后,信息即用该密钥加密。 完整性完整性 在信息中嵌入信息鉴别码(MAC)来保证信息的完 整性。其中使用了安全哈希函数(例如SHA和MD5) 来进行MAC计算。 鉴别鉴别 在握手阶段,客户鉴别服务器用基于公钥的证书。 60 SSLSSL协议的不足协

50、议的不足 SSLSSL要求对每个数据进行加密和解密操作,因而在要求对每个数据进行加密和解密操作,因而在 带来高性能的同时,对系统也要求高资源开销。带来高性能的同时,对系统也要求高资源开销。 SSLSSL协议主要是使用公开密钥体制和协议主要是使用公开密钥体制和X.509X.509数字证书数字证书 技术保护信息传输的机密性和完整性,常用技术保护信息传输的机密性和完整性,常用Web Web ServerServer方式。方式。 SSLSSL为带有安全功能的为带有安全功能的TCP/IPTCP/IP套接字应用程序接口套接字应用程序接口 提供了一个替代的方法,理论上,在提供了一个替代的方法,理论上,在SS

51、LSSL之上可以之上可以 安全方式运行任何原有安全方式运行任何原有TCP/IPTCP/IP应用程序而不需修改,应用程序而不需修改, 但实际上,但实际上,SSLSSL目前还只是用在目前还只是用在HTTPHTTP连接上。连接上。 61 7.4 IPSec协议协议 由于最初设计由于最初设计IPv4IPv4协议时没有过多地考虑安全性,缺协议时没有过多地考虑安全性,缺 乏对通信双方真实身份的验证能力,缺乏对网上传输的乏对通信双方真实身份的验证能力,缺乏对网上传输的 数据的完整性和机密性保护。数据的完整性和机密性保护。 并且由于并且由于IPIP地址可软件配置等灵活性以及基于源地址可软件配置等灵活性以及基于

52、源IPIP地地 址缺乏认证机制,使址缺乏认证机制,使IPIP层存在着网络业务流易被监听和层存在着网络业务流易被监听和 捕获、捕获、IPIP地址欺骗、信息泄露和数据项被篡改等多种攻地址欺骗、信息泄露和数据项被篡改等多种攻 击,而击,而IPIP是很难抵抗这些攻击的。是很难抵抗这些攻击的。 62 为了实现安全为了实现安全IPIP,因特网工程任务组因特网工程任务组 IETFIETF于于19941994年开始了一项年开始了一项IPIP安全工程,专安全工程,专 门成立了门成立了IPIP安全协议工作组安全协议工作组IPSECIPSEC,来制定来制定 和推动一套称为和推动一套称为IPSecIPSec的的IPI

53、P安全协议标准。安全协议标准。 63 IPSecIPSec协议组文档协议组文档 RFC 2401RFC 2401: 安全体系结构概述安全体系结构概述 RFC 2402RFC 2402:网络认证协议:网络认证协议 Authentication Authentication HeaderHeader(AHAH) RFC 2406RFC 2406:封装安全载荷协议:封装安全载荷协议Encapsulating Encapsulating Security PayloadSecurity Payload(ESPESP) RFC 2409RFC 2409: InternetInternet密钥交换协议密钥

54、交换协议Internet Key Internet Key Exchange Exchange (IKEIKE) 64 IPSecIPSec提供了两种安全机制,提供了两种安全机制,认证和加密认证和加密。 认证认证机制使接收方可以确认发送方的身份以机制使接收方可以确认发送方的身份以 及数据在传输过程中是否遭篡改。及数据在传输过程中是否遭篡改。 加密加密机制则保证数据的机密性。机制则保证数据的机密性。 通过通过AHAH和和ESPESP来支持数据的认证、完整性和来支持数据的认证、完整性和 机密性。再通过机密性。再通过密钥交换协议密钥交换协议IKEIKE形成完整形成完整 的的IPIP层安全体系结构,保

55、护基于层安全体系结构,保护基于IPIP的应用和的应用和 服务。服务。 65 IPSecIPSec既适用于既适用于IPv4IPv4又适用于又适用于IPv6IPv6, 对对IPv4IPv4 它是可选的,它是可选的,IPv6IPv6必须支持它。必须支持它。 IPSecIPSec不是一个单独的协议,而是一组安全不是一个单独的协议,而是一组安全 协议集。协议集。 66 7.4.1 IPSec7.4.1 IPSec安全体系结构安全体系结构 图7.8 IPSec安全体系结构 IPSec体系结构 ESP协议AH协议 加密算法 DOI 密钥管理 认证算法 67 ESPESP协议规定了为通信提供协议规定了为通信提

56、供机密性和完整性机密性和完整性保护的具体方案,保护的具体方案, 包括包括ESPESP首部的格式、各字段的语义、取值以及对进入分组首部的格式、各字段的语义、取值以及对进入分组 和外出分组的处理过程等。和外出分组的处理过程等。 DOIDOIInterpretation of DomainInterpretation of Domain,解释域解释域规定了每个算规定了每个算 法的法的参数要求和计算规则参数要求和计算规则,如算法的密钥长度要求、算法,如算法的密钥长度要求、算法 安全强度要求以及初始向量的计算规则等。通信的双方必安全强度要求以及初始向量的计算规则等。通信的双方必 须具有相同的须具有相同的

57、DOIDOI。 为了保证双方在实现为了保证双方在实现IPSecIPSec的的互通性互通性, ESPESP协议还规定了双协议还规定了双 方必须方必须默认支持默认支持的加密和认证算法。当需要在的加密和认证算法。当需要在IPSecIPSec中加入中加入 新的算法,可以对新的算法,可以对DOIDOI进行扩展进行扩展以及在协商时修改某些以及在协商时修改某些ESPESP 字段的值。字段的值。 68 AHAH协议提供了认证的应用方法,规定了为通信提协议提供了认证的应用方法,规定了为通信提 供供数据源认证和完整性数据源认证和完整性保护的具体方案,包括保护的具体方案,包括AHAH 首部的格式、各字段的语义、取值

58、以及对进入分首部的格式、各字段的语义、取值以及对进入分 组和外出分组的处理过程等。组和外出分组的处理过程等。 为了保证双方在实现为了保证双方在实现IPSecIPSec的的互通性互通性, AHAH协议还协议还 规定了双方必须规定了双方必须默认支持默认支持的认证算法。当需要在的认证算法。当需要在 IPSecIPSec中加入新的算法,可以对中加入新的算法,可以对DOIDOI进行扩展进行扩展以及以及 在协商时修改某些在协商时修改某些AHAH字段的值。字段的值。 69 实际进行实际进行IPIP通信,可以根据需要同时使用通信,可以根据需要同时使用 ESPESP和和AHAH协议,也可以选择使用其中的一种。协

59、议,也可以选择使用其中的一种。 ESPESP和和AHAH都可以提供认证服务。但都可以提供认证服务。但AHAH提供的提供的 认证服务强于认证服务强于ESPESP。 IKEIKE协议是协议是IPSecIPSec目前唯一的正式确定的密钥目前唯一的正式确定的密钥 交换协议,为交换协议,为AHAH和和ESPESP提供密钥交换支持,提供密钥交换支持, 同时也支持其它机制,如密钥协商。同时也支持其它机制,如密钥协商。 70 安全关联(安全关联(Security Association,SA) 为了正确封装和提取为了正确封装和提取IPSecIPSec数据包,我们需要数据包,我们需要 把安全服务把安全服务/ /

60、密钥与需要保护的通信数据联系在一密钥与需要保护的通信数据联系在一 起,形成安全的通信连接,同时把远程通信实体起,形成安全的通信连接,同时把远程通信实体 与安全的与安全的IPSecIPSec通信连接关联在一起。通信连接关联在一起。 即要解决如何保护通信数据,保护什么样的即要解决如何保护通信数据,保护什么样的 通信数据,由谁来实施保护。这样构建的安全解通信数据,由谁来实施保护。这样构建的安全解 决方案称为决方案称为安全关联安全关联。 71 安全关联的定义安全关联的定义 安全关联是通信双方为了给需要保护安全关联是通信双方为了给需要保护 的数据流提供安全服务,而对某些要素形的数据流提供安全服务,而对某

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论