IT-Keys : 無線LANセキュリティ演習IT-Keys : Wireless LAN Security seminer

本学(当研究室)では,京都大学・大阪大学・北陸先端大と共同で,IT-Keysという実践的セキュリティエンジニア育成プロジェクトを行っています。

当研究室からは,M1が4名参加しており,その授業の一環で,大阪大学吹田キャンパスにて,無線LANセキュリティ演習が6/30から7/1にかけて行われました。

この演習では,各チームで個々に与えられた課題に取り組み,最後はOBや教員の方の前で成果発表を行います。
各チームはそれぞれ,各々の大学から1~2名が参加し,皆で協力し,テーマに取り組みます。

今回は,

  • 無線LANアクセスポイントへの侵入
  • 無線LANアクセスポイントへのDoS攻撃

がテーマで,これらのテーマを各チームで分担して,調査・確認します。

 

僕の班では,無線LANアクセスポイントへの侵入を担当しました。

実際に,無線LANセキュリティとして,「これをしておけば大丈夫!」と言われている(いた)

  • SSIDステルス(アクセスポイント名を非表示にする)
  • MACアドレスフィルタリング(指定したPCのみ接続させる)
  • WEPを用いた暗号化(通信内容の暗号化)

という設定をアクセスポイントに対して行い,これらが突破できるかどうかを試しました。

結論を言えば,セキュリティを回避し,悪意を持った第三者として侵入できることがわかりました。
では,それぞれの欠点をご紹介します!
(今回はセキュリティの観点から,詳しいクラッキング方法までは紹介いたしません。あしからずご了承ください。)

    1. SSIDステルス

通常,無線LANを繋ぐ際には以下のように,接続先のリストがPCから確認することができ,リストから接続したいアクセスポイントを指定します。
このアクセスポイントを区別するための名前のことをSSIDと言います。

Wireless LAN Access Point list @ Mac OS X

しかし,これでは,第三者からのアクセスも考えられます。
そこで,SSIDステルスはSSIDを非通知にし,”知っているユーザだけが直接接続できればいい” という形でセキュリティの向上をねらいます。

ただ,非通知にするとはいえ,これは(OSからの)見かけ上の話です。
実際の無線の電波としては,アクセスポイントとの通信のために情報が流れています。
そもそも,SSIDは電波に載って飛んでいるので隠し通すことは不可能なのです。

なお,MicrosoftのTechNetでは,むしろ,SSIDはブロードキャストすべきとあります。
Windowsの実装では,SSIDステルスを行っているかどうかにかかわらず,無線LANはプローブ要求信号として自動接続設定のSSIDを常時放送しているようです。

この飛んでいる電波ですが,inSSIDerなどのツールを用いて確認することが容易に行えます。
一度SSIDを確認してしまえば,指定接続することが可能となってしまいます。
そのため,SSIDステルスはセキュリティの対策としては全く意味が無いという結論になってしまいます。

    1. MACアドレスフィルタリング

まず,MACアドレスとは,ネットワークへ接続する際に個々の端末(ネットワークカード)を識別するために割り振られている一意のアドレスです。
通常のLANであれば,任意の機器を接続することができますが,指定した機器のみを接続させたい場合には,MACアドレスフィルタリングを用います。
そうすると,指定したMACアドレスを持つ機器以外からの通信は受け付けないようになります。

しかしながら,無線は有線と違い,通信内容が全て電波に載って飛んでいるので,MACアドレスなどの情報はすべて確認することができます(通信の暗号化の有無にかかわらず)。
正規のMACアドレスとアクセスポイントの組み合わせが分かると,MACアドレスを偽装し,ネットワークへ侵入することができます。

先ほど,MACアドレスは機器毎に割り当てられた一意なアドレスと言いましたが,実はアドレスをOS上で書き換えることができます。
詳しい説明は行いませんが,Windowsであればレジストリを書き換えることで,Unix系の端末であればターミナルからifconfigコマンドを用いることでMACアドレスが変更できます。
そのほかにも,ユーザが任意にMACアドレスを書き換えることが可能なツールがあります。

そうすると,正規ユーザーが通信を終了した後に,MACアドレスを偽装し,通信を開始すれば簡単にネットワークへ接続できるようになります。
そのため,MACアドレスフィルタリングも無線LANセキュリティの対策としては全く意味が無いという結論になってしまいます。

    1. WEPを用いた暗号化

無線での通信は傍受が極めて容易なので,今日では,データを暗号化して傍受されても内容が分からないようにすることが一般的です。
その暗号化規格として1997年に有線通信と同様の安全性を持たせようとして登場したのがWEPです。

しかし,無線LANで数Mbpsという1997年当時としては,高速な通信が行えることを仮定していました。
そのため,安全性のためとは言え,暗号化を用いた結果,通信が遅くなりすぎては実用に耐えないため,高速に処理ができる暗号方式が望まれました。
その結果,送信したいデータをバイト単位などで逐次処理できる暗号化方式が採用されました。

WEP Encryption

ただ,同じ秘密鍵で暗号化し続けると,同一のキーストリームしか生成されず,暗号結果はキーストリームとデータの排他的論理和で求まるため,暗号結果からキーストリームが類推されかねません。
そのために初期化ベクトル (IV) を用いて,キーストリームを変えることで暗号化することで,秘密鍵を変えなくても異なる暗号結果が求まるようにしました。
ただし,WEPの場合,このIVの値が24ビットと少なく,かつ,IV自身は暗号化されないまま,暗号化されたパケットに加えて送信されています。
その結果,今のコンピュータにとっては簡単に秘密鍵を見破ることができてしまうという結果となってしまいました。

以下が,実際にセキュリティ演習で解析した結果です。

このように,17秒で “KEY FOUND!” という結果になってしまいました。

これより,WEPによる暗号化はセキュリティの対策としてはほぼ意味が無いという結論になってしまいます。

このような欠点から上記の3つは,無線LANのセキュリティ対策としては,全くオススメできません。

では何をすれば良いかと言うと,脆弱性のあるWEPの対策として策定されたWPAを用いて暗号化するということです。
予測不能な鍵(ランダム英数字かつ長い鍵長)を用いたWPAによる暗号化さえ正しく設定しておけば,SSIDステルスやMACアドレスフィルタリングは使用しなくとも問題は無いということになります。
なお,どうしてもWEPが使いたいという場合には,マルチSSID対応のアクセスポイントを用いてWEPとWPAを使い分けることをオススメします。

また,無線LANルータの高機能化に伴い,家庭内では特に意識してセキュリティ対策を行っていない事もあるかと思います。
今日では生活のライフラインとなっているインターネット。
とりわけ,ノートPCやゲーム機,スマートフォンを無線で繋いでいる方は,今一度,セキュリティ設定を見直してみてはいかがでしょうか。

Reference
SSIDステルス:第5回:SSIDとステルス機能(ココをおさえる! ブロードバンド用語のツボ)
Windowsにおける無線の実装(英語):Non-broadcast Wireless Networks with Microsoft Windows
WEPを用いた暗号化:第3回 WEPの解読方法を知る! | Think IT

by Daisuke Murata (@daichang1206)