Wi-Fiのセキュリティ方式として、WEP、WPAに続いて3番目に策定された。暗号化方式には「AES」が採用されており、セキュリティがより堅固になっている。データを順番に暗号化していく「ストリーム暗号」ではなく、データをブロック化してその順番を管理する「カウンター」とともに暗号化する「ブロック暗号」を用いている点に特徴がある。
1970年代以降の米国の正式な標準暗号化方式は「DES」(Data Encryption Standard)と言い、WPAで使用している「TKIP」(Temporal Key Integrity Protocol)もこれに準拠していた。ところが「DES」が老朽化し信頼性が低下してきたため、代わりに2002年に新たに「AES」(Advanced Encryption Standard)を策定した。
これに伴いWi-Fiのセキュリティにおいても対応する必要が生じ、WPAの後継として新たにWPA2が2004年に策定された。一時鍵の考え方などWPAに盛り込まれたアイデアを踏襲しつつも、第三者による傍聴、データの改ざんの検出、認証、いずれの点においてもWAPよりも堅牢になっている。
AESの暗号化アルゴリズムには「ラインダール」(Rijndael)が用いられている。WEPやWPAで使われているRC4のようなストリーム暗号と異なり、ブロック暗号であり、データを8、16または32バイトのブロックに分けて暗号化を行う。鍵の長さは128ビットが標準であるが、「ラインダール」自体は192ビット、256ビットも選択肢に含まれており、近年では256ビットの鍵が安全性を高めるものとして利用されるようになっている。
かなり高度な認証方式、暗号化方式が使われているが、それでも、あまりメモリを積んでいない機器でも影響しない設計になっており、WPAで問題となった通信速度の低下はWPA2では解消されている。
また、データの改ざんをチェックする仕組みである「完全性」については、WPAの「MIC」(Message Integrity Code)をそのまま踏襲しているが、アルゴリズムは「Michael」から「CCMP」(Counter Mode-CBC MAC Protocol)に変更になっている。
ストリーム暗号はそのままデータを右から左に流せば自然に暗号データに変換できるが、ブロック暗号は、さまざまな長さの送信データを扱わねばならず、その統御が必要となる。元のデータを暗号化し、暗号化されたデータを復号するには、この長さについての情報をどこかで管理しなければならない。そこで、この情報と、順番を示す情報であるカウンターというデータとを合わせて、全体のチェックを行っている。
このカウンターと、メッセージ認証をする「CBC」(Cipher Block Chaining)という方式が組み合わされて「CCMP」ができあがっている。すなわちWPA2は通信データをそのまま暗号化するのではなく、カウンター値を絡めて暗号化を行っているのである。
カウンターモード(1~4がカウンター)の仕組み
送信データを暗号化する全体のプロセスは、以下の通りである。
1)送信データをブロック化し、MACヘッダを付ける
2)MACヘッダは一度送信データから切り離され、CCMPヘッダが構築される
3)MACヘッダ、CCMPヘッダ、送信データの3つの情報から、MIC値が計算される
4)計算したMIC値を送信データの後ろに付加
5)送信データとMICを暗号化
6)暗号化データの先頭にCCMPヘッダを付加
7)更新されたMACヘッダを先頭に付加
WPA2におけるデータの暗号化プロセス
現在はWi-Fi機器においてはWPAが一般的に普及しており、一定程度の安全性は保たれている。しかし、将来的にはより安全度が高く通信速度にも影響を与えないWPA2が中心となることが予想される。