Sybil Attack 女巫攻击 论文阅读

摘要

大型对等系统面临故障或恶意远程计算元素的安全威胁。 为了抵抗这些威胁,许多这样的系统采用了冗余。 但是,如果单个故障实体可以显示多个身份,则它可以控制系统的相当一部分,从而破坏了这种冗余。 防止这些“ Sybil攻击”的一种方法是让受信任的机构对身份进行认证。 本文表明,在没有逻辑上集中的授权的情况下,Sybil攻击总是可能的,除非在资源奇偶性和实体之间协调的极端和不切实际的假设下。

冗余机制

为了解决来自恶意节点或者节点失效带来的安全威胁,通常会引入冗余备份机制

  1. 将相同任务复制到多个节点,多个节点储存相同的任务
  2. 将任务分为多片,分别分发给不同节点

女巫攻击

在通常的分布式网络中,每个实体只对应一个身份,实体与身份的对应应是一对一的
而对于使用远程节点,由于并不具有直接物理连接,因此只知道身份,通过身份对应不同实体
但对于故障节点,一个节点能够通过呈现多个身份来将自己伪造为多个节点,从而占据网络的控制水平,从而破坏冗余策略,对网络进行攻击。
将这种伪造多个身份的攻击称为sybil attack

可以使用身份验证机构对女巫攻击进行防御

通过第三方身份验证机构对节点进行担保,即每个加入网络的节点都必须通过第三方机构进行身份验证。可通过哈希值、密钥、DNS名称等计算机制对节点进行唯一性定义,从而防止女巫攻击,但这种方法隐含的依赖于其他机构,会损失一部分节点的匿名性。

本文中定义一种缺乏中央权限的网络

其中包括:

  • 基础实体e的集合E
    • 子集C中的每个实体c都是正确的,遵守我们定义的任何协议规则。
    • 子集F中的每个实体f都是故障的,除了受显式资源约束的限制外,它能够执行任意行为。
  • 广播通信云
  • 将每个实体与云连接的通道
    • 实体可以通过通道发送消息,从而将其广播到所有其他实体
    • 可以保证消息的传递,但是不能保证所有实体都将以相同的顺序收听消息。

网络中对相对计算资源进行了最小限制,没有实体可以执行复杂度为n的超多项式的操作
网络中排除了物理连接
网络中身份的直接形式是公钥的安全哈希

Denial of Service (DoS) 拒绝服务攻击

它针对服务器漏洞,使用特殊手段消耗服务器资源,从而达到服务器无法正常为其它客户端提供正常服务的目的。

Direct identity validation 直接身份认证

直接身份认证即直接通过对当前实体的任务,判断其是否为仅呈现一个身份

  • 即使是在资源严重受限的情况下,故障实体仍然能够伪造恒定量的多重身份
  • 每个正确实体必须能够同时验证提供给他的所有身份,否则故障实体将能够伪造无穷多的身份

可以通过令两个身份进行单个实体无法完成的任务来判断其是否是同一个实体,但这带来如下限制:
Lemma1 :如果ρ是故障实体f的资源与能力最低的实体的资源之比,则f可以为本地实体l提供g = ⌊ρ⌋个不同的身份。
提出三种机制来利用三种资源限制:

  • 通信资源:本地实体l可以广播对身份的请求,然后仅接受在给定时间间隔内发生的答复。
  • 存储资源:实体l可以通过令每个身份存储大量唯一、不可压缩的数据质疑身份。
  • 计算资源:实体l可以通过令每个身份解决唯一的计算难题质疑身份。可以使用一种验证结果的时间是恒定的哈希函数进行验证。

但为使资源限制有效,必须同时向所有身份进行验证:
Lemma 2:如果本地实体l接受了未同时验证的实体,则单个故障实体f可以向实体l呈现任意数量的不同身份。
当本地实体接受了未同时验证的实体时,故障实体可能通过反复利用相同资源的方式伪造成多个实体。对于计算、带宽等固有的基于时间地资源,lemma2是难以解决的。但对于存储,其并不是固有的基于时间的,因此实体l可以定期要求查看存储数据的新指定摘录来无限期延长质询时间。若已接受实体未能完成质疑,则被丢弃。但这种方法无疑会占用大量存储资源,可通过使用加密的有价值数据作为验证数据解决。
对于直接身份认证,若不能满足同时进行验证,则可以通过存储认证来防止女巫攻击

