SSL/TLS时间轴

  1. SSL 即安全套接层(Secure Sockets Layer),在 OSI 模型中处于第 5 层(会话层),由网景公司于 1994 年发明,有 v2 和 v3 两个版本,而 v1 因为有严重的缺陷从未公开过。
  2. SSL 发展到 v3 时已经证明了它自身是一个非常好的安全通信协议,于是互联网工程组 IETF 在 1999 年把它改名为 TLS(传输层安全,Transport Layer Security),正式标准化,版本号从 1.0 重新算起,所以 TLS 1.0 实际上就是 SSL v3.1。(TLS 1.0 在安全性方面的细微改进仍然足够显著,以至于SSL v3.0 和 TLS v1.0 不能互操作,所以称为 SSL v3.1)
  3. 到今天 TLS 已经发展出了三个版本,分别是 2006 年的 1.1、2008 年的 1.2 和 2018 的 1.3,每个新版本都紧跟密码学的发展和互联网的现状,持续强化安全和性能,已经成为了信息安全领域中的权威标准。

目前应用的最广泛的 TLS 是 1.2,而之前的协议(TLS1.1/1.0、SSLv3/v2)都已经被认为是不安全的,各大浏览器即将在 2020 年左右停止支持,所以主流都是 TLS1.2 及之后的版本。

TLS 由记录协议、握手协议、警告协议、变更密码规范协议、扩展协议等几个子协议组成,综合使用了对称加密、非对称加密、身份认证等许多密码学前沿技术。浏览器和服务器在使用 TLS 建立连接时需要选择一组恰当的加密算法来实现安全通信,这些算法的组合被称为“密码套件”(cipher suite,也叫加密套件)。

SSL 1.0版本 -> SSL 2.0版本 -> SSL 3.0版本 -> TLS 1.0版本 -> TLS 1.1版本 -> TLS 1.2版本 -> TLS 1.3版本

认证过程

引用自:https://www.zhihu.com/question/486999259/answer/2375951105

引用自:https://www.zhihu.com/question/486999259/answer/2375951105

SSL/TLS 协议

Untitled

Record协议

最底层的 Record 协议负责对上层子协议的封装,提供安全通信的能力:

  1. 私密连接。使用对称加密算法(比如 AES、RC4 等)来加密数据,而且在每次连接中,通信双方协商出来的加密密钥都是不同的,以此达到更好的安全性。另外,Record 协议也可以提供不加密的封装,比如在握手阶段的 Hello 报文。
  2. 可靠连接。使用 MAC(Message Authentication Code,消息验证码,TLS 目前使用的 HMAC 也属于 MAC 的一种)为数据提供完整性校验。同样,在握手阶段也可以不使用该功能。

Handshake 协议

上层的 Handshake 协议用在握手阶段,为通信双方提供身份认证、加密算法和密钥协商的能力: