メインコンテンツへスキップ

ネット上の足跡を守る:IPv6プライバシー拡張(Privacy Extensions)が追跡を防ぐ仕組み

お気に入りのカフェでWi-Fiに接続した瞬間、あなたのスマートフォンの世界に1つしかない「製造番号」が、アクセスしたすべてのウェブサイトに自動的に送信されているとしたらどうでしょうか。これは架空の脆弱性ではなく、初期のIPv6における標準の仕様でした。

インターネットの基盤が古いIPv4から新しい IPv6へと移行 する際、開発者たちは膨大なIPアドレスを効率的に割り当てる便利な自動設定の仕組みを導入しました。しかし、その便利さと引き換えに、ユーザーのプライバシーが深刻な危険にさらされることになったのです。

この追跡リスクを解決するために開発されたのが「プライバシー拡張(Privacy Extensions)」と呼ばれる技術です。現在、私たちが使っているほぼすべてのデバイスの裏側で、この機能が静かに動き、私たちのプライベートな行動履歴を追跡から守っています。

なぜ初期のIPv6はプライバシーを漏洩させていたのか?

従来のIPv4ネットワークでは、ルーターがDHCPサーバーとして機能し、デバイスに一時的なプライベートIPアドレスを割り当てていました。外部のインターネットと通信する際は、NAT(ネットワークアドレス変換)技術を介して、1つの パブリックIPアドレス を共有するのが一般的でした。

しかし、膨大なアドレス空間を持つIPv6では、世界中のすべてのデバイスに固有のパブリックIPアドレスを直接割り当てることが可能になりました。これを簡単に行うために設計されたのが、「SLAAC(Stateless Address Autoconfiguration:状態を持たないアドレス自動設定)」という機能です。

SLAACの基本動作では、ルーターから送信される「ネットワークプレフィックス(前半の64ビット)」を受け取り、デバイス自身が「インターフェース識別子(後半の64ビット)」を自動生成して、合計128ビットのIPv6アドレスを完成させます。

問題は、この後半64ビットの生成方法にありました。2000年代初頭の初期仕様では、EUI-64 という規格に基づき、デバイスのネットワークカードに書き込まれている世界で唯一の物理アドレス(MACアドレス)をそのままIPアドレスの後半部分に埋め込んでいたのです。

例えば、スマートフォンのMACアドレスが 00:90:27:17:FC:0F の場合:

  1. MACアドレスを中央で2つに分割する。
  2. 間に固定値の FF:FE を挿入する。
  3. 最初のバイトの特定のビットを反転させる。
  4. その結果、IPアドレスの後半は 0290:27FF:FE17:FC0F となる。

このMACアドレス由来の部分は、デバイスを買い替えない限り永久に変わりません。そのため、自宅からオフィスのWi-Fi、街中のフリーWi-Fiへと移動しても、接続先のウェブサイトや広告会社からは「同じデバイスからのアクセスであること」が完全に丸見えになっていました。これが、きわめて精度の高い デジタル指紋による追跡(デジタルフィンガープリント) を可能にしていた原因です。

プライバシー拡張の誕生:ランダム化で追跡を遮断する

この追跡問題を重く見たIETF(インターネット技術タスクフォース)は、2007年に RFC 4941(2021年にはさらに改良された RFC 8981)として、IPv6プライバシー拡張(Privacy Extensions) を規定しました。

そのアプローチは非常に明快です。不変のMACアドレスを使うのをやめ、代わりにランダムで定期的に使い捨てる「一時アドレス」を使用するというものです。

以下の図は、プライバシー拡張が有効な場合に、システムがどのようにアドレスを生成し分けるかを示しています。

無効

有効

ルーターからプレフィックスを受信

プライバシー拡張の有無

MACアドレスからEUI-64を生成

ランダムな一時インターフェースIDを生成

固定IPアドレス - ネットワークを跨いだ追跡が可能

一時アドレス - 外部への送信通信に使用

静的アドレス - 内部通信や着信接続に使用

プライバシー拡張が有効化されたOSは、単一のアドレスだけでなく、用途の異なる複数のIPv6アドレスを同時に保持します。

ウェブサイトの閲覧やファイルのダウンロードなど、日常的な通信で優先的に使われるのが「一時アドレス(Temporary Address)」です。OSは、暗号論的なハッシュアルゴリズム(SHA-256など)を用いて、MACアドレスとは全く関係のないランダムな64ビットの値を生成し、これをアドレスの後半部分として使用します。これにより、広告配信システムなどの外部サーバーからは、あなたが誰であるかを特定できなくなります。

一時アドレスの寿命(ライフタイム)管理

どれだけランダムなアドレスを生成したとしても、同じアドレスを長期間使い続ければ、結局は新しい固定の識別子になってしまいます。そのため、プライバシー拡張には厳格なローテーション(寿命)の仕組みが組み込まれています。

生成された一時アドレスには、以下の2つの寿命が設定されています。

  • 推奨有効期間(Preferred Lifetime): 通常は1日(86,400秒)。この期間内は、新しい通信を始める際に最優先でこの一時アドレスが使われます。期限が切れるとアドレスは「非推奨(Deprecated)」となり、新規の通信には使われませんが、既存の通信(ダウンロード中ファイルなど)が切断されないように維持されます。
  • 生存期間(Valid Lifetime): 通常は7日間。この期間を過ぎると、アドレスはシステムから完全に消去されます。

古い一時アドレスの推奨期間が切れる前に、バックグラウンドで新しい一時アドレスが自動生成されるため、インターネットの接続が途切れることなく、追跡の履歴だけを安全にリセットし続けることができます。

自分のデバイスでプライバシー拡張が有効か確認する方法

現在のWindows 10/11、macOS、iOS、Android、そして主要なLinuxディストリビューションでは、このプライバシー拡張がデフォルトで有効になっています。

確認はコマンドラインから簡単に行えます。

Windowsの場合:

コマンドプロンプトを開き、以下のコマンドを実行します。