【问题标题】:Decrypting the Ciphertext blob from AWS KMS with customer provided key使用客户提供的密钥从 AWS KMS 解密密文 blob
【发布时间】:2016-12-21 21:46:09
【问题描述】:

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

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

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

谁能提供示例(openssl / python 等)。

【问题讨论】:

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

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


【解决方案1】:

我在this document 中找到了有关 KMS 密文 blob 的唯一信息。从第 23 页的底部开始,它说:

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

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

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

但是,如果要备份以防KMS出现故障,使用envelope encryption时,只需备份数据密钥即可。最后,这是解密数据所需的唯一密钥。当然,存储此类密钥备份必须像存储导入的密钥材料一样谨慎。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-14
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 2019-07-24
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    相关资源
    最近更新 更多