Wi-Fi Protected Access(WPA)とは、Wi-Fi Alliance の監督下で行われている認証プログラム。Wi-Fi Alliance が策定したセキュリティプロトコルにそのネットワーク機器が準拠していることを示すものである。また、そのセキュリティプロトコルそのものも指す。これまでにWPA、WPA2、WPA3の3つのプログラム及びプロトコルが策定された。

## 概要

WPAプロトコルは、それ以前の Wired Equivalent Privacy (WEP) が脆弱性を持つことが指摘されたので、その対策として策定された。これはIEEE 802.11i の主要部分を実装したプロトコルであり、802.11i が完成するまでの間、WEP の代替として一時的に使うために策定されたものである。WPA対応以前の無線LANカードでも(ファームウェアの更新により)利用できるように設計されているが、第一世代のアクセスポイントでは必ずしも利用できない。

WPA2 認証マークは、その機器が拡張プロトコル規格に完全準拠していることを示す。この拡張プロトコルは古い無線LANカードでは使用できない。

基本的に、WPA は Wi-Fi Alliance による認証プログラムである。Wi-Fi Alliance は、Wi-Fi の商標の権利者であり、機器にその商標を付けることを認証している業界団体である。

WPAは利用する認証方式によって「WPAパーソナル」あるいは「WPAエンタープライズ」に大別される。

- WPAパーソナル - 認証サーバを使用しないモード。RADIUSサーバなどを使用しない代わりに、認証にはPSK認証やSAE(同等性同時認証)を利用する。
- WPAエンタープライズ - 認証サーバを使用するモード。IEEE 802.1X/EAP認証がそれに該当する。

## バージョン

### WPA

WPA 認証マークは、製品が無線ネットワークのセキュリティ強化のために策定したセキュリティプロトコルへの準拠していることを示す。このプロトコルには Enterprise と Personal の2種類がある。Enterprise は、各ユーザに別々のキーを配布する IEEE 802.1X 認証サーバを使う方式である。Personal WPA はスケーラビリティのない「事前共有鍵 (PSK)」モードを使い、アクセス可能なコンピュータには全て同じパスフレーズを与える。PSKモードでは、セキュリティはパスフレーズの秘密性と強度に依存する。このプロトコルの設計は、IEEE 802.11i 規格のドラフト3版に基づいている。

Wi-Fi Alliance は、この標準に基づいたセキュアな無線ネットワーク製品を普及させるべく、IEEE 802.11i の策定が完了する前にこのプロトコルを策定した。その時点で既に Wi-Fi Alliance は IEEE 802.11i 規格の最終ドラフト版に基づいた WPA2 仕様を考慮していた。従って、フレームフィールド上のタグ(Information Elements、IE とも呼ぶ)が 802.11i と違っているのは意図的であって、プロトコルの2種類のバージョンが実装されたときの混乱を避けるために変更した。

データはRC4ストリーム暗号で暗号化され、鍵は128ビット、初期化ベクトル (IV) は48ビットである。WEP からの主要な改善点は Temporal Key Integrity Protocol (TKIP) である。これはシステムの運用中に鍵を動的に変更するプロトコルである。それに(WEPの場合の24ビットよりも長い)48ビット長の初期化ベクトルを組合せることにより、WEP での関連鍵攻撃に対する脆弱性への対策とした。

認証と暗号化に加えて、このプロトコルではペイロード完全性を大幅に強化している。WEP で使われていた本質的にセキュアでない巡回冗長検査 (CRC) は、WEP の鍵を知らなくともペイロードを書き換えて、CRC を更新することが可能であった。WPA ではよりセキュアなメッセージ認証符号(通常 MAC と略記されるが、ここでは MIC = Message Integrity Code とする)を使い、"Michael" というアルゴリズムを使っている。MIC にはフレームカウンタが含まれているので反射攻撃を防ぐことができる。

