Appleプラットフォームのセキュリティ

代替起動モードでの鍵の保護
データ保護は、認証に成功したあと、認証されたユーザのみがユーザデータにアクセスできるように設計されています。データ保護クラスはさまざまなユースケースをサポートするように設計されています。例えば、デバイスが一度ロック解除されたあとであれば、ロックされていてもデータの読み込みと書き込みができる機能があります。代替起動モードでのユーザデータへのアクセスを保護するためには、その他の手段も使用されます。これには、デバイスファームウェアアップデート(DFU)モード、リカバリモード、Apple Diagnostics、さらにはソフトウェアアップデート中に使用される手段までが含まれます。これらの機能の基礎にあるのはハードウェアとソフトウェアの機能を組み合わせたものであり、Appleが設計したシリコンの進化に伴って拡張されてきました。
| 機能 | A10 | A11–A18 S3–S9 M1–M4 | 
| リカバリ: すべてのデータ保護クラスを保護 | 
 | 
 | 
| DFUモード、リカバリ、ソフトウェアアップデートの代替起動: クラスA、クラスB、クラスCデータ保護 | 
 | 
 | 
Secure EnclaveのAESエンジンには、ロック可能なソフトウェアシードビットが実装されています。UIDから鍵が生成されると、追加の鍵階層を構築するために、鍵導出関数にこれらのシードビットが埋め込まれます。シードビットの使われ方はSystem on Chip(SoC)によって異なります:
- Apple A10またはS3以降のSoCでは、ユーザのパスコードによって保護される鍵を識別するために1つのシードビットが専用で使用されます。このシードビットは、ユーザのパスコードが必要な鍵(データ保護クラスA、クラスB、クラスCキーなど)では設定され、ユーザのパスコードが不要な鍵(ファイルシステムメタデータキー、クラスDキーなど)では設定されません。 
- iOS 13以降、iPadOS 13.1以降、visionOS 1.0以降では、A10 SOC以降を搭載したデバイスの場合、診断モードで起動するとすべてのユーザデータが暗号化によってアクセス不能になります。この仕組みを実現するために、メディア鍵へのアクセス可否を設定する追加のシードビットが使用されます。データ保護機能によって暗号化されたデータボリューム上のメタデータ(とすべてのファイルのコンテンツ)にアクセスするには、このメディア鍵が必要です。この保護機能では、ユーザのパスコードが必要なクラスだけでなく、すべてのクラス(A、B、C、D)で保護されたファイルが対象になります。 
- A12 SoCを搭載したデバイスでは、アプリケーションプロセッサがデバイスファームウェアアップグレード(DFU)モードまたはリカバリモードに入ると、Secure Enclave Boot ROMによってパスコードのシードビットがロックされます。パスコードのシードビットがロックされているときは、ビットを変更する操作が禁止されます。これは、ユーザのパスコードで保護されたデータへのアクセスを防ぐためです。 
デバイスをDFUモードにしたあとにデバイスを復元すると、Appleが署名した未変更のコードしか存在しない、既知の正常な状態に戻ります。手動でDFUモードにできます。
デバイスをDFUモードにする方法については、Appleの以下のサポート記事を参照してください。
| デバイス | Appleサポートの記事 | 
|---|---|
| iPhone、iPad | |
| Apple TV | |
| Appleシリコン搭載Mac | 

