加州大学伯克利分校 | 通过域名前置实现抗阻塞通信

原文标题:Blocking-resistant communication through domain fronting
原文作者:David Fifield, Chang Lan, Rod Hynes, Percy Wegmann, Vern Paxson
原文链接:https://doi.org/10.1515/popets-2015-0009
发表期刊:Privacy Enhancing Technologies (PETs)
笔记作者:宋坤书@安全学术圈
主编:黄诚@安全学术圈

1、研究背景

网络审查与规避是一场持续对抗,审查者控制网络,但规避者利用审查者害怕“附带损害”(即误屏蔽对经济或社会有价值的内容)的心理,通过将规避流量与正常流量混合,迫使审查者在彻底屏蔽和接受部分流量之间作出选择,从而增加审查的难度。

本文介绍了“域名前置”技术,这是一种利用 HTTPS 隐藏通信真实目的地的规避手段。其通过在不同通信层使用不同域名,将请求伪装成正常流量,依赖 CDN 等多域名服务绕过审查,同时避免审查者因屏蔽附带内容而造成“附带损害”。这种方法类似于“诱饵路由”,但应用于应用层。

2、域名前置技术原理及应用

  • 域名前置技术的原理:域名前置通过在不同通信层(DNS 查询、 TLS SNI 和 HTTP Host 头)使用不同的域名来隐藏真实的目的地。DNS 查询和 TLS SNI 中携带“前置域名”,而 HTTP Host 头中携带隐藏的目标域名,审查者无法通过DNS或SNI中的前置域名阻止流量。HTTP Host 头中的内容对审查者不可见,但前置服务器会根据其内容转发请求。其原理如下图所示:
  • 绕过审查的机制:域名前置能够有效绕过审查,因为审查者无法仅凭 DNS 或 SNI 的前置域名屏蔽流量,而不影响其他正常通信。此外,域名前置还具有“无域名”前置的变种,使审查者更难识别流量来源,进一步提升规避审查的成功率。

  • 与CDN结合的应用:域名前置通常与 CDN(如 Google 等服务)结合,CDN 前端服务器根据 HTTP Host 头转发请求到原始服务器,从而隐藏真实目标地址。如果服务不支持自动转发请求,可通过部署“反射器”应用实现相似功能。需要注意的是,部署域名前置通常需要成为 CDN 客户并支付带宽费用。

3、规避审查的挑战与应对策略

3.1 规避审查的挑战

  • 基于内容的封锁:审查者通过深度包检查(DPI)分析流量内容进行封锁。
  • 基于地址的封锁:审查者通过阻止特定IP或域名的通信来封锁目标。
  • 主动探测:审查者主动探测代理流量,通过识别和封锁代理服务器进行规避。

3.2 内容封锁的应对策略

  • 流量伪装:使流量看起来像随机数据或允许的协议(如 obfs3、ScrambleSuit、fteproxy)。
  • 隐写术:将流量伪装成常见协议(如 HTTP 或 Skype 通话),避免被审查识别。

3.3 地址封锁与主动探测的应对策略

  • Tor桥接:使用隐蔽地址的桥接,避免IP封锁。
  • CensorSpoofer:通过伪造源地址和低带宽隐蔽通道绕过封锁。
  • Flash Proxy:动态更换临时代理地址,避免封锁。
  • Domain Fronting:通过加密的 HTTPS 请求隐藏真实目标,规避 DPI 。
  • Decoy Routing:通过中间代理路由器绕过封锁。

4、不同的规避审查工具中域名前置技术的部署

