摘要:
各种各样的匿名通信系统可以提供在线隐私保护和Internet反审查服务,因此被广泛部署。但是,这些系统被严重滥用,并且大量匿名通信是恶意的。为了缓解此问题,我们提出了一种新颖实用的回溯技术来确认可疑服务器与用户之间的通信关系。我们利用目标服务器端的软件定义网络(SDN)交换机来拦截向服务器的目标流量,并更改所通告的TCP窗口大小,从而秘密更改服务器的流量速率。通过仔细改变流量速率,我们可以成功地将秘密信号调制为流量。承载信号的流量通过匿名通信系统并到达用户端的SDN交换机。然后我们可以从流量中检测出调制信号,从而确定服务器与用户之间的通信关系。
由于匿名通信系统利用单跳或多跳代理服务器建立匿名和加密的隧道来中继用户的流量,因此目标服务器只能观察到最后一跳代理服务器的IP地址,追溯工作很复杂。因此,跟踪用户与服务器之间的通信并非易事。
因此,采用了主动水印技术【active watermarking techniques】来确认用户/客户端与服务器之间的通信关系。该技术的关键思想是在一个通信方上将特定信号主动调制为用户的业务,并在另一端识别解调后的信号,从而确认两个通信方之间的通信关系。但是,现有技术高度依赖于不同匿名通信系统的特殊协议功能来设计难以广泛部署的特定水印方案。幸运的是,新兴的软件定义网络(SDN)为我们提供了设计更通用,更强大的追溯技术的机会,该技术可在控制平面与网络设备(例如,交换机)中的数据平面分离时,应用于各种匿名通信系统和路由器。
在本文中,我们提出了一种新颖且实用的基于SDN的追溯技术,以通过不同的匿名通信系统(包括SSH隧道,OpenVPN隧道和Tor)跟踪恶意流量。我们设计了一种新的,更通用的回溯技术,并充分利用了SDN的优势,可以快速,准确地确认服务器与客户端之间的通信关系。为此,我们利用接近可疑目标(例如服务器Bob)的SDN控制器来拦截流向服务器的流量。然后,在控制器上更改通告的数据包的TCP窗口大小,以强制服务器更改流量速率。通过这种方式,我们可以通过更改服务器的传出流量速率来调制随机生成的信号(即一系列二进制位)。为了增强信号的鲁棒性,应用重复纠错码对原始位进行多次调制。然后,携带信号的流量穿过匿名通信系统并到达客户端(例如Alice)。接近客户端的SDN交换机可以记录流量的时间戳和数据包大小,并解调重复位。根据重复方案,我们可以导出恢复的信号,然后确定它是否是嵌入在服务器端SDN控制器上的原始信号。我们已经实施了基于SDN的追溯技术,并进行了广泛的实际实验以验证其可行性和有效性。
我们的主要贡献概述如下。
•我们利用SDN拦截向可疑目的地的目标流量,并有意更改流量的广告TCP窗口大小。这样,我们可以根据需要秘密更改目的地的传出流量速率,从而将秘密信号调制为目标流量。我们是第一个调节公布的TCP窗口大小并将信号嵌入到流量中以进行追溯的人。这种方法可以轻松地部署在SDN上。
我们仔细分析TCP滑动窗口机制,并计算可调节广告窗口大小的最小值和最大值,以便对目标流量产生最小的影响。此外,我们采用重复纠错码来增强嵌入式信号的鲁棒性。
我们使用三种主要的匿名通信系统(包括SSH隧道,OpenVPN隧道和Tor)对回溯技术进行了评估。真实的实验结果表明,SSH隧道和Open-VPN隧道的检测率可以达到100%,Tor的检测率可以达到95%,而所有三个通信系统的误报率约为0%。
1 介绍
A.匿名通信网络 anonymous communication network
全世界广泛部署了多种低延迟的匿名通信网络系统,以保护用户的通信隐私并提供反审查服务。根据匿名通信连接的长度,可以将它们分为两类:单跳和多跳匿名通信网络系统。在单跳匿名网络系统(例如SSH和OpenVPN)中,仅使用一个代理服务器将用户的流量中继到目标服务器。由于服务器只能观察代理服务器的IP地址,因此它无法知道用户的真实IP地址。但是,如果代理服务器受到威胁,则可以暴露用户的通信隐私。在多跳匿名通信网络系统(例如,Tor)中,用户首先与Tor网络中的目录服务器通信,并下载Tor中继服务器的信息。然后,用户选择三个中继服务器,并逐跳建立三跳路径。最后,她沿Tor路径命令最后一个中继服务器
建立与目标服务器的TCP连接。这样,用户可以与服务器匿名通信。由于该路径中的Tor中继服务器只能知道该路径中其相邻中继服务器的IP地址,因此一台受感染的服务器几乎无法确认用户与服务器之间的通信关系。
B.软件定义的网络 Software Defined Network
软件定义的网络提供了网络可编程性,可通过开放的API和协议动态管理和控制网络。软件定义网络的体系结构由三层组成,包括数据平面,控制平面和应用程序平面。数据平面由用于转发网络流量的联网设备(例如SDN交换机)组成。流表中的流表项存储在交换机中,作为转发规则。这些流条目由SDN控制器配置。控制平面由SDN控制器组成,该SDN控制器控制数据平面中的一组联网设备。 SDN控制器执行来自SDN应用程序的请求,并通过开放的API使底层网络服务(例如网络拓扑)可用于应用程序平面。应用程序平面由一组应用程序组成,这些应用程序可以访问SDN控制器提供的底层网络服务。应用程序可以将高级策略发送到控制平面,控制平面将这些策略实现为流条目,并将其发送到联网设备上的流表。由于SDN控制器负责配置所有流条目,因此它们在管理和控制网络中起着至关重要的作用。