解密 - AWS Key Management Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

解密

AWS KMS 對 進行解密的呼叫會接受加密的值加密文字和加密內容。 會使用AWS 簽章第 4 版簽署的請求 AWS KMS 驗證呼叫,並從加密文字擷取包裝金鑰的 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. 加密文字結構擷取 nonce N

  3. HBKN 重新產生 256 位元 AES-GCM 衍生的加密金鑰 K

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

產生的金鑰 ID 和純文字會透過安全工作階段傳回給 AWS KMS 主機,然後透過 TLS 連線傳回給呼叫的客戶應用程式。

以下是回應語法。

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

如果呼叫的應用程式想要確保純文字的真實性,則必須驗證傳回的金鑰 ID 是預期的。