昨日の日記を書いて重大なことに気づいたので、今日は仕事を休んでこれを書いている。昨日「最終回」としたのはキャンセルだ。まだまだ続く。
昨日の日記の図3で、probe request信号の例としてSSIDが「GoogleWiFi」になっているものを使った。これは昨日キャプチャしたものだが、周囲に「GoogleWiFi」なるアクセスポイントはないのに、これはどうしたことか。
「GoogleWiFi」で思い出すのは、米国カリフォルニア州のMountain View市でサービスされている、Googleの無料の公衆無線LANサービスである。
先月、米国出張した際に、Mountain View駅の前のカフェで、このサービスを利用していた(図1)。
このときの「自動接続」の設定が、私のWindows XPのノートPCに残ったままだったようだ。図2のように、出かけた際にあちこちで利用した公衆無線LANのSSIDを「自動接続」の設定にしたままだった。
Windows XPは、これらのSSIDを全部それぞれ常時、probe requestとして周囲に放送しているようだ。
無線LAN管理用のソフトウェアで、自分のノートPCが発するWi-Fi信号を傍受して観察してみると、各チャンネルに対して、自動接続設定の各SSIDを繰り返し probe requestとして放送しているのを確認できた(昨日の日記の図3)。
普段使わない自動接続の設定は、削除しておいた方がいい。職場や集会や家庭でWi-Fi信号を傍受されると、自分が最近どこへ行ったかがバレてしまうというプライバシー問題があると言える。
そういえばそんな話をどこかで見たような記憶が……と探してみたところ、SANS Instituteがそういう警告を出していた。日本語版のニュースレターも見つかった。
Windows XPでは、802.11ワイヤレスLAN (WiFi)をアクティベートするたびに、優先ネットワークの全てについて接続可能かどうか試される。この「呼びかけ」によりあなたのワイヤレス接続履歴などのワイヤレスクライアントの情報が漏洩してしまう。(詳細はPAGE 3)
SANSは、プライバシー問題だけでなく、セキュリティ上の危険についても指摘していた。つまり、Windows XPマシンを無線LANを有効にして持ち歩いていると、自動接続設定にしているSSIDを常時周囲に知らせてしまうので、攻撃者は、同じSSIDの偽のアクセスポイントを作って誘い込むことがやりやすくなるという話だ。
記憶にあったのはそちらの方の話で、しかしどのみち偽アクセスポイントは避けられないしなあと思っていたのだが、こうして自分で実験してみると、プライバシー問題の方がリアルな問題として気づかされた。
さらに調べてみたところ、その後この問題に対処する更新プログラムがMicrosoftからリリースされていたのを知った。
ブロードキャスト非対応のネットワークに関する変更
(略)優先するワイヤレスネットワークに一致するネットワークがない場合、ワイヤレスの自動構成機能では、プローブ要求を送信して、優先するネットワークがブロードキャスト非対応のネットワークであるかどうかを確認します。このようにして、Windows XP ワイヤレス クライアントでは優先するワイヤレスネットワークの一覧がアドバタイズされます。第三者がこのプローブ要求を監視して、優先するワイヤレスネットワークと一致する名前を使用してワイヤレスネットワークを構成する可能性があります。ワイヤレスネットワークがセキュリティ保護されていない場合、そのネットワークでは権限のないユーザーがコンピュータに接続できる可能性があります。
ワイヤレスクライアント更新プログラムをインストールすると、ワイヤレスネットワークを、ブロードキャストネットワークとして構成することも、ブロードキャスト非対応のネットワークとして構成することもできます。また、ワイヤレスの自動構成機能では、ブロードキャスト非対応のネットワークについてのみプローブ要求が送信されます。
Windows XP でワイヤレスネットワークを構成する際、ワイヤレスネットワークのプロパティダイアログボックスの [アソシエーション] タブを使用して、ワイヤレスネットワークをブロードキャスト非対応のネットワークとして指定することができます。ワイヤレスネットワークをブロードキャスト非対応のネットワークとして定義するには、[ネットワーク名 (SSID)] の下の [Connect even if the network is not broadcasting] をクリックします。(略)
この更新プログラムは、セキュリティの更新としては配布されていないようなので、Windows Updateを自動で運用しているだけではインストールされていないようだ。
早速これをインストールしてみた。
ワイヤレスネットワークの設定にある「優先ネットワーク」のところ(図3左)で、「自動」となっているアクセスポイントを選び、「プロパティ」ボタンを押したときに、図3右の画面が出るようになった。
新たに、「このネットワークがブロードキャストしていない場合でも接続する」のチェックボックスが出るようになっている。
これをオフに設定しておけばよい(チェックを外す)。デフォルトではオンなので注意したい。
これをオフに設定変更して、再び、無線LAN管理用ソフトウェアで傍受して確認してみたところ、たしかに、そのネットワークのSSIDが記載されたprobe requestは出なくなったようだ。
他の自動接続設定のネットワークも全部そこをオフに設定したところ、SSIDが空のprobe requestだけが観測されるようになった。ただし、そのネットワークに接続中は、そのSSIDに対するprobe requestが出てしまうようだ。接続を切断すると出なくなった。どこにも接続していないときは、SSIDが空のprobe requestだけが観測される(図4)。
なお、「このネットワークがブロードキャストしていない場合でも接続する」をオフに設定した場合、そのアクセスポイントが、いわゆる「SSIDステルス」の設定、かつ、「ANYプローブ応答禁止」の設定になっていると、接続できなくなると思われるので注意が必要そうだ。設定項目の名称にある「ブロードキャストしていない」ネットワークとはそういう意味なのだろう*1。
アクセスポイント側でSSIDをいくら隠そうとしてもどのみち正規接続者の接続時には判明してしまうので、「ANYプローブ応答禁止」設定はやめたほうがよいのではないか。公開してもかまわないような名前のSSIDを設定しておくのがよい。
なお、Mac OSやその他の無線LAN対応機器がどうなっているかはまだ確認していない。
ここで極めて重大なことに気づいた。
もし、自宅の無線LANアクセスポイントのSSIDが、無線側MACアドレスと同一、ないしその連番、ないし、それを一部に含むものである場合、家でそれに接続するのに使用したことのあるノートPCを、家の外で無線LANの電源を入れていると、その近くに居る人は、probe requestとして放送されるSSIDを傍受することができるので、傍受したSSIDを元に、その人の自宅無線LANアクセスポイントのMACアドレスを推定し、それを元にPlaceEngineを使って自宅の場所を突き止めることができてしまう。
ギャーこれはヤバい。
もう一度簡潔に言う。
たとえば、自宅にソニーのロケーションフリー(以下「ロケフリ」)を設置しているとしよう。ロケフリを設置するとデフォルトで無線LANアクセスポイントになる。
WindowsのノートPCを、そのアクセスポイントに無線LANで接続したことが一度でもあると、図3のようにロケフリのSSIDが「自動」設定で登録されていることがある。
その場合、そのノートPCは、実は、「LocationFree.0013A9XXXXXX」というSSIDを常時(自宅の外で使っているときでも)周囲に放送している。そして、それは誰でも傍受できる(図5)。
傍受されたSSIDの「0013A9XXXXXX」の部分は、そのロケフリの無線側MACアドレスなので、10月21日の日記「デイリーポータルZ 記者の家を探しに行く」で書いたように、最近広まりつつある「PlaceEngine」というサービスを使うことで、自宅の位置を調べられてしまう。
もっと簡単に言うと、(自宅の無線LANアクセスポイントの設定によっては)ノートPCを持ち歩いていると、近くに居る人に自宅の場所を知られてしまう場合があるということ。
対策は次の通り。
ソニーのロケーションフリーを使用している人は全員モロに該当する。ロケフリのベースステーションを無線LANアクセスポイントとして設置している(デフォルト設定)場合、SSIDの値は「LocationFree.0013A9XXXXXX」の形式で無線側MACアドレスが含まれる(デフォルト設定)。
アップルコンピュータ製の無線LANアクセスポイントも該当する。図5のように「Apple Network XXXXXX」というSSIDがデフォルト設定の製品が出回っているようだ。16進数12桁のMACアドレスのうち下位の6桁しかSSIDに使われていないが、図6のように、上位6桁はベンダーIDなので数種類に限定されているため、何分の一かの確率で自宅特定に使われてしまう。
その他、少なくとも、バッファローの製品、コレガの製品などでは、10月21日の日記「デイリーポータルZ 記者の家を探しに行く」に書いたように、無線側MACアドレスそのものをSSIDにしているものや、1番違いのものを使用しているアクセスポイントもかなり出回っているようなので、該当するかどうかよくわからなくても、とにかく、16進数12桁を含むようなSSID(図7の矢印)は、全く関係のない文字列に変更した方がよい。
「YBBUser」とか「BBUser」とか「default」といった名前は明らかに該当しないので、むしろこれらを設定する方が安全だ*2(WPAで暗号化の設定をしているならば)。
アクセスポイントのSSIDを変更したら、Windows側で、変更前のSSIDで登録されている自動接続の設定を削除しておく(この作業が重要)。つまり、図8の左の「優先ネットワーク」と書かれたリストの中から、変更前のSSIDの項目を選んで「削除」ボタンを押す。
以上を実施した場合は、以下の対策(2)は必要ではない。上記に該当するSSIDの場合で、もしそのSSIDを変更することができないならば、以下の対策(2)が必要となる。
この設定項目は、標準状態のWindows XP SP 2には存在しないので、マイクロソフトの「Windows XP Service Pack 2 用のワイヤレスクライアント更新プログラムについて」に置かれている更新モジュールをインストールしてから図8の設定を行う。
ついでに、不要な「(自動)」設定の項目は「削除」ボタンで削除してしまったほうがよい。
また、今後、新たなWindowsのノートPCを購入したときにも、そのネットワークに接続すると、デフォルトで「自動」となり、「このネットワークがブロードキャストしていない場合でも接続する」がオンとなるので、オフに設定しなおす。
それが面倒、あるいは、きちんと設定できるか不安な場合は、前述の対策(1)をとった方がよい。
「こんなよくわからない手間をかけさせられるのは承服しがたい」という場合には、そもそもPlaceEngine(と同様のサービス)が存在しなければこんなことにはならないことから、「PlaceEngineはプライバシーの侵害である」、「私の家のMACアドレスを勝手に登録しないようにしてください」と運営会社に抗議することも、何らかの解決につながるかもしれない。
なお、他人の無線LANを傍受して知った情報を元に、その存在や内容を漏らしたり、それを窃用する行為(たとえばストーカー行為に利用する等)は、電波法59条違反となる可能性があるので注意。
ただし、無線LANクライアントがprobe requestとしてブロードキャスト(不特定多数に放送)する信号は、電波法59条の「特定の相手方に対して行われる無線通信」に当たらないと解釈される場合には、そのような行為を電波法で取り締まることはできないのかもしれないので、安心はできない。
つまり、PlaceEngineが合法と解釈されるなら、probe request傍受に基づく行為も合法となり、逆に、probe request傍受で得た情報の窃用が違法だというのなら、PlaceEngineも違法と言わざるを得ない。
さて、これから出勤……。
昨日に引き続いて無線LANがらみのセキュリティ話。またぞろ間違いがあるかもしれな...
高木浩光@自宅の日記 - ユビキタス社会の歩き方(5) [重要] 自宅を特定されないようノートPCの無線LAN設定を変更する無線LANを利用している人は、この記事と、記事末尾にリンクがある関連記事すべてに目を通しておくべきだ。無線LANの現在の利用形態にはセキュリティの問..
少なくとも暗号化を行っている無線LANについては「特定の相手方に対して行われる無線通信」であることは明らかなので、これについてその存在を漏らし窃用することは、法律の趣旨からしても電波法59条に違反していると言えるのではないだろうか?
高木浩光さんの日記をたまに拝見しています。 なんでも、MACアドレスがわかればそのNICなりAPの物理的な所在・場所がわかってしまうんだそうです。 http://takagi-hiromitsu.jp/diary/20071105.html 「ううそれはいやだなぁ」って思ってしまいましたが、そういえば私はFON_..