【安全攻防与漏洞】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 通信环境,保障用户数据安全与业务连续性。

相关推荐
用户962377954482 天前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954482 天前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star2 天前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954482 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
小时前端2 天前
HTTPS 页面加载 HTTP 脚本被拦?同源代理来救场
前端·https
YuMiao2 天前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
cipher4 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
Jony_5 天前
高可用移动网络连接
网络协议