【安全攻防与漏洞】HTTPS中的常见攻击与防御

HTTPS 中常见攻击与防御策略涵盖中间人攻击(MITM)、SSL剥离、重放攻击等,帮助构建安全的 HTTPS 通信环境:

一、中间人攻击(MITM)

攻击原理

场景:攻击者通过伪造证书或劫持网络流量,伪装成合法服务器与客户端通信。

典型手段:

ARP欺骗:在局域网内伪造 MAC 地址,截获流量。

DNS劫持:篡改 DNS 解析结果,将用户导向恶意服务器。

伪造证书:攻击者自签名证书冒充目标网站。

风险场景

公共 WiFi 下访问 HTTP 网站。

未启用 HSTS 的 HTTPS 网站。

证书颁发机构(CA)被攻破或私钥泄露。

防御策略

强制 HTTPS(HSTS):

通过 Strict-Transport-Security 头部强制浏览器使用 HTTPS,防止降级攻击。

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

证书绑定(证书透明度):

使用 Certificate Transparency(CT)监控证书颁发,防止恶意 CA 签发假证书。

证书固定(Certificate Pinning):

在客户端固定信任的证书公钥,拒绝非预期的证书(适用于移动端 App)。

定期更新证书:

缩短证书有效期,减少私钥泄露风险。

二、SSL剥离(SSL Stripping)

攻击原理

攻击者将 HTTPS 连接降级为 HTTP,窃听明文传输的敏感数据(如密码、Cookie)。

典型场景:用户访问 HTTP 版本的网站,攻击者通过中间人劫持流量并移除 SSL 加密。

风险场景

网站同时支持 HTTP 和 HTTPS,且未强制跳转。

未启用 HSTS 的网站。

防御策略

强制 HTTPS 跳转:

服务器配置 HTTP 自动重定向到 HTTPS。

server {

listen 80;

server_name example.com;

return 301 https://hostrequest_uri;

启用 HSTS:

浏览器收到 HSTS 头部后,拒绝后续 HTTP 请求。

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";

禁用旧版协议:

确保服务器不支持 SSLv3 等易受攻击的协议。

三、重放攻击(Replay Attack)

攻击原理

攻击者截获合法请求并重复发送,冒充用户执行操作(如重复提交订单)。

典型场景:未使用随机数(Nonce)或时间戳的 API 请求。

风险场景

无防重放机制的 API 接口。

使用固定 Session ID 或 Token 的认证系统。

防御策略

随机数(Nonce):

每个请求附带唯一随机数,服务器校验其是否已使用。

GET /api/data?nonce=abc123&timestamp=1620000000

时间戳(Timestamp):

请求中加入时间戳,服务器拒绝超过时间窗口(如 ±5 分钟)的请求。

序列号(Sequence Number):

为每个请求分配递增序号,拒绝序号重复或过期的请求。

HTTPS 加密:

使用 TLS 的 MAC(消息认证码)确保数据完整性,防止篡改。

四、其他常见攻击与防御

重定向攻击(Pharming)

攻击:伪造网站域名或 DNS 解析,诱导用户访问虚假站点。

防御:

配置正确的 DNSSEC(DNS 安全扩展)。

使用 EV SSL 证书(扩展验证),浏览器地址栏显示绿色企业名称。

Heartbleed 漏洞(OpenSSL 漏洞)

攻击:通过 OpenSSL 心跳扩展漏洞窃取服务器内存数据(如私钥)。

防御:

升级 OpenSSL 至 1.1.1 或更高版本。

定期重启服务以清除内存残留数据。

CRIME/BEAST 攻击

攻击:利用 TLS 压缩或 CBC 模式漏洞窃取会话 Cookie。

防御:

禁用 TLS 压缩(如 sslcompression off;)。

优先使用 AEAD 加密套件(如 AES-GCM)。

五、综合防御方案

协议与加密套件优化:

禁用 SSLv3/TLS 1.0/1.1,仅启用 TLS 1.2+。

使用强加密套件(如 ECDHE-ECDSA-AES128-GCM-SHA256)。

证书管理:

使用 Let's Encrypt 自动化证书签发与续期。

配置 OCSP Stapling 减少证书验证延迟。

监控与审计:

使用 SSL Labs 测试工具定期扫描配置漏洞。

部署 WAF(Web 应用防火墙)拦截异常请求。

六、工具与实战验证

检测中间人攻击:

复制代码
  openssl s_client -connect example.com:443 -showcerts

检查证书链是否完整,是否被篡改。

模拟 SSL 剥离:

使用工具(如 sslstrip)测试网站是否易受降级攻击。

重放攻击测试:

使用 Postman 或 Python 脚本重复发送相同请求,观察服务器是否拒绝。

总结

HTTPS 的安全性依赖于协议设计、证书管理、加密算法三者的协同:

中间人攻击:通过 HSTS、证书绑定和定期更新防御。

SSL剥离:强制 HTTPS + HSTS 组合拳。

重放攻击:Nonce、时间戳与序列号机制。

最终目标:构建端到端加密、抗篡改、抗重放的 HTTPS 通信环境,保障用户数据安全与业务连续性。

相关推荐
SmartSoftHelp开发辅助优化1 小时前
SmartSoftHelp 之 SQL Server 数据库安全备份与安全还原详解---深度优化版:SmartSoftHelp DeepCore XSuite
数据库·安全·oracle
Alfadi联盟 萧瑶3 小时前
安全运营与威胁对抗体系
安全
PrDarcyLuo3 小时前
【IEEE会议推荐】第五届区块链技术与信息安全国际会议
人工智能·安全·网络安全·区块链·信息与通信
zhu62019763 小时前
Android10如何设置ro.debuggable=1?
android·安全·android逆向·android10·ro.debuggable
supingemail3 小时前
WebSocket 从入门到进阶实战
网络·websocket·网络协议
走过冬季4 小时前
TCP与UDP区别及应用场景详解
网络协议·tcp/ip·udp
广州创科水利4 小时前
案例分享——福建洋柄水库大桥智慧桥梁安全监测
物联网·安全·数据分析·自动化
上海云盾商务经理杨杨5 小时前
2025年高防IP与游戏盾深度对比:如何选择最佳防护方案?
网络协议·tcp/ip·安全·web安全·游戏
酷爱码5 小时前
Nginx 配置 HTTPS 与 WSS 完整指南(最新推荐)
nginx·https·iphone