平成15年度テクニカルエンジニア(ネットワーク)午後Ⅱ 問2設問3解答と解

目次

解答

(1)
【c】 ESS-ID
【d】 乱数
【e】 多く
【f】平文データ

(2)IVは暗号化されずWEPキーが固定であるため(24字)

(3)詐称したIPアドレスから計算したICVに変更する(25字)

(4)WEPの脆弱性により暗号データが解析され端末識別情報がわかる恐れがあるから(37字)

解説

無線LANのセキュリティ、特にWEPによる暗号化について深い知識がないと解答するのが難しい難問です。無線LANについての出題が増えることが考えられるので、まず、無線LANのセキュリティについて解説します。最も基本的な無線LANのセキュリティには、次の3つがあります。

・ESS-IDの隠蔽
ESS-ID(またはSSID)とは、無線LANのネットワークにつける論理的な名前です。無線LANアクセスポイントでESS-IDを設定します。正しいESS-IDがわからなければ無線LANネットワークに接続することができません。通常、無線LANアクセスポイントはビーコンと呼ぶ管理用のフレームでESS-IDを送信していますが、この送信をとめることでESS-IDを知らない無線LANクライアントが無線LANネットワークに接続できなくすることができます。
この機能の名前はアクセスポイントによって、いろいろな名称がありますが、「any接続拒否」「ステルス機能」「SSIDブロードキャストの無効化」「Closed Network」などで呼ばれています。

・MACアドレスフィルタリング
無線LANのネットワークカードにもMACアドレスがあります。そこで、無線LANアクセスポイントで、接続を許可するMACアドレスを登録することで、不正な無線LANクライアントが無線LANネットワークに接続できないようにします。

・WEP(Wired Equivalent Privacy)による暗号化
無線LANネットワークで送受信されるデータを暗号化することで、無線LANのセキュリティを向上させることができます。

ただし、個人が家庭で利用するならともかく、企業で利用するときには、この3つの基本的な無線LANセキュリティ対策だけでは十分ではないことがあります。その理由を以下に挙げます。
アクセスポイントでESS-IDを隠蔽すれば、ESS-IDはわかりにくくなります。しかし、ESS-IDを知っている正規の無線LANクライアントがやり取りするフレームをしばらくキャプチャできれば、ESS-IDを見つけ出すことは難しくありません。
また、MACアドレスのフィルタリングも正規の無線LANクライアントのフレームをキャプチャすることで、無線LANアクセスポイントに登録されているMACアドレスがわかります。WEPでの暗号化は伝送するデータ部分だけが対象です。無線LANフレームのヘッダに記述されるMACアドレスの情報は暗号化されないのです。
そして、WEPによる暗号化は、いくつもの脆弱性が報告されています。ある程度の時間をかければ、WEPによる暗号化を解析することが可能ということがわかっています。

家庭で利用するレベルであれば、クラッカーはわざわざコストと時間をかけて、不正アクセスをすることは考えにくいので、上記の3点の基本的な無線LANセキュリティ対策だけで実用上は問題ないでしょう。しかし、機密情報を扱う可能性のある企業での利用では、不安が残ります。そこで、さらに無線LANのセキュリティを高めるためにIEEE802.11iという規格があります。まだ、標準化されて間もないので、2005年の試験にIEEE802.11iについて出題されることはないと思いますが、実務で無線LANを扱う方は、IEEE802.11iに注目しておいてください。

さて、3つの基本的な無線LANのセキュリティ対策のうちWEPの脆弱性が、設問2で問われる中心的な内容になります。そこで、もう少し、詳しくWEPによる暗号化のメカニズムを解説します。

WEPでは無線LANでの通信の「暗号化」と「データの完全性」を確保することを目的としています。「データの完全性」とは、途中でデータが改ざんされていないことと考えてください。
まず、データからICV(Integrity Check Value)というハッシュ値を計算して、データの後ろに付加します。ハッシュ値の計算にはCRC32というアルゴリズムを利用します。ICVを含めたデータを暗号化することになります。

H15A2-2-3pic1.JPG

次に、暗号化するときのキーストリームについてです。WEPキーと24ビットのIV(Initial Vector)を組み合わせたものから、RC4というアルゴリズムにしたがってキーストリームを生成します。RC4とは、任意のビット長の擬似的な乱数を生成させ、それによって暗号化するアルゴリズムです。RC4では同じ情報からは同じキーストリームが生成されます。そのため、いつも同じWEPキーだと安全ではなくなってしまうので、WEPキーとIVを組み合わせたものからRC4でキーストリームを生成するようになっています。

