关于 configuring-tls-1-3-for-secure-communications
面向服务器管理员和开发人员的 TLS 1.3 配置与验证技能,涵盖 nginx、Apache 和 Python。内容包括禁用旧版协议、测试配置及处理 0-RTT 重放风险。
主要功能
- 01配置 nginx 与 Apache 的 TLS 1.3
- 02在 Python 中使用 ssl 模块
- 03使用 openssl 和 testssl.sh 验证
- 04设置密钥交换组与密码套件
- 05配置 0-RTT 并考虑重放风险
适用场景
- 01为 Web 服务器启用 TLS 1.3
- 02检查服务是否拒绝 TLS 1.0 和 1.1
- 03验证证书链及密码套件配置
- 04评估 0-RTT 数据的重放风险
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill configuring-tls-1-3-for-secure-communications安装后在 Claude Code 中输入/configuring-tls-1-3-for-secure-communications确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEassets/template.mdreferences/api-reference.mdstandards.mdworkflows.mdscripts/agent.pyprocess.py详细介绍
为安全通信配置 TLS 1.3
概述
TLS 1.3(RFC 8446)是传输层安全协议的最新版本,在安全性和性能方面相比 TLS 1.2 都有显著提升。它将握手延迟降低至 1-RTT(对于恢复的会话甚至可达 0-RTT),移除了过时的密码套件,并强制要求完美前向保密。本技能涵盖在服务器上配置 TLS 1.3、验证配置以及测试常见错误配置。
何时使用
- 在您的环境中部署或配置 TLS 1.3 安全通信能力时
- 建立符合合规要求的安全控制措施时
- 为该领域构建或改进安全架构时
- 执行需要此实现的安全评估时
前提条件
- 熟悉密码学概念和工具
- 可访问测试或实验环境以安全执行
- 已安装 Python 3.8+ 及所需依赖项
- 对任何测试活动拥有适当的授权
目标
- 在 nginx 和 Apache Web 服务器上配置 TLS 1.3
- 使用 ssl 模块在 Python 应用程序中实现 TLS 1.3
- 使用 openssl 和 testssl.sh 验证 TLS 配置
- 理解 TLS 1.3 密码套件和密钥交换机制
- 配置 0-RTT 早期数据并采取适当的防护措施
- 禁用旧版 TLS 版本(1.0、1.1)和弱密码套件
核心概念
TLS 1.3 密码套件
| 密码套件 | 密钥交换 | 身份验证 | 加密 | 哈希 |
|---|---|---|---|---|
| TLS_AES_256_GCM_SHA384 | ECDHE/DHE | 证书 | AES-256-GCM | SHA-384 |
| TLS_AES_128_GCM_SHA256 | ECDHE/DHE | 证书 | AES-128-GCM | SHA-256 |
| TLS_CHACHA20_POLY1305_SHA256 | ECDHE/DHE | 证书 | ChaCha20-Poly1305 | SHA-256 |
TLS 1.3 相比 1.2 的改进
- 1-RTT 握手:完整握手在一个往返内完成(TLS 1.2 需要两个)
- 0-RTT 恢复:恢复的连接可以立即发送数据
- 无 RSA 密钥交换:仅使用临时 Diffie-Hellman(强制 PFS)
- 简化的密码套件:移除了 CBC、RC4、3DES、静态 RSA、SHA-1
- 加密握手:服务器证书在 ServerHello 之后被加密
密钥交换组
- x25519:Curve25519 ECDH(首选,速度快)
- secp256r1:NIST P-256 ECDH(广泛支持)
- secp384r1:NIST P-384 ECDH(更高的安全裕度)
- x448:Curve448 ECDH(最高安全性)
工作流
- 验证 OpenSSL 版本支持 TLS 1.3(1.1.1+)
- 生成或获取 TLS 证书和私钥
- 配置服务器使用 TLS 1.3 密码套件
- 禁用 TLS 1.0 和 1.1(可选保留 1.2 以保持兼容性)
- 设置首选密钥交换组
- 启用 OCSP 装订以进行证书验证
- 使用 openssl s_client 和 testssl.sh 测试配置
- 配置 HSTS 头以实现 HTTP 严格传输安全
安全注意事项
- 0-RTT 数据容易受到重放攻击;限制为幂等请求
- 如果需要支持旧版客户端,务必包含 TLS 1.2 回退
- 使用 ECDSA 证书以获得更好的性能(相比 RSA)
- 启用 OCSP 装订以改善客户端证书验证
- 设置具有较长 max-age 和 includeSubDomains 的 HSTS 头
- 监控证书透明度日志
验证标准
- TLS 1.3 握手成功完成
- 仅提供经批准的密码套件
- 强制实施完美前向保密
- TLS 1.0 和 1.1 被拒绝
- OCSP 装订功能正常
- 证书链有效且完整
- testssl.sh 报告无漏洞
评论
支持 Markdown