用户网站有时会受到SSL证书剥离攻击,如何防范SSL证书剥离攻击(SSL Stripping Attack)需要结合技术配置、协议强制和用户教育来防范,下面我就写一下防范剥离攻击具体措施:
一、强制使用HTTPS
全站HTTPS重定向
配置服务器(如Nginx/Apache)将所有HTTP请求301重定向到HTTPS。
示例配置(Nginx):
nginx
复制
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
启用HTTP严格传输安全(HSTS)
在HTTP响应头中添加Strict-Transport-Security,强制浏览器仅通过HTTPS连接。
建议配置:
复制
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
作用:
max-age=63072000:有效期2年;
includeSubDomains:保护所有子域名;
preload:申请加入浏览器HSTS预加载列表。
提交HSTS预加载列表
访问HSTS Preload List Submission,提交域名,确保即使首次访问也直接使用HTTPS。
二、防范中间人攻击(MITM)
禁用不安全的协议与加密套件
关闭SSLv2、SSLv3和TLS 1.0/1.1,仅启用TLS 1.2+。
推荐配置(Nginx):
nginx
复制
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
部署证书透明度(Certificate Transparency, CT)
通过CT日志监控异常证书颁发,使用工具(如crt.sh)定期检查域名证书记录。
使用DNS安全扩展(DNSSEC)
防止DNS劫持攻击,确保域名解析结果未被篡改。
三、前端与内容安全策略
内容安全策略(CSP)
通过Content-Security-Policy头禁止混合内容(HTTP资源):
复制
Content-Security-Policy: upgrade-insecure-requests
自动将页面内的HTTP资源升级为HTTPS加载。
安全Cookie设置
为所有Cookie添加Secure和HttpOnly属性:
复制
Set-Cookie: session=xxx; Secure; HttpOnly; SameSite=Strict
四、用户端防护与提示
浏览器安全标识提醒
在网站显著位置提示用户检查地址栏的HTTPS锁标志,避免忽略证书错误警告。
教育用户识别钓鱼行为
告知用户避免在公共WiFi下访问敏感页面,警惕非HTTPS页面输入密码。
五、网络层防御
部署Web应用防火墙(WAF)
配置规则拦截可疑的中间人攻击流量(如异常的HTTP降级请求)。
启用证书钉扎(Certificate Pinning)
在移动端或关键服务中,绑定特定CA或证书指纹,防止伪造证书攻击。
注意:需谨慎维护,避免因证书更新导致服务中断。
六、监控与响应
实时监控异常流量
使用SIEM工具(如Splunk)分析日志,检测HTTP请求比例异常升高或TLS握手失败激增。
自动化证书管理
使用Let's Encrypt等工具自动续期证书,避免因过期导致降级风险。
七、渗透测试与审计
定期进行安全测试,模拟SSL剥离攻击场景,验证防护措施有效性。
使用工具(如SSL Labs的SSL Test)评估服务器配置安全性。
以上就是防范剥离攻击采取的措施,强制使用HTTPS,禁用不安全的协议与加密套件,浏览器安全标识提醒,部署Web应用防火墙(WAF),实时监控异常流量,定期进行安全测试,可有效降低SSL证书剥离攻击风险,确保用户数据始终通过加密通道传输。