AWS Database Encryption でサポートされているアルゴリズムスイート SDK - AWS データベース暗号化 SDK

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Database Encryption でサポートされているアルゴリズムスイート SDK

クライアント側の暗号化ライブラリの名前が AWS Database Encryption に変更されましたSDK。このデベロッパーガイドでは、引き続き DynamoDB Encryption Client に関する情報を提供します。

アルゴリズムスイートは、暗号化アルゴリズムと関連する値の集合です。暗号化システムはアルゴリズムの実装を使用して暗号文を生成します。

AWS Database Encryption SDKはアルゴリズムスイートを使用して、データベース内のフィールドを暗号化して署名します。サポートされているすべてのアルゴリズムスイートは、AES- と呼ばれる Galois/Counter Mode (AES) の Advanced Encryption Standard (GCM) アルゴリズムを使用してGCM、raw データを暗号化します。 AWS Database Encryption は、256 ビットの暗号化キーSDKをサポートしています。認証タグの長さは常に 16 バイトです。

AWS データベース暗号化SDKアルゴリズムスイート
アルゴリズム 暗号化アルゴリズム データキーの長さ (ビット) キー導出アルゴリズム 対称署名アルゴリズム 対称署名アルゴリズム キーコミットメント
デフォルト AES-GCM 256 HKDF SHA-512 を使用する HMAC-SHA-384 ECDSA P-384 および SHA-384 を使用する HKDF SHA-512 を使用する
AES-GCM ECDSA デジタル署名なし AES-GCM 256 HKDF SHA-512 を使用する HMAC-SHA-384 なし HKDF SHA-512 を使用する
暗号化アルゴリズム

使用する暗号化アルゴリズムの名前とモード。 AWS Database Encryption のアルゴリズムスイートは、Galois/Counter Mode (AES) で Advanced Encryption Standard () アルゴリズムSDKを使用しますGCM。

データキーの長さ

データキーの長さ (ビット単位)。 AWS Database Encryption は、256 ビットのデータキーSDKをサポートしています。データキーは、 HMACベースの extract-and-expand キー取得関数 () への入力として使用されますHKDF。の出力HKDFは、暗号化アルゴリズムのデータ暗号化キーとして使用されます。

キー導出アルゴリズム

データ暗号化 extract-and-expand キーの取得に使用される HMACベースのキー取得関数 (HKDF)。 AWS Database Encryption は、5869 でHKDF定義された SDKを使用します。 RFC

  • 使用されるハッシュ関数は SHA-512 です。

  • 抽出ステップの場合

    • ソルトは使用されません。ごとにRFC、ソルトは 0 の文字列に設定されます。

    • 入力キーマテリアルは、キーリング のデータキーです。

  • 展開ステップの場合

    • 入力疑似ランダムキーは抽出ステップからの出力です。

    • キーラベルは、DERIVEKEY文字列の UTF-8 でエンコードされたバイトをビッグエンディアンバイトの順序で表したものです。

    • 入力情報は、アルゴリズム ID とキー ラベルの連結です (この順序)。

    • 出力キーマテリアルの長さはデータキーの長さです。この出力は、暗号化アルゴリズムのデータ暗号化キーとして使用されます。

対称署名アルゴリズム

対称署名の生成に使用されるハッシュベースのメッセージ認証コード (HMAC) アルゴリズム。サポートされているすべてのアルゴリズムスイートにはHMAC検証が含まれています。

AWS Database Encryption は、マテリアルの説明と、ENCRYPT_AND_SIGN、、SIGN_ONLYまたは とマークされたすべてのフィールドをSDKシリアル化しますSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT。次に、暗号化ハッシュ関数アルゴリズム (SHA-384) HMACで を使用して正規化に署名します。

対称HMAC署名は、 AWS Database Encryption がレコードSDKに追加する新しいフィールド (aws_dbe_foot) に保存されます。

対称署名アルゴリズム

非対称デジタル署名の生成に使用される署名アルゴリズム。

AWS Database Encryption は、マテリアルの説明と、ENCRYPT_AND_SIGN、、SIGN_ONLYまたは とマークされたすべてのフィールドをSDKシリアル化しますSIGN_AND_INCLUDE_IN_ENCRYPTION_CONTEXT。次に、楕円曲線デジタル署名アルゴリズム (ECDSA) を以下の詳細とともに使用して正規化に署名します。

  • 使用される楕円曲線は、デジタル署名標準 () ( 186-4) で定義されている P-384 です。 DSSFIPS PUB

  • 使用されるハッシュ関数は SHA-384 です。

非対称ECDSA署名は、 aws_dbe_footフィールドに対称HMAC署名とともに保存されます。

ECDSA デジタル署名はデフォルトで含まれていますが、必須ではありません。

