TLS和安全通道
传输层安全(TLS)是保护大多数互联网通信的协议,它结合了认证密钥交换和认证加密,以在两个端点之间创建机密、受完整性保护的通道。
Definition
诸如TLS之类的安全通道协议,通过执行认证密钥交换,然后对流量进行认证加密,在两方之间建立一个会话,该会话保证所有交换数据的机密性、完整性和认证性。
Scope
本主题涵盖安全通道协议,以TLS作为核心示例:认证服务器(以及可选的客户端)并建立会话密钥的握手,提供认证加密、前向保密和降级保护的记录层,以及从历史攻击中吸取的教训。它探讨了如何将加密构建块组装成已部署的协议。它不包括证书基础设施(PKI)和单个原语,这些在姊妹主题中讨论。
Core questions
- TLS握手如何认证服务器并协商会话密钥?
- 记录层如何使用认证加密保护每条消息?
- 如何实现前向保密,以及它对已记录流量为何重要?
- 如何防止降级和重新协商攻击?
- 历史攻击(BEAST、POODLE、Heartbleed)对协议和实现设计有何启示?
Key concepts
- TLS握手
- 记录层
- 认证加密 (AEAD)
- 临时密钥交换 (ECDHE)
- 前向保密
- 服务器和客户端认证
- 降级和重新协商攻击
- 会话恢复
- 密码套件协商
Key theories
- 握手加记录协议
- TLS将认证密钥交换握手(通过证书验证身份并派生会话密钥)与记录层(使用这些密钥加密和认证应用程序数据)分开,从而清晰地组合了认证、密钥协商和批量保护。
- 前向保密和降级保护
- TLS 1.3强制要求使用临时(椭圆曲线)Diffie-Hellman以实现前向保密,并将握手记录绑定到密钥计划中,以便主动攻击者无法在不被察觉的情况下强制降级到较弱的参数。
Mechanisms
在TLS 1.3中,客户端发送其密钥交换份额和支持的参数;服务器以其自身的临时Diffie-Hellman份额、证书和握手记录的签名进行响应,双方通过密钥派生函数(HKDF)派生会话密钥。然后,记录层使用AEAD密码(如AES-GCM或ChaCha20-Poly1305)保护所有数据。记录经过认证以防止篡改或降级,握手在一个往返中完成,并可选地支持零往返恢复。
Clinical relevance
TLS保护了绝大多数互联网流量:用于网络的HTTPS、安全电子邮件传输、API、VPN和消息传递都运行在其之上。其正确性直接决定了密码、支付和个人数据是否能免受网络攻击者的侵害。从有缺陷的SSL/早期TLS迁移到TLS 1.3——以及随之而来的分析——是协议在现实世界压力下演进的典范。
Evidence & guidelines
TLS 1.3已在RFC 8446中标准化并被推荐使用;SSL 3.0、TLS 1.0和TLS 1.1已被弃用(RFC 8996)。NIST SP 800-52提供了配置指南。TLS 1.3在开发过程中进行了广泛的正式分析,消除了导致早期攻击(如BEAST、POODLE和实现缺陷Heartbleed)的遗留弱点(静态RSA密钥交换、CBC模式、重新协商)。
History
网景公司在1994-1995年创建了SSL;SSL 3.0由IETF重新设计为TLS 1.0(1999年),并通过TLS 1.2(2008年)进行了完善。十年的攻击——BEAST、CRIME、POODLE、Heartbleed实现漏洞、Logjam和FREAK——暴露了遗留模式和降级处理中的弱点。TLS 1.3(RFC 8446,2018年)是一项重大重新设计,具有强制前向保密、更快的握手和正式安全分析。
Key figures
- Eric Rescorla
- Hugo Krawczyk
- Kenny Paterson
- Taher ElGamal
Related topics
Seminal works
- rfc8446
- stallings2017
- katz2020
Frequently asked questions
- SSL和TLS有什么区别?
- TLS是SSL的后继者。SSL(2.0和3.0版本)已过时且不安全;“SSL”作为一个口语化术语仍然存在,但所有当前的安全网络连接都使用TLS,其中TLS 1.3是现代版本。
- TLS能保护我免受恶意网站的侵害吗?
- TLS仅保证您与证书中指定的服务器之间有一个机密、经过认证的通道——它确认您正在与该域通信,而不是该域值得信任。钓鱼网站可以为其自身的(看起来相似的)域提供有效证书,因此TLS不保证该网站的诚信。