無線LANに対する攻撃の検証及び対策
補足
・オープンなフリーWi-Fiについて
パスワードがかかっていないWi-Fiはすなわち暗号化されていないWi-Fiなので、機器があれば誰でも通信内容を見ることができるため、個人情報を盗まれる可能性が有り、危険です。
この盗聴に関しては、一般的にセキュリティーソフトと言われるものをパソコンやスマートフォンにインストールしていても防ぐことは出来ません。
ただし、VPNと言われる類のセキュリティーソフトの利用中や、https(TLS)などの暗号化されている通信は、どこのサーバと通信しているかぐらいしかわからず、通信内容をうかがい知ることが出来ません。
なので、もしフリーWiFiを利用するならば、個人情報を送信する場合安全な状態即ち暗号化されている状態かを確認し、そうでなければWebサイトの閲覧程度に留めておきましょう。
ただ、Webサイトを閲覧する際、以前そのページでログインなどの操作を行った場合、cookieと呼ばれる認証情報(IDやパスワード等)が自動的に送信される場合があります。
cookieを消去などの操作を行っていない限り、フリーWi-Fiで一度でもログインした暗号化されていないページの閲覧は控えましょう。
・パスワードと暗号化について
パスワードはルーターの設定において事前共有キーと呼ばれる場合があります。
その名の通りパスワードは暗号化するための鍵(Key)であり、パスワードを知られることは暗号化を解読できることを意味します。
ただ、パスワードを知ればすぐに全ての通信内容を読み取れるようになる訳ではなく、ほとんどの場合端末(スマホやPC)がルーターに接続する瞬間の通信を拾うことができなければ、解読はできません。
しかし、使用するネットワーク機器にもよりますが、飛び交う無線通信をすべて拾うというのはなかなか難しく、いつ行われるか分からない最初の通信を拾うとなればなおさら難しいです。
加えて、もしその通信を拾われても、解読できるようになるのはその通信を行った端末とルーター間の通信のみで、ほかの利用者には何の影響もありません。
なので、パスワードのかかっているけれどすぐ近くにパスワードが書かれているタイプのフリーWi-Fiで、たくさんの利用者がいる場合、自分一人が狙われる確率はかなり低いです。
しかし、確率が低いといっても0ではありませんし、確率は利用者の数が減れば高くなります。
さらに、「端末をルーターから切断させる」という攻撃が存在し、これを利用すれば、意図的に接続する瞬間の通信を発生させることができます。
そのため、たとえパスワードがかかっているWi-Fiでも誰でもパスワードが知れるタイプなら十分に気を付ける必要があります。
極力フリーWi-FiでIDやパスワードなどの個人情報の入力は避けるようにしましょう。
なお、フリーWi-Fiは基本強力なネットワーク機器によって発信されているので、突然回線が落ちる、切断されるということは少ないです。
フリーWi-Fi利用中に突然切断された場合、利用の中止を検討しましょう。
・ローミングの積極性について
同じ名前、同じパスワードを設定したWi-Fiを近くに設置すると、端末からは一つのWi-Fiとして見えるようになります。
この場合そのWi-Fiを利用したときにどちらに接続するかというと、シグナルがより強いほうに接続します。
これを「ローミングの積極性」といい、スマホ(iPhone、android)はPC(Windows)に比べ積極的にこのローミングの積極性に基づいた再接続を行います。
例えば、情報を盗むためのWi-Fiを既にあるフリーWi-Fi同じ名前、同じパスワードを設定した場合、位置関係やネットワーク機器の性能によっては情報を盗むためのWi-Fiの方がシグナルが強くなる場所が発生します。
この場合、情報を盗むためのWi-Fiの方がシグナルが強くなる場所にあるスマホは、自動的に情報を盗むためのWi-Fiに再接続し、利用者は気づかないうちに通信内容を盗み見られるということが発生します。
別に見られてもいい通信(wiki見てるだけとか)や、暗号化された通信(httpsなど)なら問題ありませんが、暗号化されていない通信で、個人情報を送信した場合ばっちり盗まれます。
また、この状態ではURLを正しく入力しても全く別のサイトに誘導することも可能になり、それを利用し正規のサイトとそっくりな偽サイトに誘導して個人情報を入力させようとさせてくることもあります。
これに気付いて防ぐことはかなり難しいため、普段からフリーWi-FiでIDやパスワードなどの個人情報の入力は避けるようにしましょう。
ちなみに正規のフリーWi-Fiのルーターの近くはそっちのシグナルが強いはずなので、極力近くで利用するのが良いのかもしれません。でも邪魔にならないように…
・ルーターの初期設定について
家庭用ルーターを購入し、セットアップしてインターネットに接続するだけなら現在のルーターなら少ない操作で簡単にセットアップが完了するものがほとんどであり、設定をそこまで意識する必要はありません。
しかし、中には初期設定のパスワードが極めて脆弱であったり、WPS機能が有効になっているルーターもあります。
昔のルーターになるほどその傾向が強く、特に2010年以前のルーターは初期設定で暗号化方式がWEPになっている可能性が今よりも高いです。
原因として、WEPの脆弱性が広く知られていなかったというのもありますが、Nintendo社のニンテンドーDSは無線通信をする際の暗号化方式がWEPにしか対応しておらず(参考)、それを意識したルーターが多く出回っていたということが大きいと考えられます。
セキュリティーとは難しいもので、すべての要素を考慮しなくてはなりません。
どこか1つでも守りの弱い要素があった場合、そこから侵入されてほかの守りは意味を成さなくなります。
パスワード、暗号化方式、WPS機能などの要素をすべて考慮しなければ情報は守れません。
なので、ルーターでwifiを利用する場合は、これらの要素が脆弱でないか確認しながらセットアップをしましょう。
また、暗号化方式が危殆化したり、搭載されている機能の脆弱性が発見される場合などに備えて、ルーター本体の更新、即ちファームウェアの更新は定期的に行っておきましょう。
・Wi-Fiのパスワードの解析時間について
パスワードは桁数が少なかったり、数字だけだったり、単語だったりすると簡単に解読される場合があります。
実際それにどのくらいかかるのかというと、結構かかります。
WPAshakehandに対し数字だけの8桁の組み合わせをすべて試すとなると、今回検証に用いたPCでは解析にかかる時間は約21時間17分9秒かかるという計算になりました。
これにさらにアルファベット全組み合わせとなると膨大な時間がかかることが想像できます。
しかし、別にこの時間ずっと解読対象のWi-Fiの近くにいる必要があるわけではありません。
というのも、Wi-Fiの認証方式がWPAというものなら、端末がルーターに接続する瞬間の通信を拾うことができれば、その拾ったデータに対して解読を行うことができます。
つまり、最初の通信を拾いさえすれば、その時点でWi-Fiの近くにいる必要はなくなり、家でじっくりと解読することができます。
そのため、21時間程度なら、解読は容易と言えるレベルであることが分かります。
1日ごとにWi-Fiのパスワードを変更する人はそういません。
なので、データを持ち帰った次の日には、Wi-Fiのただ乗りをされてしまったり、通信内容を見られたりということが起こりえます。
単語に関しては、今回検証に用いたPCでは秒間1,450個の単語を検証することができます。
そのため、21時間というのは長い時間に感じますが、家で放置して置くだけで解読ができることを考えると、21時間程度なら解読は容易と言えるレベルであることが分かります。
さらには、表札を見て苗字を特定したうえで解読を行えば、さらに早く「Sasaki1225」にたどり着くと考えられます。
今回検証に用いたPCはノートPCでありデスクトップPCより性能が抑えめです。
なのでデスクトップPCで、さらに処理能力が高いものを使えば恐ろしい速度で解読が進むと考えられます。(台数を増やせばさらに倍々)
パスワードは大文字小文字数字出来れば記号も使い、さらに最低8文字以上で単語としての意味をなさないものをお勧めします。
・ネットワーク機器の正式名称
今回理解しやすいようWi-Fiを飛ばすネットワーク機器のことを「ルーター」と呼称していますが、正しくは「アクセスポイント」と呼ばれます(略してAP)。
本来ルーターとは有線の環境で、ある方向から来た通信をどこに送るか(routing:ルーティング)を制御するネットワーク機器で、よく言われる市販のルーターとはルータの機能+APの機能を持ったモバイルWi-Fiルーター、あるいはブロードバンドルーターといいます。
また、「Wi-Fi」に関しても、Wi-Fiとは無線LANの一種であり、正確には「フリーWi-Fi」は「公衆無線LAN」と呼称されます。
アクセスポイントという言葉に関しては、「アクセスできるポイントのこと、つまりWi-Fiスポットのこと?」となりがちですが、「アクセスポイント」という種類のネットワーク機器です。
ついでに、人のパソコンやスマホを乗っ取ったり、アクセスして情報を盗んだりすることを世間一般的には「ハッキング」と呼ばれ、それを行う人物は「ハッカー」と呼びますが、厳密にはそれぞれ「クラッキング」と「クラッカー」と呼称されます。
ハッキングの語源の「hack」は元々必要に応じてプログラムを改変したりすることを指し、取り分け悪意を持って改変したりするのは「crack(ひびを入れる、砕く)」という言葉があてがわれます。
言葉の認識は理解されやすいよう常に形を変えていきますが、あくまでも本来はこうなのかという認識を持っていただければ個人的にうれしいです。