五、vault - key转置 Key Rotation

vault有多个加密密钥用于各种目的。这些键支持转置,这样他们可以定期更改用以以应对潜在的泄漏或威胁。

回顾一下,vault开始在处于密封(sealed)的状态。Vault的启封是通过提供unseal keys。默认情况下,vault使用一种技术称为”Shamir’s secret sharing algorithm”的秘钥共享算法把主密钥分割成5股,任何3股即可重建的主钥匙(maser key)。主钥匙(maser key)是用来保护加密密钥(encryption key),根本上还是保护存储后端的数据。
这里写图片描述

秘钥转置(key retation),我们需要改变unseal keys ,master key,和encryption key。我们把转置操作分割成两个独立的操作,rekey和rotate。

rekey操作用于生成一个新的master key。完成后,可以改变key分裂的参数,可以改变生成unseal key的股数和开启所需的阈值。执行rekey操作必须提供当前阈值数的unseal key才可以。这是为了防止一个恶意操作符,避免随意的rekey操作和防止使master key失效。

执行rekey相当简单。rekey操作必须初始化股数和阈值。一旦初始化,必须提供当当前阈值数量的unseal key,一旦满足,库将生成新的主键,执行分裂,并使用新master key加密encryption key。然后将新unseal keys提供给操作人员,并且旧的unseal keys不再可用。

retate操作是用来改变encryption key用于保护数据写入存储后端。这个key不会提供给操作人员或对操作人员可以,操作人员只有unseal key。这简化了retation,因为它不需要当前key的持有者与rekey操作。当触发rotate操作时,生成一个新的encryption key并将其添加到钥匙圈(keyring)。所有新数据写入存储后端使用新的密钥加密。之前的加密密钥加密的旧数据仍然可以解密,因为旧的的密钥保存在密匙环。这使得秘钥转置在线完成,是个不耗资源的再加密过程。

rekey和rotate操作可以在线完成并且可配置到高可用的配置文件中,只有活跃的节点可以执行任何一个操作,但备用节点在执行任何一个操作之后仍然可以被认为是一个活跃的实例,

注:
https://www.vaultproject.io/docs/internals/rotation.html 最后一段翻译未完

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页