iOSアプリが静かに見ているもの:Loupeが明かしたデバイスフィンガープリンティングの実態

ユーザーが「許可」をタップしていないにもかかわらず、アプリがあなたを識別できるとしたら、同意に基づくプライバシーモデルは何を守っているのか。

導入

Appleは長年にわたり、プライバシーをプラットフォームの中核的価値として打ち出してきた。「プライバシーは基本的人権です」という言葉はWWDCの基調講演やiPhone広告に繰り返し登場し、2021年のiOS 14.5で導入されたATT(App Tracking Transparency)フレームワークはその宣言の最も具体的な制度的表現であった。アプリが広告識別子(IDFA)にアクセスするためにはユーザーの明示的な同意が必要というルールは広告技術業界全体を揺るがし、Metaは当該四半期だけで数十億ドル規模の売上損失を公式に警告した。

しかし2026年6月、プライバシー研究組織Myskが公開したiOSアプリLoupeは、その宣言と現実の間の亀裂を静かに、しかし鮮明に浮かび上がらせる。LoupeはApp Storeで無料公開されている教育用アプリケーションだ。この一見シンプルなアプリが行うことは、ユーザーのデバイスで任意のアプリが収集できるデータをリアルタイムで列挙し可視化して見せることである。その一覧を目にしたユーザーの多くは当惑する。

Hacker Newsに公開された直後、Loupeは546ポイントを記録して当日のトップランキングに浮上し、243件のコメントが寄せられた。開発者とセキュリティ研究者たちの反応は「既に知っていた」と「これほど多いとは知らなかった」に二分された。どちらの反応も、このアプリが提起する問題の本質を指し示している。フィンガープリンティングは存在する。そしてその規模は、ほとんどのユーザーが認識しているよりはるかに広い。

日本においてこの問題は、個人情報保護法(個情法)の適用範囲という観点からも重要な意味を持つ。デバイスフィンガープリントが「個人情報」に該当するかどうかは法解釈の余地が残っており、2022年の改正個情法では「個人関連情報」という概念が新設されたものの、フィンガープリンティングへの対応は依然として不完全である。

本稿では、Loupeが公開した3層のデータアクセス構造を解剖し、ATT以降も広告追跡がどのように継続されているかを技術的に分析し、日本の法的枠組みも含めてこの状況が何を意味するかを考察する。

Loupeが可視化した3層構造:受動的シグナルからAPIの転用まで

Loupeの核心的な貢献は、アプリがデバイスデータにアクセスする方法を三つの層に体系化した点にある。この分類は技術的正確性と直感的理解しやすさのバランスが取れており、一般ユーザーにもプライバシーリスクの実態を伝えられる設計になっている。

第1層:受動的シグナル — 権限なしに収集されるデータ

第1層はiOSが任意のアプリに対して自由に公開しているデバイス情報である。ユーザーの同意は一切必要なく、システムAPIを呼び出すだけで即座に取得できる値だ。

主な項目を挙げると、ロケール設定(言語・地域・数値フォーマット・通貨記号)、タイムゾーン、画面解像度とピクセル密度、バッテリー残量と充電状態、デバイスモデル識別子(iPhone16,1などの内部コード)、OSバージョン、システム言語リスト、アクセシビリティ設定(太字テキスト・高コントラストモード・文字サイズ倍率)、インストールされているキーボードのリスト、現在の接続ネットワークタイプ(Wi-Fi/セルラー)などがある。

これらの項目はそれぞれ単独では無害に見える。ロケール情報はアプリが適切な言語でコンテンツを表示するために必要だ。バッテリー状態はエネルギー集約的な処理を調整するためのものだ。しかしフィンガープリンティングの論理は個々のデータポイントの無害さにではなく、組み合わせの一意性にある。ロケールがja-JPで、タイムゾーンがAsia/Tokyoで、画面が2796×1290ピクセルで、バッテリーが73%で、アクセシビリティで太字テキストが有効になっているデバイスは、数百万台の中でかなり狭い範囲に絞り込まれる。ここに第2層のデータが加わると、識別精度は急激に上がる。

第2層:権限ベースシグナル — ユーザーが許可したデータの裏側

