一、TLS 是什么
TLS(Transport Layer Security,传输层安全协议),介于传输层TCP与应用层之间的安全协议。
前身是SSL(SSL3.0),由IETF标准化并升级为TLS;SSL 2.0/3.0全部被废弃,现代网络安全通信统一使用TLS。
作用:为上层应用协议(HTTP、SMTP、FTP、SSH之外的各类应用)提供加密、完整性校验、身份认证。
HTTPS = HTTP over TLS;FTPS、SMTPS也基于TLS。
二、TLS核心能力
- 加密:通信数据加密,中间人无法读取明文;
- 消息完整性:通过MAC/HMAC校验,报文一旦被篡改,接收方直接丢弃;
- 身份认证:依靠数字证书验证服务器身份(防钓鱼网站、中间人攻击);支持可选客户端证书双向认证。
TLS不解决:应用层本身的逻辑漏洞、服务器数据泄露、恶意网站内容。
三、TLS协议分层
TLS分为两层:TLS记录协议 + TLS握手协议(还有告警协议、改变密码规范协议)
- 记录协议(Record Layer)
对上层应用数据分片、压缩(可选)、添加HMAC、加密,封装成TLS记录报文,交给TCP传输。接收端反向解密校验,再交给上层应用。 - 握手协议(Handshake Layer)
通信双方协商TLS版本、加密套件、交换随机数、交换证书、协商会话密钥。握手成功后,才开始传输加密的业务数据。
四、TLS 1.2 完整握手流程(2-RTT)
- Client Hello
客户端发送:支持的TLS版本、加密套件列表、客户端随机数(Client Random)、扩展字段。 - Server Hello
服务器选定共同支持的TLS版本与加密套件,返回服务端随机数(Server Random),下发服务器数字证书。 - 证书校验
客户端验证证书:CA签名合法、域名匹配、证书未过期、不在吊销列表。校验失败直接中断连接,浏览器告警。 - 密钥交换
客户端生成Pre-Master Secret(预主密钥),使用服务器证书公钥加密发给服务器;服务器用自身私钥解密得到预主密钥。 - 生成会话密钥
客户端、服务器双方,使用 Client Random + Server Random + Pre-Master Secret,独立计算出相同的会话对称密钥。 - Change Cipher Spec
双方通知对方:后续报文全部使用新协商好的密钥加密。 - Finished
双方互相发送Finished报文,用新密钥加密校验握手全过程。Finished校验通过,握手成功,开始传输加密的应用层数据。
TLS1.3做了重大优化:握手简化为1-RTT,移除大量不安全加密套件,删除Change Cipher Spec报文;还支持0-RTT,可在第一次握手时直接携带业务数据。
五、加密机制(混合加密,重点)
- 非对称加密(RSA/ECDSA)
握手阶段使用,用于证书身份验证 + 协商会话密钥。运算慢,只在握手少量使用。 - 对称加密(AES-GCM等)
握手完成后,业务数据全部使用对称加密传输,速度快,适合大量数据。 - 哈希/HMAC:保证数据完整性,检测篡改。
六、TLS版本演进
| 版本 | 状态 | 说明 |
|---|---|---|
| TLS1.0 | 淘汰 | 存在安全缺陷,已禁用 |
| TLS1.1 | 淘汰 | 已禁用 |
| TLS1.2 | 广泛使用 | 成熟稳定,兼容性好 |
| TLS1.3 | 主流推荐 | 握手更快、更安全,减少RTT,删减弱算法 |
日常说的SSL证书,本质是TLS证书,只是历史叫法保留。
七、TLS与SSL的关系
- SSL:早期网景的安全协议,SSLv2、SSLv3全部存在高危漏洞,彻底废弃
- TLS:IETF基于SSLv3改进的标准化继任协议,现在所有HTTPS、FTPS都用TLS
一句话:SSL是老古董,TLS是现代版本
八、TLS 常见应用场景
- HTTPS(443端口,HTTP+TLS)
- FTPS(FTP over TLS,区别于SFTP)
- SMTPS、POP3S、IMAPS邮件加密
- 数据库加密连接、API接口加密、VPN、远程服务加密
九、TLS 优缺点
✅ 优点
- 独立于应用层,可给多种上层协议提供安全加密;
- 证书机制,验证服务器身份,抵御中间人劫持;
- 混合加密兼顾安全和传输性能;
- TLS1.3大幅降低握手延迟,提升性能。
❌ 缺点
- 握手会带来网络RTT开销;
- 证书管理有成本(申请、续期、吊销);
- 证书一旦被恶意安装根证书,会产生中间人劫持风险。
十、小结
- TLS位于TCP和应用层之间,前身是SSL,SSL已经废弃;
- 由记录层、握手层组成;握手协商版本、加密套件、会话密钥;
- 握手阶段用非对称加密,业务传输用对称加密;
- TLS提供加密、防篡改、服务器身份认证;TLS1.2广泛使用,TLS1.3更优;
- HTTPS本质就是HTTP跑在TLS之上。
思考题:TLS1.3相比TLS1.2,为什么握手RTT更少?
0 条笔记