必要に応じて、コンテンツの保存と分類を行います。ストレージ暗号化では、以前からシステムメモリに存在する未加工の暗号鍵に依存して暗号化を実行しています。暗号化がソフトウェアではなく専用ハードウェアによって行われる場合でも、ソフトウェアは通常、未加工の暗号鍵を管理する必要があります。これらの鍵はオフライン攻撃(ストレージの暗号化が防御対象とする主な攻撃タイプ)で使われることはないため、これまでこの状態は問題とはみなされてきませんでした。コールドブート攻撃や、攻撃者がデバイスを完全に侵害することなくシステムメモリをリークできる可能性があるオンライン攻撃など、他のタイプの攻撃に対する保護を強化したいというニーズも存在します。ハードウェアのサポートがあるハードウェアでラップされた鍵のサポートが導入されました。ハードウェアでラップされた鍵は、専用ハードウェアのみが未加工の形式で内容を知ることのできるストレージ鍵です。ソフトウェアは、これらの鍵をラップされた(暗号化された)形式でのみ、読み取ったり操作したりできます。専用ハードウェアは、ストレージ鍵の生成とインポート、ストレージ鍵の一時的および長期的な形式でのラッピング、サブ鍵の導出ができるだけでなく、サブ鍵をインライン暗号化エンジンに直接プログラミングし、ソフトウェアに別のサブ鍵を返すことができる必要があります。デバイス間を移動する際に、データの暗号化と復号を行うハードウェアを指します。サポートなど、ハードウェアでラップされた鍵機能の設計について説明します。ここではファイルベースの暗号化(FBE)に焦点を当てていますが、このソリューションはメタデータ暗号化にも適用されます。暗号鍵をインライン暗号化エンジンの鍵スロットでのみ保持することです。このアプローチでは次のような問題が発生します。暗号鍵の数が鍵スロットの数より多い場合があります。インライン暗号化エンジンは、ディスク上のデータブロック全体の暗号化と復号にのみ使用できます。場合、ソフトウェアは引き続き、ファイル名の暗号化や鍵識別子の導出など、他の暗号関連の処理を行える必要があります。鍵にアクセスできる必要があります。した問題を回避するために、ストレージ鍵はハードウェアでラップされた鍵に変更されています。ハードウェアでラップされた鍵は、専用のハードウェアのみがラップ解除して使用できます。これにより、無制限の数の鍵をサポートできるようになります。鍵の階層が変更され、一部がこのハードウェアに移動されています。これにより、インライン暗号化エンジンを使用できないタスクのサブ鍵をソフトウェアに返すことができます。Environment)を使用して、ソフトウェアに「ハードウェアでラップされた鍵」を実装することは可能です。この機能を正当化するのに十分なセキュリティ上のメリットが得られるかどうか不明なため、現時点ではこの方法はおすすめしません。コールドブート攻撃を防御できない可能性があります。プロセッサから十分に分離されていれば、ファームウェアでの実装は許容されます。KDF(鍵導出関数)を使用して、他の鍵から導出できます。これにより、鍵の階層が形成されます。一般的な鍵の階層を示しています。カーネルに渡す未加工の暗号鍵です。マスター鍵と呼ばれます)。この鍵から、カーネルは次のサブ鍵を導出します。これは暗号化に使用されるものではなく、特定のファイルまたはディレクトリが保護されている鍵を識別するために使用される値です。emmc_optimized)での使用に最適化された暗号化設定のいずれかを使用することを前提としています。鍵の階層を示しています。鍵の階層(ハードウェアでラップされた鍵を使用)前のケースとは異なり、鍵の階層にレベルが追加されたほか、ファイルの内容の暗号鍵が再配置されています。渡す鍵を表しています。鍵が一時的にラップされた形式になっているため、使用するには専用ハードウェアに渡す必要があります。つのインターフェースを実装する必要があります。導出し、これをインライン暗号化エンジンの鍵スロットに直接プログラミングするインターフェース。これにより、未加工の鍵にアクセスできるソフトウェアがなくても、ファイルの内容を暗号化または復号できます。オペレーションに対応しています。一部では「未加工のシークレット」とも呼ばれます)を導出して返すインターフェース。ファイルの内容の暗号化以外のすべてのサブ鍵を導出する際に使用される鍵です。オペレーションに対応しています。使用する必要があります。ビット以上(後でどのアルゴリズムでも使える強度)にする必要があります。サブ鍵の各タイプを導出する際には、導出されたサブ鍵が暗号的に確実に分離されるように、個別のラベル、コンテキスト、アプリケーション固有の情報文字列を使用する必要があります。つが漏洩した場合でも他のサブ鍵を知られることはなくなります。未加工のストレージ鍵はすでに均一にランダムな鍵になっているため、鍵のストレッチングは不要です。再実装する必要があります。ソースコードで公開されています。使用することをおすすめします。コンテキストやラベルの選択など、アルゴリズムのあらゆる部分を同じにする必要があります。種類の鍵のラッピングが定義されています。ハードウェアは、起動ごとにランダムに生成される鍵を使用して未加工の鍵を暗号化します。この鍵はハードウェアの外部に直接公開されることはありません。ハードウェアに組み込まれた一意の永続的な鍵を使用して未加工の鍵を暗号化します。この鍵はハードウェアの外部に直接公開されることはありません。カーネルに渡されるすべての鍵は、一時的にラップされます。これにより、攻撃者がシステムメモリから使用中の鍵を抽出できたとしても、その鍵はデバイス外では使用できず、再起動後にはデバイス上でも使用できなくなります。引き続き鍵の暗号化バージョンをディスクに保存できる必要があります。未加工の鍵をこの目的で使用することもできますが、鍵が起動時に抽出されてデバイス外で使用されることのないように、未加工の鍵がシステムメモリ内に存在しないようにすることをおすすめします。した理由から、長期的なラッピングのコンセプトが定義されています。ディスクに保存しているすべてのストレージ暗号鍵は、鍵のラッピングの別のレイヤによって保護されます。鍵のラッピングのこのレイヤは、前述の長期的な鍵のラッピングから独立しています。標準の鍵のラッピングです。種類の方法でラップされた鍵の管理をサポートするには、ハードウェアに次のインターフェースを実装する必要があります。ストレージ鍵を生成してインポートし、長期的にラップされた形式で返すインターフェース。