【実務・中級編】 WPA3-Personalのセキュリティ仕様とSAE認証 – 家庭用ネットワーク・IoT・モバイル通信実践ガイド

家庭やオフィスの無線LANといえば、かつてはパスワードを使い回すのが当たり前で、WPA2の全盛期には「KRACKs」のような脆弱性にヒヤヒヤさせられたものだ。インフラエンジニアやWeb系開発者であれば、TLSの進化や前方秘匿性(Forward Secrecy)の重要性は痛いほど理解しているはずだが、Wi-Fiのエアインターフェース、つまり無線区間でも全く同じ思想がようやく標準化された。それが今回のテーマである WPA3-Personal と、その核心技術である SAE(Simultaneous Authentication of Equals)認証 だ。

教科書的な仕様書を眺めるだけでは、ハンドシェイクの裏で楕円曲線暗号がどううなりを上げているのか、そしてなぜ従来の事前共有鍵(PSK)の悪夢が終わったのか、そのリアルな空気感は伝わらない。今回は、現場でトラブルシューティングに奔走してきたシニアエンジニアの視点から、WPA3とSAEの内部挙動を丸裸にしていこう。

—

1. なぜWPA2は敗北したのか? —— 辞書攻撃と前方秘匿性の欠如

WPA2-Personal(PSK)の仕組みを思い出してほしい。接続したいクライアント(Supplicant)とアクセスポイント(Authenticator)の間で、あらかじめ共有されたパスワード(Passphrase)から導出されたPMK(Pairwise Master Key)をベースに、4ウェイハンドシェイク(4-Way Handshake)を行っていた。

この方式の致命的な弱点は、「エア上のハンドシェイクをパケットキャプチャ(盗聴)すれば、オフラインでいくらでも総当たり(辞書攻撃)ができてしまう」という点にあった。攻撃者はカフェやオフィスの外から無線パケットを傍受し、自宅の強力なGPUクラスタを使って「パスワードは何だったか」をブルートフォースで暴き出すことができたのだ。

さらに深刻なのが、前方秘匿性(Forward Secrecy)の欠如である。もし長年使ってきたWi-Fiのパスワードが何らかの形で漏洩、あるいは総破りされた場合、過去にキャプチャして蓄積したすべての通信トラフィックを後から復号されてしまう。暗号化通信の基本である「過去のセッションの安全性の担保」が、無線LANのレイヤーでは崩れていたわけだ。

—

2. SAEハンドシェイクの正体:辞書攻撃を無効化する仕組み

この構造的欠陥を根本から断ち切るために導入されたのが、WPA3-Personalの基盤となる SAE(Simultaneous Authentication of Equals) だ。SAEは、IEEE 802.11に組み込まれたパスワード認証プロトコルであり、数学的には Dragonfly(トンボ)ハンドシェイク としても知られている。

SAEの最大の特徴は、「オフライン辞書攻撃が原理的に不可能になること」、そして 「セッションごとに独立した鍵を生成し、前方秘匿性を完全に出力すること」 にある。

認証プロセスのリアルな流れ(シーケンス)

SAEハンドシェイクは、クライアントとAPが対等(Equals)な立場で、お互いに乱数とパスワードを混ぜ合わせた数学的要素を交換し合う。

1. コミットメントフェーズ(Commitment Phase)

  • クライアントとAPは、お互いに「コミットメント(Commit)」と呼ばれるメッセージを送信する。
  • このメッセージには、選択された楕円曲線上の点が含まれており、生パスワードそのものは決して流れない。また、パスワードから直接鍵を作るのではなく、パスワードを楕円曲線上の有効な点にマッピングするハッシュ関数(pwd-to-eap-or-similar系アルゴリズム)が使われる。

2. コンファメーションフェーズ(Confirmation Phase)

  • お互いのコミットメントを受け取った後、共通のシークレット(Key Confirmation Key: KCK)を正しく共有できたことを確認するメッセージを交換する。

3. 安全な接続の確立

  • このハンドシェイクが成功すると、そのセッション限りの一時的な鍵(PTK)が生成され、4ウェイハンドシェイクへと移行する。

仮に攻撃者がエア上でこのコミットメントメッセージをすべてキャプチャしたとしても、パスワードを総当たりして検証するためには、ハンドシェイクに参加する(つまり、攻撃者自身がAPに対して計算コストを伴うリクエストを何回も送る)必要がある。WPA2のように「ただ受動的にパケットを盗聴してオフラインで高速クラックする」というアプローチが通用しなくなったのだ。AP側でレートリミットをかけることもできるため、ブルートフォース攻撃は現実的な時間内では不可能となる。

—

3. 実務インフラにおけるWPA3の設定と確認

では、実際の現場、例えばLinuxベースのホームルーターやホストAP(hostapd)を構築するインフラエンジニアの視点で、WPA3をどのように有効化するのかを見ていこう。

