自学教程 从零学编程

TLS 协议

一、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核心能力

  1. 加密:通信数据加密,中间人无法读取明文;
  2. 消息完整性:通过MAC/HMAC校验,报文一旦被篡改,接收方直接丢弃;
  3. 身份认证:依靠数字证书验证服务器身份(防钓鱼网站、中间人攻击);支持可选客户端证书双向认证。

TLS不解决:应用层本身的逻辑漏洞、服务器数据泄露、恶意网站内容。

三、TLS协议分层

TLS分为两层:TLS记录协议 + TLS握手协议(还有告警协议、改变密码规范协议)

  1. 记录协议(Record Layer)
    对上层应用数据分片、压缩(可选)、添加HMAC、加密,封装成TLS记录报文,交给TCP传输。接收端反向解密校验,再交给上层应用。
  2. 握手协议(Handshake Layer)
    通信双方协商TLS版本、加密套件、交换随机数、交换证书、协商会话密钥。握手成功后,才开始传输加密的业务数据。

四、TLS 1.2 完整握手流程(2-RTT)

  1. Client Hello
    客户端发送:支持的TLS版本、加密套件列表、客户端随机数(Client Random)、扩展字段。
  2. Server Hello
    服务器选定共同支持的TLS版本与加密套件,返回服务端随机数(Server Random),下发服务器数字证书。
  3. 证书校验
    客户端验证证书:CA签名合法、域名匹配、证书未过期、不在吊销列表。校验失败直接中断连接,浏览器告警。
  4. 密钥交换
    客户端生成Pre-Master Secret(预主密钥),使用服务器证书公钥加密发给服务器;服务器用自身私钥解密得到预主密钥。
  5. 生成会话密钥
    客户端、服务器双方,使用 Client Random + Server Random + Pre-Master Secret,独立计算出相同的会话对称密钥。
  6. Change Cipher Spec
    双方通知对方:后续报文全部使用新协商好的密钥加密。
  7. Finished
    双方互相发送Finished报文,用新密钥加密校验握手全过程。Finished校验通过,握手成功,开始传输加密的应用层数据。

TLS1.3做了重大优化:握手简化为1-RTT,移除大量不安全加密套件,删除Change Cipher Spec报文;还支持0-RTT,可在第一次握手时直接携带业务数据。

五、加密机制(混合加密,重点)

  1. 非对称加密(RSA/ECDSA)
    握手阶段使用,用于证书身份验证 + 协商会话密钥。运算慢,只在握手少量使用。
  2. 对称加密(AES-GCM等)
    握手完成后,业务数据全部使用对称加密传输,速度快,适合大量数据。
  3. 哈希/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 优缺点

✅ 优点

  1. 独立于应用层,可给多种上层协议提供安全加密;
  2. 证书机制,验证服务器身份,抵御中间人劫持;
  3. 混合加密兼顾安全和传输性能;
  4. TLS1.3大幅降低握手延迟,提升性能。

❌ 缺点

  1. 握手会带来网络RTT开销;
  2. 证书管理有成本(申请、续期、吊销);
  3. 证书一旦被恶意安装根证书,会产生中间人劫持风险。

十、小结

  1. TLS位于TCP和应用层之间,前身是SSL,SSL已经废弃;
  2. 由记录层、握手层组成;握手协商版本、加密套件、会话密钥;
  3. 握手阶段用非对称加密,业务传输用对称加密;
  4. TLS提供加密、防篡改、服务器身份认证;TLS1.2广泛使用,TLS1.3更优;
  5. HTTPS本质就是HTTP跑在TLS之上。

思考题:TLS1.3相比TLS1.2,为什么握手RTT更少?

标签:

0 条笔记