Java教程

匿名通信与暗网研究深度技术

本文主要是介绍匿名通信与暗网研究深度技术,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

匿名通信与暗网

匿名通信指采取一定的措施隐蔽通信流中的通信关系,使窃听者难以获取或推知通信双方的关系及内容。匿名通信的目的就是隐蔽通信双方的身份或通信关系,保护网络用户的个人通信隐私。——MBA智库百科

匿名通信是一项技术,用于保护通信双方的隐私,使窃听者无法获取通信双方的关系及内容。匿名通信系统是提供匿名通信服务的一套完整网络,主要由提供加密服务的节点组成。暗网是匿名通信系统的其中一种表现形式,利用隐藏服务机制,使监管者无法有效监控暗网中的非法活动。

学术界对匿名通信系统研究的2个方向

专注于匿名通信系统本身,分析其安全性并提出相关的隐私增强技术:包括匿名接入、匿名路由、隐藏服务等机制的优化,流量混淆和协议伪装等技术的设计和应用。

针对匿名通信系统和暗网的攻击和监管:利用流量分析,系统/协议漏洞分析,提出去匿名化的攻击方法,包括暗网隐藏节点发现,隐藏服务定位,暗网用户的网络行为分析,暗网流量追踪,通信关系确认等。

匿名通信系统的基本工作原理

基本分类

匿名通信与暗网研究深度技术

高延迟匿名通信系统

即基于Mix算法的匿名通信系统,源于早期的Mixnet匿名通信网络,经典应用场景为高延迟邮件转发服务(Remailer),提供匿名电子邮件收发功能。该类通信系统的核心思想是利用单个Mix节点或瀑布型的多个Mix节点实现匿名通信。

Mix节点:是指网络中心向其他节点提供匿名通信服务的节点,它接受用其公钥加密的数据,并对数据进行解密、批处理、重序、增加冗余字段等处理,然后将数据传输给下一个Mix节点或最终接收者。——MBA智库百科

匿名通信网络的特点:

匿名通信系统网络中一部分节点为其他节点提供匿名通信服务;

发起者需要在发起匿名通信之前确定整个通信的传输路径,该路径在传输中不会改变;

发起者需要在发起匿名通信之前,得到整个传输路径中各个Mix节点的信息,包括地址、密钥信息等;

Mix节点对来自多个发送者的通信信息进行解密、复用、批处理、重序、增加冗余字节等处理,系统匿名较高,但通信传输的时延较高,一般不适合实时的数据通信。

基于Mix算法的匿名通信系统包括Babel、Cyberpunk(TypeI)、Mixmaster(TypeII)、Mixminion(TypeIII)等。

发展过程:

最早由chaum于1981年提出,用于邮件防追踪。核心思路基于Mix节点对输入的信息进行加密和混淆,节点隐藏了各消息间的输入和输出关系,防止攻击者对输入和输出消息进行关联

1996年,Culcu等人提出Babel,引入mix路径,通过延迟一些批量消息,来抵御流量分析攻击

2001年,Dingledine等人提出基于信誉系统的的mix节点选择技术,以提高可靠性和效率

2002年,Dingledine等人提出具有分布式信任的mix级联协议,基于信誉度重新排列mix级联,提高可靠性

2003年,Danezis提出结合"mix级联模型"和"自由路由"的受限路由mix网络,以保证消息的匿名性

2003年,Cottrell等人提出Mixmaster协议,在每个数据包末尾添加随机数据,将消息转化加密为统一大小,保证所有发送者的路由信息相同。

2003年,Danezis等人提出Mixminion协议,部署了一组冗余和同步的目录服务器系统,为电子邮件消息提供发送人和接收人匿名。

低延迟匿名通信系统

结构化P2P匿名网络,采用洋葱路由或类似洋葱路由的协议进行通信:Tor、I2P、Freedom

// Freedom为网络中的每个用户分配一个唯一身份标识,以屏蔽IP地址信息,同时利用类似洋葱路由的加密方式为用户提供匿名网页浏览等服务。

非结构化P2P匿名网络,主要采用基于DHT(distributed Hash table)的路由协议和随机游走协议:Torsk、Freenet、Crowds

// Crowds被设计用于匿名浏览网页,主要特征为节点随机选择。其所有节点都被分群,群中的每个节点都可以连接任何其他节点作为通信中继。

