警惕GPS欺骗导致FM位置偏移的风险
先来看一个民航西北地区管理局通告的案例:
关于进近期间GPS位置与飞机实际位置不一致风险的警示(NWCAAC-SA-2026-03)
2026年8月24日,A319飞机执行西安-榆林航班,使用34号跑道RNP进近。在进近过程中,飞机触发 NAV FM/GPS位置不一致警戒,23秒后警戒自行消失,机组检查飞机状态正常,导航精度高,决策继续实施 RNP 进近。飞机在距离YLX台约12NM处建立“最后进近”模式并开始自行下降,此时较实际的最后下降点提前3.4 海里,飞机沿错误的剖面下降,通过实际最后下降点时低于正常程序高度1244英尺,继续下降过程中穿越最低超障高度。经塔台提醒,机组发现高度偏低后复飞,改用34号VOR/DME进近程序,安全着陆。经初步调查,译码显示在飞机触发 NAV FM/GPS 位置不一致警戒之前,飞机 UTC时间跳回18秒,飞机实际位置与GPS位置开始产生偏差,机组未能察觉,最终导致飞机沿错误的剖面下降。该事件机载UTC时间跳变、FM/GPS 位置与飞机实际位置不一致现象的发生,不排除 GNSS欺骗式干扰、机载设备故障或客舱无线电设备干扰等因素导致。
这个通告中有很多细节没说清楚,看完之后我产生了两个疑问:
1、如果是飞机FM位置漂移了,怎么会刚好纵向偏了3.4海里,横侧方向没偏?因为如果横向也偏了的话,管制雷达应该早就发现他位置不对了。
2、从系统设计原理上讲,GPS欺骗只能欺骗GPS,理论上不应该会欺骗到飞机的FM位置。如果飞机的FM都偏了3.4海里,为什么飞机显示的导航精度还是“高”,飞机的机载性能监控告警系统(OPMA)为什么没有告警?
GPS从开放民用频率的第一天开始,工程师就明白这东西是很容易被欺骗的,民用频率完全没有加密,NASA网站上就有公开的GPS星历可以下载,github上有免费开源的GPS模拟程序,下载星历文件导入到程序中再输入一个需要模拟的经纬度位置坐标立刻就能生成一个模拟的GPS报文数据包,使用一个无线电发射机调谐到1575Mhz的频率把这个数据包发射出去就能欺骗GPS接收机了。
导航系统是飞机最重要的系统之一,空客的设计师在设计飞机导航系统时一定是考虑过如何防范GPS欺骗式干扰的。基本原理就是利用惯导短时高精度的特性对接收到的GPS定位信号进行校验,不合理的定位直接会被剔除,只有合理的GPS位置才会被IRS采纳并生成GPIRS并传递给FMGC使用。那为什么A320飞机还是会因为GPS欺骗而出现位置漂移呢?
带着这个疑惑,我查了很多资料,我在空客的Safetyfirst网站上找到了一篇文章