現代のLinux環境でWi-Fiアクセスポイントを構築する際におなじみの hostapd.conf の設定例だ。WPA3単体(Transition Modeではなく、純粋なWPA3-Personal)を強制する場合の記述になる。

# /etc/hostapd/hostapd.conf
# 現代の強固なセキュリティを担保するWPA3-Personal構成例

interface=wlan0
driver=nl80211
ssid=Secure_Home_Network_WPA3
hw_mode=g
channel=6

# 暗号化プロトコルの指定 (WPA3のみを許可)
ieee80211w=2  # 管理フレームの保護(PMF)を必須(Required)にする
wpa=2
wpa_key_mgmt=SAE  # WPA3-PersonalのSAE認証を指定
wpa_pairwise=CCMP

# SAEで使用するパスワード(十分に長く複雑なものを設定)
sae_password=SuperSecretPassphrase202X!

インフラ現場のTips:トランジションモード(Transition Mode)の罠

実務で最も頭を悩ませるのが、古いIoTデバイスやレガシーなスマート家電の存在だ。これらはWPA3の存在すら知らず、接続エラー(四隅のハンドシェイク失敗)を起こしてネットワークから弾き出されてしまう。

そのため、過渡期的な措置として WPA3-Transition Mode(WPA2/WPA3混合モード) を設定することが多い。

# WPA3/WPA2 Transition Modeの設定例
wpa=2
# WPA2のPSKとWPA3のSAEを両方許可する
wpa_key_mgmt=WPA-PSK SAE
wpa_pairwise=CCMP
rsn_pairwise=CCMP

しかし、ここでシニアエンジニアとして警鐘を鳴らしておきたい。Transition Modeは、古いWPA2クライアントが接続している限り、エア上の脆弱性(WPA2側の弱点)を完全に排除できたことにはならない。攻撃者があえてWPA2側へ強制的にフォールバックさせるダウングレード攻撃の余地が残るためだ。セキュリティを本気で担保したいセグメントでは、レガシーデバイスを古いVLANに隔離するか、思い切ってWPA3専用(SAE only)のSSIDをスパッと切り出すのが王道であり、最も堅牢なアーキテクチャといえる。

—

4. デバッグとパケット解析:動かないときの常套手段

「設定ファイルは書いたが、なぜか特定のスマホやデバイスが接続できない」
現場でよくあるこうしたトラブルシューティングでは、感情的にならずにログとパケットを叩くのがエンジニアの鉄則だ。

まずは、ホスト側(AP側)のログを journalctl でリアルタイムに監視する。

# hostapdのログをライブで追跡し、SAE認証のエラーを特定する
sudo journalctl -u hostapd -f

もしハンドシェイク中に以下のようなログや挙動が見られた場合:

  • SAE failed to authenticate
  • クライアント側で「パスワードが違います」と無限ループする

これは、デバイス側のファームウェアが古く、SAEで使われる楕円曲線(Curve 25519やP-256など)のネゴシエーションに失敗している可能性が高い。

ネットワークアナライザ(Wireshark)でのパケット確認

無線空間のパケットをキャプチャするには、NICをモニターモード(Monitor Mode)にする必要がある。

# wlan0をモニターモードに切り替え、チャンネル6に固定する
sudo ip link set wlan0 down
sudo iw dev wlan0 set type monitor
sudo ip link set wlan0 up
sudo iw dev wlan0 set channel 6

Wiresharkでキャプチャを始めると、WPA3環境では従来の EAPOL メッセージの前に、Authentication フレーム(Algorithm: SAE) が流れているのが確認できる。
ここで、コミットメント値の交換が正常に行われているか、ステータスコードが 0 (Successful) になっているかを追う。もしステータスコードに非ゼロの値(拒否やサポート外)が返っていれば、クライアント側がSAEを正しく解釈できていない証拠だ。

—

5. おわりに:スマートホームとモダンネットワークの未来

WPA3とSAEの導入は、家庭用ネットワークのセキュリティ水準を企業のエンタープライズWi-Fi(WPA3-EnterpriseではIEEE 802.1XやSuite B暗号が使われる)のレベルへと劇的に引き上げた。

私たちが何気なく繋いでいるスマホやスマートスピーカーの裏側では、こうした洗練された数学的プロトコルがミリ秒単位で火花を散らし、悪意ある傍受者からプライバシーを守り抜いている。
これから自宅のネットワークを設計・刷新する際、あるいはIoTデバイスの開発でWi-Fiプロビジョニングを実装する際には、単に「繋がればいい」ではなく、SAEがもたらす前方秘匿性と強固な認証の仕組みをぜひ意識してみてほしい。インフラの信頼性は、こうした細部へのこだわりから生まれるのだから。

コメント

タイトルとURLをコピーしました