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

时间:2016-11-14 02:03:39

标签: python amazon-web-services encryption amazon-kms

我已将密钥上传到AWS Key Management Service。使用它我可以加密东西,然后使用该服务解密它们。

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

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

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

1 个答案:

答案 0 :(得分:0)

我发现的关于KMS密文blob的唯一信息是this document。从第23页的底部开始,它说:

  

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

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

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

但是,如果要在KMS失败的情况下进行备份,则在使用envelope encryption时,仅备份数据密钥就足够了。最后,这是解密数据所需的唯一密钥。当然,存储这样的密钥备份必须同样谨慎地进行,就像存储导入的密钥材料一样。