HTTPS降级攻击的原理
HTTPS降级攻击(SSL/TLS Downgrade Attack)是一种中间人攻击手法,通过迫使客户端和服务器回退到较弱的加密协议或密码套件来实现窃听或篡改。最经典的例子是POODLE和Logjam攻击。
常见攻击类型
1. 协议降级(Protocol Downgrade):攻击者在ClientHello阶段拦截并丢弃TLS 1.3的连接请求,迫使服务器回退到TLS 1.2甚至SSL 3.0,利用旧协议中的已知漏洞。
2. 密码套件降级(Cipher Suite Downgrade):在协商过程中移除强密码套件(如AES-256-GCM、ChaCha20-Poly1305),迫使双方使用弱密码(如RC4、DES)或存在已知弱点的算法。
3. FREAK攻击:利用历史出口级加密限制,迫使服务器使用512位RSA出口密钥,现代计算机可在数小时内破解。
4. Logjam攻击:针对Diffie-Hellman密钥交换,降级到512位出口级DH参数,可在被动监听下恢复会话密钥。
防御策略:HSTS与HSTS Preload
HTTP严格传输安全(HSTS):通过响应头Strict-Transport-Security告诉浏览器在指定时间内只能通过HTTPS访问该域名,防止SSL剥离攻击。配置示例:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
HSTS Preload列表:将域名提交到浏览器的HSTS预加载列表(如hstspreload.org),即使首次访问也会强制HTTPS,彻底消除首次连接被劫持的风险窗口。
进阶防御配置
TLS 1.3部署:删除了大量不安全的密码套件和前向不安全的密钥交换算法,握手缩减为1-RTT。Nginx配置参考:
ssl_protocols TLSv1.3 TLSv1.2;
ssl_ciphers TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256;
ssl_prefer_server_ciphers on;
证书钉扎(Certificate Pinning):移动应用中嵌入服务器证书哈希,检测到不匹配证书时拒绝连接,防范CA妥协或恶意证书签发。
兼容性考量:核心业务(支付、登录)强制TLS 1.3,兼容接口保留TLS 1.2最低限度支持。通过业务分级为不同场景维护独立的TLS策略。

发表评论 取消回复