安全协议ppt 第4章 传输层安全SSL和TLS

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SSL/TCL设计目标

协议的设计目标


为两个通讯个体之间提供机密性、完整性,服务器认证以及 可选的客户端认证(比较:IPSec的认证是双向的)。 互操作性、可扩展性、相对效率
4.2 SSLv3 协议流程

SSL使用过程


使用SSL保护的高层报文需要封装在SSL报文中投 递 所有SSL报文最终封装在传输层报文中投递
4.2.3 Finished消息

Finished消息的功能



包含了之前所有握手消息的MAC,这样可防止通过 修改握手消息实现的降级攻击。 降级攻击:攻击者修改发送的消息,降低使用算法 的安全级别。 如:攻击者截获发送的ClientHello消息,以较弱的 算法代替后再发送出去,从而降低了协议的安全性。 Finished消息可发现消息被修改。
客户端
ClientHello
算法、随机数(用于防止密钥推 导和重放攻击) 算法,随机数,会话ID ServerHello 证书 Certificate CertificateReques t ServerHelloDone
服务器端
P116 图4.5 使用客户端认证的 SSL
对各种算法达成一致
Certifiate ClientKeyExange 计算密钥 CertificateVerify [ChangeCipherSpec] Finished* [ChangeCipherSpec] Finished* Application Data* Application Data* Close notify* 以可认证的方式通告服务器断开连接 Close notify* 交互应用数据 通告对方用协商好的参与 进行处理 包含了之前所有握手消息 的验证码 计算密钥 使用双方发送的随机数和 预主密钥计算4个密钥

服务器端身份认证原理:


服务器拥有证书公钥对应的私钥才能正确解密预主 密钥 才能计算正确的密钥 才能生成正确的Finish*消息。
4.2.4 警告协议

警告协议的功能

报告差错,分为警告(warning)级和致命(fatal)级 应用数据传输完后,通知对方断开连接,断连消息 为Close_notify,使用了消息验证码认证发送端的 身份。
变长向量:T T’<floor.. ceiling>

枚举:enum{e1(v1),e2(v2),..,en(vn)[[,(n)]]} Te; 结构:struct{T1 f1; T2 f2;…; Tn fn;} [[T]]; 变体:根据实际选择符不同可以选择不同的数据 常量:赋值即给一个变量赋予常量值。
通告对方用协商好的参与 进行处理
交互应用数据
以可认证的方式通告服务器断开连接 Close notify*
4.3 密钥导出

预主密钥不直接用于保护数据,而是生成4个 用于数据保护的会话密钥:


服务器写加密密钥(Esc)、服务器写MAC密钥(Msc): 分别用于服务器发出数据的加密和消息验证码计算。 客户端写加密密钥(Ecs)、客户端写MAC密钥(Mcs): 分别用于客户端发出数据的加密和消息验证码计算。
Finished* 交互应用数据 Application Data* Application Data*
Close notify*
以可认证的方式通告服务器断开连接 Close notify*
4.2.5.2 客户端认证
客户端认证:服务器认证客户端,和一般流程不同的是增加了以下流 程,在图中用红色框表示: 服务器发送CertificateRequest消息,以通告客户端需验证其身份。 客户端响应:

基于RSA的密钥传输 基于D-H的密钥协商
4.2 SSLv3 协议流程

警告协议功能

报错机制 安全断连机制,即可认证的方式关闭连接,防止截 断攻击。 是SSL v3的数据承载协议,规定了SSL v3的报文 格式,以及对报文的处理过程。 握手报文和应用数据都要封装成“记录”的形式投 递。
Application Data*
Close notify*
以可认证的方式通告服务器断 开连接
Close notify*
4.2.2 更改密码规范协议


ChangeCipherSpec消息属于更改密码规范协议,功能 互相通告将启用新的密码规范 协调客户端和服务器的状态,使得双方实现同步。 连接:通信双方的一次通信过程,由一组参数描述。 会话:利用握手协议获取的一系列安全参数,包括算法、预主密 钥等。 一个会话可有多个连接共享,每个会话都有唯一的标识。(对应于 LT2P的隧道和会话) 会话的状态: 当前操作状态:表示正在使用的密码参数,分为读状态(接受)和 写状态(发送) 挂起状态:表示将要使用的密码参数,分为读状态和写状态 每个状态用一组密码参数表示,SSL握手协议作用之一为协调通信 双方的状态同步。
P114 图4.4 SSL会话恢复流程
客户端 ClientHello
会话ID、随机数 会话ID、随机数
服务器
ServerHello 使用双方发送的随机数和预 主密钥计算4个密钥 通告对方用协商好的参与进 行处理 包含了之前所有握手消息的 验证码
计算密钥 计算密钥 [ChangeCipherSpec] Finished* [ChangeCipherSpec]
第4章 传输层安全SSL和 TLS
杨礼珍
作业

课本p.147 思考题2、6、7、8
4.1 引言
SSL(安全套接层,Secure Socket Layer)和TSL(传 输层安全,Transport Layer Security)为传输层提供 安全性。 在传输层部署安全性的优点 IP层安全是点对点的,传输层是端对端的(网络通信 中的点到点和端到端概念示意请看P.20 图1.11) 传输层提高了可靠性,使得高层服务不必关注可靠性 问题。 应用层协议直接构建于传输层之上,在传输层上构架 安全协议,可以把高层应用从安全性中解放出来。
使用双方发送的随机 数和预主密钥计算4个 密钥 通告对方用协商好的 参数进行处理 包含了之前所有握手 消息的验证码
[ChangeCipherSpec] Finished*
*:表示用协商好 的密钥做了安全处 理
Application Data*
[ChangeCipherSpec] Finished*
交互应用数据


