期待のネット新技術

Wi-Fiの暗号化は「WPA」から「802.11i」を経て「WPA2」へ

【利便性を向上するWi-Fi規格】(第8回)

 Wi-Fiにおける暗号化の方式は、当初用いられていた「WEP」から「WPA」「WPA2」へと変遷してきている。そして、現在は中心的な役割を担っているWPA/WPA2に発見された脆弱性“KRACKs”を受け、2018年後半には、新たなセキュリティ機能「WPA3」が提供される予定だ。

 今回からは、Wi-Fiの通信を暗号化する方式におけるこれまでの流れや、その仕組みについて解説していく。(編集部)

WEPの脆弱さへの無関心は、802.11bが使われ続けた2007年ごろまで続く

 前回の説明の通り、標準化が完了した「WEP」は、IEEE 802.11やIEEE 802.11bでは当初から広く実装されており、これを利用すれば通信の秘匿化が図られるはずだった。実際、IEEE 802.11やIEEE 802.11bに対応した無線LANカードがある程度普及し始めたのは2000年を過ぎてからで、本格的に普及が始まるのは、Intelが“Centrino”というブランドで無線LAN一体型のノートPCを半ば強制的に展開し始める2004年以降である。

 その直前までは、WEPでの暗号化でも、あまり問題視されてはいなかった。とはいえ、研究者から見れば、WEPは脆弱という認識自体はすでにあった。

 有名なところでは、まず2001年8月に開催されたSAC 2001の8th Annual International Workshopで発表された、Scott Fluhrer/Itsik Mantin/Adi Shamirの3氏による"Weaknesses in the Key Scheduling Algorithm of RC4"という論文だ。RC4とIVの性質を利用して暗号解読が可能なことを示され、後にはこれを実装してWEPを破るツールまで登場する。

Weaknesses in the Key Scheduling Algorithm of RC4

 続く2003年に公開された、Nancy Cam-Winget、Russ Housley、David Wagner、Jesse Walkerの4人の共著による"SECURITY FLAWS IN 802.11 DATA LINK PROTOCOLS"というCommunications of the ACMの記事では、実際にWEPの解読を試みた結果として、「1マイル先から通信を傍受して解読することが現実的に可能」だとして、WEPを利用せず、とりあえずはIEEE 802.11iの「TKIP」に切り替え、長期的には同じくIEEE 802.11iの「CCMP」を利用することが推奨されている。

 さらに2005年には、ロサンゼルスで開催されたISSA(Information Systems Security Association)のミーティングに出席したFBIのエージェントが、128bitのWEPを3分で解読するというデモを行ったことがいくつかのメディアが報じられている。

 同じ2005年に独カッセル大学のAndreas Klein氏は、WEPキーを解読するための技法についてプレゼンテーションを発表するとともに、これを実装したツールをウェブサイトで公開している。これとは別に、現在もバージョンアップを続けている鍵回復ツール(という建前の鍵公開ツール)である「aircrack-ng」のオリジナル版が2004年7月にリリースされ、これを利用したAircrack-ptwというツールは4万パケットの傍受で解読率50%、8万5000パケットでは95%を達成した。

Angriffe auf RC4
aircrack-ng

 ちなみに4万パケットの場合、所要時間はおおむね1分以内で、1.7GHz駆動のPentium Mプロセッサーと3MBのメモリがあれば動作可能とされていた。要するに、当時でも出回っていた程度のノートPCで、十分解読ができる時代になってしまったわけだ。ちなみにこれはWEPキーが104bitの場合の数字なので、40bitの場合は数秒で解読できてしまうことになる。

 ただし、2007年頃になっても、エンドユーザーの動向は割と無関心に近かった。この当時のユーザーは2004年頃に製造されたアクセスポイントやクライアントを主に使っており、現実問題としてWEPしか暗号化技法が提供されていなかったためだ。

 いくら危ないとか言われても、それだけのために性能が変わらない無線LANカードとアクセスポイントから買い換える酔狂なユーザーは少なかった。それでもWi-Fiの火付け役となったCentrinoの場合、最初期の「Intel PRO/Wireless 2100/2200」ですら、WEP以外にWPAにも対応していたのは流石だとは思うが、これと組み合わせるアクセスポイント側がWPAに対応していないと意味がなかった。

Wi-Fiチップ、CPU、チップセットを組み合わせたIntel「Centrino Mobile Technology」

 結局のところWEPは、IEEE 802.11bが主流であり続けた間は、広く使われてしまっていた、というのが実情に近いと思う。おそらくは傍受や解読もされまくっていたとは思うのだが、そうした記録は残されていないので、正確なところは判断できない。

