世界を動かす技術を、日本語で。

FBIがiPhoneの通知データを利用して削除されたSignalメッセージを復元

2026年4月10日原文(9to5mac.com)

概要

  • 404 Media の新レポートによると、FBIがiPhoneの通知データベースから 削除済みのSignalメッセージ を復元
  • Signalアプリ削除後 でも通知履歴からメッセージ内容を取得可能
  • 通知プレビュー設定 が無効だった場合、通知内容が内部データベースに保存される仕組み
  • iOSの内部構造 や通知トークンの扱いが重要な要素
  • iOS 26.4 で通知トークン検証方法に変更、時期的な関連性も指摘

FBIによるSignalメッセージ復元事例

  • 404 Media の報道で、FBIが iPhoneの通知データベース から削除済みのSignalメッセージを復元した事例を紹介
  • 対象事件は ICE Prairieland Detention Facility での放火・器物損壊事件の裁判
  • 被告人 Lynette Sharp のiPhoneから、 Signalアプリ削除後 にもかかわらず通知履歴に残った 受信メッセージ を復元
  • 証拠として提示された Exhibit 158 は「Appleの内部通知ストレージからメッセージを取得」と記載
  • 復元できたのは 受信メッセージのみ で、送信メッセージは取得不可

Signal通知の仕組みとリスク

  • Signal には通知プレビューを 非表示 にする設定が存在
    • 今回のケースでは 設定が無効 だったため、通知内容がiOS内部に保存
  • AppleSignal も通知データの保存仕様について公式コメントなし
  • iOSは 様々なシステム状態 (BFU/AFUなど)によってデータアクセス権限が変化
  • ロック解除後 はより多くのデータにアクセス可能

通知トークンとiOSの仕様変更

  • アプリ削除後 も通知用トークンは 即時無効化されない
    • サーバー側はアプリのインストール状況を把握できないため、通知送信を継続
    • iPhone側で通知の表示・保存を判断
  • iOS 26.4 で通知トークン検証方法が変更
    • この事件との直接的な関連は不明だが、時期的な一致が注目点

法執行機関によるデータ抽出手法

  • FBIは Appleの内部通知ストレージデバイスバックアップ から情報抽出の可能性
  • iOSの脆弱性 を利用した市販のフォレンジックツールが存在
    • これらを用いて 証拠データの取得 が可能

セキュリティ対策とユーザーへの教訓

  • 通知プレビュー非表示設定 の活用推奨
    • 機密性の高いアプリ利用時は特に注意
  • アプリ削除 だけでは完全なデータ消去とならないリスク
  • iOSの システム仕様やアップデート に常に注意を払う必要性

参考リンク・関連商品

  • 404 Media元記事リンク
  • 関連書籍:David Pogue著『Apple: The First 50 Years』
  • 関連製品例:MacBook Neo、Logitech MX Master 4、AirPods Pro 3、AirTag(第2世代)、Apple Watch Series 11、Wireless CarPlayアダプター

Hackerたちの意見

まず、Signalユーザーにとって重要な設定について。「Signalの設定には、通知で実際のメッセージ内容がプレビューされないようにするオプションがあります。でも、被告はその設定を有効にしていなかったようで、それがシステムが内容をデータベースに保存することを可能にしたみたい。」次に、この通知履歴はどうやって見るの?