3.0,1996年发布,增加了一些算法,修改了一些缺陷 TLS 1.0(Transport Layer Security, 也被称为SSL 3.1), 1997年IETF发布了Draft,同时,Microsoft宣布放弃PCT, 与Netscape一起支持TLS 1.0 1999年,发布RFC 2246(The TLS Protocol v1.0)

客户端发送Certificate消息,将自己的证书发送给服务器。 客户端发送CertificateVerify消息,其中包含了客户端利用与证书对应 的私钥对之前的握手消息所作的签名。

客户端认证和服务端认证的不同 服务器验证客户端发送的CertificateVerify消息来验证其身份。使 用证书+签名。客服端拥有正确的私钥才能生成合法的签名。 客户端通过验证服务器发送的Finished消息验证其身份。使用证 书+公钥加密+消息认证码。服务器只有拥有正确的私钥才能正确 解密客户端发送的预主密钥,才可生成正确的会话密钥,才能用正 确的会话密钥生成Finished消息。
4.2.5 其它应用

SSL支持多种使用方式 例:



会话恢复:使用已有的会话保护某个连接,不必再 重新协商新的会话状态参数。 会话状态参数:会话ID、通信对等端证书、压缩算 法、加密算法、哈希算法、预主密钥、可恢复标记 连接状态参数:客户端和服务器端的随机数、服务 器MAC密钥和加密密钥、客户端MAC和加密密钥、 初始化向量IV以及序号
4.4 SSL v3 记录



记录层是SSL的数据承载层,记录是它的数据传输单位。 握手、警告、更改密码规范和高层协议数据都要封装到SSL记录 中投递。 SSL标准以规范语言描述记录格式及处理过程。 杂项:/*… */表示注释 数字:unit8,unit16,unit24,unit32,unit64 向量:元素序列,定长向量:T T’[n],
服务器
SYN+ACK ACK
三次握手协议建 立TCP连接
SSL协议过程
FIN ACK FIN
断开TCP连接
ACK
客户端
算法、随机数(用于密钥推导和 重放攻击) ClientHello 算法,随机数,会话ID
服务器端
图:SSL协议过程
ServerHello
对各种算法达成一致
证书 Certificate ServerHelloDone 用服务器公钥加密的预主密钥 ClientKeyExchange 计算密钥 计算密钥
ClientKeyExchange 计算密钥
ServerHelloDone
计算密钥
使用双方发送的随机数和 密钥素材计算预主密钥
[ChangeCipherSpec] Finished* [ChangeCipherSpec] Finished* Application Data* Application Data* Close notify*
SSL/TCL发展历史

1994年Netscape开发了SSL(Secure Socket Layer)协 议,专门用于保护Web通讯 版本和历史(各版本谱系图见P.108 图4.1)

1.0,不成熟 2.0,基本上解决了Web通讯的安全问题

Microsoft公司发布了PCT(Private Communication Technology), 并在IE中支持
4.2.5.3 其它应用方式

SSL的预主密钥生成方式


密钥传输,RSA同时作为签名和加密算法。如普通 握手流程、客服端认证。客户端选择预主密钥,使 用服务器的公钥加密后发送给服务器。 密钥协商方式生成共享密钥。


D-H(见p.117 图4.6):双方提供密钥素材来生成共享密 钥。图中红方框部分是有别于典型流程的地方。 FORTEZZA
4.3 密钥导出
密钥导出图示见P.118 图4.7,各参数的计算公 式见p.118-p.119,计算过程步骤如下: 1. 由预主密钥、客户端随机数和服务器端随机 数共同生成主密钥。 2. 由主密钥、客户端随机数和服务器端随机数 共同生成密钥分组。 3. 把密钥分组分成6块,按照所需的密钥长度 依次截取得到Mcs、Msc、Ecs、Esc、IVcs (客户端初始向量)、和IVsc(服务器初始 向量)。
客户端
ClientHello
算法、随机数(用于防止密钥推 导和重放攻击) 算法,随机数,会话ID
服务器端
p.117 图4.6 用D-H 交换生成预共享密钥 的SSL流程
对各种算法达成一致
ServerHello 证书 Certificate ServerKeyExchange
密钥素材
用服务器公钥加密的密 钥素材

记录协议的功能


4.2.1 基本协议流程

1. 2.
1. 2. 3. 4.
典型的SSL v3通信过程(见p.110 图4.3)
三次握手建立TCP连接 SSL协议过程
算法、密钥协商 由共享密钥和随机数计算4个密钥 用协商好的安全参数交互应用数据 以可认证的方式断开连接
3.
断开TCP连接
客户端 SYN
4.4 SSL v3 记录
变体格式: struct{ T1 f1; T2 f2; … Tn fn; Select(E){ case e1: Te1; case e2: Te2; … case en:Ten; }[[fv]] }[[Tv]];

协议分为两层


底层:记录协议,是数据承载层,数据传输单位是 记录,高层协议封装在SSL记录中进行投递。 上层:握手协议、更改密钥规范协议、警告协议
4.2 SSLv3 协议流程
SSLv3协议关系图,中文版见p.109 图4.2
4Fra Baidu bibliotek2 SSLv3 协议流程

握手协议功能


必选的服务器认证 可选的客户端认证 算法协商,包括压缩算法、加密算法和消息验证码 算法 密钥生成,即生成客户端与服务器共享的会话密钥。 使用4个密钥用于加密和认证,4个密钥由共享密钥 生成。共享密钥的生成方式:
相关文档
最新文档