1 ポイント 投稿者 GN⁺ 1 시간 전 | 1件のコメント | WhatsAppで共有
  • GrapheneOS は Android 17 のセキュリティ機能と最新の Pixel ハードウェアを基盤に、ディスク暗号化、総当たり攻撃の制限、OS 攻撃の緩和、物理アクセスへの防御を組み合わせている
  • 最新のセキュリティ要素は PIN・パスワード入力を 最大 20 回に制限し、10 回失敗後は 4 時間、15 回後は最長 41 日まで遅延させる。また、所有者認証なしのファームウェア変更を防ぎ、内部者による迂回も遮断する
  • 最大 128 文字のパスワードと、任意の 指紋+第 2 PIN をサポートし、6〜8 個のランダムな Diceware 単語を主パスワードにしつつ、日常的なロック解除の利便性も確保できる
  • ロック状態では新しい USB 接続をソフトウェアとハードウェアの両面で遮断し、10 分〜72 時間の自動再起動とメモリ初期化により端末を Before First Unlock 状態に戻す
  • 強制 PIN・パスワードは、どのプロファイルの認証画面で入力しても端末を消去する。ただし全体的なデータ保護は、この機能単体ではなく、暗号化・ハードウェアセキュリティ・攻撃緩和の体系に基づいている

暗号化と認証試行の制限

  • ディスク暗号化を直接破ることは、最も高度な攻撃者にとっても現実的な手段ではなく、攻撃者は After First Unlock 状態の OS 脆弱性を悪用するか、PIN・パスワードを総当たりする必要がある
  • Android 16 QPR2 の セキュリティ要素の試行制限 は、失敗回数に応じて遅延時間を段階的に増やす
    • 10 回失敗すると 4 時間、15 回失敗すると最長 41 日まで遅延し、全体の試行は 20 回までしか許可されない
    • 直近で失敗した異なる値 5 個を早期に拒否し、繰り返しのミスで試行回数を浪費しないようにする
    • GrapheneOS は、最新世代のセキュリティ要素による試行制限を実装した端末のみをサポートする
  • 対応端末のセキュリティ要素ファームウェアを更新するには、有効な署名キーとより高いバージョン番号に加え、Owner ユーザー認証も必要になる
    • 政府が試行制限を取り除いたファームウェアの作成を強制したとしても、それをインストールして制限を迂回することはできない
    • Pixel は 2017 年末発売の Pixel 2 から、内部タイマーと 内部者攻撃への耐性を備えたセキュリティ要素を使用しており、その後 OS との統合も改善された
  • GrapheneOS はパスワード長の上限を 16 文字から 128 文字に拡大し、セキュリティ要素の試行制限に依存しない高エントロピーの Diceware パスフレーズを使えるようにした
  • 任意の指紋+第 2 PIN は、強力な主パスワードと便利な日常のロック解除を両立する
    • Before First Unlock では、6〜8 個のランダムな Diceware 単語で構成された主パスワードを使用し、その後は指紋と短い PIN を組み合わせられる
    • 有効な指紋を認識した後でも、第 2 PIN を入力しなければ画面と ハードウェアキーストアのロックは解除されない
    • 許可される指紋試行は 20 回から 5 回に減り、誤った第 2 PIN も失敗回数に含まれる

OS と物理アクセスへの防御

  • GrapheneOS は、強化されたメモリアロケータやハードウェアメモリタグ付け(MTE)などのハードウェアベース機能により、OS 攻撃の難度を高めている。詳細は 攻撃緩和機能で確認できる
  • 物理的に端末へアクセスする攻撃を防ぐため、ロック中は新しい USB 接続をソフトウェアとハードウェアのレベルでデフォルト遮断し、アクティブな USB 接続が失われるとデータ機能も即座に無効化する
  • 2021 年 6 月に導入されたロック端末の自動再起動タイマーは 10 分〜72 時間に設定できる
    • デフォルト値は当初 72 時間だったが、その後 18 時間に短縮された
    • OS を終了して再起動する際にメモリを初期化し、端末を Before First Unlock 状態に戻す
    • 2024 年 4 月には、Pixel のファームウェア fastboot モード起動にもメモリ初期化が追加された
    • Apple と Google も iOS 18.1 と Android 16 にロック端末の自動再起動を追加しており、Android では Advanced Protection Mode で有効化できる
  • Android は、サブユーザーと Private Space ごとに個別の暗号化キーを使用する
    • GrapheneOS では、サブユーザーセッションの終了と各トグルにより、再起動せずに該当領域を Before First Unlock 状態へ戻せる
    • 主ユーザーデータを再び暗号化された停止状態にし、RAM の残留データを完全に消去し、セキュリティ要素の更新までブロックするには、端末全体を再起動するほうがよい