新型匿名通信

综合Mix技术和洋葱路由技术,可进一步提高匿名通信系统的匿名性、扩展性和性能:Taranet、Riffle、Loopix

暗网

匿名通信技术的提出源于对网络用户隐私保护的需求。然而不法用户通过Tor、I2P、Freenet等匿名通信系统提供的隐藏服务机制,架设必须通过特殊软件或进行特殊配置才能访问的服务,形成了无法被直接检索的暗网。

Dark Web:Web站点,需要特殊软件或配置才能访问,搜索引擎无法直接进行搜索。强调不可检索,不可直接访问,不强调匿名。包括:匿名Web站点(如Tor提供的隐藏服务站点),和非匿名站点(如ZeroNet提供的Web站点)。

Darknet:匿名网络,包含Web,IRC和文件共享等其他各类资源,需要特殊软件或配置才能访问,搜索引擎无法直接进行搜索。强调匿名性,所有资源都需要基于相应的匿名通信系统才能访问,资源不限于Web服务。如Tor、I2P、Freenet。

经典匿名通信系统

Tor(The Second-Generation Onion Routing)匿名通信系统

背景

1995年, 美国海军研究实验室提出开发洋葱路由,避免情报人员的网上活动不被敌对国进行监控。1997年,交由美国国防高级研究计划局(DARPA)进一步开发。2003年Tor正式版发布。2004年公开源码。

开始,该项目研究进展缓慢,直到2002年,两个MIT的毕业生Roger Dingledine和Nick Mathewson加入项目。与海军研究机构的Paul Syverson一起,2003年,3人开发了一个新版的洋葱路由,也就是Tor。

为了更好的隐藏情报人员的身份,Tor需要被很多不同的人使用,把政府情报人员的流量与普通用户的流量混在一起。 2004年底, Tor正式对普通用户发布。

洋葱路由 Onion Router

原理

洋葱路由的实现根据是Chaum的“混合瀑布”理论:消息在从发送端发送,通过一系列的代理(“洋葱路由器”),到接收端的过程中,在一条不可预测的路径上不断的重新路由转向。同时为了防止中间人窃得消息内容,消息在路由器之间传送的过程中是经过加密的。

信息封包经洋葱路由层层加密后,传送至目的端,目的端再层层解密,而其目的端回传的信息也需要经此传递链。

任一节点都无法得知在链中自己的前一个节点是传送端,还是链上的另一节点。同理,任一节点也无法知道在链中的下一节点是目的端,还是链上另一节点。只有链上的最后一个节点,知道本身是链上最终节点,即出口节点。

建立步骤

洋葱路由的组成及运作请参考网上的方式

优势

洋葱网络的优点是它没有必要去信任每一个合作的中间节点,如果一个或更多的中间节点被恶意操控,通信的匿名性仍然可以得到保证。

一个能够监视洋葱网络中所有洋葱路由器的攻击者,或许有能力跟踪消息的传递路径,但如果攻击者只能监视有限数量的洋葱路由器,那么跟踪消息的具体传送路径将变得非常困难。

Tor(The Second-Generation Onion Routing)第二代洋葱路由

Tor的核心技术是“洋葱路由 Onion Routing”。使用多跳代理机制对用户的隐私进行保护:首先,基于加权随机的路由选择算法分别选择3个中继节点,并逐跳与这些中继节点建立链路。在数据传输过程中,客户端对数据进行3层加密,由各中继节点依次进行解密。由于中继节点和目标服务器无法同时获得客户端IP地址、目的服务器IP地址和数据内容,从而保障了客户隐私。

Tor暗网的基本组件包括客户端、目录服务器、隐藏服务目录服务器、洋葱路由器(onion router,OR)和隐藏服务器。

客户端:是运行在用户操作系统上的本地程序,称为洋葱代理(onion proxy,OP)。OP将用户数据封装成Tor信元并层层加密,位各类TCP应用程序提供匿名代理服务。

洋葱路由器(OR):Tor暗网中的数据中继节点,Tor默认匿名链路由3个OR组成,分别是入口节点(entry),中间节点(middle),出口节点(exit),其中入口节点一般选择可行度较高的守护节点(guard)。

