一致性广播、可靠广播、原子广播、安全因果原子广播以及与拜占庭协议结合

在分布式系统中,广播协议是确保信息在网络中的节点之间有效传递的关键机制。一致性广播、可靠广播、原子广播和安全因果原子广播是分布式系统中用于确保消息传递和一致性的四种不同类型的广播协议。它们各自有不同的目标和特性,适用于不同的应用场景。本文是对《Secure
and Efficient Asynchronous Broadcast Protocols》这篇论文所作的关键协议的介绍与总结。

在介绍这些广播之前,需要先介绍与拜占庭相关的一些协议。主要包括拜占庭协议(Byzantine Agreement)、验证拜占庭协议(Validated
Byzantine Agreement)、多值拜占庭协议(Multi-valued Byzantine
Agreement),以及它们在原子广播和安全因果原子广播中的应用。下面是这些协议的详细介绍:

拜占庭协议(Byzantine Agreement)

定义
拜占庭协议旨在解决在可能存在恶意行为的分布式系统中如何达成一致决策的问题。在这种协议中,系统中的一些节点(称为拜占庭节点)可能会发送错误信息或不参与协议,而其余的诚实节点需要在这样的干扰下达成一致。

算法流程

  1. 每个诚实节点提出一个初始值或提案。
  2. 节点间开始交换信息,每个节点根据收到的信息更新自己的决策。
  3. 经过一系列的信息交换和决策更新后,所有诚实节点最终达成一致的决策,即使部分节点的行为是不可预测或恶意的。
验证拜占庭协议(Validated Byzantine Agreement)

定义
验证拜占庭协议是拜占庭协议的扩展,它不仅要求节点达成一致,还要求一致的值满足特定的验证条件。这些条件通常与应用层的逻辑相关,例如通过数字签名验证消息的合法性。

算法流程

  1. 每个节点提出初始值,并附上满足特定验证条件的证明(例如数字签名)。
  2. 节点间交换消息和证明,尝试就一个共同值和其证明达成一致。
  3. 节点验证收到的消息和证明,选择一个最终值和证明。
  4. 系统确保所有诚实节点最终接受一个满足验证条件的一致值。
多值拜占庭协议(Multi-valued Byzantine Agreement)

定义
多值拜占庭协议允许在分布式系统中的节点就多个值达成一致,即使一些节点可能被破坏或行为恶意。这种协议适用于需要对多个独立提案进行投票和决策的场景。

算法流程

  1. 每个节点提出一个或多个值作为提案。
  2. 节点间交换消息,尝试就多个提案中的一个或多个达成一致。
  3. 通过一系列的投票和共识机制,节点对提案进行排序和选择。
  4. 系统确保在一定数量的诚实节点存在的情况下,所有诚实节点最终就一个或多个值达成一致。
原子广播中的拜占庭元素

原子广播协议需要处理拜占庭节点可能发起的攻击,确保即使在这些攻击下,所有诚实的节点仍能以相同的顺序接收所有消息。这通常通过结合拜占庭协议的元素来实现,例如使用拜占庭协议来达成对消息顺序的一致同意。

安全因果原子广播中的拜占庭元素

安全因果原子广播协议进一步扩展了原子广播的概念,通过加密和解密过程来保证消息的安全性。在这个协议中,拜占庭协议被用来确保即使在存在恶意节点的情况下,消息的加密和解密过程也能正确执行,从而保证消息的保密性和完整性。

这些拜占庭相关的协议在分布式系统中起着至关重要的作用,它们通过不同的机制来处理节点间的一致性问题,特别是在面对恶意行为时。在实际应用中,这些协议可以结合使用,以满足特定系统的需求,如提高系统的容错性和安全性。

以下是一致性广播、可靠广播、原子广播和安全因果原子广播的定义及其算法流程概述:

一致性广播(Consistent Broadcast)

定义
一致性广播协议确保所有诚实的节点对广播的消息达成一致,但不保证所有节点都接收到每一条消息。即使在部分节点出现故障或被恶意攻击的情况下,系统仍能维持一致性。

算法流程

  1. 发送者节点将消息发送给所有其他节点。
  2. 接收节点验证消息的一致性,通常是通过检查消息的签名或其他一致性凭证。
  3. 如果消息通过验证,接收节点将消息传递给其他节点,以帮助实现更广泛的传播。
  4. 系统确保所有诚实节点对接收到的消息达成一致,但可能有些节点未能接收到所有消息。
可靠广播(Reliable Broadcast)

定义
可靠广播为一方提供了向所有其他方发送消息的方法。它要求所有诚实的一方传递相同的消息集,并且这个消息集包括诚实的一方广播的所有消息,而不保证消息传递的顺序。在任意故障的情况下,可靠广播也被称为拜占庭将军问题。

算法流程

  1. 发送者节点将消息发送给所有其他节点。
  2. 每个接收节点在收到消息后,向发送者节点发送确认消息。
  3. 发送者节点等待从足够多的节点接收确认消息,以确保消息已被广泛接收。
  4. 系统确保所有诚实节点最终接收到相同的消息集。
原子广播(Atomic Broadcast)

定义
原子广播协议不仅要求可靠广播,还要求所有诚实的节点以相同的顺序接收所有消息。这种协议提供了一种机制,确保消息的传递顺序与发送顺序一致。

算法流程

  1. 发送者节点将消息放入一个队列,并开始广播。
  2. 接收节点将接收到的消息按顺序放入本地队列。
  3. 节点按照队列中的顺序处理消息,并发送确认。
  4. 系统确保所有诚实节点以相同的顺序接收和处理消息。
安全因果原子广播(Secure Causal Atomic Broadcast)

