iPhoneやiPadには、Wi-Fiへ接続するときに端末本来のMACアドレスとは別のアドレスを使う「プライベートWi-Fiアドレス」という機能があります。

現在のiOS・iPadOSではネットワークごとに「オフ」「固定」「ローテーション」を選べます。ローテーションを選べばMACアドレス自体は定期的に変わるため、同じMACアドレスだけを目印に端末を追跡するのは難しくなります。

これは、LAN内の脆弱性攻撃やポートスキャンを防ぐための機能ではありません。主な目的は、Wi-Fiを観測できるネットワーク管理者や周囲のシステムから、同じ端末を長期間・複数の場所にわたって追跡されにくくすることです。

しかし、ここで素朴な疑問が出ます。

MACアドレスを変えても、Wi-Fiの通信そのものに端末の癖が残っていたら、結局は同じ端末だと推測できるのではないか。

この問題は以前から研究されており、2026年にはProbe Frameに含まれる端末能力、送信間隔、受信信号強度などを機械学習で組み合わせ、ランダム化された端末を再識別する研究も公開されています。

この記事では、まずランダムMACアドレスがなぜ必要なのかを整理します。そのうえで、自分の端末と自分が管理するネットワークで確認できる範囲の観察から、MACアドレス以外にどんな特徴があるのかを見ていきます。最後に、研究ではそれらをどう機械学習へ使っているのかを整理します。

なぜランダムMACアドレスが必要なのか

MACアドレスはWi-FiやEthernetなどのリンク層で端末を識別するために使われます。本来のMACアドレスを常に使い続けると、Wi-Fiを観測できる側から見ると、その値が長期間変わらない識別子になります。

たとえば、ある端末が固定されたMACアドレスを使っているとします。

月曜日  店舗A  AA:BB:CC:11:22:33
火曜日  店舗A  AA:BB:CC:11:22:33
金曜日  店舗A  AA:BB:CC:11:22:33

利用者の名前が分からなくても、「同じ端末が月・火・金曜日に来ている」ことは分かります。同じ観測基盤を複数の場所で使っていれば、場所をまたいで同じ端末を関連付けられる可能性もあります。

これはWebでCookieを識別子として使うことに少し似ています。ただしMACアドレスはWebサイトへ通常送信される情報ではなく、Wi-Fiなどのローカルなネットワークで使われる識別子です。

そこで、端末固有のMACアドレスをそのまま見せる代わりに、ネットワークごとに異なるプライベートなMACアドレスを使います。

自宅Wi-Fi      DA:A1:53:92:18:72
ホテルWi-Fi    6E:42:17:A1:90:CC
カフェWi-Fi    B2:31:99:A4:71:02

こうすると、単純にMACアドレスだけを比較して「自宅で見た端末とホテルで見た端末は同じ」と結び付けることが難しくなります。

つまり、ランダムMACアドレスが直接守ろうとしているのは通信内容やOSの脆弱性ではなく、端末に付いている長期間変わらない名札を隠すことです。

どういう人に必要な機能なのか

特別な人だけが使う機能ではありません。iPhoneやiPadではプライベートWi-Fiアドレスが標準で使われるため、基本的には一般利用者が意識せず恩恵を受けるための仕組みです。

特に意味が大きいのは、不特定多数が利用するWi-Fiへ接続する機会が多い場合です。

  • カフェ、ホテル、空港、駅などのWi-Fiを利用する
  • 出張や旅行でさまざまなネットワークへ接続する
  • 学校、イベント会場、商業施設など大規模なWi-Fiを利用する
  • ネットワーク運営者へ端末固有のMACアドレスを恒常的に渡したくない

逆に、自宅のように自分が管理しているネットワークでは、ネットワークをまたいだ第三者による追跡という意味での重要性は相対的に下がります。そのためAppleも、安全なネットワークでは同じプライベートアドレスを使う「固定」を標準にしています。

ここで重要なのは、ランダムMACアドレスを「攻撃を防ぐ機能」と考えないことです。