先んじて「WPA」が策定、2004年標準化の「IEEE 802.11i」にあわせて「WPA2」へ

 IEEEでは、こうしたWEPの脆弱性というか、原理的にそれほど強固とは言えない事実に気が付いており、セキュリティ関連の追加規格の策定を早い時期からスタートしている。正確な日付は既に分からなくなっているのだが、どうも1999年中にStudy Groupが形成され、2000年中にはTask Groupに昇格、ここで審議を重ねて2004年には「IEEE 802.11i-2004」として標準化が完了している。

 あいにくと、もうTask Groupの時点のドキュメントが全部削除されてしまっていてアクセスできないのだが、2002年5月にDraft 2.0、移行2003年の1/6/8/10/11月にそれぞれDraft 3.0~7.0までがリリースされており、2003年8月にはスポンサー投票に移行。2004年5月のDraft 10.0でほぼ完成し、これをベースに標準化が完了したことが分かっている。

 ただこの11i TGのメンバーは、Wi-Fi Allianceのメンバーとかなり重なっており、Wi-Fi Allianceの側では「標準化を待っていては遅い」という意見が大半を占めていたようだ。つまり標準化作業そのものはきちんとIEEEのルールに従って行うとしても、それに先んじて標準化案をベースに業界スタンダードを作って実装し、標準化が完了したらこれに合わせてアップデートするという方法を、セキュリティについても行おうというものだった。

 これに基づき、Draft 3.0をベースに業界標準の策定がWi-Fi Allianceの側で並行してスタートする。これが「WPA(Wi-Fi Protected Access)」である。こちらはまずWPAがIEEE 802.11iに先んじて策定され、後追いでIEEE 802.11iに準拠するかたちで、「WPA2」が策定されるという予定であった。

 ここからは、話がIEEE 802.11iとWPAで混在することになるのだが、セキュリティ標準といっても、実際には認証と通信の2つのパートに分かれることになる。認証の方は、そもそもそのクライアントがアクセスポイントに通信することを許す/許さないを認証するための仕組み、通信の方は、傍受されてもそこから鍵を解読されたりしないための仕組みということになる。

 さて、IEEE 802.11iでは、認証に関して言えばIEEE 802.1Xをベースに構築されることが当初から想定されていた。IEEE 802.1Xは、有線/無線のEthernetで認証システム(正確に書けばPort-Based Network Access Control)を構築するための標準規格である。この規格の中では、認証を行うために以下の3つの要素が要求されている。

  • Authentification Server(認証サーバー)
  • Authentificator(認証LANスイッチ)
  • Supplicant(認証クライアント)

 Supplicantはクライアントそのもので、IEEE 802.1X対応の認証プロトコル「EAP(Extended Authentification Protocol)」のプロトコルスタックを実装している必要がある。一方、Authentificatorは一見普通のスイッチであるが、Supplicantとの間は「EAPOL(EAP over LAN)」で、もう一方のAuthentification Serverとの間は「RADIUS(Remote Authentication Dial-In User Service)/Diameter」というプロトコルで接続されるため、このプロトコル間の変換機能を持っている必要がある。

 RADIUSはそのフルネームから分かる通り、もともとは電話回線などを使っての認証に向けて作られた規格で、これがネットワーク回線に切り替わってもそのまま利用されることになった。RADIUSの大本は1997年に策定された「RFC2058」で、その後何度か改訂されて2000年の「RFC2865」で落ち着いた感があるが、いずれにせよ電話回線の時代を引きずった規格である。

 後継のDiameter(これは完全に駄洒落で、Radiusが半径の意味を持つので、直径ということでDiameterだそうだ)は、プロトコルそのものには互換性は全くないが、RADIUSで問題になっていたさまざまな事柄を解決し、RADIUSの代わりに利用できるようにしたものである。ちなみにDiameterのコアとなるプロトコルは「RFC3588」で規定されている。

 さて話をWPAに戻す。IEEE 802.11iに準拠すれば、アクセスポイントがAuthentificatorに相当するわけだが、そうなるとアクセスポイントとは別に、RADIUS/Diameterに対応する認証サーバーを立てることが要求される。ただ、エンタープライズ向けはともかく、家庭向けで認証サーバーを別に立てるのはあまりに非現実的である。そこでWPAでは、認証サーバーを立てずに同等レベルの認証システムを提供する方式を実装することになった。

大原 雄介

フリーのテクニカルライター。CPUやメモリ、チップセットから通信関係、OS、データベース、医療関係まで得意分野は多岐に渡る。ホームページはhttp://www.yusuke-ohara.com/