定义
安全因果原子广播协议结合了原子广播和消息加密,确保所有诚实的节点以相同的顺序接收消息,并且消息的传递遵循因果关系。此外,它还保证了消息的保密性和完整性。

算法流程

  1. 发送者节点对消息进行加密,然后通过原子广播协议发送加密消息。
  2. 接收节点接收加密消息,并通过阈值解密协议解密消息。
  3. 解密后的消息按顺序被交付给应用层。
  4. 系统确保所有诚实节点按照相同的顺序接收、解密和处理消息,同时保持消息的安全性。

这些协议在分布式系统中发挥着不同的作用,从基本的消息传递到复杂的一致性和安全性保证。每种协议都有其特定的应用场景和实现细节,但它们共同的目标是在不可靠的网络和可能的恶意攻击下,确保分布式系统的正确性和可靠性。

各种广播的区别

一致性广播、可靠广播、原子广播和安全因果原子广播是分布式系统中用于确保消息传递和一致性的四种不同类型的广播协议。它们各自有不同的定义和用途,尤其在处理故障和恶意行为方面有所区别。以下是这些协议的详细介绍和它们之间的区别:

一致性广播(Consistent Broadcast)

定义
一致性广播的目标是确保所有诚实的节点对广播的消息达成一致的认识,但不保证所有节点都接收到每一条消息。这种协议允许在部分节点出现故障或被恶意攻击的情况下,系统仍能维持一致性。

目标 :确保所有诚实的节点对广播的消息达成一致,但不保证所有节点都接收到每一条消息。

特性

  • 允许部分节点丢失消息。
  • 重点在于消息内容的一致性,而不在于消息的传递完整性。

应用场景

  • 当系统的完整性比消息的传递完整性更重要时。

区别
与可靠广播和原子广播相比,一致性广播不保证所有节点都能接收到每一条消息,只保证系统中的诚实节点对消息达成一致。

可靠广播(Reliable Broadcast)

定义
:可靠广播协议确保所有诚实的节点都能接收到发送者发送的每条消息,并且接收到的消息是相同的。这种协议关注于消息的完整性和一致性,即使在部分节点出现故障的情况下也能保证消息的可靠传递。

目标 :确保所有诚实的节点都能接收到发送者发送的每条消息,并且接收到的消息是相同的。

特性

  • 保证了消息的传递完整性。
  • 每个诚实节点都会接收到每一条广播消息。

应用场景

  • 当需要确保消息被每个节点精确复制时,如状态机复制。

区别
可靠广播与一致性广播的主要区别在于,它保证所有诚实节点都能接收到每一条消息,而不仅仅是达成一致。

原子广播(Atomic Broadcast)

定义
原子广播协议不仅要求可靠广播,还要求所有诚实的节点以相同的顺序接收所有消息。这种协议提供了一种机制,确保消息的传递顺序与发送顺序一致,即使在面对恶意节点的情况下。

目标 :不仅要求可靠广播,还要求所有诚实的节点以相同的顺序接收所有消息。

特性

  • 保证了消息的传递完整性和顺序。
  • 所有诚实节点接收到的消息顺序一致。

应用场景

  • 当消息的顺序对系统的行为有重要影响时,如时间同步或日志复制。

区别
与可靠广播相比,原子广播增加了对消息传递顺序的保证。这意味着不仅所有诚实节点都能接收到消息,而且它们接收消息的顺序也是一致的。

安全因果原子广播(Secure Causal Atomic Broadcast)

定义
安全因果原子广播协议结合了原子广播和消息加密,确保所有诚实的节点以相同的顺序接收消息,并且消息的传递遵循因果关系。此外,它还保证了消息的保密性和完整性,即使在存在恶意节点的情况下。

目标 :结合了原子广播和消息加密,确保所有诚实的节点以相同的顺序接收消息,并且消息的传递遵循因果关系。

特性

  • 保证了消息的传递完整性、顺序和安全性。
  • 消息的加密和解密过程确保了消息的保密性和完整性。

应用场景

  • 当需要保护消息内容免受未授权访问,同时保持消息传递的一致性和顺序时。

区别
安全因果原子广播在原子广播的基础上增加了安全性的要求。它不仅保证消息的顺序和一致性,还保证消息在传递过程中的保密性和完整性,确保消息不会被未授权的节点读取或篡改。

  • 一致性广播 关注的是消息内容的一致性,不保证所有节点都接收到消息。
  • 可靠广播 确保所有诚实节点接收到所有消息,但不保证消息的顺序。
  • 原子广播 在可靠广播的基础上增加了顺序保证,确保所有诚实节点以相同顺序接收消息。
  • 安全因果原子广播 是原子广播的加强版,增加了对消息内容的加密保护,确保消息的安全性和因果顺序。

总结来说,这些广播协议在保证消息传递的一致性和可靠性方面有不同的侧重点。一致性广播关注于达成一致的认识,可靠广播确保所有诚实节点接收所有消息,原子广播进一步保证了消息传递的顺序,而安全因果原子广播则在原子广播的基础上增加了对消息安全性的要求。

接下来我将给各位同学划分一张学习计划表!

学习计划

那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:

阶段一:初级网络安全工程师

接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。

综合薪资区间6k~15k

1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?

阶段二:中级or高级网络安全工程师(看自己能力)

综合薪资区间15k~30k

7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。

零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;

Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完

用Python编写漏洞的exp,然后写一个简单的网络爬虫

PHP基本语法学习并书写一个简单的博客系统

熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)

了解Bootstrap的布局或者CSS。

阶段三:顶级网络安全工程师

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

学习资料分享

当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份【282G】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值