鍵とIVのサイズを大きくしたことで、関連鍵で送るパケット数を減らし、さらにセキュアなメッセージ認証システムを加えたので、無線LANへの侵入は従来より遥かに困難になった。Michael アルゴリズムは、古い無線LANカードでも機能するもののうちでは Wi-Fi Alliance の設計者らが到達した最も強度の高いアルゴリズムである。Michael も完全ではないため、TKIP は Michael のチェックに合格しないフレームが2個見つかると、ネットワークを1分間閉鎖する。そうして、新しい世代の鍵を要求し、再認証によってネットワークを再開する。

### WPA2

Wi-Fi Alliance の WPA2 プログラムで認証される拡張プロトコルは、802.11i の必須部分を実装したものである。特に新たにAES(共通鍵暗号方式)ベースのアルゴリズムCCMP などを導入している。2006年3月13日からは、WPA2 認証を受けていないと "Wi-Fi CERTIFIED" と称することができなくなった。管理フレームを保護する機能にPMF(Protected Management Frames)を使用し、管理フレームへの盗聴、改ざん、「なりすまし」を防ぐが、WPA2ではオプションである。しかしWPA3ではPMFは必須となった。

### WPA3

2018年6月25日発表。2018年後半より対応機器がリリースされる予定。

WPA2のセキュリティ拡張として提供される。WPA2に対して、下記の新機能が追加されるとアナウンスされた。

- Simultaneous Authentication of Equals 総当たり攻撃からの保護
- 設定のないデバイスに対するセキュリティ機能
- Opportunistic Wireless Encryption 子機 - 親機間で個別にデータを暗号化
- 商用国家安全保障アルゴリズム (Commercial National Security Algorithm、CNSA)に準拠した192ビット暗号化を採用
- Wi-Fi Easy Connect - Wi-Fi Protected Setupに代わる自動設定システムで、QRコードを読み取ることで設定する。従来のWPSはWPA3の設定には対応しない。
- 前方秘匿性 - 暗号化鍵の共有に使われている秘密鍵が漏えいしたとしても、過去に暗号化された通信データは解読されない。

WPA3はWPA3-Personal、WPA3-Enterpriseに分けられる。

WPA3-Personal ではWPA-Personal、WPA2-Personalで使用していたPSKに代わり、ユーザの入力したパスワードをSAE (Simultaneous Authentication of Equals)で処理したPMKを利用する。PMK算出後は、従来のWPA/WPA2と同様に4-way handshakeによる鍵交換が実施される。

## セキュリティ

TKIPもしくはCCMPによる暗号化が提供されている。

### WPAパーソナルモード

事前共有鍵モード(PSK、またはパーソナルモード)は、個人宅や小規模の会社向けに設計されたもので、IEEE 802.1X 認証サーバを必要としない。

各ユーザーはネットワークにアクセスする際にパスフレーズを入力しなければならない。パスフレーズは8文字から63文字のASCIIの印字可能文字か、64桁の16進数(256ビット)である。ASCII文字を選択した場合、ハッシュ関数で最大約420.5ビットの情報(63文字×6.6ビット/文字)を256ビットに縮小する(SSIDも使う)。パスフレーズは何度もユーザーに入力させることを避けるために、ユーザーのコンピュータに記憶させておくことが多い。パスフレーズはアクセスポイントにも記憶させておく必要がある。

セキュリティ強化のためにはPBKDF2鍵導出関数を使うべきだが、ユーザーが一般に利用する弱いパスフレーズは、パスワードクラックに対して脆弱である。総当り攻撃への対策としては、13文字のランダムなパスフレーズ(文字種は95文字)で十分と言われている。Church of WiFi は上位1,000位までのSSIDについてレインボーテーブルを計算した。侵入を確実に防ぐには、ネットワークのSSIDは上位1,000位のSSIDと同じにしないよう設定すべきである。

