ずっとEMホロデッキだけで実証ツールを動かしていたが…

実証実験をしていましたが、気が付いてみると実証ツールのGUI化、検証機のOSバージョンも上がるなど環境がだいぶ変わってきました。 EMホロデッキをはなれ、再度モバイルEMホロエミッタでも検証してみます。

実証用ツールの機能もかなり進化して、使いやすくなりました。 というか、Web化した話もまだ書いていませんでした。検証参加方法も見直したほうがよさそうですね。検討してみます。希望などあればコメントもしくはメール等での連絡をお願いします。

iOS位置偽装ソフト の検証

 今回はiOSで位置情報を任意に変更できるWondershareのソフトウェアdr.foneについて紹介します。この製品は、iPhoneのデータバックアップ、復元、データ転送などを行えます。「GPS変更」は複数ある機能のうちの1つです。本記事では、この位置情報を変更できる機能についてのみ記載します。

製品DLなど  URL:https://drfone.wondershare.jp/ios-virtual-location.html

機能概要
 以下に機能的な要素をいくつか挙げていますが、主要機能は現在のGPS位置情報を任意に変更するシンプルなものです。
                  マップで移動先を指定して任意の場所に移動できます。
                             実際にその場所に行かなくても、ARアプリ上で任意の場所に移動できます。


 移動経路と移動速度を指定して移動できます。
製品HPの記載について解説というかコメントします。まず「脱獄不要」ということです。そもそも”脱獄”って何?なのか定義を明確化しないと妥当な内容なのかよくわかりません。これについては後の”仕様”のところで書きます。
「iPhoneで現在地を安全かつ簡単に変更」の”簡単”については理解できますが、”安全”とは何が言いたいのか分かりにくい。安全な場所に居ながらにして、危険な場所などどこにでも行けるという意味での安全とも読めます。しかしその真意は、たぶん脱獄が危険だからその危険な行為をしなくても利用できるということなのでしょう。
「速度を設定してGPSをかく乱する」の”かく乱”は意図が良くわからない。GPSの位置を任意の位置にすることでかく乱という意味なら、速度は関係ない。GPSの位置偽装を検出されないようにするという意図なら、かく乱というよりBAN対策ということでしょう。なので、かく乱する対象はGPSではなく、位置偽装をBANする仕組みに対するかく乱なのでしょう。説明が一つ飛んでいるのだと推測します。もしくは、日本語に翻訳するときに適切な言葉を選択できていないだけかもしれません。 現時点で、移動速度を設定できるのはBAN対策として効果的かもしれません。しかし、正確に直線移動を一定速度で移動しているように見えるのは、実際に移動したときに見えるデータとは明らかに異なります。将来はそのように異様に正確な異動はBANの対象とされるかもしれません。その辺も考慮して「途中に異なる休憩時間を設定して、より自然な走行に見せる」機能も用意されています。
 これらの機能はiPhoneを放置しておいて勝手に歩行させる使い方に最適です。同じルートを繰り返し歩行させるのも回数指定だけでよいので、ポケストップなど多いルートを設定するなど効果的な歩行ルートの設定とくみあわせることで、効率的に進められるでしょう。ただ、1か所に多数のポケモンがいるなど歩行の進行をとめるなど、操作しながら移動と滞留を繰り返す使い方をするぶんにはもう少し実装面での工夫ができそうな余地はあります。
仕様、実現方法
CPU
1GHz (32ビットまたは64ビット)
RAM
256 MB以上のRAM(1024 MBを推奨)
ハードディスクの空き容量
200 MB以上の無料空き容量
iOS
iOS 13, iOS 12/12.3, iOS 11, iOS 10.3, iOS 10, iOS 9 及びもっと古いiOS
コンピューター OS
Windows: Win 10/8.1/8/7/Vista/XP
Mac: 10.14 (macOS Mojave), Mac OS X 10.13 (High Sierra), 10.12(macOS Sierra), 10.11(El Capitan), 10.10 (Yosemite), 10.9 (Mavericks), or 10.8
ほとんど説明なく、この対応OS等の仕様が書かれています。なんで、コンピューターOSが書かれているのか唐突な感じでわかりにくいが要するに次の構成をとります。
「iPhone」-「USBケーブル」-「PC」
 という具合です。”Lightning-USB変換 アダプタ”等を介して、iPhoneとPCをUSBケーブルで接続し、PCにインストールしたアプリケーションを操作してiPhoneのGPS位置情報を書き換えを行います。 簡潔に言えば、PCからiPhoneのGPS位置情報を操作する動作仕様です。10年ほど前はPCと携帯電話をUSBケーブルでつないでデータ移行をしていましたが、最近はデータ移行などほとんどのiPhone使用シーンにおいてUSBケーブルを使うことは減っています。このため、”Lightning-USB変換 アダプタ”などUSB接続に必要なアクセサリを保持していることはまれでしょう。試すときは、まずはUSBケーブルを準備しましょう。
 GPS位置情報を書き換えるため、iPhoneを開発者モードにしておく必要があります。開発者モードとかデバックモードにするのは、この手の製品ではよくあるパターンです。これは、先に書いた”脱獄”と関連があります。開発者モードにするということは、セキュリティガードを回避している状態で使うということなので、”脱獄”と似たような状況で使用するということです。”脱獄”の定義によってはこれも脱獄状態と言えなくもないでしょう。  このように内部仕様の部分を操作しているのでOSのバージョンが変わったら動かなくなる恐れが、通常のアプリケーションより高いと言えるでしょう。私はiPadOS13.3を使用しています。 この製品は仕様には書かれていませんが、iOSに加えて、iPadOSにも対応しているそうです。しかし、まだiOS13.3に対応できていないようです。リリースしてから間もないので間に合っていないということでしょうか。iOS13.3でセキュリティ強化が行われているようなので、この影響で評価だけiOS13.3に対応しているとはいえず、Webのページにも情報公開できていないものと思います。


