AWS Encryption SDK のしくみ - AWS Encryption SDK

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

AWS Encryption SDK のしくみ

このセクションのワークフローは、AWS Encryption SDK がデータを暗号化し、暗号化されたメッセージ を復号する方法について説明します。これらのワークフローは、デフォルト機能を使用した基本的なプロセスを表します。カスタムコンポーネントの定義と使用の詳細については、 GitHub サポートされている各言語実装のリポジトリを参照してください

AWS Encryption SDK は、エンベロープ暗号化を使用してデータを保護します。各メッセージは、一意のデータキーで暗号化されます。その後、データキーは指定したラッピングキーにより暗号化されます。暗号化されたメッセージを復号するために、AWS Encryption SDK は指定されたラッピングキーを使用し、少なくとも 1 つの暗号化されたデータキーを復号化します。その後、暗号文を復号化してプレーンテキストのメッセージを返すことができます。

「AWS Encryption SDK」で使われている用語についてサポートが必要ですか? の概念 AWS Encryption SDK を参照してください。

AWS Encryption SDK がデータを暗号化する方法

AWS Encryption SDK では、文字列、バイト配列およびバイトストリームを暗号化する方法を提供します。コードの例については、各 プログラミング言語 セクションの「例」トピックを参照してください。

  1. データを保護するラッピングキーを指定する キーリング (または マスターキープロバイダー) を作成します。

  2. キーリングとプレーンテキストのデータを暗号化メソッドに渡します。シークレットではないオプションの 暗号化コンテキスト で渡すことをお勧めします。

  3. 暗号化メソッドによって、キーリングに暗号化マテリアルが求められます。キーリングは、メッセージ固有のデータ暗号化キーを返します。1 つはプレーンテキストのデータキー、もう 1 つは、指定された各ラッピングキーで暗号化されたデータキーのコピーです。

  4. 暗号化方法は、プレーンテキストデータキーを使用してデータを暗号化し、プレーンテキストのデータキーを破棄します。暗号化コンテキスト (AWS Encryption SDK ベストプラクティス) を指定すると、暗号化メソッドは暗号化コンテキストを暗号化データに暗号的に結合します。

  5. 暗号化メソッドによって、暗号化されたデータ、暗号化されたデータキー、使用した場合は暗号化コンテキストなどの他の暗号化されたデータを含む 暗号化されたメッセージ が返ります。

AWS Encryption SDK が暗号化されたメッセージを復号する方法

AWS Encryption SDK は、暗号化されたメッセージ を復号するメソッドを提供し、プレーンテキストを返します。コードの例については、各 プログラミング言語 セクションの「例」トピックを参照してください。

暗号化されたメッセージを復号化する キーリング (または マスターキープロバイダー) は、メッセージの暗号化に使用されたキーリング (またはマスターキープロバイダー) と互換性がある必要があります。ラッピングキーのいずれか 1 つが暗号化されたメッセージの暗号化されたデータキーを復号できる必要があります。キーリングとマスターキープロバイダとの互換性については、「キーリングの互換性」を参照してください。

  1. データを復号できるラッピングキーを使用して、キーリングまたはマスターキープロバイダーを作成します。暗号化メソッドに提供ものと同じキーリングを使用するか、別のキーリングを使用することもできます。

  2. 暗号化されたメッセージ とキーリングを復号化メソッドに渡します。

  3. 復号の方法では、キーリングまたはマスターキープロバイダーに、暗号化されたメッセージの暗号化されたデータキーのいずれかを復号するように要求します。  次に、暗号化されたメッセージから、暗号化されたデータキーなどの情報を渡します。

  4. キーリングは、そのラッピングキーを使用して、暗号化されたデータキーのいずれかを復号します。成功した場合、レスポンスにはプレーンテキストのデータキーが含まれます。キーリングまたはマスターキープロバイダーによって指定されたラッピングキーのいずれも暗号化されたデータキーを復号化できない場合、復号の呼び出しは失敗します。 

  5. 復号方法は、プレーンテキストデータキーを使用してデータを復号し、プレーンテキストのデータキーを破棄します。