Enterprise Watch
バックナンバー

初心者管理者のための無線LANセキュリティ講座 【第2回】

暗号化による無線LANの盗聴対策



 日本の風土や文化に起因した、ネットワーク構築についての制度や認識上の問題がいくつかある。1つは、主に責任といったつまらないレベルのセクショナリズムや、対処療法を重んじて予防をおろそかにするところである。そしていくら問題提起されても、被害者にでもならない限りほとんど改善されていない。10年位前に読んだ「COMPUTER REPORT」という雑誌に書かれていた内容であるが、日本は、「江戸時代からでも、火消しはいなせな仕事で、火の用心は年寄りと子供の仕事」とあった。それがこの期に及んで今でも続いているのである。江戸時代当時、火付けは死罪であった。しかし、現在ネットワークに侵入しても死刑になることはなく、無罪と大差のない刑しかない。しかも侵入された理由が、ネットワーク運用者の不備であった場合、被害者面することにさえも無理がある。

 制度上の問題から、セキュリティ関係の予算が計上しにくいこともわからなくもないが、だからといって、すでに用意されている機能さえも使用しない言い訳にはならない。人件費はともかく、設備に関していえば、すでに用意されているものを使用するだけで、かなりましになる。その最たるものが無線部分の暗号化である。今回は、無線部分の暗号化による盗聴対策と、それに伴う不正侵入からの防衛策について紹介を行う。


SSIDを隠していてもキャプチャは可能

図1:無線LANでやりとりされているフレームの内容
 前回紹介したClosed SystemとAny Rejectionを設定したアクセスポイントと、正規のクライアントの間で、どのようなフレームが飛び交っているかを見てみることにする。図1がそのフレームの内容である。このように無線LANの無線部分をキャプチャすることが可能なツールを用いれば、そのフレームに格納されているSSIDを盗み見て、流用する事により不正侵入を試みることが可能となる。仮にSSIDを隠したアクセスポイントが付近に複数台あったとしても、MACアドレスを確認することによって特定できるので特に支障はない。

 繰り返すが、Closed SystemとAny Rejectionの設定を含め、SSID関連の設定はセキュリティが主目的ではないため、たとえばAirMagnetのようなツールでは、図2Aのように最初は見えないようになっていても、何がしかのクライアントが接続されて、無線による通信でSSIDが一度でもやりとりされれば、図2Bのように表示されてしまう。ただ、解析や保守を行う立場に便利なよう、「Closed SystemとAny Rejectionが設定されており、通信によって見えるようになったSSID」に関しては、通常の黒文字ではなく、図2Bのように赤文字で表示されるので容易に識別が可能となっている。

 話を戻すが、このようにSSIDを隠すなどの簡易な手法で不正侵入から防衛できるのは、悪意をもち不正なアクセスを試みようとする者が、ツールを持っていない、もしくは安物のアプリケーションしかもっていない程度の場合だということがわかる。ツールを持ち、悪意も持った相手に対してはSSIDを隠そうが隠すまいが大差はない。


図2A:Closed SystemとAny Rejectionが設定されているため、この段階ではSSIDはわからない 図2B:しかし、一度でもクライアントと通信が行われれば、SSIDは見えてしまう。この場合、SSIDは赤文字で表示される

暗号化に必要な「手法」と「鍵」

 このような無防備な状況を改善するため、無線LANアクセスにおいて、無線部分に適応されるセキュリティとしてよく用いられる手法が暗号化である。暗号化は、特定のルールに従って原文を変換したうえで送信し、受信側が同じルールに基づいて再変換して原文に戻すものだ。このために送受信を行うお互いが知っていなければならないルールとして「暗号化の手法」と「鍵」がある。

 暗号化における古典は、ジュリアス・シーザーによる「シーザー暗号」であろう。シーザー暗号では原文に用いるアルファベットを「3文字(鍵)」「シフトする(手法)」のである。もし解読を試みる者が「鍵」を知っても、3文字ごとに余計な文字を入れるのか、シフトするのか、それも前にシフトか後ろにシフトかといった手法がわからなければ解読はできない。逆に手法が「後方にシフト」であると特定できても、鍵がわからなければシフトが1文字なのか2文字なのかわからず、1つずつ順番に総当たりで確認して行かなければならない。そして試すにしても、1文字シフトから始まって、3文字、10文字と試して行くが、そしてこの場合、どこまで試せばよいかという問題が生じる。

 ここで「鍵」が1けたなら試す回数は最大で9回(鍵が2なら2回目に当たりが出ることになるが)である。しかし、2けたなら最大99回試す必要がある。このようにけたが増えるほど試す回数が増加するので、「鍵の長さがセキュリティ強度に影響する」というのはおおむねこのことを意味している(いかに鍵長を大きくしようと、当たる時にはあっさり当たるが)。

 なお現在では、運用面から考えれば暗号化の手法を共通としておき、「鍵」を利用者もしくは運用者が自由に設定できるようにしておくことが最適と考えられ、多く用いられている。


