http://www.7klian.com

隐私加密系列|详解分布式哈希表DHT

· 存储进程利用查找进程来定位最靠近键的节点,这时它将向这些节点发出STORE RPC动静。每个节点城市从头宣布⟨key,value⟩对,以提高数据的可用性。取决于实现方法,数据最终大概会逾期(譬喻24小时)。因此在该期限到期之前,大概要求原始宣布者从头宣布数据。
2. 它会接洽一些它知道的节点。
· 有可信的中心权威或安详的分手的方案来宣布身份。
这些系统回收了差异的要领来在网络上定位资源:
假设我们有一个网络,它的节点id是通过一些随机的oracle完全随机选择的。敌手首先执行join/leaves,直到在该keyspace中有节点为止。之后,它们将举办轮次处理惩罚,保存位于I的节点并从头插手不属于I的节点,直到在该时距离断内得到节制权为止。
2002年颁发的Kademlia论文提供了利用XOR(⊕)运算符确定间隔以及网络中对等节点的位置的新颖思想。界说为:

Symmetry: a⊕b=b⊕a
举办日食进攻的本钱在很洪流平上取决于网络的体系布局,范畴从少数呆板(譬喻,一台呆板上有数百个节点实例)到需要成熟的僵尸网络。
Kademlia是一个相对简朴的协议,它只包括四个长途进程挪用(RPC)动静,这有助于两个独立的存眷点:对等发明和数据存储/检索。
查询措施(Lookup Procedure)
但愿插手网络的节点没有已知的接洽人。为了使节点在网络上成立本身节点,它必需接洽一个或多个引导节点。这些节点在任何方面都不是非凡的,只是列在一些预界说的列表中。它们只是作为请求节点的第一个接洽点,以便让更多的网络知道并找到其最靠近的对等点。
给定节点ID,查找进程答允节点定位其他节点。该进程从启动器同时查询与其知道的方针节点ID最靠近的α(并发参数)节点开始。查询的节点返回它知道的k个最近的节点,然后查询节点轮番举办,查询越来越近的节点,直到找到该节点为止。在此进程中,查询节点和中间节点都彼此相识。
引导节点(Bootstrapping a Node)
Kademlia一些值得留意的进攻:
1. 毗连节点生成一个随机ID。
A⊕D=1011(11)
BitTorrent是现存最大的分手式网络之一,其包括的并发用户数千万,勾当用户数亿。据预计BitTorrent网络每月有25亿用户。停止2019年,Tor拥有约9000台中继处事器和200多万用户。
3. 它发送新生成的节点ID的FIND_NODE查找请求。
该当留意,这是由XOR怀抱捕捉的。譬喻给定节点A(1100)具有对等端B(1110),C(1101),D(0111)和E(0101),到节点A的间隔为:
节点选择一个n位ID,该ID将提供应网络上的其他节点。网络设计依赖于通过一些随机进程匀称漫衍的节点ID。节点的位置由其ID的最短独一前缀确定,该前缀形成一个树布局,节点ID为叶子。当节点从头插手网络时,应从头利用此ID。下图显示了三位密钥空间中的二进制树布局:

A⊕E=1001(9)
· 节点与当前网络机关之外的节点保持接洽。
每个节点将接洽人组织到一个名为路由表的列表中。路由表是一个二叉树,个中叶子是“bucket”,最多包括k个节点。k是一个网络范畴的参数,应该足够大,以确保查找和数据以高概率可用。这些bucket被恰内地定名为k-bucket,而且包括一些具有民众节点ID前缀的节点。
· STORE-请求存储 ⟨key,value⟩对。
· PING/PONG-用于确定伙伴的勾当状态。
节点插入进攻
Kademlia容易受到日蚀进攻。这将在下一节中接头。
协议
跟着对等方不绝彼此交换,这些列表会不绝更新以确保网络完整性。
Kademlia被设计为在漫衍式对等(P2P)网络中存储和查找内容的有效手段。它具有很多其他DHT无法同时提供的焦点成果,譬喻:
· 检索进程遵循与存储沟通的逻辑,除了发出FIND_VALUE RPC和吸收数据外。
DHT网络有效地分派了对路由信息和数据的复制存储和检索的责任。这种漫衍答允节点以最小或没有间断的方法插手和分开。网络可以具有大量的节点(在BitTorrent的环境下为数百万个节点),而每个节点不必知道网络中的每个其他参加者。这样,与典范的会合式系统对比,DHT本质上具有更强的抵制恶意进攻者的本领。
以下RPC动静是Kademlia协议的一部门:
· 将真实的标识符(IP地点、MAC地点等)靠得住地毗连到节点标识符,并拒绝反复的阈值。
有许多要领可以得到引导节点,包罗向设置添加地点和利用DNS种子。毗连进程描写如下:
由于无法验证节点的ID,进攻者可以选择其ID以占用网络中的特定密钥空间。一旦进攻者以这种方法插入本身,他们大概会审查或操纵该keyspace或eclipse节点中的内容。
· 身份必需独立于某些随机预言。

DHT网络设计答允网络容忍呈现妨碍的节点而不会呈现妨碍,并答允网络局限无限增加。

⟨key,value⟩对凡是存储在网络的一个子会合,凡是以某种“靠近”的方法存储。

日蚀进攻
· Napster利用了中央索引处事器,这是一个单点妨碍,很容易受到进攻。

· 操作社交信息和信任干系。
对等发明(Peer discovery)
最月朔个节点的路由表不填充k-bucket,可是可以在一个k-bucket中包括一个节点。跟着更多节点的呈现,它们会被添加到k-bucket中,直到k-bucket满为止。此时,节点将bucket分成两部门:一部门用于与自身共享沟通前缀的节点,另一部门用于所有其他节点。

4. 节点存在算法抵挡某些根基的漫衍式拒绝处事(DDoS)进攻。
Non-negativity: a⊕b>0 for a≠b
结  论
A,B和C共享沟通的前缀,直到前两个最高有效位(MSB)。可是A,C和D不共享前缀位,因此相距较远。在这个例子中,A、B和C在同一个bucket中,D和E在它们本身的bucket中。
· FreeNet利用了基于密钥的路由。可是它的布局比DHT少而且不能担保可以找到数据。
漫衍式数据存储
DHT网络的特征
应对法子:
女巫进攻
应对法子:

k-bucket排序

这担保了对付bucket j,个中0<=j<k,节点A的路由表中至少有一个节点N

Kademlia
哈希表是将键映射到值的数据布局。哈希函数用于计较插入表中的键,今后可以从中检索值。顾名思义,漫衍式哈希表(DHT)是漫衍在很多链接节点之间的哈希表,这些节点协作以形成单个内聚哈希表处事。节点毗连在一个称为包围网络的网络中。包围网络只是成立在另一个网络之上的通信网络。互联网就是一个例子,它始于民众互换电话网络上的包围网络。

XOR怀抱隐式捕捉了先前树布局中的间隔观念。
对等发明(Peer Discovery)
DHT按照给定算法利用各类技能来实现这一方针。可是它们有很多配合点:
· 有一些隐式或显式的毗连进程。
· 通信仅需要通过某种算法确定的邻人之间产生。
路由表
Identity: a⊕a=0
2. 节点有足够的信息通过低延迟路径路由流量。
A⊕C=0001(1)
XOR Metric
· Gnutella搜索效率低下,因为查询将导致信息泛滥到网络中。
· 他们执行对端查找,数据存储和检索处事。
1. 节点彼此相识所需的动静数量最小化。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读