- iOS 18は新しい非アクティブ時再起動セキュリティ機能を導入:"3日間ロック解除されなければ自動で再起動"
- iPhoneの電源を入れて最初にパスコードを入力することと、その後ロック解除のためにパスコードを入力することは大きく異なる
- iPhoneを最初に起動したときにパスコードを入力すると、Secure Enclave Processor(SEP)のキーストアが開き、これがiPhoneのデータを暗号化する
- 初回ロック解除前(BFU) 状態では、ユーザーデータは暗号化されており、Face IDとTouch IDは動作せず、パスコード入力が必要。Wi‑Fiパスワードが暗号化されているためWi‑Fi接続は不可能だが、SIMがPINで保護されていない場合はセルラーネットワークには接続可能。通知内容のプレビューも表示されない。
- 初回ロック解除後(AFU) 状態では、ユーザーデータは復号される。iOSの実行中はキーストアが開いているため、Wi‑Fi接続やメッセージ通知のプレビュー表示が可能。しかし、この状態は攻撃に対してより脆弱。
- AFU状態のセキュリティ上の弱点:攻撃者がロック画面を回避できた場合、復号済みデータにアクセス可能。物理アクセスがある場合はUSB、Wi‑Fi、Bluetooth、またはハードウェア攻撃の脆弱性を悪用できる可能性が高まる
iPhone再起動に関する噂
- 法執行機関は、AFU状態でフォレンジック上重要なデータを取得するため、iPhoneをインターネットから隔離した状態で維持する。
- iOS 18では、iPhoneが無線ネットワークから完全に隔離されていても再起動するという噂がある
- また、iOS 18のiPhoneが、より古いiOSバージョンのiPhoneに無線で再起動を指示できるという主張もある(技術的には可能性が低い)
非アクティブ時再起動機能の発見
- Appleは新機能を追加するとき、デバッグ文字列を通じてヒントを残す
- iOS 18.1から
inactivity_reboot文字列が登場。iOS 18.2ではinactivity_reboot_enabledに変更
- テストの結果、3日(72時間)のあいだロック解除されない場合に非アクティブ時再起動が発生することを確認
非アクティブ時再起動のリバースエンジニアリング
- Secure Enclave Processor(SEP)は最後のロック解除時刻を追跡し、3日を超えるとAppleSEPKeyStoreカーネルモジュールに通知する。
- AppleSEPKeyStoreカーネルモジュールはユーザー空間に再起動開始を通知する。SpringBoardはすべてのユーザー空間プロセスを安全に終了する。
- 再起動後、keybagdはNVRAM変数"aks-inactivity"を読み取り、設定されている場合はAppleに分析イベントを送信する。
- 再起動に失敗した場合はカーネルパニックが発生
Secure Enclave Processorのリバースエンジニアリング
- SEPはAppleで最も厳重に守られた秘密の1つであり、ファームウェアは暗号化されている。
- SEPファームウェアはいくつかのアプリで構成されており、SEPKeyStoreに関連するアプリは"sks"と呼ばれる。
- SEPは3日(72時間)を超えるとメッセージを生成し、SEPKeyStoreカーネル拡張に送信する。
警察だけを狙った対策なのか?
- セキュリティ改善効果:メディアではこの機能は主に法執行機関を狙ったものとして報じられたが、盗難防止の面でも大きなセキュリティ向上がある。
- 旧式の法執行機関向け機材はしばしばeBayのようなプラットフォームで安価に販売されており、盗難犯がそれを使ってiPhoneデータにアクセスする事例を減らせる。
- 盗難犯が最新のハッキングツールを入手したり、3日以内に端末を解除する資金を確保したりするのは現実的に難しい。
- 端末アップデートの重要性:最新のiOSバージョンを維持することは、個人データを安全に守るうえで非常に重要。
- 法執行機関の適応の必要性:
- 法執行機関はデータ抽出手順を3日以内に完了できるよう調整する必要がある。
- 一部のフォレンジックツールメーカーは、すでに24時間以内にデータ抽出手順を調整できると発表している。
- これはAFU状態でしかデータを抽出できないという限界を示している。
- セキュリティ脅威の非対称性:
- 盗難犯にとっては、この機能が実質的にデータ取得を困難にし、主要なセキュリティ障壁として機能する。
- 一方で法執行機関には、プロセスを簡素化し、より迅速に対応しなければならない負担が生じる。
主要ポイント
- 無線アクティビティとは無関係:
- この機能は無線ネットワークの活動とは関係がない。
- 法執行機関の文書で言及された"端末間の無線通信による再起動"という主張は信頼しがたい。
- iOS 18以前の端末の再起動は、ソフトウェアバグによる可能性が高い。
- SEPの役割:
- 非アクティブ時間の計測と再起動トリガーはSEPで実行される。
- SEPはSEPKeyStoreカーネル拡張と通信して再起動命令を実行する。
- インターネットまたはセルラーネットワークを通じた外部からの時刻操作が、3日タイマーに影響しない可能性が高い。
- 強力なセキュリティ機能:
- 攻撃者が非アクティブ時再起動を阻止するには、カーネルコード実行権限が必要。
- フォレンジック分析者がデータ抽出のために再起動を遅らせられるとしても、最初のハッキングは3日以内に行われなければならない。
- 脅威環境の変化:
- 盗難犯とフォレンジック分析者の双方に新たな課題を突きつける。
- 盗難犯にとっては、iPhoneに保存された銀行口座やその他の機微なデータへのアクセスを実質的に遮断する。
- 法執行機関は、データアクセスのためにより迅速に対応しなければならない圧力を受ける。
1件のコメント
Hacker Newsの意見
AFU状態ではユーザーデータが復号される。開発者はデータ保護のためにさまざまなキーを選択できる。Appleはユーザーの健康データのような機密情報を保護するために特定のキーを使用している
ネットワークに接続されない点がなぜそこまで強調されているのかという疑問が出ている。GrapheneOSはすでに一定時間後の自動再起動機能を提供しており、これはデータ流出防止に効果的だ
2つの疑問が挙げられている:
AppleがSEPファームウェアを暗号化している理由への疑問がある。セキュリティモデルに必須でないなら、知的財産保護のためかもしれない
Appleがデバイスセキュリティで先行している様子を示す素晴らしい記事だ
iOS 18が他のスマートフォンに無線で再起動を指示する可能性に触れていたが、その後は再び扱われていないようだ
AOSPのBFUとAFUのロック解除方式に似ているという意見がある
Secure Enclaveで管理されているのではないかと考えられている。これならiOSが完全に侵害されても無効化するのは非常に難しいだろう
なぜ3日という特定の時間が設定されているのか、ユーザーが設定可能な遅延ではない理由への質問がある
素晴らしい記事と優れた分析に感謝する