Decrypt - AWS Key Management Service

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

Decrypt

调用 AWS KMS 可解密接受加密值密文和加密上下文的密文值。AWS KMS 使用 AWS 签名版本 4 签名的请求对调用进行身份验证,并从密文提取打包密钥的 HBKID。HBKID 用于获取解密密文、密钥 ID 和密钥 ID 的策略所需的 EKT。请求基于密钥策略、可能存在的授权以及引用密钥 ID 的任何关联 IAM 策略进行授权。Decrypt 功能与加密功能类似。

以下是 Decrypt 请求语法。

{ "CiphertextBlob": "blob", "EncryptionContext": { "string" : "string" } "GrantTokens": ["string"] }

以下是请求参数。

CiphertextBlob

包括元数据的密文。

EncryptionContext

(可选)加密上下文。如果在 Encrypt 功能中指定了此参数,则此处也必须指定,否则解密操作将失败。有关更多信息,请参阅 AWS Key Management Service 开发人员指南中的加密内容

GrantTokens

(可选)表示提供执行解密权限的授权的授权令牌列表。

密文EKT 连同加密上下文通过经身份验证的会话发送给 HSM 用于解密。

HSM 运行以下操作:

  1. 解密 EKT 以获取 HBK = Decrypt(DKi, EKT)

  2. 密文结构中提取一次性的 N

  3. HBKN 重新生成 256 位 AES-GCM 派生的加密密钥 K

  4. 解密密文以获取 plaintext = Decrypt(K, context, ciphertext)

生成的密钥 ID 和明文将通过安全会话返回给 AWS KMS 主机,然后通过 TLS 连接返回给调用的客户应用程序。

以下是响应语法。

{ "KeyId": "string", "Plaintext": blob }

如果调用的应用程序希望确保明文的真实性,则必须验证返回的密钥 ID 是否为预期的密钥 ID。