.学术界对匿名通信系统研究的2个方向
专注于匿名通信系统本身,分析其安全性并提出相关的隐私增强技术:包括匿名接入、匿名路由、隐藏服务等机制的优化,流量混淆和协议伪装等技术的设计和应用。
针对匿名通信系统和暗网的攻击和监管:利用流量分析,系统/协议漏洞分析,提出去匿名化的攻击方法,包括暗网隐藏节点发现,隐藏服务定位,暗网用户的网络行为分析,暗网流量追踪,通信关系确认等。
2.1 匿名通信关键技术
2.1.1匿名接入
匿名接入技术是匿名通信网络为了规避网络监管而提供的客户端隐蔽接入技术。网络监管者出于安全审计的考虑,会检测匿名网络的中继节点并阻止用户接入。为了规避此类网络审查,研究人员提出了各种匿名接入技术,包括bridge,obfs,meek,FTE,Flashproxy等。
1)bridge节点
bridge是匿名网络为了提升自身隐蔽性和规避基于ip阻断的网络监管而开发的一种接入机制。为了方便用户获取此类节点信息,Tor项目提供了2种获取方式:1)在BridgeDB数据库中保存了bridge节点信息,用户可通过直接访问官网站点获取3个bridge节点;2)用户还可通过Google和Yahoo邮箱向指定邮箱发送请求,邮件服务器会自动回复3个bridge节点信息。
2)obfs混淆代理
虽然Tor可以使用bridge节点来规避基于IP阻断的监管,但监管者仍能通过深度包检测(deepacketinspection,DPI)技术来识别出Tor流量鉴于此,Tor项目开发了第1个传输插件obfs混淆代理。当前最新版本的Tor使用的是obfs4。为了抵御上述攻击,需要能够有效保证双方通信真实性、完整性和机密性的优化方案ScrambleSuitL29提出利用带外方式交换共享秘密实现通信双方的互认证,能够有效防御主动探测攻击.在此基础上,obfs4进一步利用BridgeDB实现了基于bridge身份验证的密钥交换.客户端通过BridgeDB查询bridge节点,获得其IP地址、节点ID和公钥信息只有同时匹配这3个信息才能通过obfs4节点的身份验证并建立连接obfs4是对obfs3的重大升级,既有效地混淆了Tor流量,又实现了bridge身份验证,达到能够抵御主动探测攻击和中间人攻击的效果。
3)meek隐蔽通道构建技术
meek是一种基于前置域(domainfronting)的隐蔽通道构建技术,其工作原理如图所示首先meek-client向前置域名服务器发送一个TLSClientHello消息,并将该服务器域名填入SNI(servernameindication)字段。在TLS握手成功后,meekclient把实际传输的Tor流量封装在HTTPPOST载荷中,并将目标bridge地址写入HTTPHOST字段。由于监管者无法查看加密后的HTTPPOST内容,因此无法识别真正的目标bridge地址。前置域服务器接收到meek-client数据后,根据HTTPHOST字段值将数据转发到目标bridge节点该节点上运行的meek-server对HTTP报头处理后将封装的Tor流量转发给后续中继节点。
2.1.2匿名路由
1)洋葱路由
洋葱路由技术的核心思想是通过多跳代理与层层加密的方法为用户的通信隐私 提供保护。在 Tor 暗网中,客户端与隐藏服务器之间需要各自选择 3 个节点建立多跳链路才能进行通信。目前,Tor 主要采用基于加权随机的路由选择算法选择洋葱路由器构建链路。 该算法依据服务器描述符(server descriptor)与共识文档(consensus document)中的带宽信息与放缩因子计算各节点的加权值,并按照出口节点、入口节点和中间节点的顺序选择链路节点.值得注意的是,链路中任意 2 个洋葱路由器应来自不同的 C 类网段。
2)大蒜路由
大蒜路由(garlic routing)具有分层加密、多消息绑定、端到端加密 3 个主要技术特点,典型代表为I2P,因此本节以 I2P 为例来介绍大蒜路由。I2P 制定了独特的路由算法挑选节点建立隧道在隧道建立前,每个 I2P 节点只知道局部的节点信息,具体的节点选择过程可分为 4 个步骤:
1I2P 节点会测量已知节点的网络性能,测量周期分为 1min,1h 和 24 h 等,测量项目包括带宽netDb 查询时延和隧道建立成功率等信息,并将产生的详细描述文件保存于本地
2I2P 节点根据速度和容量对测量到的目标节点进行分类.其中,速度为 1min 内通过该目标节点的数据量.为了保证结果的稳定性,通常会取 3 条最快隧道的速度平均值.容量为一段时间内该节点建立隧道的数量
3不同的隧道类型会选择不同的节点,例如客户隧道优先选择高速节点,探测隧道优先选择高容量节点或标准节点.当同一类型节点充足时,该类型每个节点被选择的概率相同;当同一类型的节点数量不足时,会使用较低性能节点作为替代.
4隧道建立者随机生成目标值,被选择节点按照与目标值的异或距离进行排序来确定节点在隧道中的位置
I2P 使用 VTB(variable tunnel build)消息建立通信隧道,该消息主要由建立请求记录组成。
3)基于DHT的路由
基于DHT的路由技术的核心思想是利用DHT组织数据,进而使用对应的搜索策略提供高效路由,并通过多跳代理保障通信的匿名性.Freenet 是使用基于 DHT 的路由技术的典型匿名通信系统本节将以 Freenet 为例,对于基于 DHT 的路由技术进行介绍。
Freenet 路由是一种面向请求消息的深度优先节点选择机制,主要应用于文件上传和文件检索请求消息中除了包含文件索引,还包含 UID(uniqueidentifier),HTL(hops to live)等信息。文件索引值对应一个节点位置值,表示该文件最可能的存储位置,是请求消息路由的重要依据. UID 唯一地标识一个请求,能够有效避免消息路由过程中出现死循环.HTL 用来限制消息所允许转发的跳数,避免消息无限地被路由下去.目前 HTL 默认的最大值为18,通常情况下随着消息的转发 HTL会逐跳减 1当 HTL 减至 0 时,该消息将被丢弃.此外,出于安全性考虑,Freenet 中特别增加了一些针对 HTL 的混淆机制,对于 HTL 为 18 的请求,节点在转发时只有 50%的概率会使 HTL 减 1;而对于 HTL为的请求,节点在转发时只有 25%的概率会使 HTI减 1.综上,请求消息由发起者节点产生后,会按照深度优先原则被转发到下一跳,然后由下一跳继续迭代路由.上传请求会在检测出键值冲突或 HTI下降至 0 时停止转发,而检索请求则会在检索成功或 HTL下降至 0 时停止转发。
2.1.3暗网服务技术
1)Tor隐藏服务
Tor 隐藏服务”是通过隐藏服务域名(即洋蒸域名)唯一标识和查找的.服务器首次运行后将生成一个隐藏服务域名,其域名形式为<z>.onion.其中<z>是长度为 16 B 的字符串,由 RSA Hash 值的前 80 b 进行 base32 编码获得,Tor 隐藏服务器在启动过程中会将其信息上传至隐藏服务目录服务器,Tor 客户端能够通过目录服务器获取足够的信息与隐藏服务器建立双向链路.图 展示了客户端访问隐藏服务的具体过程:
1 隐藏服务器选择 3 个洋葱路由器作为其引入节点,并与引入节点建立 3 跳链路;
2隐藏服务器将其隐藏服务描述符 (hiddenservice descriptor)上传至隐藏服务目录服务器,描述符中包含引入节点的信息与自身 RSA 公钥;
3客户端通过隐藏服务域名(<z>onion)进行访问时,从隐藏服务目录服务器获取引入节点的相关信息;
4客户端选择一个洋葱路由器作为汇聚节点并与该节点建立 3 跳链路;
5客户端建立到达引入节点的 3 跳链路,并通过引入节点将汇聚节点的信息发送到隐藏服务器;
6隐藏服务器建立到达汇聚节点的 3 跳链路并对该链路进行认证;
7经过汇聚节点,客户端与隐藏服务器通过 6跳链路进行交互
2)I2P隐藏服务
I2P 提供的隐藏服务·类型包括 Web、邮件、聊天室和文件共享等,其中 Web 是主流的隐藏服务称为 eepSite,支持公开和非公开 2 种访问方式.公开的 eepSite 的访问链接是 Hostame,非公开的eepSite 可以通过 Address 访问
3)Freenet暗网服务
Freenet 基于其匿名文件存储与检索功能提供了暗网 Freesite 服务.Freesite 是 Freenet 中的“网站”,本质上是存储在 Freenet 中的静态网页文件。该隐藏服务基于 Freenet 文件存储与检索中的统一资源定位符(URL)以及路由机制进行部署和访问Freesite 利用 Freenet 的文件键值作为其统一资源定位符,对于任意一个 Freesite 站点,只有获取其键值才能够访问该网站查看相关信息
4)ZeroNet暗网服务
ZeroNet 基于 BitTorrent 技术部署用户站点并通过 Bitcoin 加密技术保证站点文件的完整性。当用户访问一个 ZeroNet 的网站资源时,首先查找本地资源,若不存在则通过 BitTorrent 网络查找该网站资源的拥有者,将拥有资源的部分访问者的 IP 地址以及端口号返回给用户。因为站点的每个访问者均存储了站点文件,使得用户可以通过 TCP 连接从这些访问者中下载网站内容。
2.2匿名通信攻防研究
2.2.1匿名通信攻击技术
1)针对网络流量的攻击
通常基于流量分析技术,即通过嗅探并分析网络通信流量的各自模式,以获取现有价值
1被动攻击和主动攻击:根据攻击者对通信行为的干涉程度进行划分。攻击者可以被动监听或主动操纵目标流量。
被动攻击是指攻击者通过被动网络窃听、分析、抽取流量特征,在这个过程中并不会影响数据的正常传输,其优势在于隐蔽性强。
主动攻击则是攻击则对数据通信过程本身施加干扰,例如对数据包进行修改、重放、丢弃或延迟等操作,从而达到更高效地进行流量特征分析和抽取的目的。
2单端攻击和端到端攻击:根据威胁模型的不同进行划分,攻击者通过监控或控制发送方或/和接收方侧的相关设备。
单端攻击是指仅占据发送端或接收端实施的攻击技术,执行单端攻击的攻击者需要监控通过发送端或接收端设备的流量,从而破坏用户的通信保密性和匿名性。单端被动攻击提取流量模式作为指纹,并基于此推断应用层的流量内容,例如用户访问的网站。单端主动攻击则可以主动将内容注入到流量中,或控制客户端的入口节点以迫使客户端直接向攻击者发送信好并暴露其真实IP地址。
端到端攻击是指同时占据同进入口和出口实施的攻击,可以采用被动或主动攻击方式来关联客户端和服务器之间的通信关系。攻击者通过在发送器和接收器两侧控制或监听设备(例如两端路由器,或Tor入口和出口节点),然后基于流量特征,比对嫌疑发送端发出的流量和嫌疑接收端收到的流量,以确认通信关系。
2)针对节点的攻击
主要是匿名通信节点系统和协议存在漏洞的利用。
2.2.2匿名通信增强技术
目前已存在一些用来防御各种攻击的研究工作,从广义地讲,可以从网络层、协议层和应用层3个角度进行部署。
1)网络层
阻止网络层攻击的基本思路是去除与用户相关连流量的特征,包括:数据包大小分布、数据包顺序、流速率、流量时间等。
包填充技术可以基于一定填充策略填充数据包大小,以便去除数据包长度相关特征。
Wright等人提出了流量整形技术,使数据包长度与目标页面流量数据包分布相似,可以有效防御Liberatore等人提出的攻击方法。
Chan-Tin等人提出了一种基于聚类的流量整形技术,使簇中的不同网站流量特征看起来基本相同,从而使分类精度从70%下降到不足1%。
流量填充技术可以将伪数据包注入到用户的原始流量中,以便模糊流量大小。例如,为了阻止网站指纹攻击,网络服务器可以首先选择目标页面,然后模仿目标网页的数据包大小分布。
为了应对Panchenko等人的网站指纹攻击,Tor项目提出通过随机化HTTP流水线管道中的最大请求数来进行防御。
Nithyanad等人指出,在Tor暗网中40%的链路易受AS级别的流量关联攻击,为此他们提出了一种新的Tor客户端Astoria,通过网络测量和路径预测来进行智能路由选择,降低来自AS级别的威胁。
Juen等人通过路径预测技术来抵御来自AS和网络交换机的流量分析攻击,但该方法仍然有提升空间。
2)协议层
在协议层,报文填充和流量填充技术可以隐藏与用户相关联的流量特征。SecureShell(SSH)、TLS和IPSec应用这一的报文填充技术可以将明文与块密码边界对齐,从而在一定程度上模糊包大小。为了进一步提高安全性,可以选择随机数量的数据包进行填充。此外还可以使用协议级流量填充技术。例如,Tor通常不将填充数据单元的功能用于链路级填充,因为它会显著降低链路的性能,因此可以设计协议级报文填充和流量填充技术,以在一定程度上减少开销。
3)应用层
在应用层,可以利用HTTP特征和背景流量(即诱饵网页)从用户流中移除流量特征。例如,HTTP流水线技术和HTTPrange字段可以用于调整传入和传出的数据包大小。此外,在客户端改变HTTP请求的顺序可以在一定程度上改变流量模式。为了在应用层使用背景流量技术,当用户浏览目标网页时,可以在背景浏览中加载诱饵网页。但这种类型的防御技术只能用于一些特定的协议(如HTTP),不能广泛应用于所有协议。Wang等人提出了一种高效的网站指纹防御技术Walkie-Talkie,通过修改浏览器以半双工模式进行通信,可以模拟突发序列,使敏感和非敏感页面的浏览模式类似。实验结果表明Walkie-Talkie能够以较低的带宽和时间开销防御网站指纹攻击