Indirect identity validation 间接身份认证

间接身份认证即通过其他已确认的实体为当前实体做担保,从而认为当前实体仅表现为一个身份

  • 足够多的故障实体集能够伪造无穷多的身份(拜占庭容错)
  • 系统中所有实体必须同时执行其身份验证;否则,一个故障实体将能够伪造恒定量的多重身份

间接身份认证中,可能出现的问题就是故障实体为其他故障实体做担保:
Lemma 3:如果本地实体l接受任何由q个已接受实体担保的实体,那么当|F| ≥ q 或F可用的集体资源至少等于q+|F|个最低能力实体,
一个故障实体集合F能够对l表示任意大数量的不同实体。
故障实体集首先实现q个身份,然后通过这些身份为其他身份做担保,从而实现大量故障身份。

与直接身份验证类似,间接身份验证也有并发要求,所有实体必须同时进行其资源质疑:
Lemma 4:如果集合C中的正确实体不协调它们接受身份的时间间隔,并且如果本地实体l接受由q个已接受的身份担保的任何身份,那么即使是最低能力的故障实体f也可以对l实现 g=⌊|C|/q⌋ 的不同身份。
设rM为表示一个身份所需的资源。根据假设,实体f可用的资源为rM。 将集合C划分为最小基数q的g个不相交的子集Ck。故障节点f在时间间隔Tk中使用rM资源,对Ck中所有实体表名身份ik。在不同时间间隔内重复利用相同资源rM分别对C不同的子集Ck表明ik,从而使不同Ck分别接受不同ik并为其做担保。从而使每个Ck都担保一个身份ik,实现⌊|C|/q⌋个身份。

Lemma 4 显示了多重实体同时进行质询的需求,能否同时满足质询取决于资源。

  • 对于通信资源的验证,本文系统所有通信是广播方式,因此一个实体能够同时回答任意多个实体发出的质疑。但在实际问题中,这是难以实现的。
  • 对于存储资源的验证,有理论依据能够证明无法同时进行多重验证,因为存储空间被传输的数据消耗。
  • 对于计算资源的验证,对于本文采用的哈希函数,实体能够通过对多个问题进行组合的方式同时求解。但挑战者可以根据多组问题的解是否包含特定关系,确定其是否是通过组合计算得出的。

Lemma 1与Lemma 4 类似,均认为故障实体能够扩大其影响。系统能够容忍全部身份的部分φ是故障的,能够容忍全部实体的φ/g是故障的。(g为一个故障实体能够呈现的身份数)

总结

对等系统通常依靠冗余来减少其对潜在敌对节点的依赖。如果没有通过证书颁发机构为远程实体建立独特的身份,则这些系统容易受到女巫攻击。
在没有身份验证机构的情况下,本地实体区分不同远程实体的方式是基于攻击者的资源受限实现的。实体因此可以发出对资源的挑战来验证身份,而实体可以共同汇总已分别验证的身份。 这种方法需要满足以下条件:

  • 所有实体在几乎相同的资源约束下运行。
  • 所有显示的身份均由所有实体同时进行验证,并在整个系统中进行协调。
  • 当接受未经直接验证的身份时,所需的凭证数量将超过系统范围的故障数量。

记录

直接验证

lemma 1:若故障实体资源大于最小需求资源,则能够伪造多个身份。->需限制单个实体的资源并使实体资源几乎相同。
lemma 2:若未同时验证实体则实体能够伪造多个身份。->需同时对所有实体进行验证。

间接验证

lemma 3:故障数大于所需验证节点数,因此能够伪造无穷多身份。->需满足凭证数要求大于故障数
lemma 4:若不同时进行验证,则一个节点能够伪造为|C|/q⌋个身份。->需所有实体同时进行验证

对比

直接验证中的问题1、2与间接验证中的问题3、4均只能发生在各自领域中。
lemma 2、4虽然均要求同时进行验证,其目的均是为了防止实体在不同时间片中重复利用资源,但2是为了防止其对本地实体伪造为多个身份,但4是防止其对多个实体集合分别产生不同身份,通过每个实体集合内的g个实体为其担保为ik

the base assumption of a broadcast medium

⌊p⌋ 底角括号含义:向下取整

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值