隐藏服务器:提供Web、IRC等TCP应用服务。受到Tor匿名性的保护,必须通过Tor客户端才能访问其TCP应用服务。

目录服务器:保存了所有洋葱路由器的IP地址和带宽等信息。客户端首次启用后,向目录服务器请求洋葱路由器信息,以完成节点选择和链路建立。

隐藏服务目录服务器:储存并为客户端提供隐藏服务器的引入节点(introduction point,IPO),公钥等节点信息。

以上组件的功能都集成在Tor软件包中,用户可通过配置文件对具体功能进行配置

匿名通信与暗网研究深度技术

工作方式

Tor隐藏服务器启动时,①选择3个引入节点(IPO)作为其前置代理,②并将引入节点及其公钥信息上传至隐藏服务目录服务器

客户端访问隐藏服务时,③先建立3跳链路访问隐藏服务目录服务器,获取引入节点(IPO)和公钥信息。

④客户端选择一个汇聚节点(rendezvous point,RPO)作为客户端与隐藏服务目录服务器通信链路的汇聚点,⑤并将汇聚节点的信息通过引入节点(IPO)告知隐藏服务器

⑥隐藏服务器和⑦客户端各自建立3跳链路到达汇聚节点,完成6跳链路的搭建后即可开始通信

Tor通过6跳链路访问隐藏服务器,在此过程中任意节点无法同时获知Tor客户端IP地址、隐藏服务器IP地址以及数据内容,保证了Tor客户端和隐藏服务器的匿名性。

I2P(invisible Internet project)匿名网络

是一种使用单向加密隧道的P2P匿名通信系统,采用大蒜路由,使隧道中每一跳节点只掌握相邻节点信息,无法获知通信双方的通信关系,保证通讯的匿名性。

大蒜路由是洋葱路由的一个变体,将传输的原始数据拆散为加密数据包通过多条隧道交叉疏散传递。在洋葱路由中,一条或多条数据的上传或下载公用一条隧道,而大蒜路由的上传与下载隧道相互独立,且两个方向上的隧道数量都可能大于1。——百度百科

与洋葱路由的电路交换(Circuit Switching)相比,大蒜路由也称为封包交换(Packet Switching)方式。大蒜路由是I2P与Tor及其他隐私/加密网络的主要区别之一。——百度百科

原理

I2P节点类型分为Floodfill和Nonfloodfill两类。节点默认初始身份为Nonfloodfill,其中满足性能要求的节点会自适应的成为Floodfill,其数量约占I2P所有节点的6%。

Floodfill节点保存RouterInfo和LeaseSet两类数据类型,RouterInfo包括节点ID,公钥,签名、通信协议、端口等信息;LeaseSet包括服务Hash值,隧道入口节点,起止有效时间等信息。

I2P系统根据Kademlia算法来组织所有的Floodfill节点,形成I2P的网络数据库(network database,netDB),以提供对所有RouterInfo和LeaseSet信息的保存和查询功能。

I2P拓扑结构如下图所示,每个节点根据256位路由值(router key)分布在逻辑环中,其中路由值通过SHA256算法对节点ID和当前日期计算获得。

I2P通过异或2个节点的路由值来度量节点间的距离。每个节点会选择异或距离最近的节点上传RouterInfo和LeaseSet信息。因此古玩论坛节点每天都会由于日期改变而呈现不同的逻辑分布,并将信息上传至不同的Floodfill节点,以此抵御Sybil攻击

SHA256,信息摘要算法

异或运算,相同为0不同为1

工作方式

I2P的客户端和服务器均利用多跳单项加密隧道进行通信。

节点初次加入网络时,通过官方补种网站(Reseed Website)进行补种,获取部分RouteInfo信息,并根据路由选择机制建立单向隧道。

根据用途可分为

探测隧道(exploratory tunnel):用于辅助构建、测试客户隧道,查询netDB中信息等。

客户隧道(client tunnel):用于应用服务,如Web浏览,聊天室,文件共享、邮件等。

根据传输方向可分为

输入隧道(inbound tunnel)

输出隧道(outbound tunnel)

客户端和服务器在通信过程中分别建立各自的输入隧道和输出隧道。默认隧道长度为3跳。一次完整的通信过程需要4条隧道参与。

