协议 - TLS和SSL
参考资料
概述
SSL(Secure Sockets Layer,安全套接层),及其继任者 TLS(Transport Layer Security,传输层安全性协议)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。是由网景公司(Netscape)研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听。
SSL协议
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。
协议分层
SSL协议可分为两层:
SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。SSL握手协议有三个子协议如图:
握手协议(Handshake protocol):用于会话建立。
改变密码规约协议(Change cipher spec protocol):用于通知安全参数的建立。
告警协议(Alert protocol):用于向对方发出告警信息。
提供服务
SSL协议提供的服务主要有:
- 认证用户和服务器,确保数据发送到正确的客户机和服务器;
- 加密数据以防止数据中途被窃取;
- 维护数据的完整性,确保数据在传输过程中不被改变。
工作流程
SSL协议的工作流程:
服务器认证阶段:
客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;
服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;
客户端根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;
服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。
用户认证阶段:
在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。
TLS协议
安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。
该协议由两成组成:TLS记录协议(TLS Record)和TLS握手协议(TLS Handshake)。较低的层为TLS记录协议,位于某个可靠的传输协议(例如TCP)上面。
TLS的主要目标是使SSL更安全,并使协议的规范更精确和完善。TLS在SSLv3.0的基础上,提供了以下增加内容:
- 更安全的MAC算法
- 更严密的警报
- “灰色区域”规范的更明确的定义
SSL/TLS协议应用
SSL/TLS协议主要解决的以下3个问题:
- 客户端对服务器端的认证
- 服务器端对客户端的认证
- 在客户端和服务器端建立安全的数据通道
抓包实践 ———— 以登陆163邮箱为例子
ipconfig确认本机的ip地址
无线局域网适配器 WLAN:
IPv4 地址 : 10.1.1.229
确认163的访问地址:
ping www.mail.163.com
正在 Ping hdweb.mail.split.netease.com [123.126.96.184] 具有 32 字节的数据
103.74.50.116 -> 北京市 网易云BGP数据中心
2
3
4
5
6
7
8
9
10
11
服务器认证阶段:(待加图描述)
客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;
服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;
客户端根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;
服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。
详细过程如下所示:
163邮件登录报文,确保浏览器开启了SSL、TLS功能
客户端 Client Hello 报文:
server hello报文:
服务器认证报文:
客户端认证报文: