無線LAN端末あるいはアクセス・ポイントから送信されたデータは,誰でも受信できる。そのデータが暗号化されていなければ,データの内容を読み取られて情報漏えいにつながる恐れがある。企業ネットワークで無線LANを利用する場合は暗号化が必須と言える。連載第5~6回は,無線LANで使われる暗号化方式について解説する。


表1●暗号化の種類
[画像のクリックで拡大表示]

 IEEE 802.11の標準が策定されたとき,無線LANの暗号化方式としてWEP(Wired Equivalent Privacy)が規定された。しかしながら,このWEPは脆弱性を持つ。その後,「IEEE 802.11i」として暗号化を含むセキュリティについて議論された。ただ,標準策定まで長い時間を要することが予想されたため,WEPの脆弱性を補った暗号方式であるTKIP(Temporal Key Integrity Protocol)の仕様を切り出し,Wi-Fi Alliance*1が「WPA(Wireless Protected Access)」として発表した。IEEE 802.11iは2004年6月に策定され,TKIPのほかAES(Advanced Encryption Standard)も規定されている。これを受けてWi-Fi Allianceでは,AESを使った方式を「WPA2」として発表した。このほか無線LANとVPN(Virtual Private Network)を併用してデータを暗号化する方法もある。これらの暗号方式の特徴を解説していこう(表1)。

サポート機器は多いが,脆弱なWEP

 WEPはIEEE 802.11で規定されている暗号化方式であるため,ほとんどの機器がサポートしているが,セキュリティ機能としては弱い。

 その理由の1つが鍵の管理である。IEEE 802.11では,WEP鍵の配送方法が規定されていないため,すべての機器に事前に鍵を設定しておかなければならない。暗号化通信を正常に行うためには,全機器に設定する鍵が同一でなければならず,管理を徹底しなければならない鍵を無線LANの全ユーザーが知っていることになる。また,鍵の変更の際もすべての機器で同時に設定変更をしなければならないので,実運用では難しい。

 もう1つの理由が暗号アルゴリズムである。WEPではRC4(Rivest Cipher 4)という1バイト単位で簡易な暗号化を行うブロック暗号アルゴリズムを利用している。この簡易な暗号アルゴリズムと鍵の短さが弱点となり,暗号化されたパケットをある程度収集できれば解読できてしまう。


図1●クラック・ツールでWEP鍵を解読
パケットさえ収集してしまえば,鍵の解読は2秒で終了する。利用したツールはaircrack 2.1。今回は30万8353パケットを収集した。Yahoo!のフロント・ページの表示で約300パケットが送受信される。20人で1台のアクセス・ポイントを共有していれば,1人50回表示すれば収集できてしまう数だ
[画像のクリックで拡大表示]

図2●IEEE 802.1xの動作概要
アクセス・ポイントはプロキシ的な動作をするため,無線,有線(イーサネットと仮定)とEAPOL,RADIUSのプロトコル・スタックをサポートする
[画像のクリックで拡大表示]

図3●無線クライアントの暗号タイプの設定例
Funk Odyssey Clientの設定画面。“Association mode”,“Encryption method”の組み合わせでWEP,TKIP,AESなど暗号タイプを指定できる。“Authentication”では,IEEE 802.1xの利用と鍵の自動配送が選択できる
[画像のクリックで拡大表示]

 いかに脆弱かを認識するため,解読の方法を簡単に説明する。WEPでは,入力された40ビットまたは104ビットの鍵に24ビットのIV(Initialization Vector: 初期化ベクタ)を加え拡張鍵を作成する。平文1バイトに対し作成された拡張鍵から1バイトが抽出され,排他的論理和を実行し暗号文1バイトが完成する。あとはこの作業を繰り返し,暗号文を完成する。完成した暗号文は,IVとともに送信される。WEPで暗号化する範囲はMAC層のLLCヘッダー*2以降で,IPヘッダーも含まれる。ユーザー・データではないヘッダー部分には,既知の情報が多く含まれているので,ヘッダーの情報と暗号化した結果が分かれば,逆算して鍵を求めることができる。残りの問題は鍵の配列だが,特定のIVで特定の場所の鍵が使われる可能性が高いということが判明している。この特定のIVをWeak IVと言い,このWeak IVをいくつか集めれば最初の1バイト目から順に鍵を解読することができる。実際,クラック・ツールを使い30万程度のパケットを収集し,約2秒で104ビットの鍵の解読に成功した(図1)。

WEPの脆弱性を補ったTKIP/WPA

 TKIPは,WEPと同じ暗号アルゴリズムのRC4を利用しながらWEPの脆弱性を補っている。なぜ暗号強度の弱いRC4を用いたかというと,暗号化処理は非常に重くハードウエア処理を利用している製品もあるため,新たな暗号アルゴリズムを利用した場合,ファームウエアの更新のみで対応できない可能性があるからだ。

 TKIPでは一時鍵を用いて鍵混合を2段階行い,パケットごとに異なる鍵で暗号化されるように工夫されている。また,WEPで脆弱とされたIVも2倍の長さの48ビットに拡張され,Weak IVを使わないような工夫もされている。

鍵交換を可能にした802.1x

 IEEE 802.1xの規格では,認証機能のほかに鍵の管理方法についても規定されている。厳密に言うと認証や鍵の管理についてはオプションであったり,関連規格を用いたりしているが,ここではIEEE 802.1xとして総称する。

 無線LANのIEEE 802.1xでは,無線クライアントの接続を許可するか否かの認証と,許可された無線クライアント向けの鍵の発行および,鍵のローテーションが行われる。WEPやTKIPとIEEE 802.1xを併用することで鍵配送と鍵のローテーションが可能になり,セキュリティが向上する。IEEE 802.1xの認証処理については次回解説することにして,今回は暗号化処理の部分を解説する。

 IEEE 802.1xでの機器構成は,無線クライアント,アクセス・ポイント,認証サーバーが必要になる。IEEE 802.1xの用語では,無線クライアントをSupplicant(サプリカント),アクセス・ポイントをAuthenticator(オーセンティケータ)と言う。見かけ上,無線クライアントとアクセス・ポイントが認証を行っているように思われるが,実際の認証は無線クライアントと認証サーバーで行われている。認証手順の中には鍵の配送手順も含まれていて,無線クライアントには認証サーバーが作成した鍵が安全に配送される。しかし,通信を行うのは無線クライアントとアクセス・ポイントであるため,別途認証サーバーがアクセス・ポイントへ鍵を配送しなければならない。一般的にはRADIUSプロトコルを使ってアクセス・ポイントへ鍵の配送を行っている(図2)。

 IEEE 802.1xの設定を行う場合,認証方法のほかに暗号化方式を指定できる。ここでWEPやTKIPを指定すると,これまでユーザーが入力しなければならなかった鍵を認証サーバーが生成し,自動的に割り当てることができる(図3)。これで鍵の管理についてはセキュリティが向上するが,鍵の解読に対する不安が残る。そこで,鍵のローテーション機能を使う。一定時間が経過したら鍵を更新することができるので,WEPの場合でも解読に必要な量のパケットを収集される前に鍵を変更してしまえば,暗号アルゴリズムにRC4を使いながらもある程度安全な運用ができる。しかしそれでも,完全なセキュリティが確保できたとは言い切れない。

強度の高い新暗号方式のAES

 AESは,ベルギーのJoan Daemen氏とVincent Rijmen氏が開発した暗号アルゴリズムRijndael(ラインデール)を採用した次世代の暗号化方式。米商務省技術標準局(NIST)がこれまで利用してきたDES(Data Encryption Standard)に代わる新しい標準暗号化方式として採用した。このAESをIEEE 802.11iでも採用している。AESはDESを強化した3DESより安全と言われており,128ビットの鍵を入力にして,10段階の処理を行う。現時点では,解読の心配はないと思って差し支えない。

 通常は暗号化のための処理を多くすると,計算処理が重くなり,パフォーマンスに影響が出やすい。だが,AESでは比較的軽い処理を1段階とし,同じ処理を10回繰り返す10段階となっている。AESは安全性に加え,高速処理可能なところも高く評価されている。