半導体製造業者によっては、無線LAN機器をネットワークに追加する際にソフトウェアまたはハードウェアによる独自のインタフェースを使って、自動的にパスフレーズを生成して配布する方式を採用し、ユーザーが弱いパスフレーズを選択するのを防いでいる。これには例えば、ボタンを押下する方式(ブロードコムのSecureEasySetup、AirStationのAOSS、Atermのらくらく無線スタート)やソフトウェア経由で短い語句を入力する方式(AtherosのJumpStartやザイセルのOTIST)がある。Wi-Fi Alliance はこれらの方式についても標準化を行い、Wi-Fi Protected Setupというプログラムで認証をおこなっている。

### WPAエンタープライズモード

WPAエンタープライズモードは、会社や宮公庁などの大規模事業所に利用されることを想定したモードであり、ユーザー認証に802.1XおよびEAPを使用する。

802.1Xを利用することにより、安全かつ動的な暗号キー(パスワード・パスフレーズ)が提供されるため、静的な暗号キーを管理する上で負担や問題がなくなる。

また、それを利用することにより、利用者側と認証サーバーとの性能の高い相互認証を利用できる。

この暗号化方式が設定されているネットワークを利用する場合は、利用者ごとに発行されたパスワードを使って認証をする。

802.1Xを使用すれば、認証に使用するパスワードが暗号化されずに認証サーバーに送信されることはない。

また、802.1Xの認証方式はWi-Fiに対して高い性能の認証方式を提供する。

そして、802.1Xでの認証には、Wi-Fiユーザーグループの集中管理ができ、これにはポリシーベースの動的キー、動的キーの割り当て、動的仮想LANの割り当て、SSIDの制限などが含まれている。これらの機能では、暗号キーがローテーション(動的)される。

802.1XにはEAP-FASTやEAP-TLSなど、複数の認証方式が存在し、これらはそれぞれすべて異なるものであるが、利用者側とルーター(またはアクセスポイント)の通信は同じく802.1XおよびEAPに依存している。

WPAエンタープライズモードを利用するには、認証サーバー(RADIUSサーバーなど)がネットワーク上に存在する必要がある。

## WPA Enterprise と WPA2 Enterprise における EAP 拡張

Wi-Fi Alliance は、WPA Enterprise および WPA2 Enterprise の認証プログラムに追加の EAP (Extensible Authentication Protocol) を含めることを発表した。これにより、WPA Enterprise 認証を受けた機器が相互運用可能であることを保証できる。それ以前は EAP-TLS (Transport Layer Security) のみを認証していた。

現在認証されている EAP は以下の通り。

- EAP-TLS (従来から)
- EAP-TTLS/MSCHAPv2
- PEAPv0/EAP-MSCHAPv2
- PEAPv1/EAP-GTC
- EAP-SIM

他のEAP方式を使う機器もある。この認証は主要なEAP方式の相互運用を保証しようとする試みである。

## ハードウェアサポート

最近の "Wi-Fi CERTIFIED" 付きの機器では、上述のセキュリティプロトコルをサポートしているものがほとんどである。

WPAプログラムが策定される以前の機器でも WPA が使えるよう考慮されている。その場合、ファームウェアの更新が必要である。全ての古い機器でファームウェアが更新可能というわけではない。

## 脆弱性

WPAに採用されているTKIPには脆弱性が存在することが知られており(同項目参照)、AESをベースとするより強力なCCMPを使用するWPA2か、またはWPAにおいてTKIPの代わりにCCMPを使用することが推奨される。

しかしながら2017年10月16日に、セキュリティ面でより強力とされたWPA2についても脆弱性(KRACK)の発表を予告する情報が記載され、当時はこの規格が無線環境で広く用いられていたので、研究者やITコンサルタント等をはじめ、多くの利用者に波紋を広げた。

さらにWPA3についても、2019年4月15日に脆弱性が公開されたが、これはソフトウェア(ファームウェア)アップデートによる対処が可能である。