P2P网络文件追踪与Foxy网络规则验证研究
1. 主动文件追踪实验
在这个实验中,使用了一个叶节点对P2P网络中的统一资源名称(URN)进行查询。从关键词搜索结果和实验2中记录的消息里,选取了与关键词A和B相关文件的文件URN。连续五天,每天针对关键词A和关键词B的文件分别进行两次URN搜索,搜索结果由节点进行记录。
对这些数据进行分析,以确定第一天包含某个文件的唯一节点,以及该文件随后的传播情况。虽然无法确定节点何时下载了文件,但如果一个节点出现在搜索结果中却不拥有该文件,那么有可能该节点最近下载了此文件。
关键词A文件的五天追踪信息如下表所示:
| 日期 | 拥有文件A的唯一节点数 | 之前见过的节点数 | 新增节点数 |
| — | — | — | — |
| 第一天 | 25 | 0 | 25 |
| 第二天 | 27 | 21 | 6 |
| 第三天 | 33 | 23 | 4 |
| 第四天 | 32 | 32 | 6 |
| 第五天 | 33 | 33 | 0 |
关键词B文件的五天追踪信息如下表所示:
| 日期 | 拥有文件B的唯一节点数 | 之前见过的节点数 | 新增节点数 |
| — | — | — | — |
| 第一天 | 7 | 0 | 7 |
| 第二天 | 5 | 5 | 0 |
| 第三天 | 8 | 7 | 1 |
| 第四天 | 6 | 6 | 0 |
| 第五天 | 5 | 5 | 0 |
结果显示,对于热门关键词(关键词A)对应的文件,拥有该文件的新节点数量在三到四天后急剧减少。而对于热度一般的关键词(关键词B),每天拥有该文件的新节点数量几乎为零。
2. Foxy P2P网络概述
Foxy对等(P2P)网络采用Gnutella 2协议,曾是最受欢迎的中文文件共享应用程序之一。它旨在基于搜索的网络中共享带有繁体中文字符关键词或文件名的文件。2009年,台湾当局取缔了Foxy客户端应用程序的发布商,但Foxy网络仍用于P2P文件共享。借助Foxy特定的GWebCaches服务器(用于Foxy的Gnutella 2 Web缓存服务器),Foxy客户端仍可连接到Foxy网络。
由于一些广为宣传的信息泄露事件,人们开始关注在Foxy网络中识别首个上传者(种子节点)的问题。一般来说,文件共享的P2P网络有两种类型:基于链接的网络(如BitTorrent)和基于搜索的网络(如eDonkey、Gnutella、Gnutella 2和Foxy)。事实证明,在基于搜索的P2P网络中识别首个种子节点更为复杂。
在基于链接的P2P协议中,链接和源文件的准备与发布相互关联。只有在资源链接发布后,相关文件才能被下载。调查人员可以根据提供的链接立即开始监控要共享的文件,并能从大量下载者中检测出拥有100%文件的用户。由于上传者在资源链接发布前无法共享文件,因此监控资源链接的首次出现就足以让调查人员检测到首个种子节点。
2007年,开发了用于监控BitTorrent协议的工具BTM。BTM监控BitTorrent用户访问的公共网络论坛,以收集种子文件(BitTorrent中用于下载的种子文件)。通过模拟BitTorrent客户端,BTM从跟踪器和对等节点收集通信信息。基于对收集到的数据(包括对等节点拥有的文件内容百分比)的分析,就有可能识别出拥有100%文件的用户,这些用户可被假定为首个种子节点。
然而,并非所有P2P协议都允许文件请求者确定对等节点拥有文件的百分比。例如,BTM策略无法应用于Foxy文件共享网络,因为Foxy网络客户端使用基于搜索的P2P协议Gnutella 2来定位文件。
基于搜索的P2P协议不需要用户在共享文件之前进行公告或发布,也没有机制让对等节点确定另一个对等节点拥有文件的百分比。实际上,文件可以在任何时间发布,甚至在文件的关键词在互联网上公布之前。由于发布文件和公布关键词之间没有直接联系,因此需要不同的策略来识别基于搜索的P2P网络中的首个种子节点。
3. Foxy网络规则及问题
2009年,为Foxy P2P网络调查引入了启发式规则。其中一个关键规则是:
规则1:如果在缓慢上升期发现一个种子对等节点可达且可连接,那么该种子对等节点就是首个上传者。
为支持该规则,引入了两条补充规则来确定缓慢上升期,并引入了两条限制规则来处理失败情况。这些规则可用于识别首个种子节点,但规则的准确性尚未得到验证。
这些规则无法验证的原因是进行验证的平台未被定义。在对等文件共享环境中,首个上传者不太可能宣布自己是首个种子节点。因此,即使识别出了上传者,也很难确认该上传者确实是Foxy网络中的首个上传者。
在一次实验中,设置了一个受控环境并发布了一个种子文件供下载。但发现除非种子文件很受欢迎并吸引了大量下载者,否则该文件不会被搜索,更不用说被下载了。
在实际Foxy网络上进行的下载实验经过了精心设计。通过监控和选择热门动画系列视频的中大型文件,并选择每周有新剧集的动画系列,确保了每集文件不会在特定时间(即播放时间)之前创建或发布,从而减少了上传文件的等待时间。
然而,实验结果存在很大的不确定性。首先,怀疑单个可观察到的种子节点应该是首个种子节点,但无法确认。因为以目前的技术,任何一个实体都无法监控整个Foxy网络,所以单个观察到的种子节点可能不是首个种子节点。其次,一些因素(如Foxy集线器的平稳效应)在真实的Foxy环境中无法评估。在Foxy网络中,集线器和群组是根据情况和程序设置定义的,因此很难轻易实现连接到Foxy网络的集线器数量的增加或减少。第三,由于没有控制因素来定义实验环境(如传入下载者的到达时间以及上传者和下载者的文件传输比率),无法重复任何实验。因此,决定使用能够如实反映Foxy网络环境行为的模拟器来验证规则。
4. Foxy监控规则
在详细介绍Foxy监控规则之前,先列出本次研究中使用的符号:
- X:种子节点的数量。
- Ti:第i个种子节点出现的时间。
- T1:第一个种子节点(X = 1)出现的时间。
- Rj,i:种子节点数量的变化率(= (Xj - Xi) / (Tj - Ti))。
- Te:缓慢上升期结束的时间。
- TR:第二个种子节点出现时间的上限(在相关研究中推导得出)。
之前提出的启发式规则如下:
规则1:如果在缓慢上升期发现一个种子对等节点可达且可连接,那么该种子对等节点就是首个上传者。
规则1被细化为以下Foxy监控规则:
规则R1:从T1到Ts,第一个观察到的种子节点是初始种子节点。
为满足规则R1的要求,根据两种方案(方案1和方案2)定义模拟的结束时间Ts,其中Ts = min(TR, Te):
- 方案1:使用固定时间T。TR的上限 = T1 + 文件大小 / 数据速率(根据相关研究)。
- 方案2:根据种子节点增量随时间的斜率变化动态测量Te。如图1所示,如果Re + 4,e > Re,1,则Te应该是缓慢上升期的结束时间。需要注意的是,Te是曲线进入快速上升期的时间。
从图1的模拟结果来看,Ts = 110, 304秒,种子节点数量X = 1。根据规则R1,单个观察到的种子节点就是首个种子节点。
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
A([开始模拟]):::startend --> B{选择方案}:::process
B -->|方案1| C(计算TR上限):::process
B -->|方案2| D(动态测量Te):::process
C --> E(确定Ts = min(TR, Te)):::process
D --> E
E --> F(观察种子节点):::process
F --> G{是否为T1到Ts内首个观察到的种子节点}:::process
G -->|是| H(判定为初始种子节点):::process
G -->|否| I(继续观察):::process
I --> F
H --> J([结束模拟]):::startend
5. 实验设置
为了帮助验证Foxy监控规则,开发了新的Foxy模拟器FoxyNS3。之前开发的离散事件模拟器SimFoxy未被使用,因为它无法完全模拟和解释真实P2P网络中出现的网络连接性和拥塞行为的重要方面。
SimFoxy模拟器专注于离散事件模拟,所有下载事件都基于估计的文件数据包传输时间进行模拟。传输时间根据数据包大小以及下载者和上传者的带宽计算得出。当网络中出现额外的下载者时,假设可用网络带宽由下载者共享。但在真实的Foxy网络中,带宽不仅由下载者共享,网络中的流量拥塞也会影响下载时间。
SimFoxy的另一个问题是没有模拟最大网络连接数,因此没有考虑上传者和下载者连接限制对下载时间的影响。更重要的是,SimFoxy仅用于分析文件传输协议,没有考虑和模拟文件搜索机制以及Foxy网络拓扑。由于连接到集线器的叶节点数量和连接到叶节点的集线器数量有限,在真实Foxy网络的任何部分都无法完全记录搜索查询响应,这显然影响了Foxy网络模拟结果的准确性。
新的FoxyNS3模拟器基于流行的离散事件网络模拟器ns - 3构建。ns - 3模拟器由Python包装,包含一个C++库,提供了一组以C++对象实现的网络模拟模型。一个重要的优势是ns - 3能够在网络层面模拟Gnutella 2协议,实际上可以通过文件数据包交换来模拟网络活动。
FoxyNS3是一个与ns - 3模拟模型库交互的C++程序。主要的模拟配置、模拟网络拓扑和网络配置参数在文件test - gnutella.cc中定义,该文件控制整个模拟器。
在实验中采用了CSMA网络拓扑,这种拓扑已用于其他P2P文件共享协议的网络模拟。FoxyNS3的configure.txt文件定义了所有节点连接设置,包括连接设置时间、搜索时间、节点连接速率、网络离开时间和重新搜索时间。
FoxyNS3模拟器使用三个关键组件来模拟Foxy网络:引导服务器、集线器节点和叶节点模型。
- 引导服务器:bootstrap.cc文件定义了GWebCache服务器的行为。引导程序收集可用集线器节点的列表,并将该列表返回给新连接的叶节点。为了减少模拟期间的网络连接和内存使用,引导服务器在将叶节点连接到集线器后,会与叶节点和集线器节点断开连接。
- 集线器节点模型(hub - node.cc):用于模拟Foxy网络中集线器节点的行为。它具有真实Foxy集线器节点的一些特征,特别是作为连接到叶节点的节点,但特定集线器节点可连接的叶节点数量有限。当达到可连接到集线器节点的最大叶节点数量后,新的叶节点连接请求将被拒绝。同时,还会维护可用上传者列表。当连接的叶节点或集线器节点向集线器节点提交文件请求时,如果文件请求未超过生存时间限制,该节点会检查请求的文件是否在任何节点上可用,然后将文件请求转发并广播给其叶节点或集线器节点。在模拟中,简化了集线器搜索,仅返回叶节点可以连接的集线器,而不提供无法访问的集线器。也就是说,集线器节点不会参与文件下载,这在不影响拓扑的情况下加快了网络的初始设置。
- 叶节点:在整个模拟过程中,作为文件的请求者和接收者,与集线器节点进行交互以获取文件资源。
通过这样的实验设置,可以更准确地模拟Foxy网络的行为,从而对Foxy监控规则进行有效的验证。
6. FoxyNS3模拟器优势总结
FoxyNS3模拟器相较于之前的SimFoxy模拟器,具有多方面的显著优势,具体如下表所示:
| 对比项 | SimFoxy | FoxyNS3 |
| — | — | — |
| 网络连接性和拥塞行为模拟 | 无法完全模拟和解释 | 能有效模拟网络连接性和拥塞行为 |
| 带宽处理 | 假设带宽仅由下载者共享 | 考虑流量拥塞对下载时间的影响 |
| 最大网络连接数模拟 | 未进行模拟 | 考虑上传者和下载者连接限制对下载时间的影响 |
| 文件搜索机制和网络拓扑 | 未考虑和模拟 | 能模拟文件搜索机制以及Foxy网络拓扑 |
| 搜索查询响应记录 | 无法完全记录 | 能更准确记录搜索查询响应 |
这些优势使得FoxyNS3能够更真实地反映Foxy网络的实际情况,为验证Foxy监控规则提供了更可靠的环境。
7. 规则验证的重要性及意义
在Foxy P2P网络中,准确识别首个种子节点对于解决信息泄露等问题至关重要。而规则验证则是确保所制定的识别规则准确性的关键步骤。
通过使用FoxyNS3模拟器进行规则验证,可以避免在真实网络环境中面临的诸多难题,如无法确认首个上传者身份、难以控制实验环境变量以及无法重复实验等。验证后的规则能够更有效地帮助调查人员在Foxy网络中识别首个种子节点,从而更好地应对信息安全挑战。
8. 未来展望
虽然目前已经取得了一定的研究成果,但在Foxy P2P网络规则验证和监控方面仍有许多工作可以进一步开展。
未来可以尝试进一步优化FoxyNS3模拟器,使其能够更精确地模拟Foxy网络的各种复杂情况。例如,可以考虑增加更多的网络因素,如不同地区网络延迟的影响、不同时间段网络流量的变化等。
还可以探索如何将验证后的规则应用到实际的网络安全监控系统中,提高对Foxy网络中违规行为的检测效率和准确性。
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
A([当前研究成果]):::startend --> B(优化FoxyNS3模拟器):::process
A --> C(应用规则到实际监控系统):::process
B --> D(考虑更多网络因素):::process
C --> E(提高违规行为检测效率):::process
D --> F([更精确模拟网络情况]):::startend
E --> G([更好应对网络安全挑战]):::startend
9. 总结
本文围绕P2P网络文件追踪和Foxy P2P网络规则验证展开了研究。在主动文件追踪实验中,通过对关键词A和B文件的五天追踪,发现热门关键词和一般热度关键词对应文件的新节点拥有情况存在明显差异。
对于Foxy P2P网络,由于其基于搜索的特性,识别首个种子节点更为复杂。之前提出的启发式规则虽有一定作用,但准确性未经验证。为解决这一问题,开发了FoxyNS3模拟器,它克服了SimFoxy的诸多不足,能够更准确地模拟Foxy网络行为。
通过定义新的Foxy监控规则和进行相应的实验设置,为规则验证提供了可行的方法。验证后的规则对于保障Foxy网络的信息安全具有重要意义,未来还可以在模拟器优化和规则应用方面进行进一步的探索。
以下是整个研究过程的关键步骤总结:
1. 进行主动文件追踪实验,记录关键词A和B文件的相关数据。
2. 分析Foxy P2P网络特点,明确识别首个种子节点的困难。
3. 提出启发式规则并指出验证难题。
4. 开发FoxyNS3模拟器,克服SimFoxy的缺陷。
5. 定义Foxy监控规则并设置实验环境进行验证。
6. 总结研究成果并展望未来研究方向。
通过这些步骤,逐步深入地对Foxy P2P网络规则进行了研究和验证,为网络安全领域的发展提供了有价值的参考。
超级会员免费看
3068

被折叠的 条评论
为什么被折叠?



