AWS KMS での HMAC キー - AWS Key Management Service

AWS KMS での HMAC キー

Hash-based Message Authentication Code (HMAC) KMS キーは、AWS KMS 内で HMAC を生成して検証するために使用される対称キーです。それぞれの HMAC KMS キーに関連する一意のキーマテリアルは、HMAC アルゴリズムが必要とするシークレットキーを提供します。HMAC KMS キーを GenerateMac および VerifyMac オペレーションで使用して、AWS KMS 内のデータの整合性と信頼性を検証することができます。

HMAC アルゴリズムは、暗号化ハッシュ関数と共有シークレットキーを組み合わせます。これらはメッセージとシークレットキー (HMAC KMS キーのキーマテリアルなど) を使用して、一意の固定サイズのコード (タグ) を返します。メッセージの文字が 1 字でも違う場合、またはシークレットキーが同一ではない場合、結果として得られるタグはまったく異なるものになります。HMAC は、シークレットキーをリクエストすることによって信頼性も提供します。シークレットキーがなければ、同一の HMAC タグを生成することは不可能です。HMAC は、デジタル署名のように機能しますが署名と検証の両方に単一のキーを使用するので、対称署名と呼ばれることもあります。

AWS KMS が使用する HMAC KMS キーと HMAC アルゴリズムは、RFC 2104 で定義されている業界標準に準拠しています。AWS KMS GenerateMac オペレーションは標準の HMAC タグを生成します。HMAC KMS キーは、FIPS 140-3 Cryptographic Module Validation Program の認定を受けた AWS KMS ハードウェアセキュティモジュールで生成されており (中国 (北京) および中国 (寧夏) リージョンを除く)、暗号化されずに AWS KMS 外で使用されることはありません。HMAC KMS キーを使用するには、AWS KMS を呼び出す必要があります。

HMAC を使用して、JSON Web トークン (JWT)、トークン化されたクレジットカード情報、または送信されたパスワードなどのメッセージの信頼性を判断することができます。決定論的なキーを必要とするアプリケーションでは特に、セキュアなキー導出関数 (KDF) としても使用することもできます。

HMAC KMS キーは、ユーザーがキーに設定するアクセスコントロールに従って、キーマテリアルの生成と使用のすべてが AWS KMS で行われることから、アプリケーションソフトウェアからの HMAC よりも多くのメリットを提供します。

ヒント

ベストプラクティスでは、HMAC を含めたどの署名メカニズムについても、その有効時間を制限することが推奨されています。そうすることで、アクターが有効性を何度も確立したり、メッセージが置き換えらえた後も長期間有効性を確立したりする攻撃が阻止されます。HMAC タグにタイムスタンプは含まれませんが、トークンまたはメッセージにタイムスタンプを含めて、HMAC を更新するタイミングを検知できるようにすることが可能です。

サポートされている暗号化オペレーション

HMAC KMS キーは、GenerateMac および VerifyMac 暗号化オペレーションのみをサポートします。HMAC KMS キーを使用してデータの暗号化やメッセージの署名を行ったり、HMAC オペレーションで他のタイプの KMS キーを使用したりすることはできません。GenerateMac オペレーションを使用するときは、ユーザーが最大 4,096 バイトのメッセージ、HMAC KMS キー、および HMAC キー仕様との互換性がある MAC アルゴリズムを指定して、GenerateMac が HMAC タグを計算します。HMAC タグを検証するには、HMAC タグ、同一のメッセージ、HMAC KMS キー、および 元の HMAC タグを計算するために GenerateMac が使用した MAC アルゴリズムを提供する必要があります。VerifyMac オペレーションは HMAC タグを計算し、それが提供された HMAC タグと同一であることを検証します。入力と計算された HMAC タグが同一ではない場合は、検証が失敗します。

HMAC KMS キーは自動キーローテーションをサポートしていないため、カスタムキーストアで HMAC KMS キーを作成することはできません。

AWS のサービス内のデータを暗号化するために KMS キーを作成している場合は、対称暗号化キーを使用します。HMAC KMS キーを使用することはできません。

リージョン

HMAC KMS キーは、AWS KMS がサポートするすべての AWS リージョン でサポートされています。

詳細