補足情報:
個別に確認した動作環境の情報です。
動作環境について:
対応可能な端末:
iOS 13, iOS 12/12.3, iOS 11, iOS 10.3, iOS 10, iOS 9 及びもっと古いiOS(iPadOSも利用可能です)
コンピューター OS:
Windows: Win 10/8.1/8/7/Vista/XP(Mac版は未発売です。)
つぎは利用者向けというよりは製品Webページの作成者などの製品担当者向けのコメントです。
Webページに記載した内容と、Macの部分が違います。なぜ違うのかが気になりますが。私はMac派ではないのでとりあえず、どちらでもよいです。それよりも、なぜ「及びもっと古いiOS」の部分をどのような意図で書いているのかが気になります。書いていないバージョンでも動くと言いたいのでしょうが、読み手は自分が持っている機種のバージョンが動くかどうかを知りたいはずです。このように、具体的に書かれていない場合、利用者には意味もない情報でしかありません。この部分に限らず、全体的に読み手のことを考えた記載になっていないので、その辺を改善したほうがよいでしょう。
価格
1ヶ月ライセンスが999円(税込み)、3ヶ月ライセンスが1,999円(税込み)です。  無料版でまずは確認してから購入するのがよいのですが、無料版は2時間しか使えません。2時間を過ぎると使用できなくなります。 上で書きましたが、試すためにはまずUSBケーブル等が必要です。ケーブルがなければ、無料版を試すまえに2000円程度ですが出費が必要です。 試すなら最初から有料版を使うくらいのつもりで試すほうがよいでしょう。また、有料版も最初は1ヶ月ライセンスで試して気に入れば3ヶ月ライセンスにするのが良いのではないでしょうか。3ヶ月以上ライセンスも法人向け?で用意されていますが、価格は公開されていません。 先に書いたようにバージョンアップにより使えなくなる、もしくは使えなくなく期間が発生する恐れがあるので、3ヶ月単位でのライセンスが妥当なのかもしれません。

補足情報

ドラゴンクエストウォークのアプリが、私の検証環境の機器には対応していないため検証できていません。Android端末はインストールできるが、「つうしん中」でタイムアウトし動作しませんでした。 iPad機のほうは、対象外の機種と表示されインストールさえできませんでした。

製品ページ、URL

iOS位置偽装ソフト: 
【HP】https://drfone.wondershare.jp/ios-virtual-location.html  

製品価格
https://drfone.wondershare.jp/buy/drfone-ios-virtual-location.html

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

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

複数の端末、私の場合は、アンドロイド端末と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での位置特定がそれなりに妥当な感じで機能しているということでしょう。

位置偽装の検証フェーズは終わって、本格的に活用できる状態に..

Pokemon Goに10/6のアップデートを適用すると、モンスターボールプラスが接続時に「接続できません」となり使えません。「Pokemon GO Plus」も、同様らしいが、新しいOS向けのアップデートが効いていたりするのでしょうか?別のアプリは、まだ新しいにOSに対応できていないのでOSアップデートは待ち状態なのですが、。。 とりあえず待ちというところでしょうか?

さて、位置偽装は検証のほうですが、10/6のアップデート後でも、問題なく位置偽装できています。OSアップデートで、使えなくなる可能性は否定できませんが、利便性を捨てるような変更はしないと推測しています。

それから、簡単に操作できるようになったので、banされるか心配になりそうなくらい歩かせられる状態にまでなりました。3日で、50Kmくらいを上限にセーブしています。

 

10/25更新 モンスターボールプラスの接続がアップデート(1.125.0)によりようやく解消しました。位置偽装ツールとの組み合わせで放置しておくだけで道具集めができるようになりました。これは便利です。モンスターボールプラスのボタンを押しっぱなしにしておけばポケモンも捕まえるのも勝手にやってくれます。