第2層はiOSの標準権限システムを通じて収集されるデータだ。ユーザーがアプリに連絡先・写真・位置情報・カレンダーへのアクセスを許可すれば、そのアプリはそのデータ全体を読み取れる。ユーザーが明示的に同意しているため制度上は問題がない。

しかしLoupeが指摘する問題は、ユーザーの同意がどのような条件で行われているかである。「アプリがカメラにアクセスすることを許可しますか?」というフレーズは写真を撮るための用途として読まれる。だがカメラアクセス権限を持つアプリは、同時にデバイスのハードウェア特性(カメラセンサーのノイズパターン、レンズの歪みプロファイル)を測定して識別子として活用できる。位置情報権限を持つアプリは正確な位置だけでなく、移動パターン・よく訪れる場所・自宅や職場の推定座標を蓄積する。

さらに重要なのは、この層のデータが第1層と結合されたときに生じるシナジーだ。位置データはそれ自体でも強力な識別子だが、受動的シグナルで取得したデバイスモデル・OSバージョン・言語設定が加わると、たとえユーザーが後から位置情報権限を取り消してもすでに構築されたプロファイルは残り続ける。

第3層:高度なシグナル — 合法的APIの追跡転用

第3層がLoupeの最も重要な暴露だ。技術的に完全に合法なiOS APIがユーザー追跡のために転用される仕組みを示している。

canOpenURL() APIはもともと、デバイスに特定のURLスキームを処理できるアプリがインストールされているかを確認するためのものだ。例えば「spotify://」というスキームが開けるならSpotifyがインストールされているとわかる。この機能はディープリンク処理やソーシャル共有機能の実装に正当に使われる。しかし広告SDKはこのAPIを使って数十〜数百のURLスキームを順次プローブする。どのアプリがインストールされているかの組み合わせはユーザーごとに異なるため、これだけでもかなり精密なフィンガープリントが作られる。Appleはios 9でInfo.plistにクエリするスキームリストを事前に宣言することを義務付けたが、そのリスト自体が識別子として機能する。

Keychainはより直接的な問題を提起する。iOSのKeychainはアプリを削除してもデータが消えない。広告SDKが初回起動時にKeychainに一意の識別子を保存すると、ユーザーがアプリを削除して再インストールしたり、さらにはiOSを初期化しても(iCloudバックアップなしの場合)、その識別子は生き続ける。これは「半永久的なデバイス識別子」を事実上実現する方法であり、AppleがIDFAアクセスを同意ベースに転換した措置を無力化するメカニズムだ。

Loupeはこれらすべてのシグナルが自分のデバイスでどのようにリアルタイムで収集され得るかを、ユーザーが直接見られるよう設計されている。Myskはアプリの説明文に明記している。「Loupeが読み取る情報は、ユーザーが明示的にエクスポートを選択しない限りデバイスの外に出ることはない」

ATTの盲点:フィンガープリンティングが繁栄するグレーゾーン

ATTフレームワークはiOS 14.5導入時に広告技術業界に衝撃を与えた。Meta・Snap・Twitter(現X)は一斉に広告収益の減少を警告し、IDFAへの同意率はプラットフォームによって20〜40%水準に落ち着いた。積極的に追跡に同意するユーザーより拒否するユーザーがはるかに多いということだ。

しかし広告技術業界は適応した。その適応の核心がフィンガープリンティングである。

ATTの法的・技術的適用範囲は「デバイスまたはユーザーを追跡するために第三者と共有されるデータ」を他社のアプリ・ウェブサイト・オフライン活動と結びつけることに限定される。Appleの開発者ガイドラインは「デバイスフィンガープリンティングはユーザーの同意の有無に関わらず許可されない」と明記している。しかしこの規定の執行は技術的に困難だ。

フィンガープリンティングは単一のAPIを使うわけではない。複数の合法的APIからデータを収集し、サーバー側で組み合わせる方式だ。各APIコールはそれ自体として正当な用途がある。Appleがアプリ審査でこれを検出するには、アプリコードだけでなくサーバーとの通信パターンまで分析しなければならない。実際にAppleのApp Reviewはこのレベルの動的分析を行っていない。

