密钥环的工作方式 - AWS 数据库加密 SDK

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

密钥环的工作方式

我们的客户端加密库已重命名为 AWS 数据库加密 SDK。本开发人员指南仍提供有关 DynamoDB 加密客户端的信息。

在对数据库中的字段进行加密和签名时, AWS 数据库加密 SDK 会要求密钥环提供加密材料。密钥环返回一个明文数据密钥、由密钥环中的每个包装密钥加密的数据密钥副本,以及与数据密钥关联的 MAC 密钥。 AWS 数据库加密 SDK 使用明文密钥对数据进行加密,然后尽快从内存中删除明文数据密钥。然后, AWS 数据库加密 SDK 会添加材料描述,其中包括加密的数据密钥和其他信息,例如加密和签名指令。 AWS 数据库加密 SDK 使用 MAC 密钥计算基于哈希的消息身份验证码 (HMAC),而不是材料描述和所有标记为或的字段的规范化。ENCRYPT_AND_SIGN SIGN_ONLY

解密数据时,您可以使用加密数据所用的密钥环,也可以使用其他密钥环。要解密数据,解密密钥环必须有权访问加密密钥环中的至少一个包装密钥。

AWS 数据库加密 SDK 将材料描述中的加密数据密钥传递到密钥环,并要求密钥环解密其中任何一个。密钥环使用其包装密钥以解密一个加密的数据密钥,并返回明文数据密钥。 AWS 数据库加密 SDK 使用明文数据密钥将对数据进行解密。如果密钥环中的所有包装密钥都无法解密任何加密的数据密钥,解密操作将失败。

您可以使用一个密钥环,也可以将相同类型或不同类型的密钥环组合到一个多重密钥环中。当您加密数据时,多重密钥环返回数据密钥的副本,该数据密钥使用构成该多重密钥环的所有密钥环中的所有包装密钥和与数据密钥关联的 MAC 密钥加密。您可以使用包含多重密钥环中任一包装密钥的密钥环解密数据。