传输层安全协议 (TLS) 是一种密码学协议,可为互联网等未受保护计算机网络提供安全通信保障。
通过各种非对称和对称密码学技术,TLS 提供端到端的身份验证、机密性和数据完整性。这些保护措施适用于广泛的网络通信,包括电子邮件、消息传递、IP 语音 (VoIP) 和虚拟私人网络 (VPN)。
TLS 因建立安全网页浏览连接而广受认可。其作为超文本安全传输协议 (HTTPS) 的基础——该应用层协议实现网络应用与主流浏览器间的加密数据交换。
TLS 加密协议包含两层结构:TLS 握手协议和 TLS 记录协议。握手协议是对完成服务器端与客户端(连接设备)的双向认证。记录协议验证并保护传输数据安全。
这两层协议位于传输协议之上(如 TCP/IP 模型中的协议),TCP/IP 作为规定计算机间通信标准的协议簇,被视为“互联网的粘合剂”。1
传输层安全 (TLS) 作为 Netscape Communications Corporation 开发的 SSL 协议后继标准,其演进历程如下:1996 年:互联网工程任务组 (IETF) 正式标准化 SSL 协议。
1999 年 1 月:IETF 针对 SSL 3.0 版本改进并修复安全漏洞,更名为传输层安全 (TLS)。协议规范正式定义于 RFC 2246 技术文档。当前术语“TLS”与“SSL”常可互换使用或组合表述为 TLS/SSL。
被 IETF 称为“互联网最重要安全协议”的 TLS,对防范在线通信未授权访问至关重要。其最新版本 TLS 1.3 提供更强大高效的安全保障,成为当今数字世界的基石。
全球近 68% 人口使用互联网,2数十亿人日常依赖网络进行购物、金融交易、医疗及私人通讯。在所有这些场景中保护敏感数据至关重要。这意味着保护它免受黑客攻击、篡改、窃听及数据泄露、恶意软件、中间人攻击等威胁具有根本性意义。
TLS 是网站标准安全协议 HTTPS 的技术基础。浏览器中常见的 HTTPS 挂锁图标向用户传递网站可信赖且安全的信号。
该图标同时表明该网站持有有效的 TLS 证书(亦称 SSL 证书)。该数字凭证由证书颁发机构 (CA) 签发,用于验证网站身份并建立加密连接。TLS 和 HTTPS 的应用规模印证:某主流 TLS 证书服务商每小时签发量逾 34 万张。
TLS 通过强制实施安全通道的以下三个核心特性保障互联网通信安全:
认证通信双方身份及数据来源与目的地。
确保数据仅限目标接收方访问。
保障存储或传输中数据不可篡改(任何改动均可被检测)。
TLS 协议包含两个子协议层:TLS 握手协议和 TLS 记录协议。具体流程因不同版本 TLS 而异。
TLS 握手在客户端与服务器间建立安全连接。通过公钥密码学,服务器(有时含客户端)使用数字证书完成认证 。客户端与服务器随后协商选定加密套件(即算法组合),并通过密钥交换安全建立共享会话密钥(用于数据加密及哈希处理的临时密钥)。
会话密钥建立后即视为安全通道构建完成。此后公钥加密终止,所有传输数据均通过私钥密码学进行加密与认证。
(详见《TLS 握手协议分步解析》)
记录协议负责保护 TLS 连接中传输的数据安全。该协议将握手阶段协商确定的密码套件和密钥作为数据保护的操作规范。
密码套件定义用于密钥交换、加密及消息认证的算法。对称密钥用于加密外发数据并解密接收数据。同时生成消息认证码以验证数据完整性。
通过这些机制,记录协议确保连接的身份验证、完整性与机密性。
具体 TLS 握手阶段步骤因 TLS 版本而异。完成握手阶段通常需 200 至 300 毫秒,最快可达 100 毫秒(实际时长取决于网络延迟、往返时间 (RTT)、服务器性能及其他网络因素)。
本示意图采用速度最快、版本最新、安全性更强的 TLS 1.3 协议。
客户端发送 ClientHello 消息,包含支持的 TLS 版本(TLS 1.3)、密码套件列表、随机字节串 (client_random) 以及通过 Elliptic Curve Diffie-Hellman Ephemeral (ECDHE) 生成的临时密钥共享参数。
服务端回应 ServerHello 消息,内含选定的密码套件、另一随机字节串 (server_random) 及其临时密钥共享参数。此步骤确立密钥交换参数。
此时双方可通过 ECDHE 计算共享密钥。该共享密钥用于派生出握手阶段密钥。
服务端随后发送数字证书、CertificateVerify 消息(使用私钥签名)及握手阶段完成消息(由握手阶段密钥加密)。
(可选步骤:若服务端需客户端认证,则发送 CertificateRequest。然后,客户端将回应其证书及 CertificateVerify 消息。)
客户端验证服务端证书:确保证书由受信任的证书颁发机构签发、处于有效状态、未被撤销,且域名匹配无误。客户端使用证书中的服务端公钥验证其 CertificateVerify,并通过握手密钥验证握手 Finished 消息。
客户端使用握手密钥发送自身的握手完成消息,至此握手确认完成。
此时双方已完成双向认证,并建立共享密钥。后续通信将采用对称加密方式交换数据。
密钥交换方法用于安全传递加密密钥。TLS 实现包含多种密钥交换方法,例如:
Diffie-Hellman 是最常用的密钥交换方法之一。该非对称密钥交换协议使互不相识的双方能在非安全信道中生成共享密钥,实现安全通信。其安全性基于离散对数问题的计算复杂性——该数学难题使得破解共享密钥在计算上不可行。
Diffie-Hellman 密钥交换存在多种变体,包括:
RSA 作为非对称加密算法,其安全性基于大素数 分解的数学难题生成密钥对。它使用一对公私密钥进行加密和解密,因此,适用于安全数据传输和数字签名。TLS 1.3 因安全考量不支持 RSA 密钥交换(即其无法提供前向保密性)。但仍可用于身份认证。
PSK 指通信双方在 TLS 会话前通过安全信道预先共享的密钥。用户可在首次 TLS 握手时建立 PSK,并在后续握手中用于创建新连接(称为“基于 PSK 的会话恢复”)。 建议将 PSK 与 DHE 或 ECDHE 结合使用以实现前向保密性。
IBM Cloud Infrastructure Center 是一款兼容 OpenStack 的软件平台,用于管理 IBM zSystems 和 IBM LinuxONE 上的私有云基础架构。
发现专为企业混合云和 AI 策略设计的服务器、存储器和软件。
查找适合企业的业务需求的云基础设施解决方案,并按需扩展资源。