強制状況でのデータ削除

  • 強制 PIN・パスワードは、現在のプロファイルの PIN・パスワードを要求するどの OS 認証画面で入力しても端末を消去する
    • ロック画面だけでなく、機密性の高い設定変更など認証が必要なあらゆる画面で動作する
    • 主ユーザー、サブユーザー、Private Space を含むすべてのプロファイルで使用できる
    • 指紋ロック解除の第 2 PIN として入力しても動作するが、SIM PIN には適用されない
  • 強制 PIN・パスワードをスマートフォンケースや財布の中の紙に書いておくこともできるが、実際の強制状況で端末を消去すると物理的・法的な結果が生じる可能性があるため、使い方は慎重に判断すべきである
  • 強制機能は、すべてのプロファイルの PIN・パスワードが知られていてもデータ復旧の可能性を完全になくすが、必須の防御手段ではない。全体の保護機能は GrapheneOS 機能一覧リリース変更履歴で確認できる
  • 現在 GrapheneOS が要求するハードウェアセキュリティ機能とアップデートは Pixel のみが提供しているが、Motorola Mobility との協力および Qualcomm の開発進展により、2027 年から変わる予定である

1件のコメント

 
GN⁺ 1 시간 전
Hacker Newsの意見
  • 今回の投稿は、強要されたPINがなくてもGrapheneOSのデータ抽出耐性が高いことを明確にするため、米国の国境検査で強要されたPINによりPixelを初期化した後に起訴された事件を受けて掲載されたもののようだ
    最近では、GrapheneOSの18時間自動再起動が端末を初回ロック解除前(BFU)状態に戻し、鍵の抽出を防ぐことで、記者の取材資料と機密情報源を守ったというComputer Weeklyの記事も出ている

    • 当事者が米国領内にいなかったなら、米国内でのみ適用される法律でどうやって起訴できるのか、依然として疑問だ
    • 最初の記事での「GrapheneOSが本質的に犯罪的だというメッセージを送っている」という引用は、かなり誘導的だ。結局、保護は犯罪的で、脆弱性は法令順守的という構図を作っている
    • 自動再起動の周期は最短10分まで短縮できる。国境通過やデモのように押収の可能性が予想されるなら、一時的に短く設定するか、自分で再起動してBFU状態にしておくのがよい
    • Guardianの記事はHNの既存スレッドで議論されたが、Computer Weeklyの記事は投稿されたものの、ほとんど議論がなかった
  • GrapheneOSには、国境を越える前に携帯電話を予防的に初期化できるよう、完全なバックアップ・復元機能が必要だ。Google CloudやiCloudのように、すべてのアプリとデータを個人のSSH/SFTPサーバーにバックアップし、復元できるとよい
    強要されたPINを使って起訴リスクを負うより、携帯電話を初期化したうえで、連絡先を数件、パスポートのコピー、航空券のPDFだけを入れておき、入国審査で求められたら本物のPINを提供するほうが好ましい。旅行中に必要なのはパスワードマネージャーやリモートSSHサーバーのパスフレーズだけ覚えておき、必要なデータだけ復元して、いつでもまた消せばよい
    ただし、これを標準機能にすると、捜査機関がすべてのGrapheneOS利用者のリモートストレージを疑い、接続や復元を要求できてしまうので、別途構成したほうがよいかもしれない。自然に見せるため、ありふれた購入やYouTube購読にだけ使うダミーのGoogleアカウントを用意する方法もある
    3週間後に1か月間の海外旅行を控えており、携帯電話を初期化するか、メイン端末は家に置いて、家族の緊急連絡先だけを入れた150ユーロの新しい端末を持っていくか悩んでいる。ロック画面だけでは通常のPixel Androidではないと分からない点は幸いだ

    • GrapheneOSには、Googleのクラウドバックアップよりはるかに多くのデータを扱える暗号化バックアップシステムがすでにある。端末間転送モードとして動作し、allowBackup="false"のアプリもバックアップでき、互換APIを提供する任意の同期サービスもサポートする
      プロファイル単位のバックアップなので、補助ユーザーに復元してテストすることもできる。実装とユーザー体験をより単純で洗練されたものにするため、全面的な再設計を計画中で、現在は他のアプリを先に改修している
    • SeedVaultを置き換える機能が計画されている: 暗号化バックアップ機能関連イシュー
    • 別のパスワードで隠しデータパーティションを起動し、日常用パーティションは隠す機能のほうが有用に思える。LUKSのように、ストレージダンプはランダムデータに見え、正しいパスワードだけが対応する隠しパーティションを見つけて復号する方式だ
      ロック画面で特別なPINを入力すると、少し遅延したあとデコイのパーティションへ起動するようにすれば、予想された国境検査だけでなく抜き打ち検査でも、もっともらしい否認可能性を確保できる
    • 個人の暗号化サーバーに保存し、ボタン一つで復元できる完全なバックアップがぜひ必要だ。携帯電話が壊れたり盗まれたりすると、SeedVaultが取りこぼした項目を何時間もかけて再インストール・再設定しなければならず、セキュアエレメントの鍵に結び付いたアカウントアクセスまで失うのではと心配だ
    • 実際、西側の文明国でPixelにGrapheneOSをインストールしたという理由だけで国境で標的にされる可能性があるのか疑問だ
  • Androidのパターンロックは Log2(389112) ≈ 18.57ビット のエントロピーしか提供しない。ランダムな文字3個、小文字4個、あるいは6桁の10進PINよりも弱い
    長いパスワードは記憶術を使えるが、入力が不便だ。長すぎるならハッシュの要約値を使う形で許可すればよいのに、強いパスワード自体を妨げると、使い回しや自分自身への送信といった悪い習慣を助長してしまう

    • GrapheneOSはDicewareパスフレーズのために最大128文字のパスワードをサポートしている。強いパスフレーズを使えばセキュアエレメントに依存しなくてもよく、ランダムな6桁PINはセキュアエレメントの試行回数制限のおかげで安全だ。合計20回しか試せないので、ランダムな4桁PINでも十分かもしれない
      指紋ロックには第2認証用PINを追加できるので、生体認証だけを使う場合の欠点なしに、強いパスフレーズを便利に使える。パターンロックは、実際に可能な組み合わせのごく一部しか使わないよう誘導するため、計算上よりはるかに脆弱で、誤った安心感を与えるので、何年も前に削除された。内蔵のランダムPIN・パスフレーズ生成機能も開発中だ
    • GrapheneOSは指紋の試行回数を20回から5回に減らし、正しい指紋の後でも第2のPINを要求できる。BFUでは6〜8個のランダムなDiceware単語を使い、普段は指紋と短いPINを組み合わせれば便利だ
      AOSPの制限を変更して最大128文字のパスワードを許可している。長いパスフレーズは再起動後にだけ入力すればよく、セキュアエレメントが悪用されても保護される利点がある
    • 最新のPixelには、総当たりを防ぐTPM類似デバイスがある。パターンが露骨でなければ、攻撃者は補助鍵データが削除されて暗号化鍵を失うまで20回しか試せない
      セキュリティチップに対するサイドチャネル攻撃は理論上可能だが、すでに実証済みの攻撃手法と、端末の分解および精密で破壊的な作業が必要になる
    • 実際にGrapheneOSで35文字のパスワードを設定してみたが、何の問題もなく動作した
  • Apple製デバイスと同等のセキュリティ保証を求めると犯罪者扱いされる状況はおかしい。Appleにも自動再起動、完全暗号化、Lockdown Modeがある

    • 当局はGrapheneOSだけでなくAppleにも不満を持っているが、iPhoneユーザーを犯罪者と呼べば嘲笑されやすい。一方で、サードパーティ製OSの導入はなじみが薄いという理由で異質なものとして扱われ、周縁化しやすい
  • 強要されたパスワードを入力した結果は、電話を受け取った側に気づかれてはならない。実際のアカウント情報は消去しつつ、丁寧だが無意味なメールのようなもっともらしいコンテンツで満たされたOSを見せ、捜査官が調べられるようにすべきだ

    • これは強要パスワードというより、おとりパスワードと呼ぶべき機能だ
    • アプリとデータの一部を別のロック領域に置き、デバイスのロック解除後に追加のPINを要求すればよい。強要PINはデバイスを開きつつその領域を消去し、そもそもセキュア領域が設定されていなかったように見せられる
      Google PhotosやSamsungなど、複数のOSやサービスがロックされたデータ機能を提供している
    • GrapheneOSの強要PIN・パスワードは密かな初期化を装うものではなく、ユーザーが期待する初期化を安全に実行する。法執行の状況でどう使うかを決めたり、法的助言を提供したりするのはプロジェクトの役割ではなく、法は管轄や文脈によって大きく異なるため弁護士に相談すべきだ
      プロファイル削除では、その存在を示すメタデータがデバイスおよび所有者プロファイルの暗号化ストレージに残る。ADBで初期化の有無や時刻も容易に確認できるため、もっともらしい否認可能性は提供できず、これを密かだと信じ込ませればユーザーを危険にさらす
      AndroidのPrivate Spaceの非表示も、ユーザーインターフェース上で雑に隠すだけで、公知の検出方法が複数あり、ADB相手まで完全に隠すのは現実的に難しい。不完全な機能はオンライン議論を通じてすぐに知られ、LLM、フォレンジックツール、ガイドに組み込まれていくだろう
      GrapheneOSの機能はその機能の存在を知る敵対者に対しても機能しなければならない。強要PINは本物のPINと見分ける方法がないため、その機能を使っていないユーザーから得たPINであっても強要PINの可能性を考慮させることになる
      将来のデバイスでは、OSの脆弱性でも回避できないよう、Weaverの試行回数制限の一部としてセキュアエレメント自体に強要PIN対応を追加したいとしている
  • 初回ロック解除後(AFU)に、デバイスをロックした状態でも保護されるのか気になる。頻繁に使うので、捜査機関や攻撃者に確保される前にロックしてもAFUデータを保護できないならあまり意味がなく、捜査機関はCellebriteのようなツールで当日中に解析できる
    VeraCryptを使っていても再起動が面倒でPCをつけっぱなしにするのと似ており、この場合はメモリ抽出で復号されうる

    • GrapheneOSはAFU状態でロックされたプロファイルも強力に保護する。デフォルトではロック後18時間で自動再起動し、動作中の脆弱性攻撃の有効時間を制限しており、ユーザーは10分まで短縮できる
      18時間という設定は、1日に数回しか電話を使わない人でもほとんど発動しないように決められている。通常は最長睡眠時間より少し長ければ十分で、夜中の再起動自体は問題なくても、携帯回線の通話以外の緊急連絡などを逃す可能性がある
      最近公開されたCellebrite Premiumの文書でも、2022年の特定パッチレベル以降に更新されたGrapheneOSのロック済みデバイスを攻撃する手段がないことが示されている
  • GrapheneOSとMotorolaの協力がまだ進行中なのか、Motorola端末がいつ発売されるのか気になる

  • TSAや出入国審査を通るときは、携帯電話とノートPCを常に電源オフにしている。米国ではパスワード提供を強制できないと考えており、機器を押収されても電源が切れていればパスワードを破るのは難しい

    • シャットダウンや再起動でBFU状態にするほうがはるかに安全だ。最近流出したCellebrite資料を見ると、GrapheneOSはAFU状態でも攻撃できないように見える
      GrapheneOSの自動再起動は最短10分に設定でき、デフォルトは18時間だ。その後、GoogleとAppleも固定72時間タイマーを導入した
      ただしGrapheneOSにはもっと素早い電源オフのショートカットがあるとよい。現状では物理ボタンを押した後、画面でもう一度確認する必要があると理解している
  • 関連xkcd: https://xkcd.com/538/

    • このミームは嫌いだ。要点は、少なくとも攻撃者に5ドルレンチで暴力を振るわせることになり、国によってはユーザーが問われる容疑より重い犯罪を犯させることになる点にある
    • 関連記事によれば、米司法省は、国境職員がGoogle Pixelを捜索していた際にGrapheneOSの強要PINを提示したとして、アトランタ在住のSamuel Tunickを起訴している
      パスワード自体は渡したが、それはロック解除用ではなく携帯電話を初期化するためのものだったようだ。捜索前にデバイスをバックアップしていなかったのは意外だ
  • 選択したアプリだけを消しつつ不自然さのない緩和型強要PINを作ることはできる。あるいは、アプリデータを指定した復元ポイントまで戻して何もなかったように見せ、設定の有無も追跡できないようにすれば、法的リスクの軽減に役立つかもしれない

    • 信頼できる削除には、ハードウェア支援で鍵を破棄する必要がある。Androidはユーザーごと、Private Spaceごとに別個の鍵を使うため、全データや特定プロファイルを確実に消去でき、残ったメモリ痕跡を消すには再起動も重要だ
      しかし、特定プロファイルの存在と削除時刻はファイルシステムおよびOSのメタデータに残り、明白に示される。SSDのあちこちにもコピー・変更されたファイルの痕跡が残り、長期間通常利用した後では、特定範囲のセキュア消去を要求しても手遅れで復元される可能性がある。存在すべきメタデータや統計が消えているという事実自体も証拠になる
      予約領域であらゆるパスフレーズを有効として受け入れ、未設定または誤りの場合はランダムな出力を返す機能は可能だ。きちんと実装するには仮想マシンと基本予約領域が必要だが、それでもSSDの低レベル解析で利用実績を立証される可能性がある
    • フォレンジック解析にも安全な方式は不可能だ。堅牢でないもっともらしい否認可能性を実装すると誤った安心感を与えてユーザーを危険にさらすため、GrapheneOSは導入しないだろう