Appleプラットフォームのセキュリティ
iPhoneおよびiPadデバイスのブートプロセス
起動プロセスの各ステップに含まれるコンポーネントには、整合性チェックを有効にするためにAppleによって暗号化された署名が付いているため、ブートは信頼チェーンの検証後にのみ実行されます。これらのコンポーネントには、ブートローダー、カーネル、カーネル拡張機能、モバイルデータ通信ネットワークのベースバンドファームウェアなどがあります。このセキュアブートチェーンは、最下位レベルのソフトウェアが改ざんされていないことを検証するように設計されています。
iPhoneおよびiPadデバイスの電源を入れると、デバイスのアプリケーションプロセッサによって、Boot ROMと呼ばれる読み出し専用メモリから即座にコードが実行されます。ハードウェアの信頼の起点となるこの変更不可のコードは、チップ製造時に書き込まれたものであり、無条件に信頼されます。Boot ROMコードにはAppleルート認証局(CA)の公開鍵が含まれており、この公開鍵は、iBootブートローダーの読み込みを許可する前にiBootブートローダーがAppleによって署名されていることを確認するために使用されます。これが信頼チェーンの最初のステップです。信頼チェーンの各ステップでは、対象となるものがAppleによって署名されていることを確認します。iBootのタスクが終了すると、iOSまたはiPadOSカーネルが検証および実行されます。A9以前のAシリーズプロセッサを搭載したデバイスではもう1つ段階が加わり、Boot ROMによってLow Level Bootloader(LLB)が読み込まれて検証されたあとに、iBootが読み込まれて検証されます。
以下の段階で読み込みまたは検証ができなかった場合、対象のハードウェアに応じて異なる処理が行われます:
Boot ROMでLLBを読み込めない(古いデバイス): デバイスファームウェアアップグレード(DFU)モード
LLBまたはiBoot: リカバリモード
いずれの場合も、USB経由でデバイスをFinder(macOS 10.15以降)またはiTunes(macOS 10.14以前の場合)に接続し、工場出荷時のデフォルト設定に復元する必要があります。
モードに応じてユーザデータへのアクセスを制限するために、Secure Enclaveによってブートプログレスレジスタ(BPR)が使用されます。このレジスタがアップデートされたあとに、以下のモードに入ります。
DFUモード: Apple A12以降のSoCを搭載したデバイスでBoot ROMにより設定されます
リカバリモード: Apple A10、S2、またはそれ以降のSoCを搭載したデバイスでiBootにより設定されます
モバイルデータ通信ネットワークにアクセスできるデバイスでは、モバイルデータ通信ネットワークのベースバンドサブシステムで、署名されたソフトウェアおよびベースバンドプロセッサによって検証された鍵を使って追加のセキュアブートが実行されます。
Secure Enclaveでは、そのソフトウェアがAppleによって検証および署名されていることを確認するセキュアブートも実行されます。