この位置偽装の仕掛けは同時に複数のアプリ、複数のモバイル端末の位置偽装できる。

位置偽装の仕掛けを使ってみていますが、いくつか面白いことが見えてきたので書いておきます。この仕掛けは、複数のアプリ、複数のモバイル端末で同時に移動できます。仕掛けを考えれば当たり前といえば当たり前なのですが、リアルに移動しているのと同じ感覚です。

複数の端末、私の場合は、アンドロイド端末とiPadの2つを操作しています。本当に歩きながらだと複数の端末を同時に操作するのは無理がありますが、机上にスタンドに立てた状態で右手でアンドロイド機、左手でiPadを操作なんてこともできます。

それかたiPadで裏でPokemonGoを動かして、画面上では別なアプリを使ってということもできます。画面上で動かすものは、位置情報を利用するものもしないものもどちらもありです。
そのようなことをするのに(接続の問題がようやく解消した)モンスターボールプラスと組み合わせがよい。モンスターボールプラスを接続して、位置偽装ツールで歩かせると、放置しておくだけで道具集めができるようになりました。これは便利です。モンスターボールプラスのボタンを押しっぱなしにしておけばポケモンも捕まえるのも勝手にやってくれます。
この使い方を続けていると木の実ばかり使われずにたまっていくので、時々、意識的に使うか、捨てるかしないといけませんが。。。 これは普通に使っていても発生する事態ですね。

位置偽装には、_nomapとステルスのどっちが良いか

位置偽装するときのおすすめは、「近くにWiFiを置かない。」ですが、おかないわけにはいかないときにどちらが良いかを整理します。結論を言うと「_nomapが良い」ですが、条件によって変わります。いきなり説明なく入っていますが、説明はこのページをご覧ください。

まず、ステルスのデメリットです。条件によっては致命的です。いまどきなIoT製品がいろいろありますが、ステルスに対応できていない子機側の製品が存在します。この条件に合致する場合ステルスを選択することができません。それからWiFi親機機器の電源断などで接続できなくなると、子機側が初期設定モードに切り替わりWiFi機としてSSIDやMACなどが見える状態に変わります。ステルスにしているとこの状態からなかなか復旧しないように見えます。復旧しないままだと、この機器のMACを登録されてしまう可能性があります。
ステルスのメリットは、位置偽装対象がiOSの場合に効果があります。残念なことにiOSは、_nomapが効きません。アプリによって動きに違いがあるようですが、ステルス化して位置情報取得でMACを拾えないようにする方法があります。
私の場合は、デメリットの影響が大きいので_nomapを採用しています。

つぎに、 _nomapですが、メリットはAndroidには機能上の弊害が特になく位置偽装時に効果を発揮するということです。明確なデメリットは感じません。
そんな中でのデメリットは、誰かのサイトに書いていましたが、セキュリティヲタクであることを発信しまくっている点でしょうか。これまで、1000を超えるSSIDなどの情報を拾ってみましたが、_nomapを付けているものは見つけることができていません。実際のところ_nomapを付けている人はどのくらいいるのでしょうか? 逆にほとんど_nomapが付いていないからこそWiFiでの位置特定がそれなりに妥当な感じで機能しているということでしょう。

アプリに関係なく(ラ?なんとかも、なんとかgoにも)使える位置偽装

ここまでに書いた内容を読み返せばどのような手法で位置偽装するのかITエンジニアには理解できるでしょう。実現のためにはいくつかの条件はあるが、比較的簡単に実現することができた。
 要するに「 会社引っ越し後、WIFIで位置情報を検索すると前の住所が表示されます。 」や「 GoogleChrome・マップの位置情報 」などで起きているWiFiの情報に基づく位置情報の誤認識を利用するということです。これは意図せずおきれば誤認識なのですが、誤認識を誘発し一定の制御のもとにおけば、それは位置偽装といえるでしょう。この位置偽装の特徴はモバイル機器に追加アプリをインストールする必要がないことと、アプリに関係なく利用できることです。追加検証と有効性についてはこの場所で行うことにします。

 ここで扱う位置情報は本来の目的ではない情報を別の個人情報として扱うべき情報を組み合わせて実現した便利な機能により得られた情報です。情報提供者にほぼ無断で別の目的で利用していると言ってしまってもよいかもしれません。それはさておき、上の方法での位置偽装はいわゆる偽装アプリをインストールするわけではないので、偽装を検出することは困難というか、ほぼガードすることはできないでしょう。なんとかgo++のように利用できなくなったり復活したりというイタチごっこは発生しません。 さらにアプリに関係なく利用できるのも特徴です。

 