位置偽装の検証の 第二段

第二回の検証結果について書きます。
今回の検証では下の画像のように歩かせることができました。私のiPadで使えるGPSアプリがあまり無ありません。その数少ないアプリの中 から「FootStepMeter」を見つけました。

このアプリで疑似的に歩いた場所をプロットしてみました。とりあえず1kmほどを移動しています。今後強化すれば、ランダムでいろいろ歩かせ続けることも可能でしょう。

初回のトライアルとしては想定通りの結果が得られました。
また、この疑似歩行中に偽装できたかを各アプリで確認しました。

●Pokemon GO

偽装に成功し、問題なく使えました。

 

●魔法同盟
これも位置偽装に成功し、問題なく使えました。

 

●radiko
この方法では偽装できません。radikoは端末の位置を見ているのではなく、radikoサーバから見える接続元IPがどこの都道府県なのかで識別しているようです。検証のためWiFiではなくモバイルでアクセスしたところ現在位置の県ではなく東京のラジオ局を聞くことができました。

※ほかに確認してほしいアプリなどがあればコメントください

■検証環境:
・今回の確認をEMホロデッキ環境で検証しようとしていました。EMホロデッキとは、電磁的に実在の場所の状況を再現するものです。なおホロデッキとは何かは、WiKiなどを参考にしてください。この疑似空間内に検証対象の機器とこの疑似環境を作り出すモバイルEMホロエミッタを配置します。 モバイルEMホロエミッタとはどにでも電磁的な疑似空間を作り出す装置です。なおモバイルホロエミッタとはなにかは、WiKiなどを参考にしてください。ここでは、モバイルEMホロエミッタとしてLenovoのG570を使っています。そして、モバイルEMホロエミッタの肝の仕掛けであるOSやアプリケーションは「EMコア」つまりUSBメモリ内にすべて入れています。
EMホロデッキ環境では外乱を抑えきれず確認できませんでした。そこで第一段の検証と同じく電波のないところで、モバイルEMホロエミッタを起動して検証しました。

ということで、EMホロデッキがなくても、モバイルEMホロエミッタさえあれば検証は可能です。そもそもEMホロデッキがなくても検証できる人もいるとは思います。

情報取得の内容 その1

情報取得していただきたい内容です。第一弾なので技術的に少しハードルが高めです。取得用環境:
OS:Unix系 おもにLinux
ハードウェア:WiFi機器をもつPC  おもにノートPC

任意の場所において次のコマンドを実行して情報を取得してください。

nmcli -f SSID,MODE,BSSID,CHAN,SIGNAL,SECURITY dev wifi

この情報だけで位置を特定できるため場所などの補足情報は不要です。提供していただいた情報から特定できた場所を示しますので、自宅など個人情報につながる場所を公開したくない場合はおでかけして情報取得してみてください。頂いた情報は提供者から公開許可がない限り公開しません。

※情報収集用のスマホ用アプリがあれば参加可能という方は、iPhone用かAndroid用かの情報を付けてコメントください。

参考:
上のコマンドはシェル化して大量に収集することもできます。収集した場所ごとにまとまったデータになっていたほうが利用しやすいのですが、1ポイントのデータを1つに圧縮したいときは次のコマンドで集約できます。
cat <データファイル名>|sed ‘s/[\t ]\+/\t/g’ | cut -f1-3 -s|sort -u
ノートPCを車載して30分ほど走れば400件ほどのAPの情報が取れました。
つぎは上の圧縮操作したあとの1ポイントのデータです。
au_Wi-Fi Infra 60:D0:2C:B2:E5:00

ちなみに上に情報は、何年か前にGoogleが情報収集して回っていたそうですが、今は皆さんのスマホからデータを吸い上げて収集しています。

「位置偽装の検証」の立ち上げのため協力者募集

現状は狭い範囲での技術的検証ができたレベルです。

本当に有効かを確認するために確認範囲を拡大したいと考えています。
そのため、協力者を募集します。協力いただくことを想定している内容は、
つぎのとおりです。

・位置情報の取得と提供
・自分及び他の協力者が取得したデータを使っての位置偽装の検証

現状の確認できている範囲は限定的なため技術的にある程度自己解決ができる方か、当方が直接支援できる方でないと厳しいかもしれませんが、とりあえす広範囲に協力者を募集いたします。ご協力いただける方は、コメントに書き込んでいただくか、問い合わせ先まで連絡してください。

アプリに関係なく(ラ?なんとかも、なんとか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鬼ごっこ
→ このアプリケーションの場合、位置偽装の組み合わせでチートなど面白いことができそうですが、さらにこのアプリケーション自体でなにかできそうな気もします。

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