多个 Web 服务如 Google App Engine、 CloudFront 和 Azure 支持域名前置,价格大多在 0.08–0.25/GB 之间,Fastly 和 CloudFlare 需要特殊设置。Akamai 适合大流量,但较贵。Level 3 不直接支持,可以通过 URL 路径实现。

  • 域名前置技术在 Tor 上的部署

    meek 是 Tor 的插件传输工具,通过 HTTP 请求和域名前置技术绕过审查。客户端(meek-client)将数据打包为 HTTP 请求并通过中间 Web 服务发送,服务器端(meek-server)解码请求并将数据传入 Tor 网络,最终通过响应返回给客户端。每次请求和响应包含最多 64KB 的数据,按顺序传输,确保数据完整但效率较低。meek 的工作过程如下图:

    为了隐匿流量特征,meek 使用无头浏览器(headless browser)代理 HTTP 请求,隐藏 TLS 指纹,增强绕过审查能力。尽管域名前置引入额外的 HTTP 头部和加密开销,效率下降(可达 40%),但 CDN 支持下依然能有效规避审查。

  • 域名前置技术在 Lantern 上的部署

    Lantern 是一种绕过互联网审查的工具,专注于性能和可用性,而非匿名性。它通过域名前置技术和 Lantern 通过域名前置和 HTTPS 代理技术提供安全访问,专注性能而非匿名性。它使用信任网络分发代理信息,并通过域名前置绕过审查,确保连接到未封锁的服务器。

    Lantern 通过 enproxy 和 fronted 应用将数据转为 HTTP 请求并通过域名前置发送。为了减少延迟,Lantern 优化了预连接和连接池化,尽管域名前置增加延迟,但通过优化能提高效率。

  • 域名前置技术在 Psiphon 上的部署

    Psiphon 通过 SSH 协议和 obfuscated-openssh 层伪装流量,利用基于 Tor 的 meek 域名前置技术提高隐蔽性并绕过 HTTP 白名单。Psiphon 客户端通过同时连接多个服务器,选择最快的连接,并根据网络条件优化协议。

    为提升性能,Psiphon 对 meek 协议进行了优化,特别是在视频流和下载方面,显著提高传输速度和降低延迟,确保在受限环境中提供更好的用户体验。

5、域名前置对统计流量分析攻击的抵抗力

在开发域名前置绕过审查系统时,目标是消除易于识别的流量特征,迫使审查者使用更复杂且成本更高的分析方法,增加审查的成本。域名前置能够防止基于 IP、DNS 和内容的封锁,并有效应对主动探测,增加审查的难度。尽管目前一些基于流量特征的封锁手段(如分析数据包长度)尚不常见,但未来审查者可能会采用更复杂的分析方法,因此需要不断优化。

  • 数据包长度分布

    审查者可能通过数据包长度分布识别加密隧道。实验对比了 LBL 流量(普通HTTPS流量)和使用 meek 的 Tor 流量的分布,两种流量在数据包长度分布上并无明显区别,尽管 meek 流量在某些特定长度上出现了小的峰值(这些可能与 Tor 的固定数据包大小有关)。两种流量的数据包长度对比如下图:

  • 连接的持续时间

    TCP 连接的持续时间也可能是区分特征。LBL 流量中有明显的短连接,而 meek 流量大多是长连接,60% 的连接持续超过 5 分钟。审查者可能会尝试通过终止长连接来识别绕过流量,但这种方法可能会导致较高的误报率。两种流量的连接持续时间的累积概率对比如下图:

当前没有明显的流量特征能可靠区分域名前置流量和普通 HTTPS 流量。尽管长连接和数据包长度分布可能成为潜在的攻击目标,但域名前置的流量足够隐蔽,难以被准确识别。

6、域名前置技术总结

6.1 核心优势

  • 绕过内容屏蔽与地址封锁:域名前置通过在不同通信层使用不同域名,隐藏真实目标地址,有效绕过基于内容和地址的封锁。
  • 抵抗主动探测:即使被审查者探测,封锁域名前置的成本巨大,尤其是当前置域为合法服务时。
  • 增加审查成本:审查者需要投入更多资源进行流量分析和辨别绕过流量,增加了封锁难度。

6.2 面临的挑战

  • 依赖中介服务:中介服务(如CDN)可能成为审查者攻击目标,增加了服务商的成本。
  • 路径差异与侧信道攻击:前置域和目标地址之间的网络路径不同,可能被审查者通过延迟等特征识别。
  • 中介服务监控:中介服务可能监控并关联流量,揭示绕过行为。
  • HTTPS中间人攻击:审查者若能实施中间人攻击,可能通过移除加密并检查Host头部来识别域名前置。

域名前置有效绕过内容和地址封锁,但依赖中介服务,存在路径差异和被中介监控的风险。尽管如此,它仍是一种强有力的审查绕过技术。

安全学术圈招募队友-ing 
有兴趣加入学术圈的请联系 secdr#qq.com

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。查看原文

为您推荐