ping6.net
セキュリティ

IPv6プライバシー拡張:アドレス追跡を停止

IPv6アドレスはMACアドレスを明らかにし、ネットワーク間であなたを追跡できます。プライバシー拡張がこれを修正します。有効化方法はこちら。

ping6.net2024年12月14日2 min read
IPv6プライバシーセキュリティ追跡プライバシー拡張

IPv6プライバシー拡張:アドレス追跡を停止#

IPv6を使用してネットワークに接続すると、デバイスはネットワークカードのMACアドレスから派生した永続的な識別子をブロードキャストしている可能性があります。これにより、さまざまなネットワークやウェブサイトで追跡可能になります。

TL;DR - 要点まとめ

重要ポイント:

  • IPv6のEUI-64アドレスはMACアドレスを公開し、ネットワーク間で追跡可能にします
  • プライバシー拡張(RFC 4941/8981)は、一時的なランダムアドレスを生成し、定期的にローテーションします
  • Windows、macOS、最新のLinuxディストリビューション、モバイルデバイスではデフォルトで有効です
  • サーバー、DNS、静的ファイアウォールルールには安定したアドレスが必要なため、プライバシー拡張を無効にします
  • プライバシー拡張のみではインターフェイスIDを保護します - 完全な匿名性にはVPNが必要です

ジャンプ: プライバシーの問題 | 動作の仕組み | 有効化方法 | 使用しない場合


プライバシーの問題#

元のIPv6アドレッシングスキームは、EUI-64を使用してMACアドレスからインターフェイスIDを生成します。ネットワークカードのMAC 00:1a:2b:3c:4d:5eは、IPv6アドレスの一部として021a:2bff:fe3c:4d5eになります。

変換の仕組みは次のとおりです:

MACアドレス:    00:1a:2b:3c:4d:5e
FF:FEを挿入:   00:1a:2b:ff:fe:3c:4d:5e
7番目のビットを反転:02:1a:2b:ff:fe:3c:4d:5e
インターフェイスID:021a:2bff:fe3c:4d5e

7番目のビットの反転(ユニバーサル/ローカルビット)は、EUI-64標準の一部です。0002になるのは、そのビットがアドレスがグローバルに一意であるかどうかを示すためです。

これはいくつかの問題を引き起こします:

  • ネットワーク間の追跡:デバイスは、自宅、コーヒーショップ、パブリックWiFiのいずれにいても同じインターフェイスIDを運びます
  • 永続的な識別:ウェブサイトは、Cookieをクリアしても、時間の経過とともに訪問を関連付けることができます
  • MACアドレスの開示:ハードウェア識別子がすべてのパケットで公開されます

内部アドレスを隠すIPv4のNATとは異なり、IPv6は通常、デバイスに直接グローバルにルーティング可能なアドレスを割り当てます。プライバシー拡張がないと、どこでも同じ識別子をブロードキャストしています。


プライバシー拡張の仕組み#

RFC 4941(RFC 8981によって更新)は、EUI-64派生アドレスを置き換える一時アドレスを導入します。MACアドレスを使用する代わりに、デバイスはランダムなインターフェイスIDを生成します。

メカニズムは2種類のアドレスを作成します:

安定したアドレス:MACまたはランダムシードから生成されます。着信接続に使用され、ネットワークに対して一貫性を保ちます。送信トラフィックには使用されません。

一時アドレス:ランダムに生成され、送信接続に使用され、定期的にローテーションされます(ほとんどのシステムで通常24時間ごと)。

Webを閲覧したり送信接続を行ったりすると、OSは一時アドレスを使用します。安定したアドレスは、デバイスに到達する必要があるサービスで利用可能なままです。

デバイスは複数のIPv6アドレスを同時に維持します:

2001:db8:1234:5678:021a:2bff:fe3c:4d5e  # 安定(EUI-64または安定プライベート)
2001:db8:1234:5678:a4b2:c9d1:e3f4:5a6b  # 一時(現在アクティブ)
2001:db8:1234:5678:1234:5678:9abc:def0  # 一時(非推奨、期限切れ)

ローテーションは自動的に発生します。古いアドレスは完全に期限切れになる前に「非推奨」状態になり、アクティブな接続が壊れないようにします。


プライバシー拡張の有効化#

Windows#

プライバシー拡張は、Windows Vista以降でデフォルトで有効になっています。PowerShellで確認:

Get-NetIPv6Protocol | Select-Object UseTemporaryAddresses

出力2は発信接続に対して有効を意味します。手動で設定:

# 一時アドレスを有効化
Set-NetIPv6Protocol -UseTemporaryAddresses Enabled
 
# 無効化(推奨されません)
Set-NetIPv6Protocol -UseTemporaryAddresses Disabled

現在のアドレスを確認:

Get-NetIPAddress -AddressFamily IPv6 -PrefixOrigin RouterAdvertisement