結果として、IDFA制限後に広告業界で台頭したのは二つのアプローチだ。一つはSKAdNetwork — Appleが公式に提供するプライバシー保護型アトリビューションシステムだが、測定精度が低くリアルタイムデータを提供しないため業界の不満が根強い。もう一つがフィンガープリンティングだ。IDFA比で精度は落ちるが、同意なしに動作し、ATTフレームワークの技術的適用範囲外にあるという点で、より安定した追跡手段として浮上した。

canOpenURL()プロービングはこのグレーゾーンの典型例だ。Appleはios 9でクエリ可能なスキームリストをInfo.plistに宣言することを要求した。しかしこの制限はアプリが宣言したスキームだけをクエリできるということであり、宣言したスキーム自体を追跡に活用することを防ぐものではない。異なるアプリが異なるスキームリストを宣言するパターン自体が識別子になる。

Keychainの持続性問題はより直接的なポリシー違反に見えるが、AppleはこれをKeychain APIのポリシー違反として処理するより個別アプリ審査の問題として扱ってきた。結果としてこの慣行は広く継続されている。

iOS 18でAppleが導入したアプリプライバシーレポートはこの状況の一部をユーザーに可視化する。どのアプリがどのセンサーやAPIにアクセスしたかを記録する。しかしこのレポートは事後的であり、データがどの目的で使用されたかは表示せず、受動的シグナルの収集自体は記録しない。Loupeがリアルタイムで見せるものとは異なる水準の可視性だ。

日本の個人情報保護法とフィンガープリンティングの法的グレーゾーン

フィンガープリンティングを日本の法的文脈で考察すると、さらに興味深い問題が浮かび上がる。

2022年に全面施行された改正個人情報保護法では、「個人関連情報」という新しいカテゴリーが導入された(法第26条の2)。個人関連情報とは、「生存する個人に関する情報であって、個人情報、仮名加工情報及び匿名加工情報のいずれにも該当しないもの」と定義される。Cookie情報、IPアドレス、位置情報、閲覧履歴などが例示されており、デバイスフィンガープリントもこのカテゴリーに含まれ得ると解釈されている。

重要なのは、個人関連情報が個人データへの「提供」に際して規制が適用されるという点だ。つまり、広告SDKがデバイスフィンガープリントを収集し、それを第三者の広告ネットワークに送信して、その第三者が保有する個人情報と照合する場合には、提供元の事業者は受け取り先が本人の同意を得ているかどうかを確認する義務が生じる。これは形式的な義務付けではあるが、フィンガープリンティングを「個人情報」として直接保護するGDPR(欧州一般データ保護規則)の枠組みとは異なるアプローチだ。

GDPRではIPアドレスやCookie識別子は「個人データ」と明確に位置付けられており、正当な法的根拠なしに処理することが禁止される。デバイスフィンガープリントも同様に個人データとして扱われる可能性が高い。これに対し日本の個情法は、フィンガープリント単体が「個人を識別できる」ものでない限り個人情報として直接規制されないという解釈余地を残している。

個人情報保護委員会(PPC)は2023年のガイドライン改訂でCookieと個人情報の紐付け問題を取り上げたが、アプリ内のフィンガープリンティングへの明示的な言及は依然として限られている。これは技術の進化に法整備が追いついていない典型的な状況だ。

実務的な観点からは、日本のアプリ開発者やマーケターが注意すべき点がある。Loupeが示すような受動的シグナルの収集が「個人関連情報」の取得に該当し、それを第三者広告ネットワークへ提供する場合、改正個情法上の確認義務が発生する可能性がある。また、特定電子メール法や電気通信事業法(2023年改正)の文脈でも、利用者識別のための情報収集には配慮が求められる。

Loupeのような可視化ツールは、このような法的グレーゾーンを一般ユーザーにとって具体的に理解しやすくする効果がある。抽象的な法律上のリスクを「自分のデバイスで今まさに起きていること」として示すことで、制度的議論を喚起する力を持っている。

プラットフォームと開発者のジレンマ:機能とプライバシーの間

この問題を単に「悪意あるアプリ」の問題として捉えると本質を見誤る。フィンガープリンティングに使われるAPIの多くは合法的で有用な目的のために存在する。

canOpenURL()はディープリンク処理の基盤だ。ソーシャルアプリの「Spotifyで開く」ボタンが機能するのはこのAPIのおかげだ。Keychainはセキュリティ認証情報保存の標準的なメカニズムであり、アプリ削除後もデータが維持されることは再インストール時にログイン状態が復元される利便性の基盤でもある。ロケールとタイムゾーン情報は多言語アプリの基本動作に不可欠だ。

