Google Location Service

人力検索の件で調べていて、Googleツールバーに現在地情報を特定する機能があることを知った。
現在地情報 : ツールバーの機能 - ツールバー ヘルプ


この機能は


Google では、近隣の WiFi アクセス ポイントから送信される情報を使用して、ユーザーのおおよその位置を特定します。その精度とサービス適用範囲は場所により異なりますが、Google ではそのどちらも向上させるべく努力しています。
としているように、WiFiアクセスポイントの情報を元に現在地の特定を行っているらしい。ただ

現在地情報が有効になっている場合、ツールバーではローカル ネットワークの情報(確認できる WiFi アクセス ポイントを含みますがこれに限定されません)を自動的に Google の位置情報サービスに送信します。
ということからアクセスポイント以外の情報を送信している可能性もあるし、今後そうするつもりがあるのかもしれない。


Firefoxにはこの機能を利用したAPIを提供しているらしい。(次世代ブラウザ Firefox - 位置情報通知機能)。たぶん、Googleツールバーが使っている機能と内部的には同じものだろう。
検索してみたら仕組みはこちらで検証されていた。
Firefox 3.5の位置情報通知機能の仕組みとサンプル - F.Ko-Jiの「一秒後は未来」
この内容を参照すると、Googleサーバに周囲のアクセスポイントのMACアドレスSSID、信号強度(電界強度)をJSONで送っているようだ。


この機能自体は「現在地情報は、デフォルトでオフに設定されています」(Googleツールバー)、「その情報を求めてきたサイトや第三者のサービスプロバイダに位置情報を知らせる前に、情報を知らせて良いかどうかを尋ねる情報バーが表示されます」(Firefox)とあるとおり、オプトインになっているので送信される情報については利用者の自己責任だろうが、Google側では送信された情報を基にどのようにして位置の特定を行っているのか気になった。
アクセスポイントの強度情報からの位置特定というと、PlaceEngineのようなアクセスポイントの位置情報のデータベースを構築していると考えられる。


アクセスポイントのMACアドレスと位置情報が設置者の許可なしに収集されてデータベース化されるのはプライバシー上の問題があると言われている(この辺:高木浩光@自宅の日記 - PlaceEngineのプライバシー懸念を考える, 追記(29日), 追記2)。PlaceEngineのような分かりやすいサービスなら見えやすい(指摘されやすい)けど、実体としてはGoogleも同じようなことをやってるということだよね。
仕組みをオープンにしているPlaceEngineよりも、仕組みを詳らかにしないで使っているGoogleの方がもしかしたら、悪質なのかもしれない。


あと、この点について、Google Location Serviceのプライバシーポリシー(Google Location Service in Mozilla Firefox Privacy Policy – Google Privacy Center)には虚偽が含まれている、あるいは説明不足なのではないかと思った。



Information we collect

If you allow a website to get your location via this service, we will collect, depending on the capabilities of your device, information about the wifi routers closest to you, cell ids of the cell towers closest to you, and the strength of your wifi or cell signal. We use this information to return an estimated location to the Firefox browser and the Firefox browser sends the estimated location to the requesting website. For each request sent to our service, we also collect IP address, user agent information, and unique identifier of your client. We use this information to distinguish requests, not to identify you.


検証記事を見ても明らかなように、Googleサーバに送信される情報には「自分の管理するwifiアクセスポイント」以外の、周囲のwifiアクセスポイント情報も含まれている。wifiアクセスポイントの信号強度からの測位は、基本三角測量の原理のはずなので最低でも2つ以上のアクセスポイント情報がないと有意な情報が得られないので、そもそも自分のwifi情報だけを送信しても意味が無いのは自明だ。
「自分のwifiバイス(を介して取得した周囲のアクセスポイント)情報」と拡大解釈もできなくは無いと思うけど、それならもうちょっと具体的に書いたほうがいいんじゃないかと思ったり。


Googleの場合、PlaceEngineのように利用者が積極的に位置情報をアップロードするような仕組みではないと思われるので、Google関係者が自らの足で各地のアクセスポイント情報を収集しているのか、あるいはこうして得られた利用者情報も(最低限の匿名化の上で)データベース化している可能性もある。(「We also use all the information above to operate, support, and improve the overall quality of the Google Location Service」)