针对DHT的花式攻击与精简对策

  • 时间:
  • 浏览:123
  • 来源:区块链技术网

前言

开放且去中心化的DHT早在区块链问世前就已蔚为风行,然而网络世界上并不存在完美无暇的协议,DHT也不免有一些设计缺陷。在这篇文章中,将延伸前文来说明DHT的若干弱点以及可能的对策。区块链研究实验室 | 连Ethereum都在用!用一个例子彻底理解DHT

关于纸条协定的补充

接续前文的纸条协定:

 

纸条协定

1. 纸条正面需须标注目标T,纸条背面须标注请求

2. S与T的距离为其二人座位的直线距离

3. T的邻员都知道T的小考分数

4. S只知道坐在S邻员的座号并写在邻员名单中

5. S只能传纸条给在S邻员名单中的R且R与T的距离须小于S与T的距离

 

查询

在上课时传纸条给X号同学,问他的小考分数

 

然而以上的叙述并未说明一个关键的环节:发起查询的人要如何得知目标的座号(键值)?在这里,我们必须使用座位表来得知目标的座号:

 

座位表

1. 座位表是座号与位置的对照表

2. 座位表是得知座号的唯一方式

3. 座位表需不停地在所有人之间流传

4. 全班只有一份座位表

 

座位表其实就是DHT的索引表,也就是键值的列表,它可以让节点掌握DHT上可查询内容的键值。为什么需要索引表?这是由于在最初只有在DHT写入内容的节点知道该内容的键值,其他节点只能透过索引表获得DHT全局的概观,这对档案分享类的应用(例如BitTorrent)尤其重要。

 

针对DHT的攻击手法

接下来,笔者将继续延续纸条协定来简述这些攻击的精要。许多文献都曾探讨过针对DHT的攻击手法,它们大致可以总结成7种。我们假设攻击者是一个具有破坏意图的个体,暂且称呼其为E;而受害者可能是单个或多个个体,我们称呼其为V:

 

女巫攻击(Sybil Attack):很多E的同伙加入班级,E一个人支配了全班。

在DHT中,能代表节点「身份」的只有节点编号,然而节点编号过于单薄且易于修改,因此攻击者可以大量制造虚假的身份潜入并进而控制整个网络。身份是一个难解的问题,在当今的网络协议我们只能倚赖少数的权威(例如政府或网络服务商)提供对身份的认证,这显然不是去中心化且注重隐私的做法。

 

日蚀攻击(Eclipse Attack):E串通了V的邻员,使V被孤立,且E能得知V所有纸条的内容。

由于节点编号可以被自由更动,因此攻击者可以选定特定受害者并修改攻击节点的编号使其与受害者距离接近,如此受害者的路由表内就会被攻击者的节点占据。一旦受害者被「隔离」在攻击者的网络内部,攻击者就可以阻断、监控、甚至窜改受害者的查询讯息。

 

扰动攻击(Churn Attack):E在上课途中经常进出教室,让V查不到分数,且影响V讯息接力的效率。

由于加入/退出DHT几乎不需要耗费任何资源,攻击者可以频繁地进出网络,使邻近节点疲于更新路由表,造成网络阻塞及脱机资源无法取得。尤其在Chord缺乏冗余(路由表在每个区间只对应一个节点)与路由更新流程相当繁琐(需要4个步骤)的条件下,其对扰动攻击更是无法抵抗。

 

敌对路由(Adversarial Routing):E乱传V的纸条。

在DHT开放的环境下,参与者的行为是不可预期的,攻击者可以无视路由表而将讯息接力给攻击者的隔离网络或直接拒绝处理,这种攻击对于缺乏冗余的Chord来说相当棘手。一个运作良好的开放分布式系统需奠基于参与者的正常行为;而一个设计良好的开放分布式系统则要能确保系统运作良好,意即其能奖励正常行为及惩罚随机行为或者能约束随机行为的发生。在这样的定义之下,缺乏奖惩机制与约束机制的DHT并不是一个设计良好的开放分布式系统。

 

污染攻击(Pollution Attack):E窜改自己的分数,使V拿到错误的分数。

污染攻击与敌对路由手法同样地简单而暴力:攻击者直接回传错误的结果使查询失败,对缺乏冗余的Chord也同样很棘手。尽管只需比对内容的哈希值与键值就能检查内容是否受到污染,然而具足够规模的污染仍能瘫痪整个网络。

 

索引投毒(Index Poisoning):E在座位表传到自己时,窜改V的座号。

DHT必须透过索引表来获得对全局的概观,而索引表通常由第三方服务进行管理(例如BitTorrent的种子网站),这些服务对档案分享类的应用至关重要。然而,第三方服务无法阻止攻击者对DHT大量注入无意义甚至有害的资源(例如木马程序)污染索引表。这些有害资源伪装成有意义的资源(你知道的)以引诱使用者下载,且攻击者自身几乎不需要负担任何成本(不占用自身带宽)。

 

