一、前言
1.1、SSL/TLS定义:
SSL(安全套接字层)是一种标准安全协议,用于在在线通信中建立Web服务器和浏览器之间的加密链接。
TLS:(Transport Layer Security): 是SSL协议(Secure Sockets Layer)的升级版,TLS 1.0通常被标示为SSL 3.1,TLS 1.1为SSL 3.2,TLS 1.2为SSL 3.3。现在习惯将这个两个组合在一起称为SSL/TLS,它是一种用于加密的安全协议就好了。
1.2、发展史:
- 1995: SSL 2.0. 由 Netscape 提出,这个版本由于设计缺陷,并不安全,很快被发现有严重漏洞,已经废弃。
- 1996: SSL 3.0. 写成 RFC,开始流行。目前(2015年)已经不安全,必须禁用。
- 1999: TLS 1.0. 互联网标准化组织 ISOC 接替 NetScape 公司,发布了 SSL 的升级版 TLS 1.0 版。
- 2006: TLS 1.1. 作为 RFC 4346 发布。主要 fix 了 CBC 模式相关的如 BEAST 攻击等漏洞。
- 2008: TLS 1.2. 作为 RFC 5246 发布。增进安全性。目前(2015 年)应该主要部署的版本,请确保你使用的是这个版本。
- 2018:8月10日 RFC8446 TLS 1.3 协议正式发布,它剔除了 TLS 1.2 协议中不安全的因素,极大地增强了协议的安全性和性能。
在本文中,我们仅讨论 TLS 1.2。 如果您了解 TLS 1.2 握手过程,那么 TLS 1.3 会很简单,因为它是一个简短的版本。
The main purpose of TLS handshake are
- Negotiates Cipher suites and TLS version
- Authenticating both server and client
- Exchange keys
二、摘要
握手过程涉及客户端和服务器之间交换的许多消息。 它们可以分为 4 个主要步骤。
- Client Hello
- Server Hello
- Client Key Exchange and Change Cipher Spec
- Server Change Cipher Spec
ref:
https://levelup.gitconnected.com/deep-dive-into-tls-handshake-e029e28e2eb3
TLS/SSL 协议 - ClientHello - SXISZERO - 博客园
http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html
TCP/IP系列(4)-SSL/TLS详解(1) - 西木 | Blog
TCP/IP系列(4)-SSL/TSL详解(2) - 西木 | Blog
TCP/IP系列(4)-SSL/TSL详解(3) - 西木 | Blog
|