WPA2-Personalについて

2023年1月現在、家庭で使われているWi-Fiの最もスタンダードな暗号化方式は恐らくWPA2-Personal(PSK)だと思います。
Wi-Fiは日常で切っては切れない身近な存在となっていますがこのWPA2-Personalがどのような手順でセキュアに暗号化の手順を踏んでいるのかを考えることは多くないと思います。
今回はWPA2-Personalの暗号化の手順を簡単にまとめておきたいと思います。

PMK、GMKの生成

1.  APおよびClientにPSK(Pre-Shared Key)を設定
2. APおよびClientはPSKからMSK(Master Session Key)を生成
3. APおよびClientはMSKからPMK(Pairwaise Master key)を生成
4. APは乱数を使ってGMK(Group Master Key)を生成

PMKはAPとクライアントがユニキャスト通信で利用する大本となる鍵となります。
GMKはマルチキャスト・ブロードキャスト通信で利用する大元となる鍵となります。

ここまではAP、ClientがそれぞれにPSKおよび乱数を元にして鍵を生成しているだけで、実通信は発生していません。
また、WPA2-PersonalにおいてはSSID単位で同一のPMKが生成されることになります。

4Way Handshake

ここから実通信が発生します。

5. APは乱数を生成しClientに送信
6. Clientは乱数を生成しAPに送信

これまでの手順によりAPおよびClientはそれぞれ、
・ APで生成したランダム値
・ Clientで生成したランダム値
・ APのMACアドレス
・ ClientのMACアドレス
・ PMK
を知ることになりますので、これら5つの要素を使ってPTK(Pairwise Transient Key)を生成します。

7. APはGMKからGTK(Group Transient Key)を生成し、Clientに送信
8. Clientは応答(ACK)を送信

これで全ての手順が完了し、PTK、GTKで暗号化し実際のデーターが送信されるようになります。

まとめ

難しい話は置いておいて簡単にWPA2-Personalの暗号化手順をまとめてみました。
ポイントとしてはPSKの情報は一度も電波を使って送信されていないということです。
暗号化される前の情報としてはAPおよびClientで生成されたランダム値のみとなりますのでPSKが漏洩しない限りはセキュアな状態で通信が行えるということがわかったと思います。