Wired Equivalent Privacy
Wired Equivalent Privacy(直訳すると有線同等機密、通称WEP)は、IEEE 802.11無線ネットワークのセキュリティのためのアルゴリズム。1997年に登場したとき、WEPは従来からある有線LAN並みの機密性を提供するものと期待されていたが、後に容易に解読できることが判明したため廃れた。
2001年以降、暗号解読者らによって深刻な弱点がいくつか明らかとなり、最終的には容易に入手可能なソフトウェアを使って数分でWEPコネクションを解読可能な状態となっている。数か月以内にIEEEは新たなタスクフォース802.11iを立ち上げ、この問題の対策を検討し始めた。
2003年には、802.11iによってまとめられつつあった改正案のサブセットである Wi-Fi Protected Access (WPA) でWEPを置き換えることを Wi-Fi Alliance が発表した。2004年には802.11iのまとめた規格 (WPA2) が承認され、IEEEは正式に WEP-40 と WEP-104 が「本来のセキュリティ目標を達成できなかったため、置換される」ことを宣言した。
脆弱性が明らかになっているにもかかわらず、WEPはその後しばらく広く使われていた。特に、ニンテンドーDSやPSPなどの携帯型ゲーム機ではWEPにしか対応していない機器が多く、これらの機器は普及が進んでいたため、WEPのアクセスポイントが蔓延ることとなった。
WEPは安価で旧式なパーソナル用途向け無線LANルーターでも使用可能な暗号化手段で、通りすがりの他人に安易に無線ネットワークを使用されることは防げるものの、悪意を持って意図的に盗聴しようという試みに対しては無防備であるため、どんな形であれ使うべきではない。
なお、WEPを Wireless Encryption Protocol の略としている例が散見されるが誤りである。
WEPは1999年9月に承認された元々の IEEE 802.11 規格の一部である。WEPでは機密保持のためにストリーム暗号RC4を使い、データ完全性保証のためにCRC-32チェックサムを使う。2004年に新たな機構に置換されたが、今も規格文書に記載されている。
標準的な64ビットのWEPは40ビットの鍵 (WEP-40) を使い、24ビットの初期化ベクトルと連結してRC4の鍵ストリームを生成する。WEPの当初のドラフト版が作成されたころ、アメリカ合衆国連邦政府は輸出向けの暗号技術を制限していたため、鍵の長さが制限されていた。鍵としては、10桁の16進文字列(0-9 と A-F)あるいは5文字の英数字(0-9、a-z、A-Z)として指定される(16進文字列の場合、1桁あたり4ビット × 10桁 + 24ビット初期化ベクトル = 64ビットWEP鍵。英数字の場合、1文字あたり8ビット × 5文字 + 24ビット初期化ベクトル = 64ビットWEP鍵)。
制限が解除されると大手メーカーは拡張された128ビットのWEPプロトコルを実装するため、鍵長を104ビットにした (WEP-104) 。128ビットWEPの鍵は、26桁の16進文字列をユーザーが入力する形で設定するのがほとんどである。これに24ビットの初期化ベクトルを生成して付け加え、最終的な128ビットのWEP鍵とする。鍵を英数字で指定する場合には13文字となる(16進文字列の場合、1桁あたり4ビット × 26桁 + 24ビット初期化ベクトル = 128ビットWEP鍵。英数字の場合、1文字あたり8ビット × 13文字 + 24ビット初期化ベクトル = 128ビットWEP鍵)。
いくつかのベンダーは152ビットおよび256ビットWEPを実装した。これは、128ビットの場合と同様に初期化ベクトルは24ビットで、残る128ビットあるいは232ビットを鍵として指定できる。この128ビットあるいは232ビットぶんの鍵も32桁あるいは58桁の16進文字列として指定する。鍵を英数字で指定する場合には16文字あるいは29文字となる(16進文字列の場合、1桁あたり4ビット × 32桁 + 24ビット初期化ベクトル = 152ビットWEP鍵、あるいは1桁あたり4ビット × 58桁 + 24ビット初期化ベクトル = 152ビットWEP鍵。英数字の場合、1文字あたり8ビット × 16文字 + 24ビット初期化ベクトル = 256ビットWEP鍵、あるいは1文字あたり8ビット × 29文字 + 24ビット初期化ベクトル = 256ビットWEP鍵)。
WEPのセキュリティ上の問題は鍵の長さだけではない。鍵が長ければ、暗号解読にはより多くのパケットを盗聴する必要があるが、必要なトラフィックを生じさせる積極的な攻撃方法が存在する。WEPの他の弱点としては、初期化ベクトル衝突の可能性やパケット改変の可能性があり、それらは鍵を長くしても対策にはならない。
WEPでは、オープンシステム認証と共通鍵認証という2種類の認証方式が使われている。
なお以下ではインフラストラクチャーモード(WLANクライアントとアクセスポイント間の通信)の認証について解説するが、基本的にはアドホックモードでも同じである。
オープンシステム認証では、WLANクライアントは認証の際に自身の証明書をアクセスポイントに提供する必要がない。したがってどんなクライアントでも、そのWEP鍵がどういうものであれ、アクセスポイントに対して自身の認証ができ、ネットワークに繋がるよう試みることができる。つまり、事実上いわゆる認証と呼べるようなものはなされていない。その後、暗号化されたデータフレームが使われ、その時点でクライアントが正しい鍵を持っている必要がある。
共通鍵認証では、認証にもWEP鍵を使う。次のような4段階のチャレンジ/レスポンス型認証のハンドシェイクが行われる。
クライアントはアクセスポイントに認証要求を送る。
アクセスポイントは平文でチャレンジ(誰何)フレームを送る。
クライアントはそのチャレンジフレームの中身を予め設定されたWEP鍵を使って暗号化し、それを認証要求に含めてアクセスポイントに送る。
アクセスポイントはそれを解読し、前に送ったチャレンジフレームの平文と比較する。同一かどうかによって、アクセスポイントは肯定または否定の応答を返す。
その後、事前共有されたWEP鍵を使いRC4を使ってデータフレームを暗号化する。
一見すると、認証と呼べるようなことを全く行わないオープンシステム認証よりも共通鍵認証の方が安全なように思える。しかし、実際は全く逆である。共通鍵認証におけるチャレンジフレームを捕らえることで、ハンドシェイクで使われた鍵ストリームを把握することが可能である。そのため、WEPではオープンシステム認証を使った方が賢明である。ただし、いずれにしてもWEPの認証機構は弱い。
RC4はストリーム暗号であり、同じ鍵を二度使うことは避けなければならない。そのために初期化ベクトルが使われるが、24ビットという長さはトラフィックの多いネットワークでは十分長いとは言えない。WEPでの初期化ベクトルの使い方により、関連鍵攻撃の可能性が生じた。24ビットの初期化ベクトルでは、パケットを5,000個やりとりすると、50%の確率で同じ初期化ベクトルが再び使われる可能性がある。
2001年8月、Scott Fluhrer、Itsik Mantin とアディ・シャミアは、WEPでのRC4と初期化ベクトルの使い方の問題点を利用した暗号解読法を発表し、無線ネットワークを盗聴することでRC4の鍵を復元できる受動的攻撃法がありうることを示した。そのネットワークのトラフィックの大小、すなわち調べられるパケットの数にも依存するが、場合によっては1分ほどで鍵を復元できる。トラフィックがないネットワークの場合、攻撃者がパケットを送信し、その応答パケットを得ることで鍵を探すのに使える。この攻撃法は実際すぐに実装され、自動暗号解読ツールがリリースされた。この攻撃は普通のパーソナルコンピュータで実施でき、ソフトウェアも無料のものが出回っている。
Cam-Winget et al. (2003) ではWEPの持つ様々な弱点を調査している。彼らは「実験によると、適切な機器を用意すれば1マイル以上の距離から対象のWEPを使ったネットワークを盗聴できる」と記している。また、次の2つの問題点を指摘した。
WEPの使用はオプションとされているため、WEPを使わずに(暗号化せずに)運用されている無線LANが多い。
WEPでは鍵管理プロトコルを持たないため、複数の利用者が単一の共通鍵を使っている。
2005年、FBIが一般に入手可能な機器を使って3分でWEPを使用したネットワークを解読するデモンストレーションを行った。Andreas Klein は、RC4ストリーム暗号について別の解析を行った。Kleinは Fluhrer、Mantin およびシャミアが示した以外にもWEPの解読に利用できるRC4鍵ストリームとWEPの鍵の相関関係があることを示した。
2006年、Bittau、Handley、Lackey は802.11プロトコル自体を利用してWEPの解読を加速させる方法を示した。1つのパケットを盗聴したら、攻撃者は任意のデータを送信することで処理を早めることができる。盗聴で得たパケットは(1バイトにつき128個程度のパケットを送ることで)1バイトずつ解読でき、それによってローカルなIPアドレスを発見できる。攻撃者は復元したIPヘッダを使い、802.11のフラグメンテーション機能を利用して盗聴したパケットを再現できる。そしてその802.11ネットワークがインターネットに接続されている場合、アクセスポイントはそのパケットを解読(復号)してインターネット上の攻撃者の仲間にそれを転送するのに利用される。すると、無線LAN側の攻撃者とインターネット側の仲間の間の通信によってパケットを1つ盗聴しただけで容易にWEPを破ることができる。
2007年、Erik Tews、Andrei Pychkine、Ralf-Philipp Weinmann は Klein の2005年の攻撃法を拡張し、WEPに対して最適化した攻撃法を示した。この攻撃法では、4万個のパケットを捕らえるだけで104ビットの鍵を50%の確率で復元できる。利用できるパケット数が6万個なら成功率は80%、8万5千個なら95%となる。ARP再注入などの能動的攻撃法を使えば、条件が揃えば4万個のパケットを1分以内に集められる。実際の計算に必要なリソースは、Pentium-M 1.7GHz でメモリ3MBと計算時間3秒ほどであり、もっと低速なCPUでも最適化可能である。40ビット鍵であれば成功率はもっと高くなる。
2008年、Payment Card Industry (PCI) のセキュリティ標準化委員会はPCI DSSの更新を行い、その中で2010年6月30日以降クレジットカード処理にWEPをどんな形であれ使用しないという規定を設けた。また、2009年3月31日以降、新たに設置するシステムにはWEPを使わないこととした。WEPの脆弱性は、アメリカの百貨店 T.J. Maxx の親会社のネットワーク侵入事件で利用されている。
暗号のトンネリング(例えば、IPsec、Secure Shellなど)を使えば、安全でないネットワーク上でも安全にデータ転送が可能である。しかし、無線ネットワーク自体のセキュリティを回復すべく、WEPの代替となる規格が開発された。
WEPのセキュリティ問題の推奨される対策として、WPA2またはその前段階のWPAへの転換がある。どちらもWEPに比較すればずっと安全である。WPAまたはWPA2をサポートするため、一部の古いアクセスポイントは置換の必要が生じ、また一部はファームウェアの更新で対応可能だった。WPAはWPA2を実装した機器が出回るまでのソフトウェアで実装可能な一時的な対策だった。WPAで採用されているTKIPは設計上の寿命に到達しており、破られる危険性が高くなっているため、次回の802.11規格の全面改訂の際には削除される予定である。
802.11i の初期のドラフト版にあった間に合わせ的なWEP強化策である。WPAやWPA2に対応できない機器でも実装可能な場合があった。初期化ベクトルと鍵の両方を128ビットに拡張したものである。初期化ベクトルの重複を防ぎ、総当り鍵攻撃を防止できることが期待されていた。
WEPが根本的に不完全だということが判明すると(つまり、初期化ベクトルと鍵のサイズだけの問題ではない)、WEP2の名前は消えた。ただし鍵長を拡大するという対策はWPAのTKIPにも採用されている。
WEP+ とも。Agere Systems(ルーセント・テクノロジーのかつての子会社)が独自にWEPを強化したもので、「弱い初期化ベクトル」を排除することでWEPのセキュリティを強化している。WEPplusは無線通信を行う双方がそれを採用していないとセキュリティを強化できない。無線LANの性質上、そのことを確実に保証することは難しく、利用可能な環境は限られる。また、反射攻撃を必ずしも防止できない。
Dynamic WEP では、WEPの鍵を動的に変化させる。スリーコムなどいくつかのベンダーがそれぞれ独自に機能追加したものである。
動的に変化させるというアイデアは 802.11i のTKIPに取り入れられているが、アルゴリズム自体はWEPとは異なる。