Appleデバイスのデータ保護
データ保護をサポートするAppleデバイスでは、各ファイルが一意のPer File(またはPer Extent)キーで保護されます。これらのキーはNIST AED鍵ラップアルゴリズムでラップされますが、さらにファイルアクセスの方法に応じて、複数あるクラスキーのいずれかでラップされます。ラップされたPer Fileキーは、ファイルのメタデータに保存されます。
APFSフォーマットを使用するデバイスでは、ファイルのクローン作成(コピーオンライト技術を使用したゼロコストコピー)がサポートされることがあります。ファイルのクローンを作成すると、それぞれのクローンごとに書き込み入力を受け付けるための新しい鍵が生成されます。新しいデータは、新しい鍵を使用してメディアに書き込まれます。時間の経過により、ファイルがさまざまなエクステント(断片)で構成され、そのそれぞれが異なる鍵に対応付けられるようになることがあります。ただし、1つのファイルを構成するすべてのエクステントは、同じクラスキーによって保護されます。
ファイルが開かれると、そのファイルのメタデータがファイルシステムキーで復号され、ラップされたPer Fileキーとファイルを保護しているクラスの方式が明らかになります。Per File(またはPer Extent)キーは、クラスキーによってアンラップされてから、ハードウェアAESエンジンに渡されます。そしてフラッシュストレージからファイルを読み出すときに、ハードウェアAESエンジンがファイルを復号します。ラップされたファイルキーの処理はすべてSecure Enclave内で実行されます。そのため、ファイルキーがアプリケーションプロセッサに直接公開されることはありません。起動時に、Secure EnclaveはAESエンジンと一時鍵のネゴシエーションを行います。Secure Enclaveがファイルの鍵をアンラップした場合、その鍵は一時鍵で再度ラップされてからアプリケーションプロセッサに戻されます。
データボリュームのファイルシステム内にあるすべてのファイルのメタデータは、ランダムなボリュームキーで暗号化されます。このキーは、オペレーティングシステムが初めてインストールされたとき、またはユーザによってデバイスがワイプされたときに作成されます。ボリュームキーは、長期保存のために、Secure Enclaveのみが知るキーラッピング鍵によって暗号化およびラッピングされます。キーラッピング鍵は、ユーザがデバイスを消去するたびに変更されます。A9以降のSoCのSecure Enclaveでは、アンチリプレイシステムに基づくエントロピーによって、消去可能性が実現され、保有するアセット、中でも特にキーラッピング鍵が保護されます。詳しくは、セキュア不揮発性ストレージを参照してください。
Per FileまたはPer Extentキーと同様に、データボリュームのメタデータキーもアプリケーションプロセッサに直接公開されることはありません。代わりに、起動のたびにSecure Enclaveによって一時鍵が提供されます。暗号化されたファイルシステム鍵が保存されると、さらにEffaceable Storageに保存された「消去可能鍵」またはメディアキーラッピング鍵を使用してラッピングされ、Secure Enclaveアンチリプレイメカニズムによって保護されます。この鍵は、データの機密性を高めるために使用されるのではなく、要求に応じて素早く消去されるように設計されています(ユーザが「すべてのコンテンツと設定を消去」オプションを選択するか、ユーザまたは管理者がモバイルデバイス管理(MDM)ソリューション、Microsoft Exchange ActiveSync、またはiCloudからリモートワイプコマンドを発行すると消去されます)。このようにして鍵を消去すると、すべてのファイルが暗号の仕組みによってアクセス不可になります。
ファイルの内容は1つまたは複数のPer File(またはPer Extent)キーで暗号化されることがあります。これらのキーはクラスキーでラップされてファイルのメタデータに保存されます。そしてメタデータはファイルシステムキーで暗号化されます。クラスキーはハードウェアUIDで保護されますが、ユーザのパスコードで保護されるクラスもあります。このような階層構造により、優れた柔軟性と高いパフォーマンスの両方を実現しています。例えば、ファイルのクラスを変更する場合はそのファイルのPer Fileキーをラップし直すだけでよく、パスコードを変更した場合はクラスキーのラップだけが変更されます。