分布式系统安全之​复制管理和协调架构:攻击缓解背后的基础

安全 应用安全
为了解决这个问题,开发了三阶段提交(3PC)协议。3PC协议本质上是BFT协议的扩展,并增加了第三个通信阶段,以帮助领导者做出中止的决定。

开发可靠的分布式系统的一个基本挑战是支持执行共同任务所需的分散实体的合作,即使某些这些实体或它们之间的通信失败。需要确保服务操作的顺序,并避免对分布式资源进行分区,以便形成一个整体的“协调”资源组。

状态机复制或状态机方法是通过复制服务器和协调客户端与服务器副本的交互来实现容错服务的通用方法。该方法还为理解和设计复制管理协议提供了一个框架。基本的系统抽象是状态机的抽象,使得状态机的输出完全由它处理的请求序列决定,而与时间或其他活动无关。系统。复制可以是主动的、半主动的、被动的或惰性的。

应该注意的是,理想情况下,人们希望共同实现高可用性、一致性和完全协调,以消除分布式资源集的任何分区。但是,CAP断言的作用是:

CAP

任何网络共享数据系统(例如Web)只能提供3种可能属性中的2种,如下所示:

1.一致性(C):相当于拥有数据的单个最新副本,即每个服务器对每个请求返回正确的响应。

2.可用性(A):每个请求最终收到响应的数据。

3.分区(P):网络分区容错,使得服务器无法分区为非通信组。

当然,安全攻击会试图破坏CAP的这些元素。

复制和协调

为了提供一致和一致的行为(在值和顺序上),分布式资源使用各种类型的副本管理,即协调模式。这是表征任何分布式系统功能的关键协调机制。决定特定机制的因素取决于系统同步模型的类型、组通信的类型,尤其是所考虑的扰动(故障或攻击)的性质。这些机制可以是简单的投票或领导者选举过程(例如,环形算法,欺凌),也可以是更复杂的共识方法来处理崩溃或拜占庭5行为。数据库事务的提交协议与提供经过验证的访问控制的凭据管理和PKI基础结构的方案在这里相关。我们简要描述了一组广泛使用的模式,并参考阅读器以完整覆盖。分布式系统中的授权和身份验证也在身份验证,授权和责任CyBOK知识领域中进行了讨论。

Paxos

为了避免分布式实体进行不协调的行动或未能响应的情况,Paxos已经开发出来,这是一组隐式领导者选举协议,用于在异步设置中解决共识。Paxos通过让所有参与者在初始阶段提出一个达成一致的价值来解决共识问题。在第二阶段,如果多数人同意某个价值,则提出该价值的过程隐含地成为领导者,并达成一致。对下一个值重复相同的过程,以就一系列值达成共识。

众所周知,该方案仅在非常特定的情况下才提供活体。在这种情况下,流程继续无限期地提出价值,并在初始阶段保持阻塞,因为无法形成多数并且从未取得进展。然而,这种情况在实践中很少发生,Paxos仍然是使用最广泛的协调协议之一。

由于在第二阶段只需要多数人即可达成共识,因此即使在恢复的情况下,该协议也对崩溃具有容忍度。这是了不起的,因为只要大多数进程没有失败,就能够达成共识。

虽然Paxos协议有多种实现方式,但由于其固有的复杂性,它以难以实现和构建中间件而闻名。为此,提出了一种类似于Paxos的协议RAFT来提供相同的保证。RAFT最近因其更简单的设计而越来越受欢迎。通过与Paxos的比较,解释了RAFT协议开发背后的动机以及它是如何工作的。

拜占庭容错(BFT)

攻击和其他故意中断不一定遵循良性遗漏、时间或崩溃的语义。为了容忍任意恶意行为,拜占庭容错(BFT)协议使用协调复制来保证操作的正确执行,只要在大多数三分之一的进程受到损害并表现出任意(即拜占庭,参见第5节)行为。

在BFT中,进程以轮次交换它们从彼此那里收到的值。达成共识所需的轮数取决于系统中受损参与者的数量。请注意,由于该协议是轮次运行的,因此它被归类为同步协调协议。已经表明,FLP不可能的结果是在异步通信的情况下不可能达成共识。由于同步通信的必要性以及处理拜占庭故障所需的消息交换开销相当高,BFT协议主要应用于特定的关键应用。然而,通过加强对同步、确定性和妥协数量的一些基本假设,正在进行多种实际BFT优化的尝试。Google File System(Chubby)和Amazon Web Services(AWS)实现了Paxos和部分BFT功能。同样重要的是要强调BFT不仅因为所需轮数的消息复杂性而昂贵。处理f恶意故障所需的节点数(>f)也是昂贵的,即f是由对手控制的节点数。

从安全角度来看,BFT协议能够容忍任意恶意行为,因此构成了构建入侵容忍系统的有吸引力的构建块。值得注意的是,这些协议考虑了受感染实体的数量。当面对恶意攻击者时,相同的副本是不够的,因为它们表现出相同的漏洞。如果其他副本相同,则可以破坏一个副本的恶意攻击者可以轻松破坏它们。需要复制和多样性(或不同的保护方法)。

提交协议

许多应用程序,例如数据库,需要跨复制的数据或操作进行排序,其中所有参与者都同意执行相同的正确结果(即提交)或不执行任何操作–原子性属性。因此,作为一种专门的共识形式,需要分布式协调器定向算法来协调参与分布式原子事务的所有进程是否以提交或中止(回滚)事务。

两阶段提交(2PC)是这种原子提交协议的一个简单示例。该协议继续进行从领导者到所有要提交的客户端的广播查询。随后是来自每个客户端的确认(提交或中止)。在收到所有响应时,领导者会通知所有客户端关于提交或中止的原子决策。即使在许多故障情况下(涉及进程、网络节点或通信故障等),该协议也能实现其目标,因此被广泛使用。基于日志记录协议状态的方法用于支持恢复。经典的2PC协议对可能导致不一致的协调器故障提供有限的支持。

为了解决这个问题,开发了三阶段提交(3PC)协议。3PC协议本质上是BFT协议的扩展,并增加了第三个通信阶段,以帮助领导者做出中止的决定。这需要更高的消息传递和日志记录开销来支持恢复。虽然与BFT相比,3PC是一种更强大的协议,但由于消息传递开销及其对网络分区的敏感性(即P大写)。在实践中,系统使用BFT是为了简单性,或者使用Paxos协议来表示其鲁棒性。

责任编辑:武晓燕 来源: 河南等级保护测评
相关推荐

2023-03-20 00:04:07

2023-03-13 00:08:26

2023-02-23 07:55:41

2023-02-11 00:04:17

分布式系统安全

2023-02-10 00:04:53

2023-04-04 07:06:21

2021-06-01 07:57:42

Zookeeper分布式系统

2019-12-26 08:59:20

Redis主从架构

2023-02-16 07:12:43

P2P协议服务器

2023-02-15 07:10:59

P2P协议系统

2023-05-29 14:07:00

Zuul网关系统

2012-11-06 13:58:26

分布式云计算分布式协同

2023-07-19 08:22:01

分布式系统数据

2015-08-03 15:48:42

Hadoop大数据

2023-02-13 00:20:08

分布式系统安全

2015-06-17 14:10:34

Redis分布式系统协调

2022-03-06 21:43:05

Citus架构PostgreSQL

2017-04-14 09:48:25

分布式存储系统

2017-12-20 16:15:30

分布式系统架构

2010-05-12 17:03:30

Oracle复制技术
点赞
收藏

51CTO技术栈公众号