INFLOW:用于检测隐藏服务器的反向网络流水印

文章信息

论文题目:INFLOW: Inverse Network Flow Watermarking for Detecting Hidden Servers
期刊(会议):IEEE INFOCOM 2018 - IEEE Conference on Computer Communications
级别:CCF A
文章链接:https://sci-hub.yt/10.1109/infocom.2018.8486375

概述

INFLOW是第一种能够在流量的目的地嵌入水印,并且即使在水印生成器目标方向上没有足够的流量传输时也能在流量源头检测到所嵌水印的技术。

旧方法不足:多年来,研究人员提出了各种网络流水印技术,以解决面对多种威胁的准确归因问题。不幸的是,所有这些方法都有一个共同缺点:水印只能沿着载体流量同向传播。这意味着水印可以有效追踪从来源到目的地的流量,但无法实现反向追踪。这在双向流量的情况下不是问题,但检测单向流量来源的情况下是一个问题。例如,用户从Web服务器(可能隐藏在TOR网络上)下载数字对象,则服务器到客户端将持续有流量,而相反方向的数据包很少。

INFLOW原理:INFLOW旨在利用TCP/TOR拥塞管理机制,该机制会导致数据源停止发送消息,直到从目的地收到先前消息的确认。INFLOW的水印生成器在目的地利用TCP连接的ACK数据包和TOR的SENDME消息,从而向我们想要探测的发送者的TCP流注入由受控时间间隔组成的签名。

背景和攻击场景

Tor简介

TOR电路是在基于TCP的覆盖网络上建立的加密安全虚拟路径,其中来自客户端的应用层数据通过多个TOR中继路由。电路可以传输一个或多个应用层流的数据。通常,客户端通过选择三个中继(入口、中间和出口中继)来建立电路,并使用洋葱路由算法将数据流加密和封装到电路中。 TOR中的流被定义为通过电路传输的应用程序数据流,而在传统通信中,通常会封装在单个传输层流中。应用层数据被打包成相同大小的单元(等于512字节)。入口中继通常被称为入口守卫或入口节点。只有TOR客户端和出口中继可以将单元与流关联起来。

当客户端要访问一个隐藏的服务时,它选择一个中继作为它的汇聚节点并建立到它的回路;隐藏服务也建立了到汇聚节点的回路,如图1所示。在客户与隐藏服务之间的通信中,汇聚节点将流消息转发到隐藏服务的出口节点,并代表两个回路之间的交换点。

在这里插入图片描述

场景

分发者通过在TOR上创建隐藏服务器(HS)来提供其内容。 HS发布滥用或非法内容,并通过生成洋葱URL使其可供客户使用。一个洋葱网址通常是一个由16个字符组成的半数字字符串,以.onion作为后缀,可以唯一地识别隐藏的网页。当客户想要访问TOR上的隐藏服务时,它在洋葱浏览器上插入洋葱URL,并在初始化阶段后,建立了从客户到HS的通信通道。从HS到客户的通用TOR路径如图1所示。 从客户到服务器的路径对应于两个TOR电路,并由六个中间节点组成。

TOR拥塞控制

为了避免TOR中继拥塞并保持公平的资源共享,TOR对于任何给定的电路使用端到端拥塞窗口。该窗口(固定大小为1000个单元)对应于任何给定电路中可以同时传输的单元的最大数量。为了控制这一点,电路的端节点发送一个SENDME消息,每接收100个单元就通知发送方单元组的正确接收。收到SENDME消息后,发送方窗口滑动100。TOR还在子电路级别即流级别使用端到端窗口,即采用精确机制。它允许每个流中最多有500个正在传输的单元。在流级别,每发送50个单元就发送一个SENDME消息。

水印系统

