Private Relayを実際に使ってみた

iOS15からPrivate Relayという面白い機能が提供されます。
そこで、Private Relayを実際に使ってみた!を書いていきたいと思います。

Private Relayとは

iOS15からiCloudで提供される機能にPrivate Relayがあります。Appleが提供するProxyを通してWebサイトにアクセスするもので、接続元IPがProxyによって隠蔽されることで、プライバシーに配慮した機能です。

詳しくはAppleの”Get ready for iCloud Private Relay“、”Apple’s privacy pillars in focus“を見た方が早いですが、動画から参照した内容はこのような構成です。(Apple’s privacy pillars in focus:29:20あたり)

この例だと、AppleはPrivate Relay Network上でIngress Proxy/Egress Proxyの2つを使って家具のサイト(Furniture site)にアクセスするものです。それぞれのProxyでは暗号化鍵が必要になっていて、ユーザーからAppleまでの経路上のアクセスは暗号化されていて隠蔽されるような構成です。

ざっと自分が注目だと思っているポイントとしては、

  • アクセス先のサイトがIPv4/v6どちらでもOK
  • ユーザー間とIngress Proxy間はQUICが利用される
  • Egress Proxyとアクセス先のサイトはHTTPS/QUICどちらでもOK
  • いわゆる「オレオレ証明書」のようなサイトでも使える
  • DNSリクエストもPrivate Relay上に流れて隠蔽される(ODoH)
  • iOS/macOSともにSafariで適用される
  • サイト側から見るとEgress ProxyのIPはコロコロ変わる
  • iOS15で提供されるもののbeta扱い

サイト側からしてみると、接続元のIPがコロコロ変わっていくので、接続元IPで何か判断しているような運用をしている所は少し注意が必要になってくるでしょう。

iOS 15 で使ってみる

実際にどういう動きをするのか?確認してみます。自分はiCloudを契約していなかったのですが、最小の50Gbyte/月の130円/月を購入したら、Private Relayも使えるようになりました。ちなみに、現在のところベータ版での提供のためか、デフォルトではオフになっていました。

この設定の状態で自分のWebサーバにアクセスすると、アクセス元のIPアドレス変わります。あと、IPアドレス位置情報設定を変更すると、すぐIPが変わるのもおもしろい動作をしていました。そして、Egress ProxyはCloudflare、Fastly、AkamaiといったCDNのIPアドレスが使われていました。

ほとんどの環境で使うことができたのですが、QUIC(UDP)が使えない環境だとPrivate Relayは有効になりませんでした。NW環境依存で使えたり、使えなかったりする点は注意が必要でしょう。

また、Private Relayをオンにすると、いつでもIPが隠蔽させるか?というとそうではありません。

  • Private Relayをオフの状態でSafariを起動
  • 特定のWebサイトにアクセス
  • iPhoneの設定でPrivate Relayをオンにする
  • 接続元IPは変わらないまま
  • Safariを落として、再度アクセスするとPrivate RelayのIPアドレスになる

といった感じで、途中からPrivate Relayを有効にしても、現時点ではリアルタイムに設定が反映はされない事が多々ありました。今後はこれらについても改善されていくものと考えられます。

パフォーマンスはどうなるか?

サーバ側からしてみると、接続元IPがわかると一体どういう情報が分かるでしょうか?

  • 利用している回線(ISP、フリーWiFi、会社から接続している場合は会社名など)
  • IPアドレスが変わったことによってユーザーが移動した可能性
  • 接続している国や地域(ただし、IPからわかる位置情報は正確ではありません)

といった情報は推測するこはでき、iCloudを契約しているユーザーでプライバシーに配慮している人は、Private Relayを有効にしておく人も多いでしょう。

ざっとこのような感じです。位置情報については、Private Relay経由の場合、接続元IPはAppleから公開されていて、位置情報との紐付けをする事も可能になっていました。

Private Relayを利用すると接続元IPをProxyによって隠蔽できるものの、パケットがApple/CDNを経由するためブラウジングが遅くなる事が考えられます。
そこで、iPhone SafariのWebインスペクタを利用して、Private Relayの利用有無でブラウジングの速度がどれくらい変わるか?見てみることにします。
直感的にはPrivate Relayを利用すると多段Proxyの影響で、ブラウジングが遅くなることが想定されます。

構成はこのようしてみました。
ConoHa上に立てたApache上の100kbyteのファイルをダウンロードしてくる時、直接アクセスとPrivate Relay経由でどのくらいの誤差があるか計測しています。Apacheの方ではdeflateはかけないで、100kbyteを都度取得するようにしています。Private Relayの設定は「おおよその位置情報を保持」にして、httpsにて10回簡単にダウンロードした時の平均時間は次のようになりました。

■ 端末とConoHa間
icmp latency : 9.09msec

■ 直接接続
DL時間:32.70msec
icmp latency : 3.13msec

■ Private Relay経由
DL時間:23.63msec
icmp latency : 1.35msec

icmp latencyはApacheにアクセスしたIPアドレス(直接接続のときは自宅のISP、Private Relayの時はEgress ProxyのCDNのIP)との値も計測時に、同じく10回平均の値として取得しました。

結果的にはPrivate Relayを利用すると遅くなるという訳ではなく、逆に早くなるという結果でした。これはicmp latencyの値の通り、Private Relayが利用しているCDNの方がネットワーク経路的に有利に働いたと考えられるためです。
Private Relayの多段Proxyによる遅延よりも、ネットワーク経路の利点が生きるケースでは、むしろPrivate Relayを使うことによる匿名化・高速になるというメリットがあるでしょう。これは一つの簡単な検証例ですが、逆に海外のサーバーやネットワーク経路の利点があまり生きないケースでは、違った結果になると考えられます。

ブログの著者欄

新里 祐教

GMOインターネット株式会社

プログラマー。GMOインターネットグループにて開発案件・新規事業開発に携わる。またオープンソースの開発や色々なアイデアを形にして展示をするなどの活動を行っている。

採用情報

関連記事