检测 GNSS 干扰和欺骗

GNSS 干扰可分为以下两类

  • 干扰 (Jamming)
  • 欺骗 (Spoofing)

干扰 (Jamming) 攻击是指在 GNSS 相同频率范围内广播强无线电信号,这会淹没 GNSS 卫星广播的相对较弱的信号。这可能导致 GNSS 接收器(包括手机)无法计算其位置。

欺骗 (Spoofing) 是一种更复杂的攻击,其间会广播伪装成真实 GNSS 信号的虚假信号。这些虚假信号可能会欺骗 GNSS 接收器计算出与现实情况大相径庭的位置或时间,这足以误导地图和导航应用向用户提供错误信息。

关于 GNSS 欺骗或干扰

信号的信号强度或载噪比 (C/N0),以及手机中 GNSS 无线电的自动增益控制 (AGC),都是干扰的良好指标。

观察到欺骗或干扰时,AGC 往往会下降。当无线电接收到强无线电波时,它会调低放大器的增益 (AGC) 来调整接收信号的功率。

Comparison of signal strengths indicating interference
图 1. AGC 在干扰期间下降(红色区域),并在干扰消除后恢复正常水平(绿色区域)。(图片来源:https://doi.org/10.33012/navi.537)

然而,C/N0 在干扰和欺骗事件中的表现不同。对于干扰事件,无线电观察到的噪声远强于正常情况 — 因此,载噪比的分母增加,C/N0 值下降。对于欺骗,情况则相反 — 因为广播的虚假信号足够响亮,足以淹没来自卫星的真实信号,所以总体信号强度很强,因此 C/N0 增加。

检查 GNSS 欺骗或干扰

您可以使用 GnssLogger 应用中的 欺骗/干扰 标签页来实时探究环境对 C/N0 和 AGC 的影响。

实时 AGC 和 C/N0 图

欺骗/干扰 标签页会显示每个 GNSS 星座和频段(例如,“GPS L1” 或 “G:L1:”,“Galileo E5a” 或 “E:E5A:”)的 AGC 和 C/N0 的实时图表。

Graph of AGC and C/N0 for each GNSS constellation and band.
图 2. 当手机放在 Wi-Fi 路由器旁边时(红色椭圆区域),AGC 和 C/N0 都会下降。每个星座和频段的前 3 个平均信号显示为虚线。每个星座和频段的 AGC 是一个单一值,显示为实线。图中的红色圆圈部分显示了当手机放在 Wi-Fi 路由器旁边时,AGC 和 C/N0 如何同时下降,表明存在干扰。

欺骗和干扰的实时检查

在 AGC 和 C/N0 的实时图表下方,应用会显示一系列自动数据检查,用于识别与 GNSS 干扰相关的条件。

UI displaying evidence of conditions
  potentially caused by spoofing and jamming.
图 3. 自动检查可以识别可能由欺骗和干扰引起的条件。

干扰检查 部分,应用会检查最近 10 个 epoch 的 C/N0 和 AGC 的平均值与前 50 个 epoch 相比是否发生变化。如果 C/N0 和 AGC 同时下降,这可能是 GNSS 干扰的症状。如果检测到这种情况,卡片会显示 FAIL 消息以及更多信息。

Conditions potentially caused by GNSS interference.
图 4. 表示已检测到可能由 GNSS 干扰引起的条件的失败状态。

欺骗检查 部分的第一张卡片也会检查 C/N0 和 AGC,但会查找 C/N0 同时 增加 而 AGC 下降的情况。

第二个与欺骗相关的检查会查找设备上计算的 GNSS 时间与通过互联网从网络时间协议 (NTP) 服务器检索到的时间(网络时间 - GNSS 时间)之间超过一秒的差异。差异较大可能表明计算出的 GNSS 时间无效。

提示、技巧和注意事项

使用 GnssLogger 的 欺骗/干扰 功能时,请记住以下几点:

  • 这是一项实验性功能 — 随着我们更多地了解各种 Android 设备上的 AGC 特性,用于检测欺骗和干扰变化的具体算法可能会更新。
  • 此功能无法检测所有欺骗和干扰 — 实时图表和数据检查使得更容易实时发现数据特性,但它们还不够稳健,无法检测到所有欺骗或干扰情况。
  • 此功能旨在检测 C/N0 和 AGC 的变化 — 如果您在存在欺骗或干扰的情况下打开应用,并且 C/N0 和 AGC 保持不变,则无法检测到欺骗和干扰。
  • NTP 服务器不一定安全 — 网络时间也可能被欺骗。

请使用我们的公共问题跟踪器提供关于 欺骗/干扰 功能的反馈。