Rag*_*hra 19 security encryption encryption-symmetric amazon-web-services amazon-kms
加密密钥轮换到底是如何工作的?我知道出于安全目的不断轮换加密密钥是一个非常好的做法,但轮换密钥需要太多工作。
案件:
假设我有一个存储 30GB 数据的数据库,我们使用内部密钥来加密静态数据,并且我计划每月轮换我的密钥。
问题:
其他详情:
Sni*_*192 13
您需要熟悉Envelope Encryption. 每次您想要在 AWS 中加密数据时,您首先会生成一个唯一的数据密钥。然后,您可以使用此密钥加密您的数据。这把钥匙不是旋转的钥匙!
然后您获取此密钥,并使用 KMS 中的密钥对其进行加密。现在,如果您想要解密此数据,则必须首先获取解密的数据密钥,而要解密此数据密钥,您将需要 KMS 密钥。
现在,如果您想要轮换密钥,则不需要重新加密所有数据,而是需要使用从 KMS 轮换的密钥解密数据密钥,然后获取新密钥并重新加密未加密的数据密钥。这样您就不需要重新加密所有数据。
以下两个重要链接可以帮助您了解 AWS 中的信封加密和密钥轮换。
我从上面的链接中引用了一些重要的概念:
信封加密:
当您加密数据时,您的数据会受到保护,但您必须保护您的加密密钥。一种策略是对其进行加密。信封加密是使用数据密钥对明文数据进行加密,然后使用另一个密钥对数据密钥进行加密的做法。
CMK 在 AWS KMS 中创建。对称 CMK 和非对称 CMK 的私钥永远不会使 AWS KMS 处于未加密状态。该策略与数据密钥不同。AWS KMS 不会存储、管理或跟踪您的数据密钥。您必须在 AWS KMS 之外使用它们。
数据密钥是可用于加密数据的加密密钥,包括大量数据和其他数据加密密钥。您可以使用 AWS KMS 客户主密钥 (CMK) 生成、加密和解密数据密钥。但是,AWS KMS 不会存储、管理或跟踪您的数据密钥,也不会使用数据密钥执行加密操作。您必须在 AWS KMS 外部使用和管理数据密钥。
当您为客户管理的 CMK 启用自动密钥轮换时,AWS KMS 每年都会为 CMK 生成新的加密材料。AWS KMS 还永久保存 CMK 的旧加密材料,以便它可用于解密其加密的数据。在您删除 CMK 之前,AWS KMS 不会删除任何轮换密钥材料。
密钥轮换中的一个重要概念是 HSM 支持密钥 (HBK):( https://docs.aws.amazon.com/kms/latest/cryptographic-details/key-hierarchy.html )
在特定 CMK 的层次结构中,HBK 可以被视为 CMK 的一个版本。当您想要通过 AWS KMS 轮换 CMK 时,将创建一个新的 HBK 并将其与 CMK 关联作为 CMK 的活动 HBK。旧的 HBK 会被保留,并可用于解密和验证以前受保护的数据。但只有活动密钥才能用于保护新信息。
Does that mean all my data will be decrypted by the old key and re-encrypted by the new one every month?
Run Code Online (Sandbox Code Playgroud)
正如已经回答的那样,简单的答案是否定的。但之前的答案忽略了密钥轮换的目的
密钥轮换背后的原因是单个密钥加密的数据数量有限。
How does AWS manage to rotate it's keys and all encrypted data for all the underlying services?
Run Code Online (Sandbox Code Playgroud)
基本思想(至少在 KMS 中)是,KMS 密钥不是单个密钥,而是一组密钥,其中最后一个是当前密钥。您可以将其想象为“关键版本控制”。每次密钥轮换后,都会保存当前密钥,因此您仍然可以解密之前加密的密文(数据密钥 - 如其他答案中提到的)。我相信在 KMS 中这整套是隐藏的,但 Azure KeyValt 将整套显示为密钥版本。
The whole encryption-decryption would take a lot of time and compute resources
Run Code Online (Sandbox Code Playgroud)
不,你不需要做任何事情。AWS 为您管理“关键版本”。即使您按照另一个答案中的建议重新加密信封密钥,那么您实际上也无法实现密钥轮换的目的。
KSM 生成的密文也必须包含密钥版本的一些标识,因此即使在密钥轮换后,KMS 也能够解密密文。
| 归档时间: |
|
| 查看次数: |
12652 次 |
| 最近记录: |