Wi-Fi (IEEE 802.11) は Ethernet と同じフレーム形式を共有しながら、電波という共有媒体に乗せている事実から、有線では考えなくてよかった層をすべて持ち込んだ — CSMA/CA、半二重、L2 再送、4-way Handshake、WPA 世代交代、DFS、MAC ランダム化。本稿では SSID をタップしてから IP が振られるまでの 6 段階の接続ライフサイクル、WEP → WPA3 の暗号世代、2.4/5/6 GHz の周波数バンドとチャネル、Wi-Fi 6/6E/7 で何が変わったか、deauth / evil twin / PMKID / WPS の主要 L2 攻撃、MAC ランダム化以後のプライバシーまで通しで扱う。
難しく見えても本質は次の 3 つだけ。(1) Wi-Fi は 「電波で動く Ethernet」 — 中身のフレームは同じだが、外から 誰でも傍受可能な空気を流れる。(2) 電波は 送信中に受信できない (半二重) + 衝突しても気付けないので、Ethernet と違って 「最初から避ける」(CSMA/CA) 方式で動く。(3) だから 必ず暗号化 (WPA2/WPA3) と認証 (PSK / 802.1X) がセットになっている。— ここを土台に各章を順に開いていけばいい。
なぜ無線は有線と根本的に違うのか #
Wi-Fi が Ethernet と同じ L2 であるにもかかわらず仕様が複雑なのは、電波という共有媒体に乗せている事実から来ている。
Ethernet (現代スイッチド) は 1 人 1 個の個別ブースで、好きなときに喋っても誰とも被らない。Wi-Fi は 1 つの教室で全員が同じ空気を共有している状態 — 誰かが喋っている間は他人は黙るしかなく、しかも自分の声で他人の声が聞こえない (= 衝突を検出できない)。だから 「喋る前に静かか確認 + ランダム秒待つ」 (CSMA/CA) で衝突を避ける。「Wi-Fi が公称速度の半分しか出ない」「人が増えると線形に遅くなる」「電子レンジで切れる」はすべてこの教室方式が起源。
| 観点 | Ethernet (有線) | Wi-Fi (無線) |
|---|---|---|
| 媒体 | 1 ペア 1 リンク (スイッチで分離) | 1 つのチャネルを近隣全員で共有 |
| 衝突検出 | 全二重で衝突しない (現代) | 送信中に自分の電波で受信を遮蔽 → 検出不可能 |
| 衝突回避 | 不要 | CSMA/CA で「送る前に静かになるまで待つ + ランダム待機」 |
| 双方向 | 全二重 | 半二重 (送信中は受信できない) |
| 損失 | ケーブル不良時のみ | 常時起こる (壁・人体・電子レンジ・他 AP の干渉) |
| L2 再送 | しない (TCP の仕事) | する (各フレームに ACK を要求、無ければ MAC 層で再送) |
| 識別子 | 物理ポート | MAC + BSSID + SSID + チャネル の組合せ |
| セキュリティ | 物理アクセスが前提 | 電波は誰でも傍受可能 → 暗号化が必須 |
「衝突は検出できないので、起こさないように回避する」という設計思想 — CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) が Ethernet の CSMA/CD と分かれた根本。送信前に DIFS + ランダムバックオフを挟み、その間に他の電波がなければ送信、あれば再カウント。送信したフレームには必ず ACK を要求し、ACK が来なければバックオフを倍々にして再送 (binary exponential backoff)。
A と C が両方 AP に届くが互いには届かない位置にいると、A と C は CSMA/CA でも互いを検出できず衝突する。これを解くための RTS/CTS ハンドシェイクもオプションで存在するが、オーバーヘッドが大きいため近代の高密度 AP では使わないことが多い。
これらすべてが「Wi-Fi は速度が公称値の半分〜2/3 しか出ない」「人が増えると線形に遅くなる」「5 GHz は速いが届かない」といった、ユーザが日常的に体感する性質の起点になっている。
接続のライフサイクル — SSID タップから Data まで #
「Wi-Fi に繋がった」までに、実は6 段階のやりとりが走っている。物理的には 1 秒以下で完結する。
SSID をタップしてから IP が振られるまでは、レストランに入って席に座るまでの流れに似ている。(1) Discovery = 看板 (Beacon) を見て店を探す、(2) Authentication = 入口で挨拶、(3) Association = 席を案内してもらう、(4) 4-way Handshake = 合言葉 (鍵) のすり合わせ、(5) DHCP = 名札 (IP) をもらう、(6) Data = ようやく注文 (通常の通信) 開始。これが 1 秒以内に終わるのが Wi-Fi が普段意識されない理由。「繋がったのに通信できない」ときは、この 6 段階のどこで詰まっているかを上から順に確認すればよい。
Hidden SSID は Beacon に SSID を載せないだけで、Probe Request に SSID 名が乗るため接続中の端末から漏れる。「SSID 一覧が見える ≠ 接続を試みている」 — Beacon を傍受しているだけ。
4-way Handshake の中身 #
PTK 生成式: PTK = PRF(PMK, ANonce, SNonce, AP MAC, STA MAC) — 両端のランダム値 (Nonce) を混ぜることで毎回異なる鍵 (PFS に近い性質) が出る。PMK は再利用されてもセッション鍵は再利用されない。PSK の場合 PMK = PBKDF2(SSID, passphrase)。4 つのフレームすべて EAPOL (EAP over LAN, EtherType=0x888E) で運ばれる。
WPA2-Enterprise (802.1X) の場合は Open System の代わりに EAP が走る (EAP-TLS / PEAP / EAP-TTLS)。RADIUS サーバが認証バックエンドになり、証明書ベース (EAP-TLS) または AD パスワード (PEAP-MSCHAPv2) で個人を識別。4-way Handshake は EAP 完了後に動く。
$ nmcli device wifi list # チャネル / 信号強度 / セキュリティ方式
$ sudo iw dev wlan0 scan | grep -E "SSID|signal|Authentication suites"
# 接続済み AP の詳細 (チャネル幅 / MCS / RSSI)
$ iw dev wlan0 link
Connected to aa:bb:cc:dd:ee:ff (on wlan0)
SSID: MyHome
freq: 5180
signal: -52 dBm
tx bitrate: 866.7 MBit/s VHT-MCS 9 80MHz short GI VHT-NSS 2
RX: CCMP / TX: CCMP
$ iw dev wlan0 station dump
# 監視モード (パケット解析用)
$ sudo iw dev wlan0 set monitor controlWPA の世代交代 — WEP / WPA / WPA2 / WPA3 #
無線は電波を誰でも傍受できるため、暗号は最初から必須だった。だが「最初に出した方式が壊れて、次の方式が壊れて、また次の方式…」を四半世紀繰り返している。
WEP / WPA / WPA2 / WPA3 という名前は 鍵の作り方を 4 回作り直してきた歴史。WEP (1997) = 数分で破られる紙の鍵、もう絶対使わない。WPA / WPA2 = 15 年の主役、ただし弱いパスワードは PMKID 攻撃でオフライン解析される。WPA3 (2018) = 弱いパスワードでも辞書攻撃に耐える新方式 (SAE) + 管理フレームの暗号化 (PMF 必須)。新規構築は WPA3-Personal + PMF 必須、企業は WPA3-Enterprise + EAP-TLS (証明書) が現代の最適解、と最初に決めてしまえばよい。
| 方式 | 年 | 暗号 | 認証 | 状態 |
|---|---|---|---|---|
| WEP | 1997 | RC4 (40 / 104 bit 鍵) | 共有鍵 | 完全に死亡 — 数分で破られる (FMS, KoreK, PTW 攻撃)。今あったら無効化のみ |
| WPA (TKIP) | 2003 | RC4 + TKIP の鍵更新 | PSK or 802.1X | WEP の応急処置 — 既存ハードのファーム更新で繋ぎ。現代では非推奨 |
| WPA2 (CCMP/AES) | 2004 | AES-CCMP (CCM mode AES-128) | PSK or 802.1X (EAP) | 15 年間の主役。KRACK 攻撃 (2017) で 4-way のリプレイ脆弱性 (パッチ済) / PMKID 攻撃 (2018) で PSK のオフライン解析が容易に |
| WPA3 (SAE/GCMP) | 2018 | AES-GCMP-128/256 | SAE (Dragonfly 鍵交換) | オフライン辞書攻撃に耐性 / 初期実装に Dragonblood (2019) → 修正済 / PMF 必須 |
WPA2-PSK では PMKID = HMAC(PMK, …) が AP の Beacon/Association に乗っており、1 フレーム傍受するだけで PSK のオフライン辞書攻撃が始められる (hashcat -m 22000)。SAE は平文で乗る情報からは PMK を導出できない数学設計 (有限体上の dragonfly 鍵交換) なので、弱い PSK でも辞書攻撃から守られる。
PMF (Protected Management Frames, 802.11w) #
Auth / Deauth / Disassoc などの管理フレームを暗号化する規格。これがないと、攻撃者は Deauth フレームを偽装するだけで任意のクライアントを切断できる (= Wi-Fi 版 DoS / evil twin の足がかり)。WPA3 では PMF 必須、WPA2 でもオプション有効化可能。
$ nmcli connection show "MyHome" | grep -i security
802-11-wireless-security.key-mgmt: sae
802-11-wireless-security.pmf: required
$ iw dev wlan0 link
RX: CCMP / GCMP ...新規構築は WPA3-Personal (SAE) + PMF 必須。互換性のため WPA3/WPA2 transition mode も選べるが、WPA2 のみのデバイスがいなくなったら WPA3 専用に倒すのが推奨。エンタープライズは WPA3-Enterprise + EAP-TLS (証明書) が最適解。SSID は隠さない、MAC アドレスフィルタリングも実質無効 — どちらも「やった気になるが守っていない」典型。
物理層 — 周波数バンドとチャネル幅 #
「Wi-Fi が遅い・繋がらない」のほとんどは物理層の混雑が原因。周波数バンドとチャネルの基礎は知っておく価値が高い。
3 つのバンドは「届きやすさ × 速さ × 混雑度」のトレードオフが綺麗に分かれている。2.4 GHz = 国道 — 遠くまで届くし障害物にも強いが、周辺に車 (Bluetooth / 電子レンジ / 隣家の AP) が多く渋滞しがち。5 GHz = 高速道路 — 速いが距離が短く壁に弱い。6 GHz (Wi-Fi 6E/7) = 新幹線 — 桁違いに速く混雑も少ないが、新しい端末しか乗れない。「壁を 1 枚はさむなら 2.4、同じ部屋なら 5/6」が家庭での基本判断。
| バンド | 標準 | 帯域 | 特徴 |
|---|---|---|---|
| 2.4 GHz | 802.11b/g/n | 2401-2483 MHz (日本 1-13ch) | 距離・透過性◎ / non-overlap は 1, 6, 11 のみ / Bluetooth・電子レンジ・他 AP と干渉しまくり |
| 5 GHz | 802.11a/n/ac/ax | 5170-5835 MHz (W52/W53/W56) | 80/160 MHz 幅が取れる / DFS 領域 (52-144) は気象/船舶レーダ検出時に強制移動 |
| 6 GHz | Wi-Fi 6E / 7 | 5945-7125 MHz (1200 MHz 連続) | 混雑皆無 (新規) / 320 MHz × 3ch (Wi-Fi 7) / WPA3 必須 / 距離は最短 |
チャネル幅 vs 理論スループット #
- 20 MHz — ~150 Mbps (Wi-Fi 5、1 ストリーム) — 一番安定するが遅い
- 80 MHz — ~600 Mbps
- 160 MHz — ~1.2 Gbps
- 320 MHz — ~2.4 Gbps (Wi-Fi 7) — 広いほど混雑面積も増える
5 GHz の DFS (Dynamic Frequency Selection) 領域 (5.25-5.72 GHz, W53/W56 の一部) は気象/船舶レーダ検出で強制的に他 ch へ移動する義務があり、移動中の数秒〜数分間 AP が落ちる。「自宅 Wi-Fi がたまに切れる」原因の 1 つ。
MCS と MIMO/MU-MIMO/OFDMA #
MCS (Modulation and Coding Scheme) はその瞬間の SNR で決まる「速度の段」。AP に近ければ MCS が上がり 4096-QAM (Wi-Fi 7) で詰め込めるが、離れると 256-QAM → 64-QAM → BPSK と落ち、最終的に繋がらない。「移動するとだんだん遅くなる」のはこれが起きている。
- MIMO — 複数アンテナで空間多重。1 端末で 2 ストリーム → 2× 速度 (Wi-Fi 5 標準化)
- MU-MIMO (Wi-Fi 5/6) — 同時に複数端末に異なるストリームを送れる
- OFDMA (Wi-Fi 6) — チャネルを周波数軸で細かく分割 (RU = Resource Unit) し、小さなパケットを送る複数端末を同時に詰め込む。IoT が多い高密度環境で効く
Wi-Fi 6 / 6E / 7 — 何が変わったか #
| 世代 | 通称 | 標準 | 主な進化 |
|---|---|---|---|
| Wi-Fi 4 | n | 802.11n (2009) | MIMO / チャネルボンディング (40 MHz) |
| Wi-Fi 5 | ac | 802.11ac (2014) | 5 GHz 専用 / 80・160 MHz / MU-MIMO (downlink) |
| Wi-Fi 6 | ax | 802.11ax (2019) | OFDMA / 1024-QAM / TWT (省電力) / 上り MU-MIMO |
| Wi-Fi 6E | ax + 6 GHz | 802.11ax 拡張 (2020) | 6 GHz バンド開放 (1200 MHz の新規帯域) |
| Wi-Fi 7 | be | 802.11be (2024) | 320 MHz チャネル / 4096-QAM / MLO (Multi-Link Operation) / 16 ストリーム |
Wi-Fi 6 で本質的に変わったのは OFDMA。「全帯域を 1 端末が独占する Wi-Fi 5 までの方式から、複数端末を周波数軸で多重する方式へ」 — スマート家電 / IoT が増える高密度環境で実効スループットが目に見えて上がる。
Wi-Fi 7 の MLO は「2.4 + 5 + 6 GHz の複数バンドに同時に繋ぎ続け、フレームを動的に分散・冗長化する」技術。1 つのバンドが混雑しても他に逃せるため遅延揺らぎが減り、XR / クラウドゲーム / 映像配信のような遅延敏感な用途に効く。
既設 AP が Wi-Fi 5 (ac) なら Wi-Fi 6 への置換は確実にメリットあり (端末数が増えた家庭・小規模オフィス)。Wi-Fi 6E / 7 は 6 GHz 対応端末を持っているかが鍵 — iPhone 15 Pro 以降 / Pixel 8 以降 / 最新 PC は 6E 対応、それ以下は 5 GHz までしか使わないので恩恵は限定的。
L2 攻撃面 — 電波は誰でも傍受できる #
無線という性質上、「物理的にビルに入らないと届かない」が成立しない。駐車場から、隣のオフィスから、ドローンから攻撃が成立する。
有線 LAN は 「鍵のかかった部屋の中の会話」なので、物理的に入り込まないと盗聴できない。Wi-Fi は 「窓を開けた部屋で喋っている会話」。窓の外 (駐車場・隣のビル・ドローン) からでも電波は聞こえてしまう。だから 「暗号化していない通信は確実に丸聞こえ」「弱いパスワードは PMKID 攻撃で機械的に破られる」「偽 AP (Evil Twin) で誘い込まれる」というリスクが、有線とは別次元で常にある。カフェ / ホテル / 空港の Wi-Fi では VPN を必ず張るのが習慣にすべき最低限の対策。
| 攻撃 | 仕組み | 防御 |
|---|---|---|
| Deauth Flood | 偽装 Deauth フレームで任意の端末を切断。aireplay-ng -0 定番 |
PMF (802.11w) 必須化 — 管理フレームが署名され偽装不可 |
| Evil Twin / KARMA | 同名 SSID の偽 AP を立て、信号を強くして端末を意図せず接続させる | WPA3-Enterprise + EAP-TLS + OS の自動接続を信頼しない設計 |
| PMKID 攻撃 | WPA2 AP の Beacon/Association から PMKID を抜き PMK のオフライン辞書攻撃。hcxdumptool + hashcat -m 22000 |
強い PSK (15 文字以上, 辞書非依存) または WPA3-SAE 移行 |
| WPS PIN brute force | 8 桁 PIN の独立検証を悪用してわずか 11,000 試行で突破 (Reaver) | WPS を完全無効化 (現代 AP では大抵デフォルト OFF) |
| Captive Portal MitM | カフェの「Wi-Fi 利用同意」ページを偽装し、Cookie や認証情報を回収 | VPN を Wi-Fi 接続直後に張る + HSTS + HTTPS-only |
| KRACK 系派生 | 4-way M3 を再送させて nonce を再利用、CCMP の同一鍵で 2 度暗号化 → 平文回復 | OS / AP のパッチ適用 (2017 以降) — 現行 OS では基本対策済 |
Hidden SSID は接続中端末の Probe Request から SSID 名が漏れる。MAC フィルタは ip link set address で偽装可能。「やった気になるが守っていない」典型例として、設計時には選択肢から外す。
$ sudo airodump-ng wlan0mon # AP, BSSID, ch, encryption, station 数
$ sudo airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w cap wlan0mon
# 4-way Handshake をキャプチャ (PSK 解析の準備)
$ sudo aireplay-ng -0 1 -a AA:BB:CC:DD:EE:FF -c 11:22:33:44:55:66 wlan0mon
# PMKID 単独で抜く (WPS や 4-way 待ちなしで PSK 解析)
$ sudo hcxdumptool -i wlan0mon -o capture.pcapng --enable_status=1これらは自身が管理するネットワーク / 明示的な許可がある場合のみ実施可能。許可なき他人のネットワークへの実行は不正アクセス禁止法 / 各国の電波法・コンピュータ犯罪法に該当する。
MAC ランダム化と現代のプライバシー #
2014 年頃から iOS / Android / Windows / macOS は SSID ごとに別の MAC を使う MAC アドレスランダム化を導入した。Probe Request に真の MAC が乗ると、広告事業者がその MAC で複数の場所を行き来するユーザを追跡できてしまう (= Wi-Fi 追跡広告) を防ぐためのもの。
スマホは普段、周辺の Wi-Fi に 「○○さん来てます?」と本名で呼びかける (Probe Request)。これを大量のセンサーで聞き集めると 「この本名の人は月曜は A 店、火曜は B 店」と追跡できてしまう (実際に商業施設で導入されていた)。MAC ランダム化は 「店ごとに違う偽名を使う」ことでこれを防ぐ仕組み。副作用として、MAC アドレスフィルタ / 企業 Wi-Fi の MAC ベース運用が壊れた — もとから防御として無価値だった MAC フィルタは、運用上もとどめを刺された形。
具体的には:
- Probe Request 時 に毎回ランダム MAC を使う (周辺 AP に対する個人識別を防ぐ)
- 接続時 には「その SSID 用に固定されたランダム MAC」を使う (再接続でも同じ MAC) — iOS の「プライベート Wi-Fi アドレス」
副作用として:
- MAC アドレスフィルタリングが完全に無効化 (もとから防御として無価値だが、運用上も使えなくなった)
- キャプティブポータルが「前回の認証 MAC は別人」として毎回再認証を要求する
- 企業 Wi-Fi で MAC 認証 / DHCP 予約 / RADIUS Accounting に依存している環境は、SSID ごとに固定 MAC をユーザに ON してもらう運用が必要
MAC は識別子として信頼せず、EAP-TLS の証明書 / SAE のクライアントクレデンシャルで認証するのが正しい層分け。MAC ベースの設計は IoT 専用 SSID など限定的な用途に留める。
まとめ #
- Wi-Fi の複雑さは「電波は誰でも傍受できる」「電波は届く保証がない」の 2 つから派生する
- 実務で押さえる順序は ① 接続ライフサイクル / ② WPA3 + PMF + EAP-TLS が現代の最低基準 / ③ 2.4/5/6 GHz の住み分け / ④ Hidden SSID / MAC フィルタは防御でない
- これに deauth / evil twin / PMKID の 3 つを知っておけば「ホテルやカフェの Wi-Fi に何を任せて何を VPN/HTTPS で守るか」の判断が自分の軸でできる