TLS 加固在防什么
每次 TLS 握手都会协商协议版本与加密套件,如果允许协商到 SSLv3、TLS1.0 或 RC4 这类已被证明不安全的组合,攻击者就有机会降级利用它们的已知缺陷。加固的做法是把协议收紧到 TLS1.2 与 1.3,禁用弱套件与不安全的重协商,同时保证主流客户端仍能正常握手。
基本信息
| 保留协议 | TLS 1.2、TLS 1.3 |
|---|---|
| 禁用协议 | SSLv2、SSLv3、TLS 1.0、TLS 1.1 |
| 禁用套件 | RC4、3DES、匿名套件与导出级套件等 |
| 兼容性 | 老旧终端、嵌入式设备与对接系统需先评估 |
| 验证方式 | 浏览器开发者工具、在线检测服务、openssl 命令 |
| 覆盖范围 | 入口设备与后端对接链路的 TLS 配置都要检查 |
典型使用场景
- 等保与合规检查对传输加密配置的要求
- 收到弱协议相关扫描告警后的整改
- 新站点上线时确定 HTTPS 基线配置
- 对接方系统升级后收紧协议版本
- 排查移动端或老旧客户端握手失败问题
nginx 配置示例
nginx 配置示例
ssl_protocols TLSv1.2 TLSv1.3; # 只保留安全协议版本
ssl_ciphers HIGH:!aNULL:!MD5:!RC4; # 禁用弱与不安全套件
ssl_prefer_server_ciphers on; # 由服务端决定套件顺序
# 该项主要作用于 TLS 1.2 及以下
ssl_session_cache shared:SSL:10m; # 会话复用,减少握手开销
ssl_session_timeout 10m; # 会话缓存有效期
add_header Strict-Transport-Security "max-age=31536000" always; # 强制 HTTPS加固项的兼容性影响
| 调整项 | 可能受影响的对象 | 应对方式 |
|---|---|---|
| 禁用 TLS 1.0/1.1 | 老旧终端、嵌入式设备 | 先统计访问日志中的协议分布 |
| 禁用弱套件 | 老旧浏览器与特定移动端 | 保留必要安全套件,逐步收紧 |
| 启用强制 HTTPS | 仍在用 HTTP 的旧链接 | 先确认全站 HTTPS 可用再开启 |
调整前先用访问日志确认仍在使用旧协议的客户端占比,用数据决定关停时间点,而不是凭感觉一刀切。
协议与套件调整会影响全站访问,属于高风险配置变更:按变更流程执行、留存记录,并准备回退到原配置的路径。
直接禁用 TLS1.0 可能让老旧终端与对接系统无法访问:先在测试环境验证,再逐步关停并保留观察窗口。