客户端和服务器的数据先采用端到端加密,然后在客户端进行3次洋葱式加密后发送到其输出客户隧道网关(Gateway)节点,然后依次在各个节点上加密并转发到服务器,最终由服务器通过4次解密获得明文数据。

多条隧道中的节点只知道前驱和后继节点的信息,从而隐藏通信双方关系,同时单向隧道通过增加通信节点的数量,提升了通信的匿名性。

匿名通信与暗网研究深度技术

Freenet匿名网络

简介

Freenet是一个分布式的匿名信息储存和检索系统,为用户提供文件上传、下载和检索,并保证上传者和下载者的匿名性。

设计目标

保护文件下载者和发布者的匿名性——Freenet的多跳文件传输和检索机制

本地存储的可否认性——分块机密存储

能够抵抗第三方对信息可访问性的破坏——文件的冗余存储机制——保证在部分节点离开网络的情况下,文件依然具有较高的可访问性

高效的分布式存储与路由——利用DHT

完全的去中心化——非结构化的P2P架构

原理

所有节点分布在周长为1个单位的逻辑环上,按照功能可分为种子节点和非种子节点,默认的新加入节点为非种子节点。种子节点具有辅助发现节点的功能。

新节点随机产生一个[0,1)的实数,用于标记其在环上的位置,每个节点都会贡献一顶大小的本地硬盘空间,共同构成Freenet的存储空间。

Freenet节点有2种工作方式:

opennet模式:

可以和任何其他节点建立连接,与自身节点一跳的为邻居节点,邻居节点的数量与该节点带宽成正相关,最多支持85个邻居节点(版本号0.7.5)。节点间的距离是由节点间不大于0.5的弧长定义。

定义距离不超过0.01的邻居节点为近邻居,且每个节点原远邻居节点的数量不超过近邻居数量的30%,其余节点为近邻居节点。

新节点加入网络时,通过种子节点获取其他节点信息,然后选择邻居节点建立连接,从而加入Freenet

匿名通信与暗网研究深度技术

darknet模式:

节点只能和用户添加的信任节点建立连接,以保证安全性

Freenet节点通过FCP(Freenet client protocol)协议向上层应用提供匿名文件存储与检索服务,并集成基于FCP的Fproxy服务,从而提供HTTP代理,Freenet节点配置、文件上传与检索、Freesite浏览等功能。

工作方式

在文件上传前,Freenet将文件按照32KB大小切块,分别计算每块的唯一标识符,文件标识符主要分为内容哈希键值(content hash keys,CNK)和签名子空间键值(signed subspace keys,SSK)。文件的索引值可根据该键值通过SHA256哈希运算获得,索引值可转化为逻辑环上的对应位置。

在文件存储过程中,节点根据文件的位置查找距离最近的邻居节点,由其进一步迭代查找目标存储节点,最终通过该多跳查找路径将文件上传。

文件检索过程中,根据文件对应位置,利用深度优先的最近距离贪心算法查找目标存储节点。

ZeroNet网络

是一个基于BitTorrent的技术开源项目,采用早期的BitTorrent架构,强依赖于BitTorrent Tracker服务器。

BitTorrent(简称BT)是一个文件分发协议,每个下载者在下载的同时不断向其他下载者上传已下载的数据。用户之间相互转发,直到每个用户的下载都全部完成。——百度百科

用户数据采用MassagePack协议封装,并建立TCP长连接进行数据传输,每个用户只能和1000个其他用户进行连接。

ZeroNet采用椭圆曲线加密技术生产网站地址,并对站点内容进行签名和认证,并基于BIP32(bitcoin improvement proposals)方案为访问站点的用户生产标识。

每个新网站都会生成对应的公钥和私钥。私钥被网站拥有着掌握,用于对发布内容进行签名;公钥作为网站的地址,任何人可对网站内容的完整性进行验证。

工作方式

当用户请求访问ZeroNet上的网站时,客户端软件将基于BitTorrent技术从拥有该网站资源的站点(其他用户)上下载文件,并在本地浏览器进行解析。

网站所有者将访问站点的用户信息储存在ZeroNet客户端内置的SQL数据库中,在站点更新后会及时推送至用户端进行增量更新。

这篇关于匿名通信与暗网研究深度技术的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!