GNSS の干渉は、次の 2 つのカテゴリに分類できます。
- 電波妨害
- なりすまし
ジャミング攻撃では、GNSS と同じ周波数帯域で強力な無線信号をブロードキャストします。これにより、GNSS 衛星からブロードキャストされる比較的弱い信号がかき消される可能性があります。これにより、スマートフォンなどの GNSS レシーバーが位置情報を計算できなくなる可能性があります。
なりすましは、実際の GNSS シグナルを装った偽のシグナルをブロードキャストする、より高度な攻撃です。このような偽の信号は、GNSS レシーバーを欺いて、現実とは大きく異なる位置情報や時刻を計算させることができます。これにより、地図アプリやナビゲーション アプリが混乱し、ユーザーに誤った情報を提供してしまう可能性があります。
GNSS のなりすましや妨害について
信号の強度(キャリア対雑音比(C/N0))や、スマートフォンの GNSS 無線の自動利得制御(AGC)は、干渉の優れた指標となります。
なりすましや妨害が検出されると、AGC は低下する傾向があります。ラジオが強い電波を受信すると、受信した信号の電力を調整するために、アンプ(AGC)のゲインを下げます。

ただし、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:」など)を指定します。

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

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

[なりすましチェック] セクションの最初のカードでも 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 を使用して、なりすまし/妨害機能に関するフィードバックを送信してください。