位置情報を利用するサービスと位置偽装

現在、自分がいる位置(個人情報)を利用しているサービスが多数あります。この個人情報の位置づけと位置偽装?とそれぞれのサービスについて書きます。

まず、自分がいる位置は個人情報にあたります、よってこれを利用するサービスは事前に位置情報を利用する旨のメッセージを提示します。この位置情報はいろいろな方法で取得されたもので、その精度や正確性に違いがあります。

1)GPS
3つ以上のGPS衛星からの電波をもとに高度もふくむ位置を特定する仕組みです。 空がある程度の範囲で見える場所であればどこでも位置特定することができます。 利用するにはGPS受信機を内蔵している必要があります。受信モジュールの値段は1000円ちょっとくらいです。それなりの値段の端末なら搭載しておいてほしいところですが、GPSが搭載されていない端末もあります。そのような端末やGPSの電波が届かない場合は、後述の方法を組み合わせて位置特定をしています。

2)携帯電話基地局
  携帯電話が通信している基地局から場所を特定する仕組みです。携帯電話がつながる場所であれば位置特定できるため部屋の中などGPS電波が届かないような場所でも利用です。ただし携帯電話の契約がない場合は利用できません。また、位置特定の精度は1つの基地局でカバーする範囲のどこかとまでしかわからないので、GPSよりも精度は落ちます。

3)WiFi
GPS等で特定した位置情報とその場所で取得したWiFiのMACアドレスがマップ化されています。現在位置で検出されたWiFiのMACアドレスから位置を特定します。特定のWiFiアクセスポイントに接続可能な範囲は携帯基地局に比べて比較的狭いのでその分精度が高くなります。また、複数のWiFiのMACアドレスを使用することでさらに精度を高めています。1)、2)はほぼどこの場所でも利用可能ですが、町から外れるなど民家がなくWiFiがない場所では位置特定できなくなります。また、位置特定できても一見なぞのように感じられる位置の誤認識が発生することがあります。そして、MACアドレスは公のものではありません個人所有の機器に付随した情報です。該当機器は自由に持ち歩くことができ、別の場所に配置することは何の問題もありません。よって、WiFiで提供される位置情報は正しいとは限りません。

4)プロバイダ局
インターネットプロバイダがIP紐づけしている場所が位置として認識されます。どのような仕組みで特定して(決めて)いるのかはプロバイダによって違うものと思われます。以前、私が契約していたプロバイダの場合は、数百キロ離れた東京のある場所にいるものとして扱われていました。今は、すぐ近くですが800mくらい離れた場所が現在位置として扱われています。以前に書いた”空の状態”の位置です。
これは携帯端末とは関係なく有線で利用しているインターネット上で位置特定するものです。前述の通り精度はプロバイダ依存ですがはっきり言って適当な固定位置が返却されると考えたほうが良いでしょう。

 1)2)はほぼ間違いがない位置を特定できますが、4)は適当、3)に関しては誤認識や偽装が起こりそうで、認証など確実に位置特定する目的で利用するのは問題がありそうです。

上記のような位置情報ですが、次はこれを利用しているアプリケーションやサービスの側から見てみます。

■便利にするために利用しているもの。

地図情報や、乗り換え検索などの初期の位置に利用している。
→ 正しく動作するかどうかだけで、機能すれば便利に使える
カーナビなどナビゲーションなどリアルタイムでの現在位置を利用している
→現在位置を取得するべき機能なので正しい現在位置が取れないと意味がない

マップ

→ 現在位置でないと不便なアプリケーション

ナビゲーション

現在位置が取れないと意味がないか役に立たたないアプリケーション

■サービス範囲を制限するもの
radiko
     → エリアフリーなどの有償サービスとの差別化の1つの手段として利用しているもの。確実に差別化?仕分けしたいなら、GPSで取得した位置情報の場合にのみ利用可能にすればよい。しかし、GPS電波が届かない場所など利便性を考えればほかの方法で取得した位置情報も許容するほうが良いかもしれない。しかしそうすると、意図せず発生した位置偽装状態のものを許容するしかなくなる。この挙動を活用することで、前述の方法で位置偽装によりサービス利用が可能となる。  

■AR/VR ゲーム

PokemonGO 

位置情報をアイテム取得などの要素に取り込んだゲームアプリケーションです。位置偽装によりゲームを有利に進めることが可能なため、位置偽装を行うアプリケーションが多数あり、PokemonGOのメーカではその不正を見つけてアカウントの無効化を行ったり、位置偽装アプリケーションを使えないようにしたるするなど、偽装とその対策のいたちごっこが起こっています。

