HTTPS协议分析解析
介绍了SSL协议的历史和体系结构 介绍了SSL的记录协议的结构,封装和解封装流程
介绍了SSL握手流程
谢谢
SSL 协议是一个分层的协议,共有两层组成。 高层协议包括 : SSL 握手协议(SSL HandshakeProtocol) 、
改变加密约定协议(Change Cipher Spec Protocol) 、
报警协议(AlertProtocol)
处于 SSL 协议的底层的是:
SSL记录层协议(SSL Record Protocol)
SSL协议介绍
SSL协议的功能
1)保证传输数据的保密性
2)保证传输数据的完整性 3)实现通信双方的互相身份认证
SSL协议介绍
SSL协议在协议栈的位置
HTTP、TELNET、FTP等应用层协议
应用数据
告警
握手
ChangeCipherSpec
SSL记录协议 TCP协议
IP协议
SSL协议介绍
[Change Cipher Spec] Server finished Message
Application Data
Application Data
下一页
SSL握手协议
加密套件列表: 列表中包含了Client端支持的所有密钥套件。 一个密钥套件定义了一个密钥规格,其中描述如下 内容: 密钥交换算法(非对称加密算法), 是否出口 对称加密算法 支持的最高对称密钥位数 MAC (Message Authentication Code)算法 (或摘要算法)。
◆
◆
目录
目录
HTTPS简介
SSL协议介绍 SSL记录协议
SSL握手协议
HTTPS简介
HTTPS (全称:Hypertext Transfer Protocol over Secure Socket Layer) 是HTTP的安全版 HTTPS默认使用TCP端口443,也可以指定其他的TCP 端口。 URI格式 https//:URL 一个URI例子: https:///
Server Hello Server Certificate* Client Certificate Requst* Server Hello done
*Client Certificate
Client Key Exchang *Certificate verify [Change Cipher Spec] Client finished Message
类型:有握手协议、报警协议、改变加密约定协议、应用数据等四种 加密数据
可分解为
数据
HMAC
填充*
填充长度*
注:HMAC: Keyed-Hash Message Authentication Code(消息验证码)
SSL记录协议
MAC(Message Authentication Code)消息验证码 消息验证码也称为消息摘要,是实现数据完整性的主要手 段。 主要目的是认证消息、检验数据是否被篡改。 目前常用的消息摘要算法有MD5(Message-Digest Algorithm 5 ) 和SHA(Secure Hash Algorithm )。 SSL中的摘要算法是:HMAC 即 Keyed-Hash Message Authentication Code。 HMAC 是在使用消息摘要函数(例如 MD5 等)的同时, 增加了一个“密钥”作为输入。
2、根据长度读入记 录“数据”部分 *4、检查并去掉MAC
类型
版本
长度
数据
HMAC*
填充*
填充长度*
3、去掉“填充长度”和 1、读取”记录头信息” “填充“字段 中的”版本”
5、如果协商了压缩算 法则解压“数据”
SSL握手协最重要同时也是最复杂的协议。
SSL 握手协议主要负责如下工作: 算法协商
Client Re-negotiation Handshake : 已经建立SSL连接,但client端 为了某些原因要求重新协商,只需执行部分握手流程。
全流程握手(Full Handshake)
Client hello
携带客户的SSL版本号,加密套件列表,压缩算法列表,客户端随机数, sessionid = 0;传送给服务器 服务器选择版本,确定要用的加密套件、压缩算法,计算sessionid,以及随 机数发给客户端 服务器将自己的证书发送给客户端 服务端向客户端索要证书 服务端通知客户端握手消息发送完成
客户端向服务器端发送自己的证书 客户端密钥交换(产生预主密钥(preMasterKey)) 客户端证书验证,让服务器验证发消息的客户端和客户端证书的真实所 有者 改变加密约定消息,通知服务端,之后的消息开始启用加密参数 客户端的 SSL 协商成功结束,发送握手验证报文确保消息的完整性 改变加密约定消息,通知客户端,之后的消息开始启用加密参数 服务器端的 SSL 协商成功结束,发送握手验证报文确保消息的完整性 应用数据传送
SSL记录协议
SSL记录协议封装过程
*2、如果协商了压缩 算法则压缩“数据” *4、计算“填充长度”,填 写“填充字段”并“加密”
类型
版本
长度
数据
HMAC*
填充*
填充长度*
1、填写”记录头信息” 3、计算并附加MAC 中的”版本”和”类型”
5、填写记录头信息中 的“长度”
SSL记录协议
SSL记录协议解封装过程
例:SSL_RSA_WITH_RC4_128_MD5 = 0x0004 /* 非对称加密算法或 密钥交换算法为RSA,采用高强度128位对称加密算法RC4,摘要或 MAC算法为MD5,不支持出口 */
SSL握手协议
非对称加密算法和对称加密算法
明文:ABCDEF 密钥A + 明文:ABCDEF
密钥A +
身份验证
确定密钥
SSL握手协议
SSL握手过程分为四种:
Full Handshake : 全流程握手,C/S双方从无到有建立SSL连接;
Resum session Handshake : C/S双方曾经建立过连接,但中途断了, SSL会话信息还有保留,只需要执行部分握手流程就可建立SSL连接; Server Re-negotiation Handshake : 已经建立了SSL连接,但server 端为了某些原因(比如安全性)要求重新对密钥进行协商,也只需要执 行部分握手流程;
HTTPS简介
2012-02-10
第一节 HTTPS简介
引入:
◆
随着网络通信和电子商务等服务和资源进入人们的日常生 活,人们在享受网络带来的各种便利的同时,面临各种各 样的安全隐患。 我们经常接触到的就有邮箱登录,网上购物,电子银行等 等。这很多是基于 HTTP 协议的。 但HTTP[RFC2616]最初是在INTERNET上不用密码的应用。 因此随着人们对安全性的要求增加。HTTPS协议,为我们 提供了面向通道的安全性。
SSL协议介绍
HTTPS中S,实际上是SSL(Secure Sockets Layer)协议。 SSL是Netscape公司发明的一种用于WEB的安全传输协议。 随着时间的推移由于Netscape失去了市场份额,它将SSL 的维护工作移交给因特网工程任务组(IETF)。第一个后 Netscape版本被重新命名为安全传输层协议(TLS), TLS (Transport Layer Security :RFC 2246)是基于SSL上 研发的,但是与SSLv3.0有细微的差别。 因此,SSL协议有时也称为TLS协议。目前常用的是 TLSv1.0的协议。
SSL记录协议
SSL的记录协议
记录层协议实际上是一个简单的封装或者说是“打包”协 议。记录可能是明文传送的,也可能是被加密传送的, 纪录协议的功能
保证消息的完整性 机密性
SSL记录协议
SSL记录的结构示意图:
类型 1字节 版本 2字节 长度 2字节 明文数据/加密数据 (长度)字节
加密 运算
密文:******** 发送报文 接受报文 密文:******** 解密 运算 明文:ABCDEF 图 非对称加密 + 密钥B
加密 运算
密文:******** 发送报文 接受报文 密文:******** 解密 运算 明文:ABCDEF 图 对称加密 + 密钥A
总结
总结:
介绍了HTTPS协议