IEEE802.11)の開発依頼は、フィールドデザインまでお気軽にお問い合わせください。Protocol)があります。WEPは、APとSTAの両方で同じ暗号鍵を持っていて(共通鍵方式)、平文を暗号化します。WEPでは、RC4という暗号アルゴリズムでデータパケットを暗号化し、Open認証もしくはShared認証という認証方式で認証します。データパケットの暗号化WEPで暗号化されたデータパケットは下記のようになります。Vectorといって、パケット毎に変わるランダムな値です(特に規定はないので、変えなくてもいいです。普通は1ずつ増えていきます)。IVは、暗号鍵とくっつけて、RC4暗号化アルゴリズムに利用されます。このIVは、暗号化されないでパケットに付けられます。暗号化されたデータは、IVと暗号鍵を合わせた種をRC4のアルゴリズムに入れて出てきたデータ系列と、平文データを、XORを取ることで得られます。XORを取るだけですので、もとの平文と同じ長さです。RC4に入れる種が暗号鍵だけですと、RC4から出てくるデータ列は毎回同じ系列になってしまうため、IVを加えて変化をだしています。Valueといって、平文データにCRC32をかけて得られる値です。パケットが改ざんされてないかチェックをするものです。ICVも平文と同様に暗号化されています。WEPのOpen認証WEPのOpen認証は下記のようなシーケンスになります。Open認証は、認証なしという意味で、この認証シーケンスは必ず成功します。Algorithm値(図中のAlg)と、シーケンス番号(図中のSeq)の要素が含まれます。Algorithmは0です。シーケンス番号は、順に1,2と付けられます。これらのAutheticationパケットは、暗号化はされていません。その後、通信状態に入ると、データパケットは、STAとAPで予め決められた暗号鍵で暗号化され、通信します。WEPのShared認証WEPのShared認証は下記のようなシーケンスになります。Response方式の認証を行います。Algorithmは1です。シーケンス番号は、順に1,2,3,4と付けられます。これらのAutheticationパケットは、Seq=3のパケット以外は、暗号化はされていません。Text(128バイトのランダムなデータ)を付加しています。ICVを付けて返します(データパケットとまったく同じ処理です)。その受信側で、ICVが正しければ、Seq=4のパケットでSuccessを返します。その後、通信状態に入ると、データパケットは、STAとAPで予め決められた暗号鍵で暗号化され、通信します。この方式の問題は、Seq=2のパケットとSeq=3のパケットがあれば、暗号化される前のデータと暗号化された後のデータがわかっていますので、簡単に暗号鍵を導出できてしまいます。WEPの問題点Open認証、Shared認証に関わらず、WEPは、同じIVのパケットが2つあると解読できてしまうという脆弱性を持っています。普通は、IVは1ずつインクリメントしていくので、2^24パケットごとに同じIVが現れます。WEP暗号化は、暗号鍵とIVを種にRC4に入れて暗号のもととなるデータ系列を作り、それを平文データとXORをすることで暗号化データを作っています。そのため、同じIVとなるパケット2つのXORを取ると、その平文データどうしのXORの値が出てしまいます。SYNなどでは、パケット長が決まっているため)、平文データを割り出すことが比較的簡単にできてしまいます。これ以外にも、下記の点で非常に問題があります。暗号鍵は、接続毎に毎回同じものを利用している。そのため、ある時点の暗号鍵を解読されると、それ以降、永遠に解読されてしまう。すべてのSTAとの通信で同じ暗号鍵を使っている。そのため、一人が暗号鍵を解読されると、そのアクセスポイントに繋がっているすべての通信が傍受されてしまう。このようなこともあって、WEPは現在使われることはないです。