这篇文章中,空客表示A320系列飞机在受到GPS欺骗式干扰时,FMS或者ADIRU确实有可能无法识别出错误的GPS信号,从而导致FM位置发生偏移。A350由于使用了更强健的位置混合算法,迄今为止还没有发生过类似情况。
后来我又在一个飞行技术交流群里面看到了另外一起FM位置漂移事件,这两个事件非常相似:都是纵向位置偏了几海里,横侧没有偏移,飞机OPMA系统未发出告警,显示的导航精度为“高”。
这就很奇怪了,这两次GPS欺骗是如何突破惯导的校验的?经过一番研究,我想到了一个可能的原因。惯导计算飞机位置是使用经典的牛顿运动定理,先将加速度对时间积分得到速度,然后用速度对时间积分得到位移,初始位置加位移就是现在的位置。由于飞机在直线平飞时始终是向前运动,速度的横向分量为零,因此如果一个虚假的GPS位置出现在飞机的左右两侧,惯导会立刻判定该位置不合理。也就是说惯导在面对一个跳变的GPS位置时,横侧方向的容忍度非常低,而纵向的容忍度则要宽松很多。如果欺骗者先通过接收飞机的ADSB信号获取了飞机的位置和飞行方向,然后利用这些动态信息伪造一整套完美的、位于飞机正前方几海里的虚假位置信号发射给飞机,飞机就极有可能采纳这个虚假的GPS信号,从而导致飞机的FM位置向前漂移几海里。当然,即使在纵向,这个偏差也不能伪造得过大,如果突变超出了惯导完好性校验算法的阈值,同样会被系统拒绝。
再来解释一下为什么OPMA没有发出告警的问题,机载性能监控告警系统(OPMA)在GPS主用模式下依赖于MMR内部的RAIM(接收机自主完整性监控)算法,使用卫星在天空中的几何分布(DOP 因子)以及信号的质量计算出GPS的品质因数(FOM),FMGC使用FOM计算出预测位置误差(EPU)并呈现在MCDU的PROG页面。

如果欺骗信号非常完美(同时伪造了多颗卫星的伪距,且各卫星间的相对时延符合逻辑),MMR就会认为信号“极其完美”,从而给出极低的EPU。而OPMA的告警逻辑是:如果EPU≤RNP(当前所需导航精度),页面显示导航精度“HIGH”;一旦EPU>RNP,导航精度降级为“LOW”,并立即触发ECAM警告:NAV ACCUR DOWNGRAD。由于欺骗信号逻辑自洽,EPU算法被成功欺骗,无法识别到位置错误,导致OPMA无法触发告警。
对于通告中提到的“飞机触发 NAV FM/GPS位置不一致警戒,23秒后警戒自行消失”,我也从手册上找到了合理的解释:当FMGC刚开始接收到IRS传送过来的虚假GPIRS位置时,FMGC并不是瞬间将FM位置修正到这个错误的GPS位置上,而是将FM位置以一定的速率向GPS位置“靠近”。

在靠近的过程中,由于FM位置跟GPS位置的偏差超过了0.5分经度或者纬度(大约是0.5海里),所以系统触发了“NAV FM/GPS POS DISAGREE”的警告。


直到23秒之后,FM位置靠近到跟虚假GPS位置的经纬度偏差小于0.5分时,警告便自行消失了。
至于“飞机 UTC时间跳回18秒”这一个细节,我分析可能是欺骗者用来伪造GPS报文的计算机的系统时间跟标准UTC时间有一定的误差,所以导致伪造出的GPS报文中的时间比标准时间落后了18秒。FM位置错误和UTC时间跳变,都是这套伪造的GPS信号“同时”带来的两个独立结果,而不是由于时间跳变导致了FM位置错误。
至此为止,通告中所披露的所有细节都有了合理的解释,最后一块拼图完成了,所有的证据链形成了闭环。
如果飞机的FM位置向前漂移了几海里会出现什么情况?
首先,FMGC并不会发现自己被欺骗了,它只会认为是惯导位置漂移了,所以它计算出的预估位置误差(EPE)还是零点零几海里,但是如果你查看惯导位置页面,你会发现三部惯导都显示漂移了几海里;
其次,只要EPE小于RNP,OPMA也就不会发出告警;
最后,由于横侧没有偏移,空管的雷达显示屏上你的飞机仍然在正确的航路上飞行,管制员也无法发现你的纵向位置发生了漂移。
这次榆林的事件就是如此,直到飞机接近FDP点时,飞机提前截获了下降航径,这时候管制员才发现飞机低于了正常的进近程序高度。好在有雷达兜底,管制员及时提醒,才避免了一次可能的可控撞地事故。如果是在没有雷达覆盖的山区复杂地形的机场进行RNP-AR飞行呢?没有雷达监控兜底,一旦飞机位置出现偏差且OPMA失去告警能力,后果可能是非常严重的。