H15A2-2-3pic2.JPG

生成したキーストリームとの排他的論理和(XOR)をとることによって暗号化を行います。

H15A2-2-3pic3.JPG

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の通信のセキュリティが保てるかのように思えますが、冒頭でも述べたようにいくつかの脆弱性が報告されています。特にこの設問2に関連する脆弱性は次のとおりです。

  • IV空間が小さい
  • ICVにCRC32を利用するため改ざんが比較的容易

「IV空間が小さい」
IVは24ビットの大きさで定義されています。無線LANのIEEE802.11規格では、IVについて明確な規定がないのですが、仮に1フレームごとにIVの値を1ずつ増やす実装の場合、224個(≒1600万個)のフレームを送信するとIVの値が一巡して、同じIVを利用することになります。これをIVのコリジョンといいます。1600万個のフレームは相当な数のように思えますが、IEEE802.11aやIEEE802.11gといった54Mbpsの高速な無線LANでは、最短で10分ほどでやり取りされるフレーム数です。IEEE802.11bでも数時間程度で1600万個ぐらいのフレームのやり取りを行います。つまり、10分~長くても数時間程度、無線LANのフレームをキャプチャすれば、IVのコリジョンが発生します。
また、前ページのWEPによる暗号化のフレームフォーマットを見ると、わかるようにIVは「暗号化されない状態」でフレームに付加されています。そして、WEPキーは固定です。そのため、しばらくの間、WEPによる暗号化がされているフレームをキャプチャすれば、IVのコリジョンが発生し、そのときのキーストリームは同じであることが簡単にわかってしまいます。
ただし、IVのコリジョンが発生して、同じキーストリームを使っていることがわかったからといって、すぐにWEPキーそのものや平文データがわかるわけではありません。ただし、同じキーストリームを使っている平文データ同士の排他的論理和がわかります。このことについて、排他的論理和の規則を踏まえながら、具体的に見てみます。平文データM1とM2があり、それをキーストリームKで排他的論理和をとったものをE1、E2とします。

E1=M1 XOR K
E2=M2 XOR K

このE1とE2の排他的論理和をとると、

E1 XOR E2
= ( M1 XOR K) XOR (M2 XOR K)
= (M1 XOR M2) XOR K XOR K
= (M1 XOR M2) XOR 0
= M1 XOR M2

※XORは積算のように順序を入れ替えられる
※同じものをXORすると0になる
※0とXORすると同じ値になる

と、上記のように、平文データ同士のXORがわかるようになります。
平文データ同士のXORがわかっても、すぐにはそれぞれの平文データの中身はわかりません。ですが、問題文にもあるように、TCP/IPを利用していると、ある程度、決まった文字列が含まれていることが多くなります。そのため、平文データ同士のXORから平文データそのものを推定できてしまう確率が高くなります。

「ICVにCRC32を利用するため改ざんが比較的容易」
データの完全性をチェックするために、データからCRC32というアルゴリズムでICVを計算しています。ICVは元の平文データよりも小さいサイズなので、ICVから元の平文データを再現することはできません。
しかし、IPSecで同じ目的で利用するMD5やSHA-1に比べると、何らかの変更があった場合の計算結果を比較的推測しやすくなっています。特に特定のビットを反転させる操作(ビットフリップ)を行った場合、その結果、計算されるCRC32の値を完全に予測できます。つまり、WEPのICVは、元のデータの任意のビットを反転させたとしても正しい値を再計算することができます。これを悪用して、WEPのフレームを改ざんすることを「ビットフリッピング攻撃」と呼びます。データの完全性を保証するためにICVを計算しているのですが、その計算アルゴリズムにCRC32を利用しているために、実質的にはデータが改ざんされたとしてもそれを検出できない場合があるわけです。

以上のWEPの基本的な仕組みと脆弱性について理解した上で、設問を考えていきます。

(1)
この穴埋めは、上記の解説を理解していれば簡単に解答できます。
【c】 何かの値を使用して、

「無線LANサービスのアクセスポイントを利用している」

わけですから、「ESS-ID」が当てはまります。

