HTTPS中间人检测

检测企业网络中的非法TLS代理、根证书注入与SSL剥离攻击。研究证书固定(Certificate Pinning)验证、透明代理识别与TLS降级攻击发现技术。

HTTPS中间人攻击:加密通信的本地突破口

HTTPS中间人(Man-in-the-Middle, MITM)攻击通过在通信双方之间插入攻击者控制的代理节点,截获并可能篡改加密通信内容。与远端攻击不同,MITM通常发生在用户到目标服务器路径的边缘环节:公共Wi-Fi、被入侵的家用路由器、植入恶意软件的终端,或被滥用的企业网络检查设备。

透明TLS代理是最常见的MITM形式:代理设备拦截客户端的TLS连接,使用代理自签发的证书与客户端建立TLS会话,同时与目标服务器建立另一个TLS会话。客户端看到的证书链深度增加(多出代理中间证书),且根证书不在其系统信任库中——除非攻击者已预先在终端注入伪造根证书(常见于企业受管设备与恶意软件两种场景)。

SSL剥离(SSL Stripping)是另一类攻击:将HTTPS连接降级为HTTP,或诱导浏览器建立弱TLS版本/弱密码套件连接。HSTS(RFC 6797,2012)通过强制HTTPS策略缓解该问题,但首次访问前的窗口期与HSTS策略配置不当仍留有攻击面。值得注意的是,HPKP(RFC 7469,公钥固定)因部署风险过高,已被主流浏览器废弃,证书固定的实践重心已转向移动端应用层的pinning实现。

100+浏览器信任根证书数量级
2–3层正常TLS证书链深度
2012RFC 6797(HSTS)发布
已废弃HPKP(RFC 7469)现状

参考来源:RFC 6797 / RFC 7469;Mozilla CA证书列表;Qualys SSL Labs最佳实践

关键技术要点

  • 透明代理:拦截并重加密TLS连接,证书链深度增加,中间证书由代理签发
  • 根证书注入:在终端安装伪造CA证书,使浏览器信任代理签发的证书
  • SSL剥离:将HTTPS降级为HTTP或弱TLS版本,绕过加密保护
  • 证书固定:应用层pinning在移动端仍是主流防御;HPKP已被浏览器废弃

核心技术体系

01

证书链分析

检测证书链深度异常(正常为2-3层,代理可能增加中间层)、根证书不在系统信任库、证书有效期异常短、Issuer字段包含代理厂商名称等特征。TLS 1.3下证书链在握手加密段传输,被动检测需依赖终端侧或TLS检查点观测。

02

TLS握手异常

监控TLS版本降级(协商到TLS 1.0/1.1)、弱密码套件(RC4、3DES)、证书固定验证失败、以及SNI与证书SAN不匹配等异常指标。

03

网络行为分析

分析RTT异常(代理引入额外往返延迟)、TTL跳数变化、TCP窗口行为变化,以及同一IP同时作为大量连接的目的端与源端的代理行为模式。

04

终端检测

检查系统信任库中的可疑根证书、浏览器扩展权限、系统代理设置(HTTP_PROXY/PAC)异常变更,以及应用层pinning校验失败日志。

方法体系与前沿进展

被动流量分析与证书检测

证书链深度检测:正常TLS连接通常包含2-3层证书链(叶子证书→中间CA→根CA)。透明代理会插入额外的中间层,使链深度达到4层以上。通过解析TLS握手消息中的证书链(TLS 1.3需在能观测握手的检查点或通过QUIC/TLS终端日志获取),检测深度异常。

根证书白名单比对:将连接使用的根证书指纹与操作系统/浏览器的官方信任库(如Mozilla CA证书列表)比对,不在白名单中的根证书即为可疑。需要处理企业合法内部CA的例外情况。

版本与密码套件监控:检测协商到TLS 1.0/1.1的连接、使用已弃用密码套件(RC4、3DES、SHA-1签名)的连接。SSL Labs评分体系(A-F)可作为服务端配置的基线参照。

关键来源:RFC 6797 (HSTS), IETF, 2012; OWASP Transport Layer Protection Cheat Sheet.

