Loupe: iPhoneがアプリやトラッカーに公開している情報を可視化
LoupeはオープンソースのiOSアプリで、パッシブシグナルから高度なサイドチャネル技術まで、あらゆるアプリがアクセスできるデバイスフィンガープリンティングデータを明らかにします。
Loupeとは?
Loupeは、Mysk Researchが開発した無料のオープンソースiOS/iPadOSアプリです。公開iOS API(サードパーティアプリが呼び出せるものと同じ)から実際の値を読み取り、そのまま表示することで、デバイスフィンガープリンティングの表面を実際に体験できます。目的はシンプルです。あなたのiPhoneが静かに公開している情報と、それぞれのデータがなぜアプリがあなたを再認識するのに役立つのかを示すことです。
トラッカーは、あなたの名前、メールアドレス、位置情報を知らなくてもあなたを識別できます。各読み取り値は単独では一意ではないかもしれませんが、それらが組み合わさることで、アプリやウェブサイトをまたいで追跡されるフィンガープリントを形成します。
シグナルの分類方法
Loupeはすべての読み取り値を、アクセスコストに応じて3つの階層にグループ化します。
- パッシブ — プロンプトなしでどのアプリでも表示可能。ロケール、タイムゾーン、画面サイズ、バッテリーレベルなどが含まれます。
- 許可が必要 — iOSのプロンプトをトリガーする読み取り値。例:連絡先、写真、位置情報、カレンダー。
- 高度 — 公開APIの巧妙なサイドチャネル利用。例:
canOpenURLによるURLスキームのプロービングや、再インストール間でのKeychain永続化。
開発者にとっての重要性
開発者として、自分のアプリが静かにどれだけのデータを収集できるか気づいていないかもしれません。Loupeはこれを可視化します。例えば、パッシブカテゴリには以下が含まれます。
- ロケールと言語設定 — 地理的な地域を示唆する可能性があります。
- タイムゾーン — しばしば位置情報と相関します。
- 画面の明るさとバッテリー状態 — デバイスの識別に使用できます。
- インストール済みフォント — 非常にユニークなフィンガープリントベクトル。
- システム稼働時間 — ユーザーの行動パターンの推定に役立ちます。
これらはすべて、許可プロンプトなしでアクセス可能です。Loupeは、あなたのアプリが使用するのと同じAPI(Locale.current、UIDevice.current、UIScreen.mainなど)を使用してこれらを読み取ります。
プライバシー第一
Loupeが読み取ったものは、明示的にエクスポートしない限りデバイスから出ることはありません。値は集約やハッシュ化なしでそのまま表示されます。データのアップロード、同期、共有は一切行われません。これはローカル専用の教育ツールです。
Loupeを自分でビルドする
コードを検査したり、自分のデバイスで実行したい場合:
- リポジトリをクローンします:
git clone https://github.com/mysk-research/loupe.git - Xcode 26以降で
code/Loupe.xcodeprojを開きます。 code/Config/Signing.local.xcconfig.exampleをcode/Config/Signing.local.xcconfigにコピーし、自分のDEVELOPMENT_TEAMとバンドル識別子を入力します。このファイルはgitignoreされています。- デバイスまたはシミュレーターでビルドして実行します。
プロジェクトはXcodeのビルド可能フォルダ(フォルダ参照)を使用しているため、新しいSwiftファイルはプロジェクトファイルを編集せずに自動的に認識されます。
macOSサポート
LoupeはmacOSでもビルドできます。Mac版はほぼ完成していますが、本番環境で使用する前にいくつかの機能を磨く必要があります。
プロジェクトを支援する
Loupeは無料でオープンソースです。アプリがあなたのデバイスについて静かに学べることを理解するのに役立ったなら、Myskのプライバシー重視ブラウザPsyloを試して支援を検討してください。Psyloはプロキシベースのブラウジング、分離されたタブ、アンチフィンガープリンティング保護を提供します。
また、なぜPsyloを構築したかも読めます。
ライセンス
ソースコードはMITライセンスの下で公開されています。ただし、Loupeの名前とロゴ、アプリアイコン、その他すべての画像とアイコン、およびデザインソースファイルは© Mysk、全著作権所有であり、MITライセンスの対象外です。
最後に
Loupeは、iOS開発者やプライバシー意識の高いユーザーにとって不可欠なツールです。デバイスフィンガープリンティングを解明し、どのデータがアクセス可能で、それらを組み合わせて一意の識別子を作成できるかを正確に示します。この表面を理解することで、ユーザーと自分自身をよりよく保護できます。
GitHubリポジトリをチェックして始めましょう。
ソース
mysk-research/loupe: ネイティブアプリが何を見ることができるかについての認識を高めるプライバシー重視のiOSアプリ