TLS 加密算法有哪些?HTTPS为什么安全?
很多网站部署 SSL 证书后,只知道浏览器地址栏出现了“小锁”,但并不了解 HTTPS 背后的加密过程。
实际上,HTTPS 并不是依靠SSL 证书直接加密所有网页数据,而是通过 TLS 协议,将多种密码算法组合起来完成身份验证、密钥协商和数据加密。
简单来说:
- SSL证书负责证明服务器身份
- 非对称算法负责安全建立连接
- 对称算法负责高速加密传输
- 哈希算法负责数据完整性校验
这几部分共同组成 HTTPS 的安全基础。
一、HTTPS中主要使用哪些加密算法?
一次完整的 HTTPS 通信,并不是只使用一种算法,而是多个密码算法协同工作。
1. 非对称加密算法:用于身份认证和密钥交换
常见算法:
- RSA
- ECC(椭圆曲线密码算法)
- ECDHE(椭圆曲线密钥交换)
非对称算法最大的特点是:
拥有一对密钥:
- 公钥
- 私钥
服务器将公钥包含在 SSL 证书中发送给客户端,浏览器通过 CA 信任链验证证书是否合法,从而确认访问的是真实服务器。
不过需要注意:现代 TLS 1.3 中,非对称算法主要用于身份认证和签名验证,实际的数据加密密钥一般通过 ECDHE 密钥交换生成。
例如:
用户访问网站:
浏览器 ←→ 服务器
验证服务器身份
↓
协商临时密钥
↓
开始加密通信
2. 对称加密算法:负责网页数据传输
HTTPS真正传输网页内容时,使用的是对称加密。
常见算法:
- AES-128-GCM
- AES-256-GCM
- ChaCha20-Poly1305
原因很简单:非对称加密安全,但计算成本高。
如果服务器发送:
- HTML页面
- 图片
- 视频
- API数据
全部使用RSA等算法加密,会造成大量CPU消耗。
因此 TLS 采用:
握手阶段建立安全密钥,数据传输阶段使用高速对称加密。
目前主流HTTPS连接中,AES-GCM和ChaCha20是最常见的数据加密算法。
3. 哈希算法:保证数据没有被篡改
哈希算法主要用于完整性验证。
常见算法:
- SHA-256
- SHA-384
它可以将数据生成固定长度的数字摘要。
例如:
服务器发送:
网页内容 + 哈希值
客户端收到后重新计算:
如果哈希值一致:说明数据没有被修改。
目前:
- MD5
- SHA-1
由于安全性不足,已经不再用于现代HTTPS通信。
二、TLS 1.3使用哪些密码套件?
密码套件(Cipher Suite)是服务器和浏览器协商加密方式的一组算法组合。
例如:
TLS_AES_256_GCM_SHA384
表示:
- AES_256_GCM:数据加密算法
- SHA384:哈希算法
与 TLS 1.2 相比,TLS 1.3 对密码套件进行了简化。
常见 TLS 1.3 密码套件包括:
| 密码套件 | 加密算法 |
|---|---|
| TLS_AES_128_GCM_SHA256 | AES-128-GCM |
| TLS_AES_256_GCM_SHA384 | AES-256-GCM |
| TLS_CHACHA20_POLY1305_SHA256 | ChaCha20 |
目前网站服务器一般优先推荐:
- TLS 1.3
- AES-GCM
- ChaCha20
三、RSA证书和ECC证书有什么区别?
这是很多网站部署SSL证书时经常遇到的问题。
RSA证书
特点:
- 兼容性最好
- 支持范围广
- 老旧系统支持更好
适合:
- 企业官网
- 需要最大兼容性的业务
ECC证书
特点:
- 密钥长度更短
- 加密效率更高
- TLS握手速度更快
例如:
256位ECC密钥可以达到接近2048位RSA的安全强度。
适合:
- 高并发网站
- API服务
- 对性能要求较高的网站
如果需要兼容大量旧设备,可以选择RSA;如果追求现代性能,可以选择ECC。
四、网站服务器如何配置安全TLS算法?
对于普通网站,目前建议:
1. 开启TLS 1.2和TLS 1.3
关闭:
- SSL 2.0
- SSL 3.0
- TLS 1.0
- TLS 1.1
这些协议版本已经存在安全风险。
2. 使用现代密码套件
推荐:
- AES-GCM
- ChaCha20-Poly1305
避免:
- RC4
- 3DES
- SHA-1相关算法
3. 使用受信任SSL证书
密码算法再安全,如果证书:
- 不受浏览器信任
- 域名不匹配
- 证书链错误
用户和浏览器依然无法建立可信HTTPS连接。SSL证书选择可以参考[SSL证书选购指南]。
常见问题 FAQ
Q:HTTPS是不是靠SSL证书加密数据?
不是。
SSL证书主要作用是证明服务器身份,并提供公钥信息。
真正的数据加密由TLS协议中的AES、ChaCha20等对称算法完成。
Q:为什么HTTPS不用RSA直接加密网页?
因为RSA等非对称算法计算成本较高。
HTTPS只在握手阶段使用非对称算法建立安全连接,之后使用速度更快的对称算法传输数据。
Q:TLS 1.3比TLS 1.2安全吗?
TLS 1.3减少了旧算法支持,并优化握手流程。
相比TLS 1.2:
- 安全性更高
- 握手速度更快
- 配置更简单
Q:如何查看网站使用什么TLS算法?
可以使用 SSL Labs 等在线检测工具查看:
- TLS版本
- 密码套件
- 证书链
- 安全评分
总结
TLS加密算法并不是单一技术,而是一套完整的密码体系。
HTTPS通过:
- SSL证书验证服务器身份
- ECC/ECDHE完成安全密钥协商
- AES或ChaCha20保护数据传输
- SHA算法保证数据完整性
共同实现安全可靠的网站通信。
对于现代网站部署,建议启用 TLS 1.3,使用AES-GCM或ChaCha20密码套件,并选择兼容业务需求的RSA或ECC SSL证书。



京公网安备11010502031690号
网站经营企业工商营业执照
















