GNSS の妨害となりすましを検出する

GNSS の干渉は、次の 2 つのカテゴリに分類できます。

  • 電波妨害
  • なりすまし

ジャミング攻撃では、GNSS と同じ周波数帯域で強力な無線信号をブロードキャストします。これにより、GNSS 衛星からブロードキャストされる比較的弱い信号がかき消される可能性があります。これにより、スマートフォンなどの GNSS レシーバーが位置情報を計算できなくなる可能性があります。

なりすましは、実際の GNSS シグナルを装った偽のシグナルをブロードキャストする、より高度な攻撃です。このような偽の信号は、GNSS レシーバーを欺いて、現実とは大きく異なる位置情報や時刻を計算させることができます。これにより、地図アプリやナビゲーション アプリが混乱し、ユーザーに誤った情報を提供してしまう可能性があります。

GNSS のなりすましや妨害について

信号の強度(キャリア対雑音比(C/N0))や、スマートフォンの GNSS 無線の自動利得制御(AGC)は、干渉の優れた指標となります。

なりすましや妨害が検出されると、AGC は低下する傾向があります。ラジオが強い電波を受信すると、受信した信号の電力を調整するために、アンプ(AGC)のゲインを下げます。

干渉を示す電波強度の比較
図 1. AGC は干渉中は低下し(赤色の領域)、干渉が除去されると通常のレベルに戻ります(緑色の領域)。(画像出典: https://doi.org/10.33012/navi.537)

ただし、C/N0 の動作は、ジャミング イベントとなりすましイベントで異なります。妨害イベントの場合、無線で検出されるノイズは通常よりもはるかに強くなります。そのため、搬送波とノイズの比率の分母が増加し、C/N0 値が低下します。なりすましの場合は逆のことが起こります。衛星からの実際の信号を消すほど大きな偽の信号がブロードキャストされるため、全体的な電波強度が強くなり、C/N0 が増加します。

GNSS のなりすましや妨害を確認する

GnssLogger アプリの [Spoof/Jam] タブを使用すると、環境が C/N0 と AGC に及ぼす影響をリアルタイムで確認できます。

リアルタイムの AGC と C/N0 のグラフ

[Spoof/Jam] タブには、各 GNSS コンステレーションとバンド(「GPS L1」または「G:L1:」、「Galileo E5a」または「E:E5A:」など)を指定します。

各 GNSS コンステレーションと帯域の AGC と C/N0 のグラフ。
図 2. スマートフォンを Wi-Fi ルーターの横に置くと、AGC と C/N0 の両方が低下します(赤い楕円形)。各コンステレーションとバンドのトップ 3 の平均電波が破線で表示されます。各コンステレーションとバンドの AGC(単一の値)が実線で示されます。グラフの赤い円で囲まれた部分は、スマートフォンを Wi-Fi ルーターの横に置いたときに AGC と C/N0 の両方が低下し、干渉が発生していることを示しています。

なりすましと妨害に対するリアルタイム チェック

AGC と C/N0 のリアルタイム プロットの下に、GNSS 干渉に関連する条件を特定する一連の自動データチェックが表示されます。

なりすましやジャミングによって発生した可能性のある状態の証拠を示す UI。
図 3. 自動チェックでは、なりすましや妨害によって発生する可能性のある状態を特定できます。

[ジャミング チェック] セクションでは、直近 10 エポックの C/N0 と AGC の平均が、直近 50 エポックと比較して変化しているかどうかを確認します。C/N0 と AGC が同時に低下する場合は、GNSS の妨害が発生している可能性があります。この状況が検出されると、カードに「FAIL」メッセージと詳細情報が表示されます。

GNSS 干渉が原因で発生する可能性のある状況。
図 4. GNSS 干渉によって発生した可能性のある状態が検出されたことを示すエラー。

[なりすましチェック] セクションの最初のカードでも C/N0 と AGC がチェックされますが、C/N0 の増加と AGC の減少が同時に発生しているかどうかが確認されます。

2 つ目のなりすまし関連チェックでは、デバイスで計算された GNSS 時刻と、インターネット経由でネットワーク タイム プロトコル(NTP)サーバーから取得した時刻(ネットワーク時刻 - GNSS 時刻)の差が 1 秒を超えているかどうかを確認します。差が大きい場合は、計算された GNSS 時間が有効でない可能性があります。

ヒント、コツ、注意事項

GnssLogger のSpoof/Jam 機能を使用する際は、次の点に注意してください。

  • これは試験運用中の機能です。さまざまな Android デバイスの AGC の特性について詳しく把握するにつれて、なりすましと妨害に使用される正確なアルゴリズムが更新される可能性があります。
  • この機能は、すべてのなりすましやジャミングを検出するものではありません。リアルタイムのグラフとデータチェックにより、データ プロパティをリアルタイムで簡単に検出できますが、なりすましやジャミングのすべての例を検出できるほど堅牢ではありません。
  • この機能は、C/N0 と AGC の変化を検出するように設計されています。なりすましやジャミングが発生している状態でアプリを開き、C/N0 と AGC が一定のままである場合、なりすましやジャミングは検出されません。
  • NTP サーバーが必ずしも安全であるとは限りません。ネットワーク時間もなりすましされる可能性があります。

公開 Issue Tracker を使用して、なりすまし/妨害機能に関するフィードバックを送信してください。