無線LANでポピュラーな暗号化手法「WEP」

 前で触れた暗号化の「手法」にはさまざまあるが、無線LANアクセスにおける無線接続部分の暗号化(と認証)では、一般的に「WEP」を利用する。WEPとはWire Equivalent Privacyの頭文字を取ったものだ。

 無線LANアクセスを利用する者は、クライアントに対して暗号化の「鍵」としてWEPキーを設定して接続を行う。設定するWEPキーは、自宅などにおける個人利用者であればアクセスポイントのWEPキー設定欄に自身で登録した内容と同じものを、そして企業や公衆アクセスポイントのような場合であれば保守者もしくはサービスプロバイダから通知される内容を設定することになる。

 こうすれば不正アクセスをしようとしてSSIDを見つけ出しても、WEPキーがわからない限り、不正アクセスも盗聴もできなくなることとなる。図3Aと図3Bはともに、無線LANアクセスポイントを介して、ネットワーク上に配置されたサーバーにPingを行っているフレームなのであるが、WEPを設定していない図3Aでは内容が読み取れるのに対して、WEPを設定し暗号化を行った図3Bでは読み取ることができなくなっている。


図3A:無線LANパケットのフレーム解析画面。各項目を読み取られている 図3B:WEP設定後は、このように見えなくなる

暗号化=必ず安全、ではない

 ここで1つ注意しなければならないことがある。それは「WEPを設定して無線部の暗号化を行えばセキュリティは万全」と思ってはいけないということである。万全ではない理由は大きく2つあって、1つは、「適切な内容」で行わなければ無意味だということだ。

 先の手法と鍵の例で考えると、鍵を「0」にしてしまえば、原文の0個シフト、すなわちそれは原文のままであるということになってしまう。鍵を設定する際にすべてを0や1になるようにしてしまう例は極端であり、おおむねできないようになっているのではあるが、これに近いことをしてしまえば、危険度は増大する。つまり、暗号化の鍵の中に変換を行わない部分が多数内在するような設定を行ってしまえば、通信量が増えるほど、より多くの、解読に利用できるヒントを盗聴者に与えることになる。その結果解読が行われ、そこから最悪SSIDが読み取られるようなことになってしまえば、不正侵入も許すことにもなる。

 よって、無線LANアクセスを行う際には、WEPの設定による暗号化を行うことくらいは当然としても、適切な内容で設定しなければならないということも重要である。ネットワーク上における通信の絶対量が少なかった一昔前であればまだしも、昨今のように通信量が膨大となると、同一の鍵を使いつづけることはリスクが大きい。暗号化によるセキュリティ強度は、鍵長が大きくなるほど強くなり、通信量、つまり解読のために用いることができる情報量が増大するほど弱くなる。

 WEPの場合は鍵のすべてをユーザーで設定できるわけではないので、間抜けな値を入力することが、即無防備につながるわけではないが、注意はしておく必要がある。

 もうひとつの理由は、WEPが簡単に解読できるということである。インターネットで検索すれば、容易にWEP解読ツールが入手できる。したがって、WEPを設定しているからと安心していると、とんでもないことになりかねない。

 より安全にしたければ、つまりセキュリティ強度を上げたければ、鍵長の長いものを利用するように心がけるようにするべきだ。いかに解読ツールがあったとしても、暗号の解読にはそれなりの時間を要し、鍵長が長くなるほどこの時間は長く必要になるためである。そして、それと同時に、頻繁に、できれば毎回WEPキーを変えればよいのだが、ネットワークに接続するごとに設定内容を変更させるようなことを利用者に強いるのは非常識である。

 しかし、プロトコルによって決められたシーケンスを用いて自動で行う、つまり利用者の手を煩わせない方法であれば問題はなく、そのために、TKIP(Temporal Key Integrity Protocol)のようなプロトコルも用意されているし、RADIUS Serverを用いてネットワーク上の機器で行う方法もある。

 これらのうち、筆者のお勧めの方法は、ネットワーク上にRADIUS Serverを用意して、IEEE 802.1xをサポートすることである。より強固なセキュリティの通信を実現できると同時に、ほかにも色々と凝った利用方法を行うことが可能となる。IEEE 802.1xに関しては第4回で紹介するが、TKIPについては、今回は省略することとする。


パケット解読に関する補足

 今回も前回同様にAirMagnetを用いて無線部の確認をしている。しかし、AirMagnetはもともとSE/SI向けのツールであるため、暗号解読のような機能はない。このため、障害解析を行う際には暗号化を解除しなければシーケンスも追えないので運用者はこの辺りにも注意が必要となる。暗号化を解除して無線部でやり取りされるフレームの内容を確認するためには、図3AのようにAirMagnetのデコードを選択してフレーム情報を表示するか、Airo Peekのような、やはりデコード機能を持ったキャプチャアプリケーションを用いることになる。

 しかし、現実問題として、WEPの解読ツールがインターネット上から容易に入手できる以上、WEPによる暗号化以外の対策を施しておかなければならない。そこで行われるのが、ネットワークの利用について正当性を確認する「認証」というものである。この認証もいくつかの方法があるが、もっともポピュラーな方法は、先に述べたRADIUS Serverを用いるものである。次回は、これについて紹介を行う。



URL
  株式会社東陽テクニカ
  http://www.toyo.co.jp/
  製品情報(AirMagnet)
  http://www.toyo.co.jp/wlan/

関連記事
  ・ 初心者管理者のための無線LANセキュリティ講座 【第1回】(2005/01/07)


( 杉本 丸男 )
2005/01/14 00:00

Enterprise Watch ホームページ
Copyright (c) 2005 Impress Corporation, an Impress Group company. All rights reserved.