去匿名化的实体(DE)(例如执法机构):希望检索TOR暗网中分发滥用或非法内容的隐藏服务(HS)的IP地址。DE拥有一个目标隐藏服务的洋葱URL。如果需要,DE还成为隐藏服务提供者的授权客户,以便访问其Web服务。我们假设DE控制HS的入口卫兵,这是关于去匿名化HS文献或针对HS的攻击技术的一个常见假设。

TOR客户端节点:在其中放置了水印嵌入模块。从TOR客户端使用洋葱URL访问隐藏服务并建立到HS的TOR电路。

嵌入模块:在选定的流量上打上水印。

检测器模块:放置在受控的HS入口卫兵上,监视并分析通过的所有流量。检测器验证观察到的流量中水印的存在/缺失。一旦在观察到的流量中检测到水印,服务器的源IP地址将从该流中提取并提供给DE。

TCP流情况

  • 流量方向(从客户端入口节点到客户端的方向):存在大量流量
  • ACK方向(从客户端到客户端入口节点的方向): ACK 和少数带负载的数据包

水印嵌入算法

嵌入算法旨在在ACK方向上丢弃选定的TCP数据包突发(主要是TCP ACK),以诱导伪随机的静默间隔模式。 以下我们将区分三种不同的时间间隔。

  1. 丢弃间隔(dropping interval):对应于水印嵌入器不断丢弃从客户端到客户端入口节点的包的间隔;
  2. 客户端静默间隔(client silent interval):对应于观察者由于水印嵌入器的丢弃操作的影响而不看到来自客户端到其入口守卫的任何数据包的间隔。客户端静默间隔包括丢弃间隔,但它可能更长。
  3. HS静默间隔(HS silent interval):对应于观察者由于水印嵌入器的丢弃操作的影响而不看到来自HS到其入口守卫的任何数据包的间隔。

水印嵌入器选择参考时期内的非连续子间隔的子集,并丢弃在选定的子间隔期间观察到的流包,从而创建一组客户端静默间隔。水印嵌入器有两个主要功能:1)丢弃间隔的选择(由丢弃间隔序列生成器(DISG)执行),2)数据包丢弃(由丢弃器dropper执行)。图2显示了INFLOW的嵌入方案。

在这里插入图片描述

具体过程:

  1. 参考时期开始,DISG向dropper提供一组随机选择的子区间标识符。DISG使用一个秘密密钥和一个nonce的拼接作为密码学安全函数的种子,该函数生成从概率质量函数中提取 m ~ + 1 \widetilde{m} +1 m +1个伪随机整数数字。
  2. 设 D 是包含选择为客户端静默区间的参考周期中子区间的起始时间的向量; dropper 将根据 D 中的次数丢弃,dropper 开始在一个持续时间为 δ \delta δ的间隔内丢弃所有在 ACK 方向上观察到的 TCP 包。

报文突然丢失的影响:
当入口守卫发送的未确认数据量达到RWIN (TCP receive window)值时,入口守卫停止发送新报文,并在每个过期时间后继续发送重传报文。所有未确认的数据,以及从洋葱链上一个节点接收到的新数据,都在入口守卫的 TCP缓冲区中不断累积。因为入口守卫不能向客户端释放新的单元格,所以客户端不会发送任何新的SENDME消息,而多达500个单元格会累积并保留在客户端入口守卫中。因此,会合节点停止向HS发送 SENDME 消息;由于TOR 的拥塞控制机制,在发送了500个未确认的 cell 之后,HS 在收到该电路的一个新的 SENDME 消息之前不能发送任何新的 cell。如果水印在TCP协议确定何时关闭连接的过期时间内停止在 ACK 方向上丢弃数据包,客户机的入口节点就会恢复向客户机发送数据包,并向洋葱链发送SENDME消息,这样整个通信过程就可以重新启动。这种行为确保了从HS到HS入口节点的通信中产生一个时间间隔(HS 静默间隔),这可以很容易地被TOR电路检测器识别。

水印检测算法

