1. 简介
SSL 是网景(Netscape)公司设计的主要用于 Web 的安全传输协议,后来致力于互联网标准开发与推动的组织(IETF)认为在 SSL3.0 的基础上将该协议进行升级并标准化(RFC 2246),并命名为 TLS(Transport Layer Security)。
1.1 SSL 协议提供的服务
- 认证用户和服务器,确保数据发送到正确的客户机和服务器;
- 加密数据以防止数据中途被窃取;
- 维护数据的完整性,确保数据在传输过程中不被改变。
1.2 SSL 协议结构
握手协议(SSL Handshake Protocol):它建立在 SSL 记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。内部包括SSL握手协议(SSL HandShake Protocol)、SSL密码参数修改协议(SSL Change Cipher Spec Protocol)和SSL告警协议(SSL Alert Protocol)。
记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
2. 发展历史
3. 现状
目前大家依然比较习惯用 SSL 称呼,但是 SSL 系列的所有版本都已经弃用了。TLS 可以认为是 SSL 的后续版本,低版本的 TLS 有存在较为明显的漏洞,所以并不是选择了 Https 就是决定安全的,建议至少选择 TLS 1.2 以上版本。
近年来各个大厂都不留余力的推动 Https ,腾讯小程序更是要求全站启用 Https 。在选择了 Https 的情况下我们要明白一点,Https 与 Http 相比,需要更多的 CPU 资源去计算加密算法的。我们的架构在设计的时候我是比较建议网关对外部分用 Https 算法,站点内部的服务间通信用 Http 或 Rpc 协议。
4. 小结
TLS 是传输层与应用层之间的加密协议,对于应用层来说他是透明的,也就是不用关心他的具体实现,不管有没有 TLS 对应用层的软件来说都是一样的。多了这一层的话可能在浏览器侧察觉不到,我们在浏览器 F12 查看的接口出入参都还是铭文的,其实底层传输的过层已经是加密处理了。