魔法同盟 (ハリーポッター)
 

→PokemonGOとマップは同じような感じです。同様に位置偽装とアカウント無効化のいたちごっこが起きそうなアプリケーションです。

■GPSアート
 →どういう分類にするのが良いか微妙ですが、自己満足?のためなので現在位置でないと意味がなく、たぶんGPSでの測地でないと対応できない場所が多いはず。なので、ここでは取り扱う対象外です。

■その他

GPS鬼ごっこ
→ このアプリケーションの場合、位置偽装の組み合わせでチートなど面白いことができそうですが、さらにこのアプリケーション自体でなにかできそうな気もします。

アプリケーションによりいくつが分けられますが、位置偽装したくなるアプリケーションは多数あります。位置偽装ならぬ位置誤認識を利用して位置偽装をすることもできそうです。上述の通りすでに実績もあります。偽装なのか誤認識なのかサービス側では区別できないように思います。区別できるくらいなら誤認識しないようにしてほしいです。


個人情報流出?で作られた現代の(電波)灯台

私のiPadはGPSを内蔵していないにもかかわらず、位置をかなり正確に認識している。ただ、PocketWiFiを使って遠くにお出かけするとGPSを見失ってしまうことがあります。どんな仕組みで認識しているか、任意の位置を(誤)認識させることができるか実験してみましょう。

まず、どのような仕組みでiPadが位置情報を取得しているのかを調べてみました。マイナビサイトに情報「 iPod touchやiPad、GPSなしでも正確な位置情報がわかるのはなぜ? 精度は? 」がありました。GPSがある端末で位置情報を特定し、その場所で受信可能なWiFiの情報をセットで取得して、マップ化しているそうです。パスワード無で取得可能なWiFiの情報を利用することで、それなりにWiFiが使われている場所なら位置が特定できるというわけです。ただ、元の情報を収集する際にパスワードを使って繋げたWiFiの情報を収集されているような不安を覚えます。
 

 それでは、どれだけの情報を使って位置情報を取得しているのか見てみましょう。
 iPad WiFi設定で見えるWiFiは8個ありました。10個になるときもあります。これだけの数が見つかればかなり精度よく位置情報を特定できるのも納得できます。” 遠くにお出かけするとGPSを見失ってしまう ”は、民家が存在しない、つまりWiFiを利用されていない場所で発生していて。上で紹介されている仕組みで説明がつきます。
 また、もう少し詳しくパスワード無で取得できる情報を見てみましょう。

iPadでは、SSIDの名称しか見えていませんが、WiFi Analyzerを使うと、productor(機器のメーカ名)、MACアドレス、セキュリティ方式、周波数、受信強度を参照できます。SSID名以外の情報をどこまで使っているのか気になることころですが、それにしても、こんなに沢山の電波が飛び交っているとは、情報はダダ洩れ状態ですね。自分が管理している無線LAN以外に思わぬものがWiFiのSSIDを送信していることが分かりました。 それはプロジェクタと家電リモコンです。どちらも、WiFiは起動来ていなくても問題ないのでWiFiをオフにしておきます。プロジェクタのWiFiをオンにしたままにしていたのは今回 WiFi Analyzerを使って探索するまで完全に忘れていて、強い電波が外からきているのかと家の中、外をうろうろしてしまいました。そして、電波の強い場所(部屋)とメーカー名から目的のプロジェクタにたどりつきWiFiの設定をオフにしました。

ここまでで、受信しているWiFiは5個か6個です。見えているのは、いずれも自分で管理している無線LANのSSIDです。マイナビサイトに「位置情報を取得されたくない場合は?」の記事によると、 アクセスポイント名の最後に「_nomap」 とか 「_optout」を書くことで、 Wi-Fi位置情報収集をやめるそうです。iPadで検証するのでアップルの動作を優先して 「_optout_nomap」 という文字列をSSIDの後ろに追加してみます。影響がある端末がため 大変です。