检测器拦截并分析重要流量,并寻求识别与所观察流中的水印对应的HS静默间隔的模式。检测器和水印生成器必须同步,以商定参考周期和有效向量D之间的对应关系。外部网络时间协议(NTP)用于保持水印生成器和检测器之间的同步。
此外,检测器知道两条关键信息:DISG的输入数据和水印生成器使用的加密函数,因此可以计算向量D。检测器分析每个流的分组间隔时间,并构建静默间隔的序列。如果在流中观察到的连续静默间隔之间的距离序列与在当前参考时间段有效的丢弃向量D中的值之间的距离的子序列匹配,则该流被标记为带水印的流。

在这里插入图片描述

具体来说可分为3个主要步骤(如图4所示):

  1. IPD计算:对IP流进行嗅探,并测量数据包到达时间 Φ = [ ϕ 1 , … , ϕ F ] \Phi =[\phi _{1},\dots ,\phi _{F} ] Φ=[ϕ1,,ϕF]。然后根据到达时间计算包间间隔 Δ Φ = [ ϕ 2 − ϕ 1 , … , ϕ F − ϕ F − 1 ] \Delta \Phi =[\phi _{2}-\phi _{1},\dots ,\phi _{F}-\phi _{F-1} ] ΔΦ=[ϕ2ϕ1,,ϕFϕF1]。包间间隔通过相邻到达时间做差可以得到。
  2. 静默间隔识别:将 Δ Φ \Delta \Phi ΔΦ中所有比阈值 θ t h \theta _{th} θth大的间隔抽取出来形成 Δ S \Delta _{S} ΔS。根据 Δ S \Delta _{S} ΔS计算出向量 D ^ \hat{D} D^,其每个值 d ^ i \hat{d}_{i} d^i Δ S \Delta _{S} ΔS中间隔的开始时间。
  3. 比较和探测:设 q q q是最小的静默间隔匹配长度, D ( q ) D ^{(q)} D(q) D ^ ( q ) \hat{D} ^{(q)} D^(q) D D D D ^ \hat{D} D^长度为 q q q的子序列。如果一个流被嵌入了水印,就会存在一对子序列 ( D ( q ) , D ^ ( q ) ) (D^{(q)},\hat{D} ^{(q)} ) (D(q),D^(q)),使得如下公式成立 ∑ j = 2 q ∣ ( d j ( q ) − d j − 1 ( q ) ) − ( d ^ j ( q ) − d ^ j − 1 ( q ) ) ∣ < β \sum_{j=2}^{q}\left | (d_{j}^{(q)}-d_{j-1}^{(q)})-(\hat{d}_{j}^{(q)}-\hat{d}_{j-1}^{(q)} ) \right | <\beta j=2q (dj(q)dj1(q))(d^j(q)d^j1(q)) <β,其中 β \beta β是阈值。

都是公式,很抽象,解释一下:水印嵌入的时候有个向量 D D D,这个向量决定了客户端静默间隔的开始时间。但客户端出现静默间隔时,HS那边不会立马也出现静默间隔,会有一定的延迟。所以不能通过开始时间来判断是否某个流被嵌入了水印。但是可以通过两个静默间隔开始时间之间的差值来判断,因为差值是不变的。上面的公式就是围绕这一点描述的。

性能评估

实验设计

混合测试框架有四个主要组件(客户端、水印嵌入器、检测器和HS),安装在Amazon Web Services(AWS)上的虚拟实例上,流量被迫通过我们无法控制的TOR网络。通用架构如图5所示。客户端由虚拟私有云(VPC)上的AWS实例组成。水印嵌入器是安装在客户端实例上的模块。来往客户端的所有流量都会通过水印嵌入器。HS和检测器安装在第二个VPC上的两个不同AWS实例上。来往HS的所有流量都通过检测器,检测器分析分组时间戳并应用检测逻辑来检测水印。这两个VPC分别在两个不同的地区(俄勒冈和爱尔兰)执行。