主动探测与证书固定验证

应用层证书固定(Pinning):移动端应用(如银行类App)通常在代码中内置预期证书公钥哈希(SPKI),TLS握手时校验服务端证书是否匹配。不匹配即拒绝连接并上报——这是当前检测MITM最有效的主机侧手段。Android Network Security Config与iOS ATS均提供相关配置能力。

多路径比对:通过不同网络路径(蜂窝网络、可信VPN、Tor)访问同一目标,比较获取的证书指纹。若不同路径返回的证书链不一致,表明至少一条路径存在MITM代理。

主动探测技术:向目标发送多个TLS ClientHello(不同版本、密码套件组合),分析响应一致性。透明代理可能对部分握手参数产生与真实服务器不一致的响应(如拒绝服务器实际支持的密码套件),从而暴露其存在。

终端设备MITM检测

系统信任库扫描:定期检查操作系统与浏览器的根证书信任库,识别新安装的可疑根证书——特别关注自签名根证书与名称仿冒官方CA的证书。企业受管设备应建立信任库基线,对变更进行审计。

浏览器扩展审计:具有webRequest拦截权限的恶意扩展可配合本地代理实施MITM。审计扩展权限清单,检测网络拦截类高危权限。

网络配置监控:监控系统代理设置(环境变量、系统代理、PAC文件)的异常变更。合法企业代理通常有固定配置模式并可从管理控制台追溯;无法追溯的代理变更需视为可疑事件。

企业合法TLS检查的边界与要求

B1

透明与受管

合法TLS检查仅应部署于企业自有设备与网络,通过受管CA下发内部根证书,并在终端资产管理系统中登记。对BYOD与个人设备不得强制注入根证书。

B2

最小化与豁免

金融、医疗、密码管理等高敏感类别流量应列入豁免清单不做解密;检查设备自身成为高价值攻击目标,须隔离加固并限制管理面。

B3

隐私合规

TLS解密涉及个人通信内容处理,需满足《个人信息保护法》《数据安全法》的告知与最小必要要求,并留存审计日志。

B4

检测规则白名单

将已知合法检查代理的根证书指纹与特征库纳入白名单,避免对企业自身代理的持续误报,提升对异常MITM的检出信噪比。

实验资源与评估基准

检测工具

  • SSL Labs:Qualys运营的SSL/TLS配置检测与评分服务
  • testssl.sh:命令行TLS/SSL配置审计工具
  • sslyze:Python TLS配置扫描与分析库
  • Mozilla Observatory:Web安全头部(含HSTS)扫描

监控平台

  • HSTS Preload List:浏览器内置的强制HTTPS域名列表
  • Censys:互联网证书与TLS配置搜索引擎
  • Shodan:互联网设备暴露面分析
  • CT日志:监控域名证书异常变更(见CT监控课题)

攻防实验工具

  • mitmproxy:开源交互式MITM代理,用于安全测试
  • BetterCap:网络攻击与MITM测试框架
  • SSLsplit:透明SSL/TLS拦截工具
  • Burp Suite:Web应用安全测试代理

代表性参考文献

[1]

Hodges, J., Jackson, C., Barth, A. "HTTP Strict Transport Security (HSTS)", RFC 6797, IETF, 2012.

[2]

Evans, C., et al. "Public Key Pinning Extension for HTTP", RFC 7469, IETF, 2015(已废弃,主流浏览器已移除支持).

[3]

OWASP. "Transport Layer Protection Cheat Sheet", https://cheatsheetseries.owasp.org/.

[4]

Qualys. "SSL Labs: SSL and TLS Deployment Best Practices", https://github.com/ssllabs/research/wiki/SSL-and-TLS-Deployment-Best-Practices.

[5]

Durumeric, Z., et al. "The Matter of Heartbleed", IMC, 2014.

[6]

Android Developers. "Network Security Configuration", https://developer.android.com/training/articles/security-config.

[7]

mitmproxy. "mitmproxy: An Interactive HTTPS Proxy", https://mitmproxy.org/.

[8]

OWASP. "Certificate and Public Key Pinning", Mobile Security Testing Guide, https://mas.owasp.org/.