まず1台目を変更します。手元のPCから無線LANのSSID名設定変更は成功し、iPadのWiFi設定の変更も完了しました。つぎに排水ポンプを接続しているスマートコンセントのところまで行ってリセットとWiFi設定のやり直し、設定名も変わってしまったのでスケジュール設定もやり直しです。それからIFTTT設定も再確認します。とりあえず、利用頻度の低い1台の設定変更のみ完了です。この設定変更の効果を検証してみます。問題の無線LANのアクセスポイントの方向にアクセスポイントを通り過ぎて突き進んでみました。 SSID名に 「_optout_nomap」 を付加したアクセスポイントは見えるがこれまで見えていたアクセスポイントは見えなくなる位置まで移動しました。これまで見えていなかった他の家のSSIDが見えている状態になりましたが、ほとんど位置は移動していません。よく見ると 「_optout_nomap」 を付加したID以外にもう一つSSIDがあり、それが効いているようです。それは使用していないマルチSSIDの一つでした。

 そこで、不要なマルチSSIDは停止して、端末側のパスワード設定変更をあまり行わなくてもよい無線LANのSSIDには 「_optout_nomap」 を 付加することにしました。 これにより、位置特定に使用するSSIDはかなり少なくなっているはずです。
最初8個見えていたSSIDは、2個は機能停止、2個はマルチSSIDの停止、2個は 「_optout_nomap」 の付加で見えない状態となり、現状1台の無線LANの2.4Gと5Gの2つのSSIDだけが見えている状態となりました。
さてここで、残った1台の無線LANを停止してどうなるか検証してみます。電源を切ると、この無線LANに接続していたgoogle homeと家電リモコンのSSIDが見える状態になりました。そして、認識している位置は変わりません。 Google homeと家電リモコンのSSIDが 効いているのかと思いそれぞれの電源を切りましたが効果はありません。WiFi AnalyzerでみるとiPadでは見えていなかった微弱な電波が5つ拾えています。2つは別の階の機器で、3つは隣家のものと思われる電波です。ただ、この情報だけでビッチっとほぼ誤差なく位置特定しているとするのは無理があるように思います。

再度、位置情報を特定する仕組みと元情報を再検討します。 「_optout_nomap」 を付加したID の情報をリポジトリに登録していないというのは事実としても、それは登録しないだけで、すでに登録している情報は何かを再考します。位置特定精度が変わっていないことを考慮すると、今回の設定変更で変更されていない情報を利用していると考えるのが妥当でしょう。SSID名はリポジトリに登録するかどうかの条件に利用しているだけでリポジトリには登録しておらず、MACアドレスと位置の情報を登録していると仮定してみます。すると、今まで観測した挙動と一致します。またこの方法だとリポジトリに登録するデータ量を抑制することにも効果がありそうです。では、検証に移りましょう。

現状、iPadのWiFiには 「_optout_nomap」 が付加されたSSIDが4個しか見えていません。それぞれの SSIDに紐づくMACアドレスをWiFi Analyzerで確認します。以下、説明するために符号化した名称と下3バイトのMACアドレスを使用します。 WiFi Analyzerで確認したMACアドレスはそれぞれ、つぎのとおりでした。
P2: c5 7f 2a
TM: c5 69 64
2G: fe c9 92
OL: 8e 18 95
これを変更できるか調べてみました。無線LANの設定画面でこのMACアドレスを参照できましたが、変更する方法は見当たりませんでした。無線LANのWAN側のMACアドレスを指定する機能がある機種はあるようですが、無線LAN側はなさそう。MACアドレスを設定変更できれば、リポジトリに登録された情報から解放されるのですが。 また、マルチSSIDを使用すると最後の1バイト分が変わったMACアドレスが付加されていました。オリジナルのMACアドレスを無効化できればよかったのですがこの機種ではできませんでした
 SSIDのステルス化の機能もあります、これを使えば他人の端末が勝手にリポジトリ登録してしまうことはなさそうです。しかし設定するとその無線LANに接続する設定が少し面倒になります。最初の1回は手作業でSSIDを入力しなければなりません。そのSSIDを入力した端末が位置情報のリポジトリ登録に行くので、ステルス機能だけではリポジトリ登録の無効化には効果がないでしょう。
 それから、アップルの場合はSSID,MACアドレスと位置情報を登録されないようにする方法はないそうです。よってiPadについては、無線LANの電源を落として検証してみました。自前の無線LANが見つからなくなると、これまで、しっかり維持情報を把握していたものが、”GPSが見つかりません”を連発するようになりました。ときどき隣家のWiFiの電波が入るので、その瞬間は位置情報を把握できます。ここまでの確認結果から、位置情報を確認する際は、MACアドレスだけを使用していると推測されます。
 また、Google homeについては、現時点 リポジトリ登録されている情報が古くなって無効化されるまで検証待ちとします。そういえばGoogle homeが以前400km以上離れた別の県を所在地と誤認識していたことがありました。
アップル、Googleともに一度別の場所で位置情報を登録した無線LANを置くことで、位置を誤認識させることができそうです。