web-dev-qa-db-ja.com

位置情報ベースのアプリは、エミュレートされたGPSによってだまされないようにする方法を教えてください。

Foursquareのような一部のアプリでは、金銭的なメリットを得るために、物理的な場所で「チェックイン」する必要があります。

エミュレートされたGPSがAndroidのカスタマイズされたバージョンで利用可能であることを考えると、そのようなアプリをだますのは簡単に聞こえます。

金銭的インセンティブを考えると、多くの人が試したはずですが、アプリはどのようにしてGPSの不正行為を防ぎますか?

29
Nicolas Raoul

モバイルデバイスでユーザーの位置を追跡するには、多くの方法があります(これについては後で説明します)。

特になりすましが容易な追跡方法はありません。それは可能ですが、一般的には修正されたデバイス(物理的またはプログラム的に)または外部装置のいずれかが必要になるため、平均的なユーザーの領域の外にあります。

さらに、ハッカーがfoursquareのようなアプリを偽装してそれを取得するよりも、開発者が複数の形式の追跡を単純なロジック(つまり、タイムフレームy内でx回しか「チェックイン」できない)で結び付ける方がはるかに簡単です。ディナーは5%割引。もう一度、それは可能ですが、[私の理論は]今のところ、ハッカーにとって経済的ではありません。

約束どおり、地理追跡に利用される主要なテクノロジーのいくつかを以下に示します。

  • GPSレポート。これはおそらくあなたに最もよく知られています。複数のGPS衛星を読み取るには比較的大量の電力を必要とするため、これは最も「高価な」レポートです。純粋なGPSシステムが今日のモバイルデバイスで使用されることはほとんどありません。 GPSデバイスは、デバイスをまったく変更しなくても(プログラムのGPSドライバーの位置への呼び出しを変更することにより)プログラムでスプーフィングされる可能性があります( ここに示すように )。
  • GSMレポートこれは、移動中の1日を通して位置を追跡する最も一般的な方法です。コンセプトはシンプルです。近くの携帯電話塔への通常のメッセージが表示されている携帯電話は、特定の時間に位置を三角測量します。この方法は、外部ハードウェアや電話の機能を大幅に変更しないと、なりすましが非常に困難です(つまり、セルタワーを偽装すると、地理的に追跡されませんが、電話をかけることもできません)。さらに、セルトラフィックは暗号化されます。アプリソフトウェアが携帯電話の携帯電話のデータドライバーと通信するアクセスポイントを偽装する可能性もありますが、これは控えめに言っても難しいことです。
  • LANレポーティング。 これは、屋内で高レベルの精度を提供するため、かなりクールなコンセプトです(これまでは問題でしたが)。 )。これには多くの設定が必要ですが、少なくとも、アプリが登録済みのwifiホットスポットと通信して、接続しているwifiに基づいて現在地を確認することができます。これは理論的にはなりすましが可能ですが、正当な接続の署名の暗号化レベルに大きく依存します。
  • WANレポート。 これは単なるIPアドレスレポートにすぎません。これはおそらく偽装が最も簡単ですが、モバイルフレンドリーサイトでは非常に一般的であるため、ここでは完全を期すために入れています。
  • その他 (Bluetooth、RFID、慣性ナビゲーション、実験など)他にもかなりの数の方法があります。私のお気に入りの1つは Inertial Navigation です。これは、内部センサーとマップを使用して位置を確認するため、外部送信がないため(なりすましが非常に難しい可能性があります)。これは、ミサイル誘導システムや一部のアプリで見られます。たとえば、Life360は電力をほとんど使用しないため、このバリエーションを使用しています(すべてのセンサーが既にアクティブです)。

その他の注意事項:

  • 開発者はこれらのテクノロジーをいくつでも活用できるため、アプリのなりすましがさらに困難になります。
  • ほとんどの位置データは、明示的に削除されるまで、モバイルデバイスに(場合によっては多くの場所に)保存されます。したがって、開発者は(潜在的に)以前の位置データポイントにアクセスできます。今日、カフェママの20回にいたとすると、アプリはsiriに話しかけて、最後の地理データポイントが100マイル離れていることを確認すると、アプリは不思議に思うでしょう...
  • 法執行機関はあなたの実際の場所を特定する能力がはるかに優れているので、アプリを偽装した可能性があるからといって、そのアプリに命をかけるべきではない(他の場所でのコメントでは、このなりすましを悪用する可能性があると示唆されているため、私はdここにこれを投げる)。
26
Matthew Peters

Ingress の場合、Googleのグローバルウォーゲームでは、さまざまなスプーフィング対策が使用されます。グーグルは全範囲について沈黙を守っていますが、実証された2つは次のとおりです。

  • 速度制限:ゲームでは最大40mph
  • 裏付けとなる対策:受信したwifi SSIDと位置データベースの相互参照
8
Rory Alsop

短い答えは、(私が知る限り)オープンプラットフォーム(Androidなど)で位置エミュレーションを完全に停止することはできないということです。他のより制限の厳しいプラットフォーム(ジェイルブレイクされていないiOS/Windows Phoneなど)は、ユーザーがインストールできるアプリケーションのタイプに関して同じレベルの自由をユーザーに許可しないため、これらの問題にそれほど苦しむ傾向はありません。

ソフトウェアベンダーができることは、影響を減らし、この機能の誤用を検出することです。例として、これを行う1つの方法は、ユーザーの位置を分析し、ユーザーがあまりにも速く移動する場合は、何らかの形のGPSスプーフィング/エミュレーションを使用していると想定することです。

3
Rory McCune

私の知識から、場所を偽装する方法は次のとおりです:

1)モックの場所で開発者モードを使用します。開発者モードを使用していることを検出する方法があるため、開発者はこの場合GPSを信頼しないと判断できます。だから彼らは無線LANネットワークのようなあなたの場所を見つける他の方法を使用します。

2)偽の位置情報モードを有効にしなくても、携帯電話がルート化されたときに自分の位置を偽ることができます。繰り返しになりますが、場合によっては、電話がルート化されたことを検出する方法がいくつかあり、開発者はGPS位置を信頼しないことを決定できます。

これは単なる説明であることを覚えておいてください。一部の人々がモックの場所を特定する方法を確認したい場合は、これをお読みください: https://stackoverflow.com/questions/6880232/disable-check-for-mock-location-prevent-gps-spoofing

編集:ルート権限を取得されたデバイスは、検出が必ずしも簡単ではないか、まったく検出されない可能性があることに注意しました。したがって、ルートが検出されない場合、2番目のバージョンが機能する可能性があります。

1
sir_k

重要なのは、その場にいる人には簡単に答えられ、そこにいない人にはほとんど不可能である課題です。

たとえば、単純な検証は、セルタワーIDと場所で利用可能なWifi SSIDを知ることです。電話が手元にあれば答えは簡単で、プログラムから自動的に行うことができますが、そこにいないと答えることが困難です。

しかし、誰かが map を作成した後。なりすましは簡単です。

そして、地元の不動産所有者が関与していない場合、私は本当に良い方法を想像することはできません。

地元の不動産所有者が関与している場合、別の方法は、キーワードを付けてステッカーまたは小さな画面を店の窓に入れ、ユーザーにその場所を検証するために入力するように伝えることです。ユーザーは正しい単語を入力するためにそこにいる必要があります。マッピングの問題を回避するために、キーワードを頻繁に変更できます。

1
Calmarius