これらのAPIを追跡目的で使用するのは、ほとんどの場合アプリに組み込まれたサードパーティの広告SDKである。Firebase Analytics・Adjust・AppsFlyer・MMPなどのSDKを統合すれば、そのSDK内部でこれらのシグナルを収集してサーバーに送信するコードが実行される。開発者の立場からは標準的なSDKをアトリビューションと分析のために使っているわけだが、そのSDKが実際に何を収集しているかを完全に把握している開発者は多くない。

Appleのジレンマは、これらのAPIを制限または削除すると多くの合法的機能が壊れるということだ。canOpenURL()を完全にブロックすればディープリンクのエコシステムが打撃を受ける。Keychainのアプリ削除後の持続性をなくせばユーザー利便性が損なわれる。受動的シグナルをブロックしたりノイズを加えたりすれば多言語サポートとアクセシビリティ機能に影響が出る。これがプライバシー強化措置が常に段階的で選択的に行われる理由だ。

今後の展望を見ると、Appleはios 17でリンク追跡保護(Link Tracking Protection)を導入して一部のUTMパラメータを自動削除し始めた。SafariのITP(Intelligent Tracking Prevention)はブラウザレベルのフィンガープリンティング対応を継続的に強化してきた。しかしアプリ内フィンガープリンティングに対するiOSレベルの対応はまだ十分でないという評価が支配的だ。

Loupeを作ったMyskはこのアプリを「啓発ツール」として位置付けている。彼らはPsyloというプロキシベースのプライバシーブラウザも展開しており、問題提起にとどまらず実用的な代替手段を模索する方向に動いていることがわかる。Loupeのソースコードがmitライセンスで公開されているという事実も意味深い。このコードベースはセキュリティ研究者、学生、そして自分が使うSDKが実際に何を収集しているかを知りたい開発者にとっての参考資料となる。

もう一つ興味深いコンテキストがある。MyskはLoupeが「ほぼ全面的にAIコーディングツールで書かれた」と明かしている。これは2026年時点でセキュリティ研究ツールの開発方式自体が変化していることを示唆する。プライバシー攻撃ツールも防御ツールもAI支援開発の恩恵を受けているという点で、AIがセキュリティの地形に与える影響は両義的だ。

結論

Loupeが明らかにしたのは技術的に新しい事実ではない。セキュリティ研究者たちはiOSのフィンガープリンティング攻撃面を何年にもわたって文書化してきた。しかしこれをユーザーが自分のデバイスでリアルタイムに直接見られるようにしたことは、別の次元の意義を持つ。

同意に基づくプライバシーモデルは、ユーザーがどのようなデータがどのような目的で収集されるかを実質的に理解できるという前提の上に立っている。しかしLoupeが示すように、受動的シグナルは同意の要求自体がなく、高度なシグナルはAPIの本来の目的と実際の使用の間のギャップに隠れている。ユーザーは何に同意しているかを正確に知ることができない。

日本の個人情報保護法の文脈では、デバイスフィンガープリンティングが「個人関連情報」として規制対象になり得る可能性は法解釈上存在するものの、実際のエンフォースメントは追いついていない。個人情報保護委員会がこの問題に対してより明確なガイダンスを示すことが、業界の実践を変える上で重要なステップとなるだろう。

Appleがマーケティングで掲げる「プライバシーは基本権」というフレーズが実質的な意味を持つには、制度的措置はIDFA制限の水準を超えなければならない。受動的シグナルへのノイズ挿入、canOpenURL()クエリのプライバシーレポートへの統合、Keychainデータのアプリ削除時のデフォルト削除ポリシー — これらの措置は技術的には可能だがエコシステムへの摩擦を伴う。その摩擦を受け入れる意志があるかどうかが、Appleのプライバシーへの約束がマーケティングなのか政策なのかを分けるだろう。

Loupeはアプリ一本に過ぎない。しかしユーザーが自分のデバイスで何が起きているかを直接見られるようにするという点で、このアプリが提起する問いは開発者とプラットフォームの双方に有効であり続ける。


出典