首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >澄清Vault密钥解密过程

澄清Vault密钥解密过程
EN

Stack Overflow用户
提问于 2022-03-25 15:55:08
回答 1查看 311关注 0票数 1

我在试着理解Vault工作流w.r.t。密钥,例如:https://www.vaultproject.io/docs/concepts/seal

据我所知,

  • init上提供了解封(共享)密钥。
  • 他们被用来获取组合密钥
  • 然后使用组合密钥解密根(主)密钥(该密钥显然存储在密封的金库中)。
  • 然后使用根密钥解密数据加密密钥(或包含该密钥的密钥环?)
  • 然后使用数据加密密钥对Vault中的数据进行加密/解密。

我把钥匙打开了,怎么检查其他钥匙呢?这些钥匙是不可能的吗?这些钥匙只是存放在里面的某个地方吗?

解封是获取明文根密钥以读取解密密钥以解密数据的过程,允许访问Vault。

是数据加密密钥/密钥环在打开时也被解密了,还是.也许每个Vault操作都被解密了(所以只有根密钥在解封后存储在明文中)?

根键可以在打开后以明文形式存储吗?还是仍然受到密码/令牌的保护?或者,如果它只是短暂地用于解密数据加密密钥/密钥环,那么这些密钥是如何被保护的?我想这与图像上的锁图标有关:)

我有点搞不懂这是怎么回事。

EN

回答 1

Stack Overflow用户

发布于 2022-03-28 22:04:38

保险库,像其他软件一样,有超级用户的概念。这个概念被称为“根令牌”(不要与根键混淆,我们将回到它)。

一个关于Vault内部架构的完整演讲远远超出了StackOverflow答案的范围。这是我试图澄清的混乱,留下细节给你去探索。

两次起飞开始:

  • 金库存储根令牌的强散列(如果它仍然有效)
  • 金库根本不储存碎片,在任何地方,永远不会。

超级用户访问(也称为根令牌)

当Vault初始化时,它将为您提供两组数据:

  1. 万能的根令牌
  2. 一些Shamir碎片(5是默认的,1在DEV模式下)

inital根令牌总是以纯文本形式发出,从未加密过。它意味着立即用于执行初始配置。

最佳做法是只使用根令牌:

  1. 创建一个非常强大的策略(让我们称之为almost-root)
  2. 设置至少一种身份验证方法
  3. 将身份验证方法的一个帐户绑定到几乎根策略。
  4. 撤消根令牌(使用vault token revoke -self)

此时,您可以是almost-root,它应该在某些两个因素后面,具有较强的审计能力,并且有一个有限的有效期(30分钟),等等。您的CI/CD通常可以是almost-root

现在,假设出于安全原因,almost-root策略不允许更改审计设备,添加或删除它们。

要更改审计设备配置,您需要获得一个新的根令牌。要获得一个,您必须从初始化时得到的碎片生成一个。这是一个安全措施。没有人能靠自己成为根。你必须与其他人勾结,这减少了不法行为的赔付,增加了被抓的风险。

但是,让我们继续讨论如何生成根令牌。

碎片和获取根令牌

金库会用纯文本给你碎片。碎片是Shamir曲线上的点

当您初始化Vault时,您应该使用发送公钥,以便将碎片加密出来。您可以在命令行(作为文件名)或使用keybase.io别名提供公钥。

然后,您可以安全地分发每个“碎片持有人”一个碎片。让它们立即通过生成根令牌并立即撤销它来解密和测试它们的碎片。你不想发现用户把他的私钥或其他东西放错了地方。

您必须定期对碎片进行测试。人们来来去去,电脑崩溃。当你接近你的门槛时,你必须把新的碎片拿到新的“碎片持有者”。如果您的企业有物理安全,请考虑生成足够多的碎片以生成根令牌,解密它们,将它们存储在CD上并打印出来,然后将所有这些都放在保险箱中的密封信封中。

生成根令牌应该是罕见的,但是我们实际上在每个sprint的末尾使用它来生成almost-root令牌,我们给出了CI/CD工具。这意味着,在日常使用中,没有人在库中拥有超能力。定义“超能力”以适应你的行动现实。

内部加密

因此根令牌根本不参与加密,否则系统将在根令牌被撤销时停止。你不可能有3个或更多的碎片持有者在每一个解密库做(它可以做很多)。

因此,Vault有一个内部加密密钥,该密钥是用Vault之外的密钥材料加密的。只需指出,要么是:

  • 用碎片做的密钥加密
  • 用KMS的HSM加密

当Vault启动时,它无法读取自己的存储,无论您使用什么存储后端。它在密码“屏障”后面。您可以将Vault凭据给您的KMS,以便它可以解密密钥加密密钥(KEK),该密钥将给它内部加密密钥。这个过程叫做自动拆封

您在哪里存储的库凭证,以自动解封与KMS或HSM您可能会问?问得好,你得从某个地方开始。也许您设置了云策略,允许运行Vault的给定荚不需要密码就可以访问KMS。

如果你不能设置自动解封,Vault将在密封状态下启动。您必须使用输入给定数量的碎片 (3是默认的)才能允许Vault生成该KEK并打开它本身。它会像那样运行,直到重新启动或手动密封。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71619800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档