Python 使用客户提供的密钥从AWS KMS解密密文blob

Python 使用客户提供的密钥从AWS KMS解密密文blob,python,amazon-web-services,encryption,amazon-kms,Python,Amazon Web Services,Encryption,Amazon Kms,我已将密钥上载到AWS密钥管理服务。使用它我可以加密东西,然后使用服务解密它们 但是,我希望得到一个保证,我可以使用我放入KMS的密钥(证明它是我的密钥)解密密文blob,并用于备份目的(如果KMS失败) 我找不到KMS使用的加密格式和方法 任何人都可以提供示例(openssl/python等)。我找到的关于KMS密文blob的唯一信息是在。从第23页底部开始,它说: 每当一个元素在CMK下加密时,生成的对象就是一个客户密文。密文将包含两个部分:未加密的头(或明文)部分,由经过身份验证的加密方案

我已将密钥上载到AWS密钥管理服务。使用它我可以加密东西,然后使用服务解密它们

但是,我希望得到一个保证,我可以使用我放入KMS的密钥(证明它是我的密钥)解密密文blob,并用于备份目的(如果KMS失败)

我找不到KMS使用的加密格式和方法


任何人都可以提供示例(openssl/python等)。

我找到的关于KMS密文blob的唯一信息是在。从第23页底部开始,它说:

每当一个元素在CMK下加密时,生成的对象就是一个客户密文。密文将包含两个部分:未加密的头(或明文)部分,由经过身份验证的加密方案保护 作为附加的认证数据和加密部分。明文 部分将包括HSA备用密钥标识符(HBKID)

我找不到更多的格式细节,甚至:

  • 密文blob的哪一部分是加密部分
  • 使用了什么初始化向量(IV)
  • 是否使用了密钥派生函数(KDF)

但是,如果要在KMS失败的情况下进行备份,在使用时,只备份数据密钥就足够了。最后,这是解密数据所需的唯一密钥。当然,存储此类密钥备份必须像存储导入的密钥材料一样小心。

检查:谢谢-这实际上可能是实现我想要的更好的方法-加密密钥两次,一次使用AWS,一次使用服务器上的公钥;但是,它仍然没有解释encryption KWS如何将我提供的随机字符串+客户密钥转换为密文blob(或如何将其反转),而不使用他们的服务。