引用格式
Douceur J R . The Sybil Attack[C]// Peer-to-Peer Systems, First International Workshop, IPTPS 2002, Cambridge, MA, USA, March 7-8, 2002, Revised Papers. Springer, Berlin, Heidelberg, 2002.
获取路径
正文
摘要
大型对等系统面临故障或恶意远程计算元素的安全威胁。 为了抵抗这些威胁,许多这样的系统采用了冗余。 但是,如果单个故障实体可以显示多个身份,则它可以控制系统的相当一部分,从而破坏了这种冗余。 防止这些“ Sybil攻击”的一种方法是让受信任的机构对身份进行认证。 本文表明,在没有逻辑上集中的授权的情况下,Sybil攻击总是可能的,除非在实体间资源均等且协调的极端和不现实假设中。
1 Introduction
我们认为,在分布式计算环境中,最初未知的远程计算元素呈现令人信服的不同身份实际上是不可能的。在没有逻辑集中的、可信的授权机构保证保证实体和身份之间的一对一对应关系的情况下,一个陌生的实体可能能够呈现多种身份,除非是在无法显示实现的大规模分布式系统中。
对等系统通常依靠多个独立的远程实体的存在来减轻敌对点的威胁。许多系统为防止完整性冲突(数据丢失)在多个远程站点之间复制计算或存储任务[3、4、8、10、17、18、29、34、36]。其他系统则将任务分散在多个远程站点中,以防止侵犯隐私(数据泄漏)[5、6、7、16、28]。 无论哪种情况,利用系统中的冗余都需要具有确定两个表面上不同的远程实体实际上是否不同的能力。
如果本地实体对远程实体没有直接的物理知识,则它只能将它们视为我们称为身份的信息抽象。系统必须确保不同的身份指向不同的实体;否则,当本地实体选择身份的子集以冗余地执行远程操作时,可能被蒙蔽而多次选择同一个远程实体,从而使冗余被破坏。我们将伪造多个身份称为对系统的女巫攻击(sybil attak)。
试图构想一个系统,在该系统中,已建立的身份可以证明其他身份,以便实体可以通过信任多个(可能是独立的)签署者的集体保证来接受新的身份,类似于人类实体的PGP信任网络[37]。然而我们的结果表明,在没有可信的身份验证机构(或对攻击者可用资源不切实际的假设)的情况下,女巫攻击会严重损害身份的初始生成,从而破坏凭证链。
身份验证机构可以采取多种形式,而不仅仅是像VeriSign这样的明确的认证机构[33]。例如CFS协作存储系统通过其IP地址的哈希值标识每个节点[8]。SFS网络文件系统通过将主机标识符附加到DNS名称来命名远程路径[23]。EMBASSY平台将机器与嵌入设备硬件的密钥进行绑定[22]。 这些方法可以阻止女巫攻击,但是它们隐含的依赖于受信任的机构(例如ICANN [19]或Wave Systems [35])的权威来建立身份。
在以下部分中,我们定义了缺乏中央权限的分布式计算环境的模型。在此模型的基础上,第3节证明了一系列论点,这些论点严重限制了实体确定身份的能力。 第4节调查相关工作,第5节总结。
2 Formal Model
作为结果的背景,我们构建了通用分布式计算环境的正式模型。 我们的模型定义隐含地限制了恶意实体的妨碍能力,从而加强了我们的负面结果。 图1中示意的体系包括:
- 基础实体e的集合E
- 广播通信云
- 将每个实体与云连接的通道
集合E分为两个不相交的子集C,F。子集C中的每个实体c都是正确的,遵守我们定义的任何协议规则。子集F中的每个实体f都是故障的,除了受显式资源约束的限制外,它能够执行任意行为。(尽管“honest”和“deceptive”之类的词可能更合适,但“correct”和“faulty”是拜占庭式容错领域中的标准[21]。)
实体通过消息进行通信。 消息是不间断的有限长度的位字符串,其含义由一组实体之间的显式或隐式协议确定。实体可以通过通道发送消息,从而将其广播到所有其他实体。 该消息将在有限的时间间隔内被所有实体接收。可以保证消息的传递,但是不能保证所有实体都将以相同的顺序收听消息。
该模型具有两个值得注意的特征:首先,它非常通用。 通过不指定云内部,该模型实际上包括共享网段,专用链路,路由器,交换机或其他组件的所有互连拓扑。 其次,此模型中的环境非常友好。 特别是在没有资源限制的情况下,拒绝服务攻击是不可能的。 来自正常运行实体的消息保证能够到达所有其他正常运行实体。
我们对每个实体可用的相对计算资源进行了最小限制,即存在一些安全参数n,所有实体都可以对其执行计算复杂度为n的(低阶)多项式的操作,但没有实体可以执行复杂度为n的超多项式的操作。这种限制允许实体使用公钥密码学[24]建立私有且经过身份验证的虚拟点对点通信路径。 尽管这些虚拟路径与点对点物理链接一样安全,但它们只有由相互确认的成对实体才能创建。 我们的模型排除了实体之间的直接链接,因为物理链接提供了不同远程实体集中提供验证的一种形式。同样,在现实世界中,数据包可能会被察觉或欺骗,因此广播媒体(通过加密技术增强)的基本假设并非不切实际。
身份是一种抽象表示形式,可在多个通信事件之间持续存在。 每个实体e尝试向系统中的所有其他实体展示身份i。(在不失一般性的前提下,我们针对假定正确的特定本地实体l陈述了我们的结果。)如果e成功向l表明了身份i,则表示l接受身份i。
身份的直接形式是公钥的安全哈希。 在标准密码假设下,这样的标识符是不可伪造的。此外,由于它可以为通信会话生成对称密钥,因此它也以有用的方式持久化。
每个正确的实体c将尝试呈现一个合法的身份。 每个故障实体f都可能尝试提供一个合法身份和一个或多个伪造身份。理想情况下,系统应接受所有合法身份,但不接受伪造实体。
3 Results
本节介绍了四个简单的引理,以及详细的证明,它们共同表明了在大规模分布式系统中建立不同身份的不现实性。
实体具有关于其他实体的三个潜在信息源:可信机构,自身或其他(不可信)实体。 在没有可信授权的情况下,实体要么仅接受(通过某种方式)直接验证过的身份,要么接受由已经接受的其他身份担保的身份。
对于直接验证,我们显示:
- 即使是在资源严重受限的情况下,故障实体仍然能够伪造恒定量的多重身份
- 每个正确实体必须能够同时验证提供给他的所有身份,否则故障实体将能够伪造无穷多的身份
大规模分布式系统不可避免的是异构的,导致资源差异加剧了前一结论。后一结论直接阻碍了其可拓展性。
对于间接验证,即实体接受已接受的身份证明的身份,我们显示: - 足够多的故障实体集能够伪造无穷多的身份
- 系统中所有实体必须同时执行其身份验证;否则,一个故障节点将能够伪造恒定量的多重身份
由于系统中的故障节点数量可能会随着系统大小的增大而增大,前一结论给系统规模提出了新的限制。随着系统尺寸的增加,后一种限制变得越来越难以满足。
3.1 Direct identity validation
两个实体向另一实体证明其是不同实体,其唯一直接方法是执行某些单个实体无法做到的任务。 如果我们假设任何两个实体的资源最多相差一个常数,则本地实体可以在接受其身份之前要求提供远程实体资源的证明。 但是,这给我们带来了以下限制:
Lemma 1:
如果ρ是故障实体f的资源与能力最低的实体的资源之比,则f可以为本地实体l提供g = ⌊p⌋个不同的身份。
证明:
定义rM为最低能力实体的可用资源。假设g个实体可以为l表示g个身份;因此,grM资源足以表示g个身份。由于p≥g,f为向l提供g个身份,至少需要grM资源。
Lemma1指出了故障实体能够造成的危害的下限。为了说明如何将其作为上限执行,我们提出了三种机制(至少理论上可以)来利用三种不同资源(通信,存储和计算)中的限制。
如果通信资源受到限制,则本地实体l可以广播对身份的请求,然后仅接受在给定时间间隔内发生的答复。
如果存储资源受到限制,则实体l可以通过令每个身份存储大量唯一、不可压缩的数据质疑身份。 通过保留此数据的较小摘要,实体l可以以极高的概率验证所有身份是否同时存储了它们发送的数据。
如果计算资源受到限制,则实体l可以通过令每个身份解决唯一的计算难题质疑身份。 例如,本地实体可以生成一个较大的随机值y并向身份发起质疑,以在有限的时间内找到一对值x、z,从而使x | y | z通过安全哈希函数计算产生一个其最低有效n位全为零的值:
given y, find x, z s.t. LSBn(hash(x | y | z)) = 0
解决此类难题的时间与2n–1成正比。验证结果的时间是恒定的。(允许被质疑实体查找前缀x和后缀z而不是仅寻找一个的原因将在3.2节中阐明。)
为了有效,必须同时向所有身份发出以下资源质疑:
lemma 2:
如果本地实体l接受了未同时验证的实体,则单个故障实体f可以向实体l呈现任意数量的不同身份。
证明:
故障实体f为l展示了任意长度的连续的不同身份。每个阐述所需的资源都被使用并释放从而被后续阐述所用。
对于固有的时间资源,比如计算速度以及通信带宽,Lemma 2是难以解决的。但是,由于存储不是固有的基于时间的,因此实体l可以通过定期要求查看存储数据的新指定摘录来无限期延长质询时间。如果已接受的身份未能应对新的质疑,则本地实体可以将其从接受列表中丢弃,从而最终捕获到它最初可能错过的女巫攻击。此扩展的一个主要实际问题是(假设)质疑会消耗实体的大部分存储资源,因此延长质疑持续时间会极大地阻碍实体执行其他工作的能力。(但是,质询数据本身可以是有价值的数据,在将其发送到远程实体之前,由本地实体进行压缩和加密,并对每个远程实体使用不同密钥来维护质询的唯一性。)
3.2 Indirect identity validation
如引言中所述,建立身份差异的原因是允许本地实体在其委派给远程实体的操作中采用冗余。 可以设想委托进行的此类操作之一是验证其他身份。 因此,除了接受使用上述挑战机制之一直接验证过的身份之外,实体还可以接受由足够数量已接收身份担保的其他身份。
如果提供了身份i1的实体声称已接受另一个实体的身份i2,则我们说i1为i2担保。接受间接验证的身份显然包含的危险是一组错误的实体可以担保伪造的身份:
Lemma 3:
如果本地实体l接受任何由q个已接受实体担保的实体,那么一个故障实体集合F能够对l表示任意大数量的不同实体,当:|F| ≥ q 或F可用的个集体资源至少等于q+|F|个最低能力实体。
证明:
设rF为F可用的总体资源,rK为每个故障实体fK可用的资源,rM为一个最低能力实体可用的资源。那么:
根据Lemma 1,实体fK能够对l表示 ⌊rk / rM⌋ ≥ 1个实体,所以F能够对l表示q个实体。此后,所有F的实体为任意大数量的伪造身份担保,从而使其全部被l接受。
与直接身份验证一样,间接身份验证也有并发要求。 特别是,所有实体必须同时执行其资源挑战:
Lemma 4:
如果集合C中的正确实体不协调它们接受身份的时间间隔,并且如果本地实体l接受由q个已接受的身份担保的任何身份,那么即使是最低能力的故障实体f也可以对l实现 g=⌊|C|/q⌋ 的不同身份。
证明:
设rM为表示一个身份所需的资源。根据假设,实体f可用的资源为rM。 将集合C划分为最小基数q的g个不相交的子集Ck。故障节点f在时间间隔Tk中使用rM资源,对Ck中所有实体表名身份ik。由于对于k≠ k′,Tk与Tk’无需重叠,因此资源rM在Tk’向集合Ck’中的实体 ik′≠ ik 表明身份时是可用的。至少每个Ck集合中的q个实体将为不同身份ik担保,因此l将接受所有g个身份。
Lemma 4中显示了多重实体同时发出质疑的需求。一个正确实体是否能够满足多个并发质疑取决于资源:在我们的正式模型中,所有通信都是广播的,因此一个实体能够同时回答任意多个实体发出的质疑。(然而,这在实际网络中比我们的模型更不切实际)
多个并发存储挑战可能是无法满足的,并且有理论依据认为这是不可能的,因为一个挑战者存储的每一位数据都消耗了一点存储空间,因此无法为另一挑战者服务( 并且所有挑战者提供的数据都必定是不可压缩的)。这可以防止将存储质疑用于间接验证。
对于计算挑战,实体可以通过组合多个难题同时解决它们。若一个实体接收到m个问题y1,y2,…,ym,他能够找到w从而满足:
LSBn(hash(0 | y1 | y2 |…ym | w)) = 0
而,每个问题yk的解为:
xk = 0 | y1 | y2 |…yk–1 and zk = yk+1 |…ym | w
这里一个明显的危险是,如果验证实体对已由单个故障实体伪造的多个身份发出挑战,则故障实体可以将这些挑战组合在一起并一起解决。但是,挑战者可以通过检查来自不同身份的任意两个结果是否满足x1 | y1 | z1=x2 | y2 | z2,来判断是否出现女巫攻击。
与Lemma 1一样,Lemma 4的结果是故障实体能够扩大其影响力。能够容忍全部身份的部分φ是故障的,能够容忍全部实体的φ/g是故障的(g为一个故障实体能够呈现的身份数)。在一些系统中,这是可以接受的。
4. related work
5. Summary and conclusions
对等系统通常依靠冗余来减少其对潜在敌对节点的依赖。如果没有通过明确的证书颁发机构(如Farsite [3])或隐式的证书颁发机构(如CFS [8])为远程实体建立独特的身份,则这些系统容易受到女巫攻击,其中少量的实体会伪造多个身份,从而构成系统中不成比例的份额。
依赖隐式认证的系统应牢记这种依赖,因为对依赖机制显式无关的更改可能会破坏系统的安全性。例如,提议的IPv6隐私扩展[26]消除了CFS假定的IP地址的大部分集中分配。
在没有身份验证机构的情况下,本地实体区分不同远程实体的方式是基于攻击者的资源受限实现的。实体因此可以发出对资源的挑战来验证身份,而实体可以共同汇总已分别验证的身份。 这种方法需要满足以下条件:
- 所有实体在几乎相同的资源约束下运行。
- 所有显示的身份均由所有实体同时进行验证,并在整个系统中进行协调。
- 当接受未经直接验证的身份时,所需的凭证数量将超过系统范围的故障数量。
我们声明,在大规模分布式系统中,这些条件既不能作为假设合理,也不能作为系统需求实际实现。