AWS KMS 中的 HMAC 金鑰 - AWS Key Management Service

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

AWS KMS 中的 HMAC 金鑰

雜湊訊息驗證碼 (HMAC) KMS 金鑰是對稱金鑰,用於在 AWS KMS 中產生和驗證 HMAC。與每個 HMAC KMS 金鑰關聯的唯一金鑰資料提供了 HMAC 演算法所需的私密金鑰。您可以將 HMAC KMS 金鑰與 GenerateMacVerifyMac 操作搭配使用來驗證 AWS KMS 之中的資料完整性和真實性。

HMAC 演算法結合了密碼編譯雜湊函數和共享私密金鑰。它們接受訊息和私密金鑰 (如 HMAC KMS 金鑰中的金鑰資料),並傳回一個唯一且固定大小的代碼或標籤。如果訊息中即使只有一個字元更改,或者私密金鑰不相同,則產生的標籤將完全不同。透過要求私密金鑰,HMAC 還提供了真實性;如果沒有私密金鑰,就無法產生相同的 HMAC 標籤。HMAC 有時被稱為對稱簽章,因為它們的運作方式類似於數位簽章,但使用單一金鑰進行簽署和驗證。

AWS KMS 使用的 HMAC KMS 金鑰和 HMAC 演算法符合 RFC 2104 中定義的產業標準。此作AWS KMSGenerateMac業會產生標準 HMAC 標籤。HMAC KMS 金鑰會在已通過 FIPS 140-2 密碼編譯模組驗證計劃驗證的 AWS KMS 硬體安全模組中產生 (中國 (北京) 和中國 (寧夏) 區域除外),且絕不讓 AWS KMS 出現未加密的狀況。若要使用 HMAC KMS 金鑰,必須呼叫 AWS KMS。

您可使用 HMAC KMS 金鑰來確定訊息的真實性,例如 JSON Web 字符 (JWT)、字符化的信用卡資訊或提交的密碼。它們還可以用作安全金鑰衍生函數 (KDF),特別是在需要確定性金鑰的應用程式中。

HMAC KMS 金鑰比應用程式軟體的 HMAC 具有優勢,因為金鑰資料完全在 AWS KMS 之中產生並使用,完全受控於您在金鑰上設定的存取控制。

提示

最佳實務是建議您限制任何簽名機制 (包括 HMAC) 的有效時間。這可以阻止攻擊者使用簽署的訊息反覆建立有效性攻擊或在訊息被取代很長時間後反覆建立有效性攻擊。HMAC 標籤不包含時間戳記,但您可以在字符或訊息中包含時間戳記,以幫助您偵測何時重新整理 HMAC。

授權使用者可建立、管理及運用 AWS 帳戶中的 HMAC KMS 金鑰。其中包括啟用和停用金鑰、設定和變更別名標籤,以及排定刪除 HMAC KMS 金鑰。您也可以使用金鑰政策IAM 政策授予,控制對 HMAC KMS 金鑰的存取。您可以在 AWS 日誌 中的 AWS CloudTrail 內稽核使用或管理 HMAC KMS 金鑰的所有操作。您可利用匯入的金鑰資料來建立 HMAC KMS 金鑰。您也可以建立 HMAC 多區域 KMS 金鑰,這些金鑰在多個 AWS 區域中的運作方式會類似於相同的 HMAC KMS 金鑰副本。

HMAC KMS 金鑰僅支援 GenerateMacVerifyMac 密碼編譯操作。您無法使用 HMAC KMS 金鑰來加密資料或簽署訊息,或在 HMAC 操作中使用任何其他類型的 KMS 金鑰。使用 GenerateMac 操作時,您可以提供最多 4,096 個位元組的訊息、一個 HMAC KMS 金鑰以及與 HMAC 金鑰規格相容的 MAC 演算法,GenerateMac 會運算 HMAC 標籤。若要驗證 HMAC 標籤,您必須提供 HMAC 標籤以及 GenerateMac 用來運算原始 HMAC 標籤的相同訊息、HMAC KMS 金鑰以及 MAC 演算法。VerifyMac 操作會運算 HMAC 標籤並驗證它是否與提供的 HMAC 標籤相同。如果輸入和運算得出的 HMAC 標籤不相同,驗證會失敗。

HMAC KMS 金鑰支援金鑰自動輪換,而且您無法在自訂金鑰存放區建立 HMAC KMS 金鑰。

如果您要建立 KMS 金鑰來加密 AWS 服務中的資料,請使用對稱加密金鑰。您無法使用 HMAC KMS 金鑰。

區域

AWS KMS 支援的所有 AWS 區域 都支援 HMAC KMS 金鑰。

進一步了解

HMAC KMS 金鑰的金鑰規格

AWS KMS 支援不同長度的對稱 HMAC 金鑰。金鑰規格可根據您的安全、法規或業務需求進行選取。金鑰的長度決定了用於GenerateMacVerifyMac作業的 MAC 演算法。通常,較長的金鑰更安全。使用適用於您的使用案例的最長金鑰。

HMAC 金鑰規格 MAC 演算法
HMAC_224 HMAC_SHA_224
HMAC_256 HMAC_SHA_256
HMAC_384 HMAC_SHA_384
HMAC_512 HMAC_SHA_512