正確に同じかは分からないけど、CrankというmacOSアプリに「通知が届いたときにイベントをトリガーする」設定を追加しなきゃいけなかったんだ。macOSでのやり方を見せるために、以下のコマンドを使ってるよ:HOURS=6 EPOCH_DIFF=978307200 SINCE=$(echo "$(date +%s) - $EPOCH_DIFF - $HOURS * 3600" | bc) sqlite3 ~/Library/Group\ Containers/group.com.apple.usernoted/db2/db \ "SELECT r.delivered_date, COALESCE(a.identifier, 'unknown'), hex(r.data) FROM record r LEFT JOIN app a ON r.app_id = a.app_id WHERE r.delivered_date > $SINCE ORDER BY r.delivered_date ASC;" \ | while IFS='|' read -r cfdate bundle hexdata; do date -r $(echo "$cfdate + $EPOCH_DIFF" | bc | cut -d. -f1) '+%Y-%m-%d %H:%M:%S' echo " app: $bundle" echo "$hexdata" | xxd -r -p > /tmp/notif.plist plutil -p /tmp/notif.plist 2>/dev/null \ | grep -E '"(titl|title|subt|subtitle|body|message)"' \ | sed 's/^ */ /' echo "---" done 基本的に、通知は~/Library/Group Containers/group.com.apple.usernoted/db2/dbのsqliteデータベースにあって、plistのバイナリとして保存されてる。最近では、macOSとiOSのシステムサービスのファイルシステムパスが収束し始めてるから、jailbreakすればそのデータベースにアクセスできて、同じデータを取り出せるかもね。

Pixelでは、Android > 設定 > 通知 > 管理 > 通知履歴に行くと、いくつかの履歴が見れるよ。

Androidには履歴を見れるアプリがあって、たまにNotiStarを使って重要な通知をうっかり消しちゃったか確認してる。デバイスから履歴を消すのを手伝うアプリや設定もあると思う。でも、これは中央集権的な通知インフラ(FCMやAPNs)が通知内容を保存していることを思い出させるね(アプリが内容を送信するように指示されている場合 - 設定が有効なSignalは内容を送信しないけど)。ローカルの履歴を消しても、これらの仲介者はまだ保持してるんだよね。

Androidだと結構簡単だよね。プロトコルアドレスのページがあって、そこにすべての通知が表示されるんだ。昔はそこへのショートカットを作ってたけど、Androidを使ってからもう何年も経っちゃった。でも、通知が見逃したときにはすごく便利だったよ。編集:タイプミス

これについてちょっと考えちゃうな。404メディアの記事からの引用はこうだよ:「特にiPhoneでは、Signalアプリの設定でメッセージ通知やプレビューがロック画面に表示される場合、iPhoneは内部メモリにそれらの通知やメッセージプレビューを保存することが分かりました」と、裁判中にメモを取っていた被告側の支持者が404メディアに話してた。デフォルト設定はロック解除時にのみ通知プレビューを表示するようだね。その通知は通知ストレージに暗号化されずに保存されるのか、それともAFUのプレビューがあるから暗号化されたストアに入るのか。ロック画面にプレビューされる通知は暗号化されてない方が理にかなってる(暗号化されていても、暗号化キーが隣に保存されている場合を含む)。これはユーザーが引き起こしたOPSECの問題で、Signalは正しいデフォルトを持っていたように思える。

設定 > 通知 > 通知内容 > 表示:「名前のみ」または「名前や内容なし」これを有効にしておくことで、誰かにスマホを見せるときに敏感なメッセージが丸見えにならないようにしてるけど、これも一つの利点だね。

ちなみに、AndroidのSignalアプリではこの設定は設定 > 通知 > メッセージ > 表示にあるよ。

ロックダウンモードを有効にすれば、この問題も避けられるかもしれないし、他にも色々なことができるよね。

ちょっと説明すると、これはSignalアプリの設定内の話で、OS(iOSやAndroid)のシステム設定じゃないんだ。これ、めっちゃ大事なポイントで、OSの通知設定を変えるだけだと、通知内容が画面に表示されないだけだからね。

敏感なアプリの通知については、Apple Intelligenceの要約を無効にした方がいいよ。

Androidでは、WhatsAppを使っていてグループの通知をオフにしても、通知が一瞬届いてすぐ消えるのが見える(左上のアイコンが消える)。これって、同じ理由でグループメッセージの内容を暗号化されていないデータトレースに押し込む方法なのかなってよく考える。

Hacker Newsで議論の続きを見る