【実務・中級編】 WPA3-Personal (SAE) の認証プロセスと脆弱性対策 – 家庭用ネットワーク・IoT・モバイル通信実践ガイド

家庭内のネットワークも、今や単に「スマホやPCが繋がればいい」という時代ではありません。スマート家電、見守りカメラ、NAS、そして家中を飛び交うIoTデバイスの数々は、私たちのプライベートな空間をそのままデジタル化しています。

そんな現代のホームネットワークにおいて、Wi-Fiのセキュリティ規格は文字通り「城壁」の役割を果たしています。長年私たちの信頼を勝ち得てきたWPA2のPSK(Pre-Shared Key)ですが、実はその内部では、空気を伝う電波をキャッチされるだけで、オフラインの辞書攻撃によってパスワードが丸裸にされてしまうという致命的な弱点を抱えていました。

そこで登場したのが、Wi-Fi 6(およびWi-Fi 6E/7)時代における標準セキュリティ、WPA3-Personalです。今回は、その心臓部であるSAE(Simultaneous Authentication of Equals)の認証プロセスがどのようにパケットの安全性を守っているのか、そして現場のインフラエンジニアが知っておくべき実務的な挙動と脆弱性対策について、シニアエンジニアの視点から深く掘り下げて解説していきましょう。

—

1. なぜWPA2のPSKは破られたのか?(SAE前夜の課題)

WPA2-Personalで使われていた4ウェイ・ハンドシェイク(4-Way Handshake)を思い出してください。あの仕組みの根底には、「クライアントとアクセスポイント(AP)の両方が、あらかじめ同じパスワード(事前共有鍵)を知っている」という前提がありました。

ここに大きな落とし穴がありました。悪意ある攻撃者が無線空間を流れる認証のやり取り(メッセージ3など)を盗聴し、自分の手元であらかじめ用意した何百万もの「よく使われるパスワードのリスト(辞書)」と照らし合わせる、いわゆるオフライン辞書攻撃を行うと、パスワードの推測が数学的に可能だったのです。どれだけ複雑なパスワードを設定しても、一度電波をキャッチされれば、カフェの片隅や自宅の駐車スペースからじっくりと時間をかけて解析されてしまうリスクが常にありました。

この「オフラインでパスワードが総当たりされる」という構造的欠陥を根絶するために設計されたのが、WPA3におけるSAEなのです。

—

2. SAE(Simultaneous Authentication of Equals)の認証プロセス

SAEの最大の偉業は、「パスワードそのものを直接やり取りせず、また、盗聴されたデータからオフラインでパスワードを総当たり攻撃できなくしたこと」にあります。

ここで使われるのが、暗号数学における「ドラゴンフライ(Dragonfly)鍵交換プロトコル」です。名前は少し格好いいですが、要するに「お互いに対等(Equals)な立場で、パスワードの知識を証明し合いながら、誰も真似できない一意の共通セッション鍵を安全に作り出す」仕組みです。

認証シーケンスの全体像

通信の裏側でパケットがどのように行き交っているのか、その流れを順に追ってみましょう。

[クライアント (STA)]                          [アクセスポイント (AP)]
        |                                             |
        |--- 1. SAE Commit (パスワードから生成した点を送信) ->|
        |                                             |
        |<-- 2. SAE Commit (AP側の点とランダム値を返送) ------|
        |                                             |
        |--- 3. SAE Confirm (お互いの鍵の整合性を検証) ---->|
        |<-- 4. SAE Confirm (検証完了・接続確立) ----------|
        |                                             |
        v                                             v
               [4ウェイ・ハンドシェイクへ移行]

① SAE Commit(コミットメントの交換)

クライアントとAPは、それぞれ入力されたパスワードとMACアドレスなどの公開情報を組み合わせて、楕円曲線暗号(ECC)上の「特定の点(ポイント)」を計算し、それを相手に送信します(SAE Commit)。
ここでポイントなのは、送信するのはパスワードそのものでも、パスワードのハッシュ値の単純なコピーでもないという点です。攻撃者がこのパケットを盗聴しても、元のパスワードを逆算することは数学的に不可能です。

② SAE Confirm(確認フェーズ)

お互いに相手のCommitメッセージを受け取ると、共有された秘密情報(Secret)を正しく導き出せたかを確認するためのConfirmメッセージを交換します。これにより、両者が本当に同じパスワードを知っていることが、安全に証明されます。

③ 前方秘匿性(Forward Secrecy)の確保

SAEのプロセスを通じて生成されたマスターキーから、さらに動的なセッション鍵が導き出されます。万が一、将来的に長期的なパスワードが何らかの手段で漏洩したとしても、過去にキャッチされて記録されていた通信ログ(パケットキャプチャ)を後から復号することはできません。これが前方秘匿性の強みです。

—

3. 実務的な設定とトラブルシューティングの現場から