在这里插入图片描述

在每次实验开始时,启动水印嵌入器和检测器。然后,客户端建立了到汇聚节点的新电路并联系HS,然后HS也建立到汇聚节点的电路。一旦整个通信线路建立,一个数据文件通过六个TOR中继从HS传输到客户端。 实验划分如下:
(A)750次测试,以评估检测器检测带水印流量的能力;
(B)750次测试,以测试针对未标记流的检测算法效果;
(C)750次测试,针对使用与检测器使用的输入密钥不同的输入密钥进行水印标记的流来测试检测算法。

下表是实验参数

在这里插入图片描述

实验结果

图 6 显示了在真阳性(TP)和假阳性(FP)率方面的准确性。结果表明,该检测器能够正确识别带有水印的流量,具有较高的准确率。
TP率的测量方法:用检测器正确标记为带水印的流的数量除以A组中测试流量的总数。
FP率的测量方法:用检测器错误标记为带水印的流的数量除以被测试流量的总数。

在这里插入图片描述

六种主要用于反流量水印技术的威胁类型,评估INFLOW对此类技术的鲁棒性:定时扰动、包丢失、流再封装,分裂和混合、虚拟包插入和包填充。

思考

水印嵌入器是通过在 ACK 方向上大量丢弃数据包来诱导的,但也有其他方法可以用于获得类似的效果,从而在流量源处诱导水印:

  • 延迟 SENDME 消息;
  • 流量方向的丢包突发;
  • 在通信方向上丢弃选定的数据包及其后续重传副本

INFLOW 的主要缺点:

  • 在INFLOW的场景中,INFLOW假设DE可以控制HS的入口守卫;尽管一些研究人员已经表明,HS选择由DE控制的中继的概率不可忽略,但TOR社区在防止旨在恶意控制入口守卫的攻击方面也投入了巨大的努力;
  • 通过INFLOW嵌入的水印对第三方并不是不可见的,这意味着任何观察到其中有静默间隔的流的实体都很可能怀疑该流已被加了水印;然而,第三方无法确定它是一个真正的水印(嵌入了正确的水印密钥)还是一个模仿水印行为的东西。

总结

INFLOW利用TCP拥塞控制和TOR的滑动窗口机制的相互依赖性,提供了一种将水印嵌入TOR流的独特方法,展示了如何使用短时丢弃ACK分组的突发来嵌入由静默间隔序列组成的水印。在伪随机选择的时间点,数据流的相反方向(即从TOR客户端到其入口节点)的ACK分组被丢弃。以这种方式,INFLOW隐式地在来自客户端已联系的HS的流量中创建受控的静默间隔模式。水印可以被知道密钥的检测器识别,检测器被放在从HS到HS的入口守卫的路径上。
此外,INFLOW对针对传统水印技术的已知攻击具有鲁棒性。最后,通过对流经真实TOR网络的流进行一组实验来证明INFLOW的有效性。结果表明,INFLOW实现了高TP率和低FP率。通过正确调整系统参数,可以获得TP和FP速率之间的最佳平衡。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/210232.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA 配置maven结合案例使用篇

1. 项目需求和结构分析 需求案例&#xff1a;搭建一个电商平台项目&#xff0c;该平台包括用户服务、订单服务、通用工具模块等。 项目架构&#xff1a; 用户服务&#xff1a;负责处理用户相关的逻辑&#xff0c;例如用户信息的管理、用户注册、登录等。 spring-context 6.0.…

DNS协议、ICMP协议、NAT技术

文章目录 一.DNS协议1.DNS背景2.域名简介3.域名解析过程4.使用dig工具分析DNS过程 二.ICMP协议1.ICMP功能2.ICMP协议格式3.ping命令4.一个值得注意的坑5.traceroute命令 三.NAT技术1.NAT技术背景2.NAT IP转换过程3.NAPT4.NAT技术的缺陷5.NAT和代理服务器 四.网络协议总结1.应用…

