参考 Reference
HTTPS、SSL、TLS三者之间的联系和区别
Welcome to OpenSSL
OpenSSL is a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols.
Transport Layer, 传输层,传输层协议是 TCP, UDP。
SSL Secure Socket Layer
SSL (Secure Socket Layer 安全套接层) 是基于 HTTPS 下的一个协议加密层,最初由网景公司(Netscape)研发,后被 IETF(The Internet Engineering Task Force 互联网工程任务组)标准化后写入(RFC Request For Comments 请求注释),RFC 里包含了很多互联网技术的规范。
起初是因为 HTTP 在传输数据时使用的是明文,是不安全的,为了解决这一隐患网景公司推出了 SSL 安全套接字协议层。SSL 是基于 HTTP 之下,TCP 之上的一个协议层,是基于 HTTP 标准的 TCP 传输数据时进行加密,所以 HTTPS 是 HTTP + SSL / TCP 的简称。
SSL 是一项标准技术,可确保互联网连接安全,保护两个系统之间发送的任何敏感数据,防止 Hacker 读取和修改任何传输信息,包括个人资料。
TLS Transport Layer Security
由于 HTTPS 的推出收到了很多人的欢迎,在 SSL 更新到 3.0 是, IETF 对 SSL 3.0 进行了标准化,并添加了少数机制(几乎无差异),并更名为 TLS 1.0 (Transport Layer Security),可以说 TLS 就是 SSL 的新版本 3.1。(并同时发布“RFC2246-TLS加密协议详解”)
TLS 是更为安全的升级版 SSL。由于 SSL 这一术语更为常用,因此我们仍然将我们的安全证书称为 SSL。
异同
TLS / SSL 是一种加密通道的规范。
它利用对称加密,公私密钥不对称加密及其密钥交换算法,和 CA 系统进行加密且可信任的信息传输。
- SSL 有从前的网景公司开发,有 1, 2, 3 三个版本,现在只使用版本 3。
- TLS 是 SSL 的标准化后的产物,从 1.0 版本开始,现在(2021 年)默认使用 1.3。
事实上我们现在用的都是 TLS,但因为历史上习惯了 SSL 这个称呼,平时还是以 SSL 为多。
小结
- SSL 和 TLS 是为网络通信提供安全及数据完成性的一种安全协议。TLS 和 SSL 在传输层对网络连接进行加密。
- SSL 协议位于 TPC 协议与各种应用层协议之间,为数据通信提供安全支持。SSL 协议可分为两层
- SSL 记录协议(SSL Record Protocol)。它建立在可靠的传输协议(TCP)之上,为高层协议提供数据封装,压缩,加密等基本功能的支持。
- SSL 握手协议(SSL HandShake Protocol)。它建立在 SSL 记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证,协商加密算法,交换加密密钥等。
- TLS 用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS 记录协议(TLS Record),TLS 握手协议(TLS Handshake)。
- TLS 最大优势在于:TLS 独立于应用层协议。高层协议可以透明地分布在 TLS 协议上面。然而,TLS 标准并没有规定应用程序如何在 TLS 增加安全性;它把如何启动 TLS 握手协议,以及如何解释交换的认证证书的决定权留给协议的设计者和实施者来判断。
HTTPS 就是 HTTP over TLS / SSL,它默认使用端口 443,而不是像 HTTP 使用端口 80 来和 TCP / IP 进行通信。HTTPS 协议使用 TLS / SSL 在发送方把原始数据进行加密,然后在接收方进行解密,加密和解密需要双发通过交换密钥来实现。
这个过程较 HTTP 更加消耗资源和时间。在建立连接的阶段,HTTPS 比 HTTP 要长 3 倍的时间,具体数字取决于 CPU 的快慢和网络状况。还有加密和解密阶段的耗时。
所以一般只对需要的数据进行 HTTPS 传输,普通数据不需要那么高的安全级别。
拓展
- POODLE 漏洞影响 TLS 1.2 版本
- TLS 1.3
网友评论