要約

  • Talal Haj Bakry氏とTommy Mysk氏は、DNS prefetch、WebAuthn Related Origin Requests、WebTransportがWebKitのアプリ単位プロキシを迂回し得ると報告した。
  • DNS prefetchは端末が実際に使うDNSリゾルバーを明かし得る一方、後の二経路はサイト側の宛先に端末の実IPアドレスを見せ得る。
  • 研究者によれば、関連機能はWebAuthnがiOS 18.0、DNS prefetchがiOS 26.0、WebTransportがiOS 26.4から利用可能になった。
  • TechCrunchは8月5日に公開された実証サイトを独自に試し、Private Relayが有効でも自社の実アドレスが表示されたと報じた。
  • AppleはPrivate RelayをSafari閲覧、DNS問い合わせ、一部の非暗号化HTTP通信を守る二段中継と説明しており、システム全体のVPNとは位置づけていない。
  • Psylo 1.3.1はアプリ側の回避策を導入したが、締め切り時点でAppleの確認、CVE、プラットフォーム修正、影響規模の測定はいずれも確認されていない。

利用者が見る単一のページを、OSは複数の通信主体に分ける

Safariの画面では、一つのサイトを一つの保護状態で閲覧しているように見える。しかし内部では、ページ読み込み、名前解決、資格情報の検証、新しいリアルタイム転送が別々の部品に委ねられる。今回の三経路は、ページがきっかけを作っても、実際に接続を所有する部品がSafariではない場合を突いた。

Appleの二段中継は、利用者の接続元を知る中継と、アクセス先を知る中継を分離する。その仕組みに入った通常の通信まで破られた証拠はない。問題は、別の部品が作った通信が入り口を通らないことだ。保護の品質は中継内部だけでなく、どの要求を中継対象として束ねるかで決まる。

WebAuthnは認証操作より前に実アドレスを使い得る

Related Origin Requestsは、同じ組織が管理する複数ドメインで一つの資格情報を利用するための仕組みである。関係を確かめる際、OSの資格情報サービスが相手ドメインから検証ファイルを取得する。研究者は、この取得がSafariのプロキシ経路ではなく端末から直接行われ、相手に実IPアドレスを示すと説明する。

利用者がパスキーでログインする必要はない。条件付きmediationでは、画面を出さずに検証要求を起動できる。したがって「パスキーを使えば住所情報を渡す」という単純な話ではない。サイトが保護対象外のシステム通信を、明示的な同意の前に誘発できることが問題である。

DNS prefetchで見える情報は分けて評価する必要がある

DNS prefetchは、将来使いそうなドメイン名を先に解決して待ち時間を減らす。Myskの検証では、WebKitにプロキシを設定しても、この問い合わせが端末の通常のDNS経路から出ることがある。サイトが訪問者ごとに固有の名前を埋め込めば、権威DNSで実ネットワーク側の問い合わせを識別できる。

ただし、そこで見えるのは常に端末の正確な公開IPとは限らない。再帰リゾルバー、キャッシュ、通信事業者の構成によって観測値は変わる。これはAppleが示すDNS保護との不整合だが、宛先サーバーに直接接続する二経路と同じ証拠にまとめるべきではない。

WebTransportは別のデータ面を開く

WebTransportはHTTP/3とQUIC上で低遅延のストリームやデータグラムを扱う。研究者によれば、WebKitはその接続を作る際に閲覧セッションのプロキシ設定を引き継がず、相手サーバーは中継アドレスではなく端末の実アドレスを見る。DNSの場合と異なり、ここでは宛先への直接接続が成立する。

機能そのものは対話型サービスに有用であり、永久に無効化するだけでは解決にならない。保護されたページから派生した接続は、同じ中継経路を継承するか、拒否されるか、理解可能な例外確認を求めるべきだ。socketを開いたライブラリの違いが、利用者に見えないままプライバシー方針を変えてはならない。

VPNとの違いは免責ではなく境界条件である

Appleの資料は、Private Relayの対象をSafari、DNS解決、一部の非暗号化HTTP通信としている。元のアドレスを中継アドレスに置き換え、おおまかな地域だけを維持する。端末全体の通信をトンネル化するVPNとは異なり、研究者も今回の三経路はシステムレベルVPNに同じ形では影響しないとしている。

この違いから、端末の全通信が守られるとは言えない。同時に、Private Relayの全通信が漏れるとも言えない。製品上の難点は、サイトがSafari機能を通じて起動できる通信なのに、利用者には保護範囲外だと分からない点にある。範囲の説明は、実装上の例外と一致して初めて意味を持つ。

ブラウザーごとの止血策から共通方針へ

Psylo 1.3.1はDNS prefetchを遮断し、WebTransportとWebAuthnを初期状態で無効にした。必要な場合だけsilo単位で再び有効にする。互換性を一部犠牲にして既定値を安全側に置く措置であり、研究者はTor ProjectとOnion Browserの開発者にも連絡したとしている。

TechCrunchによればAppleから即時の回答はなく、研究者は過去の開示対応を理由に公開前の報告を行わなかった。締め切り時点でCVEやAppleの修正は確認されない。未解決という事実は、Appleが認めた、拒否した、修正しないという意味ではない。閉鎖にはWebKit、資格情報サービス、転送基盤、Private Relayをまたぐ共通方針と独立再試験が必要である。

情報源