一時アドレスは、カウントダウンするPreferredライフタイム値を示します。

macOS#

最新のmacOSではデフォルトで有効になっています。確認:

sysctl net.inet6.ip6.use_tempaddr

有効の場合は1を返します。設定:

# 有効化
sudo sysctl -w net.inet6.ip6.use_tempaddr=1
 
# 永続化
echo "net.inet6.ip6.use_tempaddr=1" | sudo tee -a /etc/sysctl.conf

一時アドレスのライフタイム(秒単位):

sysctl net.inet6.ip6.temppltime  # 優先ライフタイム
sysctl net.inet6.ip6.tempvltime  # 有効ライフタイム

Linux#

設定はディストリビューションによって異なります。ほとんどの最新ディストリビューションは、デフォルトでプライバシー拡張を有効にしますが、確認してください:

sysctl net.ipv6.conf.all.use_tempaddr
  • 0 = 無効
  • 1 = 有効、パブリックアドレスを優先
  • 2 = 有効、一時アドレスを優先(推奨)

適切に有効化:

sudo sysctl -w net.ipv6.conf.all.use_tempaddr=2
sudo sysctl -w net.ipv6.conf.default.use_tempaddr=2

/etc/sysctl.confを編集するか、/etc/sysctl.d/99-ipv6-privacy.confを作成して永続化:

net.ipv6.conf.all.use_tempaddr = 2
net.ipv6.conf.default.use_tempaddr = 2

変更を適用:

sudo sysctl -p

アクティブなアドレスを確認:

ip -6 addr show scope global

一時アドレスはtemporaryフラグでマークされ、preferred_lftvalid_lft値を示します。

モバイルデバイス#

iOS:iOS 4.3以降、デフォルトでプライバシー拡張が有効になっています。ユーザー設定は利用できません。

Android:Android 8.0以降でデフォルトで有効になっています。以前のバージョンは安定したアドレスを使用する可能性があります。設定→情報→ステータスで確認しますが、通常、プライバシー拡張を無効にすることはできません。


プライバシー拡張を使用しない場合#

プライバシー拡張は、安定したアドレスを必要とするシナリオを壊します:

サーバーとサービス:Webサーバー、SSHデーモン、または着信接続を必要とするサービスを実行している場合は、プライバシー拡張を無効にするか、安定したアドレスに具体的にバインドするようにサービスを設定します。

# Linux:特定のインターフェイスで無効化
sudo sysctl -w net.ipv6.conf.eth0.use_tempaddr=0

DNSレコード:ローテーションするアドレスにDNSを向けることはできません。サーバーには安定したIPが必要です。

ネットワーク機器:ルーター、ファイアウォール、ネットワークインフラストラクチャは、管理のために安定したアドレッシングを使用する必要があります。

ファイアウォールルール:特定のアドレスをホワイトリストに登録すると、ローテーションすると一時アドレスが壊れます。

ロギングと監視:アドレス変更間でログを関連付けることが困難になります。プライバシーが懸念事項ではない内部ネットワークの場合、安定したアドレスはトラブルシューティングを簡素化します。


プライバシー拡張を超えて#

プライバシー拡張はインターフェイスIDのみを保護します。/64プレフィックスは依然としてISPと一般的な場所を明らかにします。追加の対策:

IPv6サポートのあるVPN:すべてのトラフィックをVPNプロバイダーのIPv6アドレス空間を介してトンネリングします。VPNが実際にIPv6トラフィックをルーティングすることを確認してください。多くはIPv6を完全に無効にし、実際のIPv6アドレスを漏洩させます。

VPNに接続している間、test-ipv6.comで漏洩をテストします。

プレフィックスローテーション:一部のISPは定期的に/64プレフィックスをローテーションします。これはまれで、標準化されていません。ほとんどの住宅接続は無期限に同じプレフィックスを保持します。

Tor:Torは出口ノードでIPv6をサポートしますが、多くのリレーはIPv4のみです。IPv6接続がある場合でも、トラフィックはIPv4を介して出る可能性があります。

NAT66:IPv6のネットワークアドレス変換は存在しますが、エンドツーエンドの原則を壊し、物議を醸しています。推奨されません。

最も実用的な組み合わせ:クライアントデバイスでプライバシー拡張を有効化 + 必要に応じて完全なアドレスマスキングのためのVPN。

ping6.netにアクセスして、インターフェイスIDが時間の経過とともに変化するかどうかを確認することで、現在のプライバシー態勢を確認してください(プライバシー拡張が有効になっている場合は変化するはずです)。

プライバシー拡張は、すべてのクライアントデバイスで有効にする必要がある基本的なセキュリティ対策です。完璧な保護ではありませんが、IPv6アドレッシングで最も明白な追跡ベクトルを排除します。

関連記事#

実際に試してみましょう

IPv6バリデーターを使用して、現在のアドレスを確認し、プライバシー拡張が正しく機能していることを確認します。