理解分布式一致性:Paxos协议之Cheap Paxos & Fast Paxos

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 理解分布式一致性:Paxos协议之Cheap Paxos & Fast Paxos

文章目录



密钥配送问题


上面几篇文章我们讲到了对称加密,包括它的几种实现AES,DES算法。那么有了对称加密算法,我们是否就可以安全的和第三方进行通信了呢? 考虑如下情况:


小明想写一封情书给小红,但是这封情书是很私密的东西, 小明不想让除了小红之外的其他人知道。小明看过flydean的博客,他知道了有个对称加密的好东西。


于是小明想,如果我将情书使用对称加密算法进行加密,然后再把加密后的情书传给小红岂不就是安全了? 但是小明又仔细思考了一下,发现了一个问题,对称加密算法必须需要密钥才能解密,除了传递情书以外,小明还需要把对称加密算法的密钥也传过去,这样小红才能正常解密。


但是怎么才能安全的传递密钥呢? 密钥必须要发送,但是又不能发送,这个就是密钥配送的问题。


下面我们将一下解决密钥配送问题的几个方法。


事先共享密钥


解决密钥配送问题的最简单方法就是事先共享密钥,也就是小明提前将密钥交给小红。如果他们两个离得很近,那没有问题,直接线下见面交给小红就可以了。


如果他们分隔两地那就麻烦了。因为邮寄或者远程传输的过程中,密钥可能会被劫持。

即使能够有效的共享密钥,也会存在一个密钥保存的问题,每两个人间进行通信都需要一个完全不同的密钥,如果通信的人数很多的话,则需要保存一个相当大数量的密钥个数。实际操作起来不是很方便。


密钥中心分配密钥


为了解决保存大数量的密钥的问题。可以采用密钥中心来对密钥进行集中管理。我们可以将密钥中心看成是一个服务器,它里面保存了每一个人的密钥信息,下面我们看一下具体的通信流程:


  1. 小明和小红需要进行通信
  2. 密钥中心随机生成一个密钥,这个密钥将会是小明和小红本次通信中使用的临时密钥
  3. 密钥中心取出保存好的小明和小红的密钥
  4. 密钥中心将临时密钥使用小明的密钥加密后,发给小明
  5. 密钥中心将临时密钥使用小红的密钥加密后,发给小红
  6. 小明收到加密后的数据,使用自己的密钥解密后,得到临时密钥
  7. 小红收到加密后的数据,使用自己的密钥解密后,得到临时密钥。
  8. 小明和小红可以使用这个临时密钥自由通信啦 。


大家请注意,这里的临时密钥的使用方法很巧妙,后面我们会讲到大家最常用的https通信协议中对这个临时密钥的巧妙使用。


密钥中心很好,但是也有缺点,首先密钥中心的密钥是集中管理的,一旦被攻破,所有人的密钥都会暴露。


其次所有的通信都要经过密钥中心,可能会造成性能瓶颈。


使用Diffie-Hellman密钥交互


Diffie-Hellman 通过交互一些信息,双方来生成相同的密钥。具体的细节我们后在后面的博客中讲到。


使用公钥私钥


密码配送的原因就在于对称加密使用的密钥是相同的。 如果我们使用非对称加密算法(公钥只用来加密,私钥只用来解密),这个问题是不是就能够解决了?


回到小明和小红通信的问题,如果小红事先生成了公钥私钥,并把公钥发给了小明,则小明可以将情书使用公钥进行加密,然后发给小红,这个情书只有小红才能解密。即使公钥被窃听了也没有关系。


当然这里也有一个问题,就是小明要确保生成的公钥的确是小红发出来的。这个问题的解决方法我们会在后面讨论。


公钥密钥还有一个问题就是速度的问题,只有对称加密算法的几百分之一。


下面画个序列图,解释一下公钥密码的交互流程:


image.png

相关文章
|
10天前
|
存储 缓存 负载均衡
一致性哈希:解决分布式难题的神奇密钥
一致哈希是一种特殊的哈希算法,用于分布式系统中实现数据的高效、均衡分布。它通过将节点和数据映射到一个虚拟环上,确保在节点增减时只需重定位少量数据,从而提供良好的负载均衡、高扩展性和容错性。相比传统取模方法,一致性哈希能显著减少数据迁移成本,广泛应用于分布式缓存、存储、数据库及微服务架构中,有效提升系统的稳定性和性能。
52 1
|
22天前
|
存储 算法 安全
分布式系统架构1:共识算法Paxos
本文介绍了分布式系统中实现数据一致性的重要算法——Paxos及其改进版Multi Paxos。Paxos算法由Leslie Lamport提出,旨在解决分布式环境下的共识问题,通过提案节点、决策节点和记录节点的协作,确保数据在多台机器间的一致性和可用性。Multi Paxos通过引入主节点选举机制,优化了基本Paxos的效率,减少了网络通信次数,提高了系统的性能和可靠性。文中还简要讨论了数据复制的安全性和一致性保障措施。
35 1
|
2月前
|
JSON 分布式计算 前端开发
前端的全栈之路Meteor篇(七):轻量的NoSql分布式数据协议同步协议DDP深度剖析
本文深入探讨了DDP(Distributed Data Protocol)协议,这是一种在Meteor框架中广泛使用的发布/订阅协议,支持实时数据同步。文章详细介绍了DDP的主要特点、消息类型、协议流程及其在Meteor中的应用,包括实时数据同步、用户界面响应、分布式计算、多客户端协作和离线支持等。通过学习DDP,开发者可以构建响应迅速、适应性强的现代Web应用。
|
2月前
|
架构师 Java 数据中心
二阶段提交:确保分布式系统中数据一致性的关键协议
【10月更文挑战第16天】在分布式系统中,数据一致性的维护是一个至关重要的挑战。为了应对这一挑战,二阶段提交(Two-Phase Commit,简称2PC)协议应运而生。作为一种经典的分布式事务协议,2PC旨在确保在分布式系统中的所有节点在进行事务提交时保持一致性。
45 0
|
3月前
|
监控
分布式-Zookeeper-Zab协议
分布式-Zookeeper-Zab协议
|
3月前
|
网络协议 网络安全 网络架构
分布式基础-网络通信协议讲解
分布式基础-网络通信协议讲解
分布式基础-网络通信协议讲解
|
2月前
|
消息中间件 缓存 算法
分布式系列第一弹:分布式一致性!
分布式系列第一弹:分布式一致性!
|
2月前
|
算法 Java 关系型数据库
漫谈分布式数据复制和一致性!
漫谈分布式数据复制和一致性!
|
4月前
|
自动驾驶 5G 调度
|
4月前
|
Oracle 关系型数据库
分布式锁设计问题之Oracle RAC保证多个节点写入内存Page的一致性如何解决
分布式锁设计问题之Oracle RAC保证多个节点写入内存Page的一致性如何解决