服务阻断(Denial of Service):E不停地传纸条,让V没空传其他人的纸条。

服务阻断就是攻击者透过各种手段耗竭服务提供商有限的资源导致其无法再提供任何服务,以达成瘫痪服务的目的。由于任何协议都受限于网络带宽与运算资源,因此对DHT只需发起大量查询令节点疲于应付,便能使其资源耗竭(内存/硬盘空间/带宽等)。尽管DHT具有去中心化与规模化的特性,在体质上对服务阻断有较高的抗性,但仍无法幸免于具足够规模的服务阻断。

 

对弱点的解决对策

上述的攻击情境可以总结出几个主要弱点:

1. 可以随意进出教室(加入/退出网络的成本极低)

2. 可以不断地传纸条询问分数(服务请求成本极低)

3. 缺乏做好事的动机(缺乏奖惩机制)

4. 缺乏对随机行为的约束(缺乏共识机制)

5. 可以轻易形成多数(身份单薄易于制造)

 

事实上,这些并非DHT独有的问题 — 几乎所有开放分布式系统都必须处理这些问题。对DHT来说,这些方案的对策大多很直观:

 

针对第1点的对策是让进出教室的成本提高,例如 S/Kademlia 就是其中一种应用此对策的改进方案:要先交作业才能进教室且每次进教室的座号不同,跟作业成绩有关。

 

针对第2点的对策是使用者付费,让询问分数者需支付手续费(或其他稀缺资源);针对第3点的对策是让表现好的记功、表现不好的记过,而记功多的可以参与更多讯息接力,获得更多利益;记过多的则会逐渐被排除于网络外,失去参与资格。

 

针对第4点的对策是每个人在行动前需经所有人投票表决,投票者可以检验个别行为是否符合规则,用多数行动(Majority Action)来取得对个别行动的共识(Consensus)以藉此约束随机行为。Robust Communication Protocol 即采取这种策略:每个人要传纸条前需与自己的左右邻员投票表决。

 

针对第5点,除了使用权威认可的身份之外,其中一个可能的方案是去中心化身份(Decentralized Identity),自从区块链问世后这个领域被再度重视。

 

DHT上能发行密码货币吗?

当然可以,然而此货币之安全性是堪忧的,因为一个稳定可靠的货币必须奠基于其对随机行为的抗性,这种抗性称为拜占庭容错(Byzantine Fault Tolerance),这也是区块链一个重要的性质。

 

具备共识机制的DHT是一个值得探索的改进方案。有趣的是,这样的改进方案被视为是一种区块链分片(Sharding):各分片维护自己的共识,不同分片之间透过基于键值的路由(Key-based Routing)来削减对主链的依赖。

 

Holochain 是一个基于DHT的去中心化应用程序平台(Dapp Platform),它对货币则持有不同的看法:货币也可以是一种只存在于交易双方之间的相互信用(Mutual Credit),这是一个很有趣的观点,然而这并未解决DHT的根本缺陷。

 

结束语

DHT除了逐渐被视为区块链分片的一种思路,也开始在一些区块链项目中成为负责数据储存的基础建设。这篇文章总结了DHT的弱点以及可能的对策,希望读者能对DHT的优势劣势有更清晰的认识。


猜你喜欢

区块链红利吃饱后,这个巨头又想"征服"元宇宙?

据12月26日消息,百度与英伟达(NVIDIA)已达成协议,双方合作共建AI元宇宙。另外,在今日举行的百度AI开发者大会上,英伟达全球副总裁暨亚太区总裁 Raymond Teh将受邀出席,并发表主题演讲。

2021-12-27

2021年,区块链股权融资发生了怎么样的演变

过去一年,区块链行业融资井喷,在科技领域中独树一帜,A16z、红杉、老虎基金等等这些顶级机构在 2021 年的区块链行业肆意驰骋,在 DeFi、NFT、Metaverse 等领域扶持了一众创业项目。

2021-12-23

两个元宇宙的世界观,以及和区块链的关系

“元宇宙”这个名词音好听但义很难传达准确,想要更准确地理解义,取名为平行宇宙、竞争宇宙、山寨宇宙,更好。对应的,我们现在肉身所处的宇宙,我们称之为“肉身宇宙”。

2021-12-22

Alien Worlds(外星世界)区块链打金挖矿指南

Alien Worlds(外星世界)是一款4月就开始的游戏,10月27日又上线了全新的任务(Missions)游戏模式; 在WAX用户量排名中Alien Worlds(外星世界)一直排在前三,说明现在存量工作室还有很多;

2021-12-17

DeHorizon(地平线)区块链打金教程

今天我们就解析在一款社交主题游戏 — DeHorizon

2021-12-17