Auto Reboot
一定時間ロック解除されなければ、端末を自動的に再起動します。暗号鍵がメモリから失われ、データは認証なしには復号できないat rest状態へ戻ります。初期値は18時間で、10分〜72時間まで調整できます。
initプロセスで実装されており、通常のプロセス停止では回避しにくい設計です。GrapheneOSを象徴する機能です。
SECURITY
Aegis Phoneは、Google Pixelのハードウェアセキュリティと、GrapheneOSの多層的な防御設計を組み合わせたセキュアスマートフォンです。 端末の物理的な奪取、未知の脆弱性、アプリの越権、通信経路の追跡。 解析や侵害の難易度を引き上げる主な設計を、このページで13分野・102項目に分けて説明します。
いかなる攻撃も防げるという保証ではありません。実際の耐性は端末世代、更新状態、認証情報、設定と運用に左右されます。
01
紛失、盗難、押収。端末が手元を離れる理由を、防御は選びません。奪われた後の時間経過とともに、抽出の難易度を自動的に引き上げ続けます。
一定時間ロック解除されなければ、端末を自動的に再起動します。暗号鍵がメモリから失われ、データは認証なしには復号できないat rest状態へ戻ります。初期値は18時間で、10分〜72時間まで調整できます。
initプロセスで実装されており、通常のプロセス停止では回避しにくい設計です。GrapheneOSを象徴する機能です。
OS上の無効化に留まらず、USBコントローラーのハードウェアレベルとカーネルの二層で遮断します。データラインとDisplayPort等のAlternate Modeも無効化し、最高強度では充電処理まで停止できます。
ロックされたまま、時間だけが経過
事前設定した緊急用PINまたはパスワードを入力すると、端末データとeSIMを不可逆的に消去します。再起動を必要とせず、開始後は中断できません。ロック画面以外の認証画面でも作動します。
誤入力時の損失が大きいため、当店では値を設定せず、リスクを理解したご本人のみが設定します。
ユーザー空間とカーネルの双方で、解放されたメモリを即座にゼロで上書きします。パスワード・暗号鍵・認証トークン・通信断片がメモリに残留するリスクを下げます。
ロックと同時にSystemUI等へフルコンパクティングGCを実行し、直前に使われたPINや派生鍵の痕跡を、Auto Rebootの発動を待たずに消去しにいきます。
最大128文字のパスフレーズを設定できます。Secure Elementの試行制限に依存せず、暗号強度そのもので守る構成を選べます。
ロック画面とSIM PIN入力で数字キーの配置をランダム化します。覗き見・指の軌跡・画面上の痕跡からの推測を難しくします。
指紋認証の成功後に、さらにPINの入力を要求できます。長いパスフレーズを主認証に、日常は指紋+短いPINという運用が可能です。指紋だけでは開きません。
標準Androidの約20回に対し、合計5回で指紋認証を停止します。別の指を5回当てて、意図的に指紋認証を無効化することもできます。
指紋を端末のロック解除には使わず、パスワードマネージャー等のアプリ認証だけに限定する構成を選べます。
02
暗号化は「かかっているか」ではなく「どう設計されているか」が重要です。鍵の置き場所と導出の仕組みまでが防御の一部になります。
Secure Elementに保存された高エントロピーなWeaver Tokenは、正しい認証情報なしには取り出せません。内部の安全なタイマーが、失敗のたびに待機時間を引き上げます。
公式例:5回目1分、10回目4時間、14回目13日、17回目1年、19回目9年、20回目以降は試行不可。
各ファイル・ディレクトリにHKDF-SHA512で一意の鍵を導出します。本文はAES-256-XTS、ファイル名はAES-256-CTSで暗号化。ファイル名パディングも16バイトから32バイトへ拡張し、長さから漏れる情報まで抑えます。
総当たりに与えられる時間
ファイル本文だけでなく、ファイル名・ディレクトリ名・ファイルシステムのメタデータまで暗号化の対象にします。
Owner・Secondary Userの各プロファイルが独立したランダム鍵を持ちます。Ownerがログイン中でも、他プロファイルのデータへ自動的にはアクセスできません。
SoC内部から取り出せないハードウェア鍵を鍵導出に組み込みます。暗号化データだけをコピーしてGPUクラスタで総当たりする攻撃を、成立しにくくします。
Secondary UserのEnd sessionで、暗号鍵をRAMとハードウェアレジスタから消去し、そのプロファイルだけをat rest状態へ戻せます。端末全体の再起動は不要です。
03
パッチが存在しないゼロデイに対しては、攻撃を「成立しにくくする」設計そのものが防御になります。GrapheneOSが最も深く手を入れている領域です。
GrapheneOS独自の強化メモリアロケーターです。メタデータの完全分離、解放時ゼロ化、Write-after-free検出、Guard Region、ランダムCanary、MTE統合など多数の防御を組み合わせ、従来型のヒープ攻撃を成立しにくくします。
ARMv9のメモリタグ機能で、Use-after-freeやバッファオーバーフローをハードウェアで検出・停止します。互換性確認済みアプリに標準適用し、全アプリへの拡張も可能です。
タグが一致 — アクセスを許可しています
NFC・Bluetooth・UWB・USB・ロック画面カメラ等をオプション化または初期無効化します。脆弱性が存在し得るコードへの到達自体を難しくします。
アプリの起動方式を強化し、ASLR配置・スタックカナリア等の秘密情報をアプリ間で共有しません。1つのアプリの侵害から、他アプリへの足がかりを与えません。
戻り先ポインタ等に暗号学的な認証を付与し、ポインタの書き換えを検出します。ユーザー空間コードへ広く適用しています。
間接分岐の着地点をCPU側で制約し、ROP/JOP等の制御フロー乗っ取りを難しくします。
関数の呼び出し先を型情報で制限します。カーネルではBTIとClangのType-based CFIを併用します。
関数の戻り先を保護された別領域にも保存し、スタック破壊による戻り先の改変を検出します。
仮想アドレス空間を39ビットから48ビットへ拡張し、ASLRエントロピーを24ビットから33ビットへ増やします。メモリ配置の予測を大幅に難しくします。
ユーザーアプリだけでなく、カーネルの主要メモリアロケーターにもMemory Taggingを適用します。
カーネルヒープにもランダムCanaryを配置し、線形オーバーフローを検出します。
ビルドごとのRSA 4096+SHA-256署名を要求し、Lockdownを強制Confidentiality Modeで運用します。ユーザー空間が侵害されても、カーネル境界を維持しやすくします。
実行時コンパイルを全面的に無効化し、Ahead-of-Timeコンパイルへ置き換えます。JITという大きな攻撃面を削減します。
ベースOSでは、ネイティブ・Java双方の動的コード読み込みをほぼ全面的に禁止します。ユーザーアプリにも、アプリ単位の禁止設定を提供します。
同梱アプリへのptraceを遮断します。ユーザーアプリもアプリ単位で制御でき、遮断時は通知されます。
04
「インストールした」と「すべてを渡した」は別の話です。アプリに見せる世界そのものを、利用者が設計できます。
Google Play一式を、特権システムサービスではなく通常アプリとしてサンドボックス内で実行します。権限の付与には同意が必要で、導入したプロファイル内でしか動きません。不要なら入れない選択もできます。
利便性とGoogleの権限縮小を両立する、GrapheneOSの代表機能です。
ストレージ権限を「持っているように見せる」互換レイヤーです。実際に読めるのは、アプリ自身が作ったファイルと、利用者が個別に許可した範囲だけです。
Google Play(特権あり)
特権を持つPlayサービスは、端末の深くまで届きます
アプリ隔離に使われるSELinuxポリシーをさらに厳格化し、到達できる対象を削減します。
プロセスが呼び出せるシステムコールを制限し、カーネルの攻撃面を削減します。
多数のアプリが内部で使うWebViewのレンダラープロセスまで強化します。端末全体の攻撃耐性に効きます。
通常は特権が必要なAndroid Autoを、互換レイヤーの拡張により権限を縮小した状態で動作させます。
アプリごとにネットワークアクセスを完全に遮断できます。直接通信だけでなく、OS API経由・他アプリ経由・localhost経由の間接通信まで制御します。
通常は権限なしで読める加速度・ジャイロ・コンパス・気圧計等を一括制御します。拒否時はゼロ値を返し、アプリに拒否を悟らせにくくします。
連絡先全体を渡さず、特定の連絡先・グループ・必要な項目だけを開示します。初期状態では、アプリから空の連絡先に見えます。
Force Stopより強く、データを残したままアプリを実行不能にできます。他アプリやシステムから呼ばれても起動しません。
05
一台の中に、互いを知らない複数の環境を作れます。仕事、私生活、金融。混ざらないことが、漏れないことの前提になります。
アプリ・データ・アカウント・連絡先・写真・暗号鍵・VPN設定・Google Playの有無までがプロファイル単位で分離されます。アプリは他プロファイルの存在を、原則として認識できません。
Private
日常の環境
使用中
Work
仕事の環境
暗号化されたまま
Finance
資産の環境
暗号化されたまま
Privateを開いても、他の環境は暗号化されたまま。存在も見えません
標準Androidより多い、最大31のセカンダリユーザー+Guestを作成できます。
特定プロファイルでの新規インストールをOwnerから禁止できます。必要なアプリだけの固定環境を作れます。
Ownerで導入済みのアプリを、再ダウンロードなしにセカンダリプロファイルへ追加できます。
バックグラウンドプロファイルの通知転送は初期状態で無効です。必要なプロファイルだけ個別に有効化します。
06
起動するたびに、OSそのものが検証されます。すり替えられた端末は、起動の段階で正体を現します。
ファームウェアとOSパーティションを、ハードウェアRoot of Trustから毎回検証します。検証されないデータは、OSとして読み込まれません。
導入後にBootloaderを再ロックして運用します。アンロック状態は不完全なインストールとして警告されます。当店は再ロック状態で納品します。
起動のたびに、順番に検証しています
ファームウェア・OS・システムアプリ・APEXモジュールのバージョンと署名を確認し、脆弱な旧版へ戻すDowngrade攻撃を防ぎます。
OS外から更新されるシステムAPKにも、署名付きfs-verityメタデータを要求します。起動時とファイル読込時にも検証します。
OS同梱アプリを旧バージョンへ戻せる可能性のあった抜け穴を、インストール時と起動時の双方で閉じます。
起動時に表示されるSHA-256キー指紋を公式値と照合し、正規署名ビルドであることをご自身の目で確認できます。
07
「信頼してください」を口にしないための仕組みです。ハードウェアから信頼を連鎖させ、第三者が検証できます。
ハードウェアKeystoreとSecure Elementを使い、端末が正規のPixelか、GrapheneOSが正規ビルドか、BootloaderとVerified Bootの状態までを検証できます。
検証する端末
ハードウェア鍵で検証中
Aegis Phone
端末ごと・検証相手ごとにハードウェア保護された鍵を生成し、同一端末が正しい状態を保っているかを継続的に確認します。
Attestation Serviceにより、端末が手元になくても定期的に真正性と整合性を確認できます。
Remote Key ProvisioningにGrapheneOSのリバースプロキシを標準利用し、アプリごとに分離された鍵のプライバシーを補強します。
08
防御は導入した日の状態では終わりません。更新の速さと確実さが、防御の実効性を決めます。
Android本体で未修正の脆弱性や適用漏れのパッチを、独自に修正します。プロジェクト自身がAndroidやPixelの脆弱性を発見・報告してきた実績があります。
使用していない側のOSスロットへ更新し、初回起動に失敗すれば自動的に元のスロットへ戻ります。更新の失敗で端末が沈黙しません。
スロットA
稼働中
スロットB
更新を書き込み中
使用中のまま、もう片方のスロットへ書き込みます
OS更新は自動でダウンロード・適用され、利用を妨げずに最新状態を維持します。
Android Security Bulletinの正式公開前に、将来のパッチを先行導入できる任意チャンネルを提供します。
攻撃対象として特に重要なブラウザ/WebViewを、OS本体とは別に迅速に更新できます。
09
最も攻撃されるのは、最も使う場所です。ブラウザとWebViewには、OSと同じ思想の防御を敷きます。
JITコンパイラの巨大な攻撃面を、通常の閲覧では使いません。必要なサイトだけ個別に有効化できます。
Webサイトごとにレンダラープロセスを分離し、あるサイトの侵害から他サイトのデータへ到達しにくくします。
サイトごとに、独立したプロセスで実行します
Vanadiumの主要メモリアロケーターでMTEを有効化しています。
ブラウザの制御フロー乗っ取りを難しくします。
スタック破壊を検知する保護を強化しています。
未初期化メモリ由来の脆弱性と、過去データの漏えいリスクを抑えます。
埋め込みコンテンツを追加で隔離します。
DrumBrakeインタープリターにより、JITを無効化したままWebAssemblyを動かせます。
JITが無効なプロセスでは、動的コード実行そのものをシステムコールレベルで遮断します。
大きなGPU攻撃面を削減します。
P2P通信によるIPアドレスの露出を制御できます。
ネイティブのCredential Manager実装により、Google Playを入れずにPasskeyや自動入力を使えます。
10
端末の外へ出ていく電波と経路にも、選択肢を持てます。運び手に委ねきらないための制御です。
2G・3G・5Gを無効化し、LTEだけを使用できます。古い世代と最新世代の巨大なセルラーコードごと、モデム周辺の攻撃対象を減らします。
同じWi-Fiへの再接続ごとに、異なるMACアドレスを使用できます。標準Androidの「ネットワークごとに固定」より追跡耐性の高い設計です。
毎回別のアドレス。同じ端末だとは、外からわかりません
再接続前にDHCPクライアントの状態を消去し、MACアドレスを変更しても同一端末と紐づく痕跡を残しにくくします。
ネットワークをまたいだ端末識別につながるカーネルの問題を修正しています。
VPN停止時のDNS漏えいやトンネル外接続、リゾルバーのRace Conditionを、追加の制御で遮断します。
マルチキャスト通信を使ったVPN外への経路を、eBPFフィルターで遮断します。
VPN Lockdownの有効時は、mDNS経由の接続も制限します。
別プロファイルのVPNトンネルへの不正なパケット送出を、Netfilterで遮断します。
特定のネットワークインターフェース指定でVPNを回避できた、eBPFファイアウォールの穴を閉じています。
キャリア固有アプリやOMA Device Managementを搭載せず、対応情報の独自変換で広い互換性を保ちます。
時刻更新を認証・暗号化し、端末時刻の改変による証明書有効期限チェックの迂回を防ぎます。
11
渡さない情報は、漏れようがありません。収集の前提そのものを外すことが、最初の防御になります。
初期状態で常駐する特権的なGoogleサービスを持ちません。必要な方が、必要なプロファイルにだけ明示的に導入します。
接続確認・GNSS補助・時刻同期等を、GoogleではなくGrapheneOSのサービスで標準処理します。切り替えや無効化も選べます。
Googleのサーバーには、届いていません
GNSS補助のSUPL通信をプロキシ経由にできるほか、キャリア標準へ戻す・完全無効化する選択肢があります。
位置の計算をサーバーへ送らず、端末内で行います。位置推定のたびに外部へ距離情報を渡す方式を避けています。
OSビルド・日時・タイムゾーン等のEXIFメタデータを、標準で除去します。
標準Androidの意図を迂回して端末を一意に識別できた複数の経路を修正しています。旧API向けアプリへのハードウェアID制限も強化しています。
機密通知の非表示・パスワード入力文字の非表示・入力履歴による個人化の無効化を、標準設定とします。
カメラ・マイクに加え、アプリが位置情報へアクセスした際も画面上に表示します。すべての位置情報APIが対象です。
12
日常の道具にも、同じ思想を通します。防御は特別な操作ではなく、標準の挙動であるべきです。
hardened_mallocやMTEがメモリ破壊を検出すると、通常のクラッシュではなく「メモリ破壊が検出された」と通知します。単なる不具合か、攻撃の兆候かを判断する材料になります。
脆弱性の温床になりやすいPDFを、サンドボックス化された専用ビューアで開きます。
プライバシーとセキュリティを重視した、独自のカメラアプリを提供します。
初期設定時にBootloaderのアンロック状態を明確に警告し、完了時にはOEM Unlockingを標準で無効化します。
ローカル・外部ストレージ・対応クラウドへの暗号化バックアップを統合しています。
ログを自動送信せず、利用者が内容を確認して、必要な範囲だけ共有できます。
商業提携による不要なプリインストールを持たず、常駐アプリと攻撃対象領域を増やしません。
一部のルート認証局を、標準の信頼済みシステムCAから除外しています。
試作機やUARTデバッグが有効な状態など、通常より制御の弱い可能性がある端末を警告します。
13
GrapheneOSは、どの端末でも同じ強さになるOSではありません。この防御は、要件を満たすハードウェアの上でだけ完成します。
ファームウェア/OSのVerified Boot、ロールバック保護、StrongBox Keystore、Secure Element、Weaverによる試行制限、Hardware-bound Key Derivation、MTE・BTI・PAC、無線・GPU等の分離、A/B更新、USBのハードウェア無効化、ロック状態でのデバッグ無効化、長期のファームウェア更新。GrapheneOSがPixelを選ぶ最大の理由は入手性ではなく、これらの要件を満たすためです。

認証と暗号鍵を守る、独立したセキュリティチップ
保護性能は、端末モデル、更新状態、認証情報、設定、アプリ、通信回線および利用方法によって異なります。出典はGrapheneOS公式資料に基づく整理です。機能の初期値・対応状況はGrapheneOSの更新により変わることがあります。