【d】 WEPキーとIVからRC4というアルゴリズムにしたがって、乱数(擬似乱数)を生成してキーストリームとして利用するので、「乱数」または「擬似乱数」が当てはまります。

【e】 IVが一巡するほどやり取りしている無線LANフレームが多くなると、同じキーストリームが利用されます(IVのコリジョン)。したがって、「多く」が当てはまります。

【f】 排他的論理和の特徴から「平文データ」が当てはまります。

(2)
キーストリームは、IVとWEPキーから生成されます。単にWEPによる暗号化をするときには、WEPキーは固定で変化しません。そして、IVは伝送するフレームフォーマットに暗号化されずに含まれています。したがって、IVのコリジョンが発生するまで、伝送フレームをキャプチャしていれば、同じキーストリームを利用していることがわかります。
30字以内にまとめるには、「WEPキーが固定である」ことと「IVは暗号化されない」ことを押さえればよいでしょう。

(3)
WEPによる暗号化は、無線LANクライアントと無線LANアクセスポイントの間だけです。そこで、少しだけ無線LANのフレームを改ざんして、「無線LANアクセスポイントが復号した平文データをいただいてしまいましょう」というのが、問題でいっている「パケット偽造攻撃」です。または、「リダイレクト攻撃」ともいいます。リダイレクト攻撃の方が、よく攻撃内容を表しているかなと思いますが。

WEPで暗号化しても、元の平文データのビットの順序を入れ替えているわけではないです。すると、暗号化されている部分のうち、どこからどこまでがIPヘッダで、どの部分がIPアドレスなのかということは簡単にわかります。
そこで、本来の宛先IPアドレスをクラッカーに送るように変更します。パケットの行く先を変えてしまう(リダイレクト)わけです。ただ、IPアドレスだけ変更してしまうとICVのチェックで引っかかってしまいます。ICVは前述のように比較的簡単に予想できるので、宛先IPアドレスとそれに応じたICVに変更します。(実際にはIPヘッダにもチェックサムフィールドがあるので、IPヘッダのチェックサムフィールドも変更が必要です)
宛先IPアドレスとICVを変更したフレームをアクセスポイントに送れば、アクセスポイントは復号して、詐称したIPアドレス宛にパケットを送信します。わざわざWEPのキーストリームを解読しなくても、クラッカーは平文データを手に入れることができます。さらに、平文データと暗号データがわかれば、キーストリームもわかります。

E1=M1 XOR K ならば E1 XOR M1 = K

となります。つまり、ある特定のIVに対するキーストリームを取得することができます。しばらく、このようにしてリダイレクト攻撃を行えば、すべてのIVについてのWEPのキーストリームを取得することも不可能ではありません。

H15A2-2-3pic4.JPG

さて、このようなパケット偽造(リダイレクト)攻撃について、設問ではIPアドレスだけでも成立しない理由について問うています。実際にはICVとIPヘッダのチェックサム2つの情報を変更しなければいけないはずですが、WEPにフォーカスしてICVについて25字以内でまとめればいいでしょう。

(4)
まず、ハイジャック攻撃とは何かということを問題文からきちんと読み取りましょう。

正当な利用者の識別が行われた後で、そのセションを不正な利用者が使用する攻撃

がハイジャック攻撃です。利用者の識別は、OTPによるユーザ認証だと考えられます。そして、設問の文章では

「営業員の識別が行われた後の端末識別情報に着目して」

とあります。端末識別情報が具体的に何かはよくわからないのですが、営業員がGSサーバにOTPにより認証した後、GSサーバでアクセス元のコンピュータを識別する情報を発行しているものと考えられます。この端末識別情報がわかれば、不正な利用者が正当な利用者のセッションを奪うハイジャック攻撃が成立することが考えられます。

WEPはここまでに解説したように、いくつかの脆弱性を持っているために、ある程度時間をかけて、正当な無線LANクライアントのやり取りするフレームを盗聴すると、平文データやWEPキーそのものも解析することが可能になります。WEPによる暗号化データが解析されると、当然、クライアントとGSサーバの間の端末識別情報も解読されてしまいます。解読した端末識別情報を使って、正当な利用者であるかのようになりすますことができる可能性があるわけです。
この点を40字以内でまとめると解答になるでしょう。


テクニカルエンジニア(ネットワーク)の試験対策にはGene作成の完全解説集で!平成17-19年度版好評発売中!!ご購入はこちらから