たとえば攻撃者が同じLAN内のIPアドレスを総当たりで調べて脆弱なサービスを探す場合、MACアドレスをランダム化していても基本的には防げません。Wi-Fiの暗号化、ファイアウォール、OSのアップデート、クライアント分離などとは役割が異なります。

一方で、過去に観測した特定端末をMACアドレスだけで再発見することは難しくなります。その意味では攻撃者に対して副次的な効果が生じる可能性はありますが、中心にあるのはあくまで追跡されにくくするためのプライバシー保護です。

ランダムMACアドレスは何を隠しているのか

端末がどのネットワークでも常に同じMACアドレスを使うと、異なる場所で観測された通信を同じ端末へ結び付けやすくなります。そこでAppleは、Wi-Fiネットワークごとに異なるプライベートアドレスを使う仕組みを導入しています。

iOS 18・iPadOS 18以降では、設定は次の3種類です。

設定動作
オフハードウェアMACアドレスを使う
固定そのネットワーク専用のプライベートMACアドレスを固定して使う
ローテーションプライベートMACアドレスを定期的に変更する

Appleの説明では、WPA2以上の安全なネットワークでは「固定」が標準で、弱いセキュリティまたはオープンなネットワークでは「ローテーション」が標準です。ローテーションではアドレスが2週間ごとに変更されます。

これは「同じMACアドレスがずっと見える」という単純な追跡には有効です。

ただし、Wi-FiフレームにはMACアドレス以外の情報もあります。

AIを使わなくても分かることがある

Wi-Fi端末はアクセスポイントを探すとき、Probe Requestと呼ばれる管理フレームを送信することがあります。

Probe Requestには送信元MACアドレスだけでなく、端末が対応するWi-Fi機能を伝えるInformation Elements(IE)が含まれます。

たとえば次のような情報です。

  • Supported Rates
  • Extended Supported Rates
  • HT Capabilities
  • VHT Capabilities
  • Extended Capabilities
  • Vendor Specific Information

すべての端末が同じ組み合わせ・同じ値を送るわけではありません。そのため、MACアドレスが違っていても、IEの構成がよく似ていれば「同じ種類の端末ではないか」と考える材料になります。

2016年の「Why MAC Address Randomization is not Enough」では、Probe Requestに含まれるIEの数・値・順序がフィンガープリントとして利用できることが示されました。2017年の大規模な調査でも、当時の実装にはランダム化を破る複数の弱点が確認されています。

ここがこの話の面白いところです。

MACアドレス

変わる

しかし

対応機能
IEの並び方
Sequence Number
Probe Requestの送信間隔
受信信号強度

別の特徴が残る可能性がある

識別子を消すことと、識別可能性そのものを消すことは別問題です。

まず自宅LANで現在のMACアドレスを見る

一番簡単な確認は、自分が管理するWi-FiへiPhoneやiPadを接続し、ルータの管理画面やLinuxマシンの近隣テーブルからMACアドレスを見ることです。

Linuxなら次のコマンドで、同じLAN上で解決済みのIPアドレスとMACアドレスを確認できます。

ip neigh

たとえば次のような表示です。

192.168.1.24 dev eth0 lladdr da:a1:53:92:18:72 REACHABLE

iPhone側では次の場所に、そのWi-Fiで利用中のアドレスが表示されます。

設定
→ Wi-Fi
→ 接続中ネットワークの ⓘ
→ Wi-Fiアドレス

この値とルータやip neighで見える値を照合すると、「端末がネットワーク側へどのMACアドレスで見えているか」を確認できます。

ローカル管理MACかを1ビットで確認する

ランダムMACアドレスを観察すると、エンジニアとして面白いポイントがあります。

MACアドレスの先頭オクテットには「universally administered / locally administered」を示すビットがあります。プライベート用途のMACアドレスではlocally administered address(LAA)が使われます。

たとえば次のMACアドレスを見てみます。

da:a1:53:92:18:72

先頭のdaを2進数にすると次の通りです。