インフラエンジニアとして現場に立つと、理論通りにいかないのがWi-Fiの常です。WPA3-Personal(SAE)を導入する際、特に頭を悩ませるのが「レガシーデバイスとの互換性」です。

古いIoT機器、産業用ハンディターミナル、数年前の社用PCなどは、WPA3のSAEに対応しておらず、接続要求すら弾かれてしまいます。そのため、多くの現場では「WPA2/WPA3移行モード(Transition Mode)」を採用することになります。

移行モードの落とし穴

移行モードは、1つのSSIDに対してWPA2(PSK)とWPA3(SAE)の両方の認証方式を同時にブロードキャストする仕組みです。新しいデバイスには堅牢なWPA3を、古いデバイスにはWPA2を割り当てます。

しかし、セキュリティの観点から見ると、これは「WPA3の強固な城壁を建てつつ、裏口にWPA2の鍵をそのまま残している」状態に他なりません。つまり、移行モードで稼働している限り、ネットワーク全体としてはWPA2の辞書攻撃耐性の弱さを引きずることになります。

現場での設計指針としては以下のように割り切るのが鉄則です。

1. 完全移行の決断: 社内ニッチなIoTやレガシー端末をすべて棚卸しし、ファームウェアアップデートを行うか、あるいはWPA3専用のクローズドなSSIDと、レガシー用の孤立したSSID(VLAN分離必須)を完全に物理的・論理的に切り分ける。
2. PMF(Protected Management Frames)の強制: WPA3では必須となるPMFですが、WPA2混在環境でも可能な限り「Mandatory(必須)」に設定し、管理フレームの偽装やアソシエーション・スプーフィング攻撃をブロックする。

—

4. 設定ファイル・環境構築の具体例

ここでは、Linuxベースの無線APソフトウェアである hostapd を用いて、WPA3-Personal(SAE)を明示的に有効化する際の設定ファイル(hostapd.conf)のサンプルを見てみましょう。実務で手を動かす際の参考にしてください。

# ==========================================
# hostapd.conf 設定サンプル (WPA3-Personal)
# ==========================================

# 使用する無線インターフェースの指定
interface=wlan0
driver=nl80211

# SSIDの設定
ssid=Corporate-IoT-Secure

# 運用する周波数帯 (例: 5GHz帯チャンネル 36)
hw_mode=a
channel=36
ieee80211n=1
ieee80211ac=1

# --- セキュリティ設定 ---
# 認証方式として WPA2 および WPA3 を許可(移行モードの場合)
# 完全なWPA3のみにする場合は WPA2 を外し SAE のみに絞るのがベスト
wpa=2
wpa_key_mgmt=WPA-PSK SAE

# WPA3で使われるSAEのグループ設定 (楕円曲線暗号グループ 19, 20, 21等)
sae_groups=19 20 21

# パスワード(プレシェアードキー / SAEパスフレーズ)
wpa_passphrase=YourSuperSecretAndLongPassphrase_202X!

# PMF (Protected Management Frames) の設定
# 0 = 無効, 1 = 許可 (Optional), 2 = 強制 (Mandatory)
# WPA3環境では 2 (Mandatory) を推奨
ieee80211w=2

現場のTips:Wi-Fi 6 / 7 時代のデバッグ手順

もし現場で「新しいスマホは繋がるのに、特定のPCだけがハンドシェイクの途中でタイムアウトする」というトラブルに遭遇したら、以下の手順でパケットの挙動を追ってみてください。

1. モニタモードでのパケットキャプチャ
無線LANアダプターをモニタモード(airmon-ng など)にし、該当チャンネルのトラフィックをWiresharkでキャプチャします。
2. 認証フレームの確認
フィルターに wlan.fc.type_subtype == 0x0b (Authentication) などを設定し、クライアントとAPの間でSAE Commitのやり取りが正常に行われているか確認します。
3. サポーテッド・グループの不一致
古いファームウェアのクライアントが sae_groups の暗号曲線パラメータに対応していない場合、AP側でサポートするグループ(sae_groups=19 20 21 など)を広げるか、ドライバのアップデートを検討する必要があります。

—

5. まとめ

WPA3の登場、そしてSAEによるハンドシェイクの刷新は、無線LANが単なる「便利なケーブルの代替」から「信頼できるエンタープライズ・インフラストラクチャ」へと脱皮するための決定的なマイルストーンでした。

私たちが構築するネットワークは、見えない電波を扱うからこそ、その裏側にある数学的・プロトコル的な挙動を正しく理解しておく必要があります。パスワードの脆弱性に依存しないSAEの仕組みを深く知ることで、単なる「おまじないの設定」ではなく、確信を持った堅牢なインフラ設計ができるはずです。

さあ、次のプロジェクトでは、レガシーな呪縛を断ち切り、完全なWPA3環境への一歩を踏み出してみませんか? パケットの向こう側で繰り広げられる暗号のダンスに思いを馳せながら、よりセキュアなネットワークを一緒に作り上げていきましょう。

コメント

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