Linux网络——传输层

目录 一.再谈端口概念 二.UDP协议 1.UDP协议格式 2.UDP的特点 3.面向数据报 4.UDP的缓冲区 5.UDP使用注意事项 6.UDP协议在内核中的表现形式 7.基于UDP的应用层协议 三.TCP协议 1.TCP协议格式 2.TCP确认应答机制 3.超时重传机制 4.TCP报文六位标志位 5.滑动窗口 6…

【KMP算法】学习总结

说明&#xff1a; 文章内容为对KMP算法的总结&#xff0c;以及力扣例题&#xff1b;文章内容为个人的学习总结&#xff0c;如有错误&#xff0c;欢迎指正。 文章目录 1. KMP算法1.1 算法步骤1.2 关于指针回退问题 2 . LeetCode例题 1. KMP算法 1.1 算法步骤 KMP算法通常用于…

基于Pytorch框架多人多摄像头摔倒跌倒坠落检测系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 深度学习在计算机视觉领域的应用已经取得了显著的进展&#xff0c;特别是在多人多摄像头场景下的摔倒跌倒检测。通过…

运动蓝牙耳机什么牌子的好?适合跑步佩戴的无线耳机推荐

​无论你是哪种类型的运动爱好者&#xff0c;总有一款运动耳机适合你。它们不仅具备出色的音质和佩戴舒适度&#xff0c;还有各种不同的外观和功能&#xff0c;让你在运动中更加个性化。快来挑选一款属于你的运动耳机吧&#xff01; 1.南卡开放式运动耳机&#xff08;OE PRO&a…

2024年天津专升本招生计划及其收费标准

2024年天津专升本招生计划及其收费标准 天津农学院 文史类 人力资源管理 20 4400 文史类 物流管理 20 4400 理工类 人力资源管理 10 4400 理工类 物流管理 10 4400 理工类 水文与水资源工程 30 5400 有专业限制 理工类 水产养殖学 20 4400 有专业限制 天津…

大模型AI Agent 前沿调研

前言 大模型技术百花齐放&#xff0c;越来越多&#xff0c;同时大模型的落地也在紧锣密鼓的进行着&#xff0c;其中Agent智能体这个概念可谓是火的一滩糊涂。 今天就分享一些Agent相关的前沿研究&#xff08;仅限基于大模型的AI Agent研究&#xff09;&#xff0c;包括一些论…

生成式AI:SEO的末日?

由于在搜索结果中引入生成式AI (GAI)&#xff0c;以 SEO 为主导的内容的未来成为最近的热门话题&#xff0c;这是有充分理由的。 对于出版商和网站所有者&#xff08;从现在开始我们将他们称为内容创建者&#xff09;的影响可能是毁灭性的。 如下图所示&#xff0c;谷歌新的搜…

Python爬取京东商品销售数据进行数据分析示例代码,以口红为例

文章目录 一、准备工作驱动安装模块使用与介绍 二、流程解析三、完整代码四、效果展示关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面试资…

【运动规划】191 自适应跟踪kinodynamicrrt的路径

分层法&#xff1a; two layer approach 自适应控制&#xff0c;跟随轨迹。运动规划&#xff1a;扩展自由空间&#xff08;基于速度约束缩小自由空间&#xff09;为控制部分留余量&#xff0c;确保安全。 控制设计&#xff1a; 考虑平移和旋转&#xff0c;速度环控制&#xff…

【8】Spring Boot 3 集成组件:安全组件 spring security【官网概念篇】

目录 【8】Spring Boot 3 集成组件&#xff1a;安全组件 spring securitySpring Security 简介先决条件引入依赖身份验证密码存储密码存储历史DelegatingPasswordEncoder密码存储格式密码加解密类自定义密码存储 体系结构 ArchitectureServlet 过滤器DelegatingFilterProxyFilt…