キーコミットメント

コミット extract-and-expand キーの取得に使用される HMACベースのキー取得関数 (HKDF)。

  • 使用されるハッシュ関数は SHA-512 です。

  • 抽出ステップの場合

    • ソルトは使用されません。ごとにRFC、ソルトは 0 の文字列に設定されます。

    • 入力キーマテリアルは、キーリング のデータキーです。

  • 展開ステップの場合

    • 入力疑似ランダムキーは抽出ステップからの出力です。

    • 入力情報は、COMMITKEY文字列の UTF-8 でエンコードされたバイトをビッグエンディアンバイトの順序で表したものです。

    • 出力キーマテリアルの長さは 256 ビットです。この出力はコミットキーとして使用されます。

コミットキーは、マテリアルの説明 に対する個別の 256 ビットハッシュベースのメッセージ認証コード (HMAC) ハッシュであるレコードコミットメント を計算します。 マテリアルの説明の形式アルゴリズムスイートにキーコミットメントを追加する技術的な説明については、「暗号化アーカイブのキーコミットAEADs」を参照してください。 ePrint

デフォルトでは、 AWS Database Encryption は、 AES-、 HMACベースの extract-and-expand キー取得関数 (HKDF)GCM、HMAC検証、ECDSAデジタル署名、キーコミットメント、および 256 ビット暗号化キーを含むアルゴリズムスイートSDKを使用します。

デフォルトのアルゴリズムスイートには、HMAC検証 (対称署名) とECDSAデジタル署名 (非対称署名) が含まれます。これらの署名は、 AWS Database Encryption がレコードSDKに追加する新しいフィールド (aws_dbe_foot) に保存されます。ECDSA デジタル署名は、承認ポリシーで 1 つのユーザーのセットにデータの暗号化を許可し、別のユーザーのセットにデータの復号を許可する場合に特に便利です。

デフォルトのアルゴリズムスイートは、キーコミットメント、つまりデータキーをレコードに結び付けるHMACハッシュも導き出します。キーコミットメント値は、マテリアルの説明とコミットキーからHMAC計算された です。その後、キーコミットメントの値は、マテリアルの説明に格納されます。キーのコミットメントにより、各暗号文は 1 つのプレーンテキストのみに確実に復号されます。これは、暗号化アルゴリズムへの入力として使用されるデータキーを検証することによって行います。暗号化時に、アルゴリズムスイートはキーコミットメント を取得しますHMAC。復号する前に、データキーが同じキーコミットメント を生成することを検証しますHMAC。一致しない場合、復号呼び出しは失敗します。

AES-GCM ECDSA デジタル署名なし

デフォルトのアルゴリズムスイートはほとんどのアプリケーションに適していますが、代替アルゴリズムスイートを選択できます。例えば、一部の信頼モデルは、ECDSAデジタル署名のないアルゴリズムスイートによって満たされます。このスイートは、データを暗号化するユーザーと復号するユーザーが等しく信頼されている場合にのみ使用してください。

すべての AWS Database Encryption SDKアルゴリズムスイートにはHMAC、検証 (対称署名) が含まれています。唯一の違いは、ECDSAデジタル署名のない AES-GCM アルゴリズムスイートには、信頼性と非否認のレイヤーを追加する非対称署名がないことです。

例えば、キーリング 、、wrappingKeyAwrappingKeyBおよび に複数のラッピングキーがありwrappingKeyC、 を使用してレコードを復号する場合wrappingKeyA、HMAC対称署名は、レコードが にアクセスできるユーザーによって暗号化されたことを確認しますwrappingKeyA。デフォルトのアルゴリズムスイートを使用した場合、 HMACsは の検証を同じものにしwrappingKeyA、さらにECDSAデジタル署名を使用して、レコードが の暗号化アクセス許可を持つユーザーによって暗号化されたことを確認しますwrappingKeyA

デジタル署名なしで AES-GCM アルゴリズムスイートを選択するには、暗号化設定に次のスニペットを含めます。

Java

次のスニペットは、ECDSAデジタル署名のない AES-GCM アルゴリズムスイートを指定します。詳細については、「Database Encryption SDK for AWS DynamoDB の暗号化設定」を参照してください。

.algorithmSuiteId( DBEAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_SYMSIG_HMAC_SHA384)
C# / .NET

次のスニペットは、ECDSAデジタル署名のない AES-GCM アルゴリズムスイートを指定します。詳細については、「Database Encryption SDK for AWS DynamoDB の暗号化設定」を参照してください。

AlgorithmSuiteId = DBEAlgorithmSuiteId.ALG_AES_256_GCM_HKDF_SHA512_COMMIT_KEY_SYMSIG_HMAC_SHA384