無線LANのセキュリティ WEP暗号化の仕組み
目次
WEPの暗号化は何を目的としているか
『無線LANの基本的なセキュリティ』で解説したように、無線LANのセキュリティには、最も基本的なものとしてESS-IDの隠蔽、MACアドレスフィルタリング、WEP暗号化があります。その3つの中のWEP暗号化の仕組みについて、もう少し詳しく見ていきましょう。
まず、WEP暗号化を行うことによってどのようなことを実現できるのか?という目的を考えます。WEPでは無線LANでの通信の「暗号化」と「データの完全性」を確保することを目的としています。「暗号化」は第三者にデータを盗聴されないようにすることです。そして、「データの完全性」とは、途中でデータが改ざんされていないことと考えてください。
WEPでデータの完全性を確保するには
まず、データの完全性について。WEPではデータの完全性を確保するために、転送するデータからICV(Integrity Check Value)というハッシュ値を計算し、データの後ろに付加して、ICVとデータを一緒に転送します。受信した側でデータからICVを計算して、付加されているものと一致すれば途中でデータが改ざんされていないと考えられます。ICVのハッシュ値の計算にはCRC32というアルゴリズムを利用します。
このICVを含めたデータを暗号化することになります。
WEP暗号化
次に、暗号化するときのキーストリームについてです。暗号化するには、キーストリームが必要です。元の平文データとキーストリームで特殊な演算を行うことによって、データの暗号化を行っています。
WEPでは、WEPキーと24ビットのIV(Initial Vector)を組み合わせたものから、RC4というアルゴリズムにしたがってキーストリームを生成し、暗号化しています。RC4とは、任意のビット長の擬似的な乱数を生成させ、それによって暗号化するアルゴリズムです。RC4では同じ情報からは同じキーストリームが生成されます。そのため、いつも同じWEPキーだと安全ではなくなってしまうので、WEPキーとIVを組み合わせたものからRC4でキーストリームを生成するようになっています。
生成したキーストリームとの排他的論理和(XOR)をとることによって暗号化を行います。
WEPで暗号化したフレームを受信して、復号するときは、同じキーストリームで排他的論理和(XOR)をとることで、平文データとICVを取り出すことができます。キーストリームにはWEPキーだけでなくIVも利用しているので、フレームにはIVも含まれています。
平文データを取り出したら、受信側でもCRC32によりICVを計算して、それが受信フレームに含まれているICVと一致すれば、途中で改ざんされていないとみなすことができます。つまり、データの完全性を確認することができます。
※排他的論理和 http://ew.hitachi-system.co.jp/w/XORE6BC94E7AE97.html
※RC4 http://ew.hitachi-system.co.jp/w/RC4.html
以上が、WEPによる暗号化の基本的な仕組みです。一見、WEPによって無線LANの通信のセキュリティが保てるかのように思えますが、いくつかの脆弱性が存在しています。