0xda = 11011010

下位から2番目のビットが1なので、このアドレスはlocally administeredです。

シェルでも確認できます。

mac='da:a1:53:92:18:72'
first_octet=${mac%%:*}
value=$((16#$first_octet))

if (( value & 2 )); then
  echo 'locally administered address'
else
  echo 'universally administered address'
fi

出力は次のようになります。

locally administered address

LAAだからApple端末だと判断できるわけではありません。AndroidやLinuxなどでも利用できます。

それでも「見えているMACアドレスがメーカーへ割り当てられた通常のOUIをそのまま使っているとは限らない」ことは、この1ビットだけでも確認できます。

自分のpcapをtsharkで確認する

もう少し踏み込むなら、自分が管理する検証環境で取得した802.11のpcapをWiresharkやtsharkで確認できます。

Ubuntu系では次のようにtsharkを導入できます。

sudo apt update
sudo apt install -y tshark

手元にprobes.pcapがある場合、Probe Requestだけを一覧にする例は次の通りです。

tshark -r probes.pcap \
  -Y 'wlan.fc.type_subtype == 0x0004' \
  -T fields \
  -e frame.time_relative \
  -e wlan.sa \
  -e wlan.seq

説明用の出力を簡略化すると次のようになります。

1.021    da:a1:53:92:18:72    1821
1.284    da:a1:53:92:18:72    1824
1.548    da:a1:53:92:18:72    1828

詳細表示ではInformation Elementsも確認できます。

tshark -r probes.pcap \
  -Y 'wlan.fc.type_subtype == 0x0004' \
  -V

環境によって、次のような項目が表示されます。

Tagged parameters
    Tag: Supported Rates
    Tag: Extended Supported Rates
    Tag: HT Capabilities
    Tag: Extended Capabilities

利用できるフィールド名を調べたい場合はtshark -G fieldsが便利です。

tshark -G fields | grep -Ei 'wlan.*(tag|ht|capab|seq)'

WiresharkのGUIで気になった項目を見つけ、そのフィールドをtsharkで抜き出す、という流れにすると調査しやすくなります。

この記事のコマンド例は、自分の端末・自分が管理するネットワークで確認するためのものです。こちらでは実機の無線キャプチャまでは実行していないため、出力例は説明用です。

Sequence Numberも特徴の1つになる

802.11フレームにはSequence Numberがあります。

過去の研究では、MACアドレスが切り替わってもSequence Numberの連続性が残る実装があり、それを再識別へ利用できることが指摘されました。

ただし、現在のiPhoneやiPadで同じ挙動になると断定してはいけません。Appleは長年にわたってWi-Fiプライバシー対策を更新しており、TSF offsetのランダム化などフィンガープリンティング対策も追加しています。

ここで重要なのは「Sequence Numberを見れば現行iPhoneを必ず特定できる」ということではなく、MACアドレス以外にもフレーム系列を関連付ける材料があり得ることです。

送信間隔も数値にできる

pcapにはフレームの到着時刻も記録されています。

tsharkで時刻と送信元をCSVへ出すと、Probe Requestの間隔を集計できます。

tshark -r probes.pcap \
  -Y 'wlan.fc.type_subtype == 0x0004' \
  -T fields \
  -E separator=, \
  -e frame.time_epoch \
  -e wlan.sa > probes.csv

同じMACアドレスのフレーム間隔ならawkだけでも計算できます。

awk -F, '
  $1 != "" && $2 != "" {
    if ($2 in previous) {
      printf "%s,%.6f\n", $2, $1 - previous[$2]
    }
    previous[$2] = $1
  }
' probes.csv

説明用の出力は次のようになります。

da:a1:53:92:18:72,0.263233
da:a1:53:92:18:72,0.263803
da:a1:53:92:18:72,0.261917

これだけで端末を一意に特定できるわけではありません。しかし、IE、Sequence Number、送信間隔、RSSIなどを組み合わせると、1つ1つは弱い特徴でも全体としてフィンガープリントになり得ます。

2026年の研究では機械学習で89.6%まで識別した

2026年6月に公開された「Can Machine Learning Break Wi-Fi Privacy? A Study on MAC Address Randomization」は、この問題を機械学習で検証しています。

研究では22台・6メーカーのスマートフォンから収集したProbe Frameを使い、DBSCANによるクラスタリングを行いました。

利用した特徴は、概ね次の3種類です。

  1. 端末能力などを表すProbe Frameの内容
  2. Probe Requestの時間的な特徴
  3. RSSI(Received Signal Strength Indicator)

重要なのは、MACアドレスそのものを識別子として信用していないことです。

Probe Request

Capability情報 ─┐
送信間隔       ─┼→ 特徴量 → DBSCAN → 同じ端末らしいクラスタ
RSSI           ─┘

論文では、条件によって最大89.6%の識別精度を報告しています。

ただし、この数字を「どこでもiPhoneを89.6%で特定できる」と読むのは正確ではありません。

端末数、メーカー構成、電波環境、観測時間、端末の状態などが実験条件と違えば結果も変わります。また、論文の目的は個人の身元を特定することではなく、ランダム化されたMACアドレスを越えてフレームを同じ物理端末へ関連付けられるかを評価することです。

AI以前にも同じ問題は研究されていた

この問題は2026年になって突然出てきたものではありません。

2016年の研究ではIEベースのフィンガープリント、2017年の研究では実装上の弱点を利用した追跡が検証されています。

つまり、機械学習がなくても、

MACは違う

IE構成がかなり似ている
Sequence Numberの挙動が似ている
タイミングも似ている

同じ端末かもしれない

という分析は以前から可能でした。

機械学習は、複数の弱い特徴をまとめて判断する部分を強化していると考えると分かりやすいでしょう。

防御側もさらにランダム化している

研究側がフィンガープリントを見つければ、OSやWi-Fi実装側も対策を進めます。

AppleはMACアドレスだけでなく、Sequence NumberやTSF(Timing Synchronization Function)に由来する情報など、Wi-Fiフレームから端末を追跡する手掛かりを減らす対策を追加してきました。

また、2024年にはWi-Fi接続を維持したままMACアドレスを再ランダム化する「Over-the-Air Runtime Wi-Fi MAC Address Re-randomization」という研究も発表されています。

通常は接続中に同じMACアドレスを使うため、接続している間はフレームを同じ端末へ結び付けられます。この研究は、その前提自体を崩そうとしています。

2025年には、管理フレームの状態遷移を使ってMACランダム化下の端末を再識別するStateFiも発表されています。

この分野は、

固定MACで追跡

MACをランダム化

IEやSequence Numberで追跡

それらもランダム化・標準化

タイミングや状態遷移を分析

さらに対策

という追跡とプライバシー保護のいたちごっこになっています。

ランダムMACアドレスなら匿名になるわけではない

最後に重要な点です。

ランダムMACアドレスは匿名化機能ではありません。

Wi-Fiへ接続した後には、ネットワーク側からIPアドレス、通信量、接続時間など別の情報が見える場合があります。Captive Portalへログインしたり、同じアカウントを利用したりすれば、MACアドレスとは別の方法で利用者を関連付けられる可能性もあります。

Webサイト側ではCookie、ログイン情報、IPアドレス、ブラウザフィンガープリントなど、まったく別の識別手段があります。

ランダムMACアドレスが解決するのは、あくまで「固定されたMACアドレスが簡単な追跡用IDになる」という問題です。

そして今回紹介した研究が面白いのは、IDをランダム化しても、その端末の振る舞い自体がIDの代わりになる可能性があることを示している点です。

これはWi-Fiだけの話ではありません。

Cookieを削除してもブラウザフィンガープリントが残る問題と同じように、「識別子を隠すこと」と「識別できなくすること」は別の問題です。

ランダムMACアドレスはその違いを、ネットワーク層で非常に分かりやすく見せてくれる仕組みだと思います。