G.O.S.S.I.P 阅读推荐 2026-08-21 空中危机

· 2026-08-21 21:37 · 2 阅读

原创 G.O.S.S.I.P 2026-08-21 21:37 上海

给飞机发一条诈骗短信怎么样?

2024年1月2日,一架从北海道新千岁机场飞往东京羽田机场的日本航空空客A350客机在羽田机场着陆时,与日本海上保安厅的飞机发生碰撞,发生了爆炸。事后调查表明,海上保安厅飞机不听塔台指挥侵入跑道,造成了这起严重事故。不过,塔台的指挥总是正确的吗?今天要介绍的这篇USENIX Security 2026论文 Sliding into the Flight Deck’s DMs: Practical Message Attacks on CPDLC 指出,飞行员有可能会被假的塔台消息欺骗!

和以往的基于模拟信道的语音通信不同,本文的核心研究对象——Controller–Pilot Data Link Communications(CPDLC)是目前广泛使用的数字化空中交通管制(air traffic control,ATC)系统的关键,关于CPDLC的相关细节,大家可以去访问一个(看上去)非常专业的航空知识网站——737 playbook来了解更多知识:

https://737playbook.cn/2024/05/10/cpdlc和ads-c/

CPDLC主要使用两大类数据网络——FANS 1/A和ATN B1,实际上支持ATN B1的机载设备又称之为FANS 2/B(+),而本文研究的正是使用ATN B1的CPDLC通信安全。下图展示的这个攻击示意(太简略),大家都能看得懂,当然也要追问细节:在什么情况下,使用怎样的具体攻击,才能完成对飞行员(或者飞行系统)的欺骗呢?

先要从ATN B1的细节讲起,首先它是一种更现代的通信,从协议栈(下表)看来更为接近互联网的方式:

而且基于ATN B1的CPDLC通信,也需要进行会话建立和身份认证(如下图),不过从这个图里面看出来,这个过程并没有什么基于密码学的安全保障:

本文作者宣称,和此前的针对CPDLC的安全攻击不同,本文提出的攻击是第一个能够实际影响到真实飞行系统、并干扰CPDLC全协议栈的实际攻击。作者首先介绍了一种拒绝服务攻击,其核心是通过注入特定的malicious frame来破坏标准的会话过程,这个部分展示了数字化通信的脆弱之处:如果是模拟信号反而不太容易被这样攻击。这部分内容的细节我们就不去详细介绍了,直接进入到下一个更为有趣的攻击。

作者展示了一个基于软件无线电的地面塔台伪装系统——cpdlc-gs,这个系统完整实现了CPDLC的协议栈。由于CPDLC的协议并没有使用密码学机制,因此这个伪塔台就和以前常见的手机伪基站一样很容易欺骗终端(这里的终端就是飞机上的信息接收装置,如下图)。

这个攻击真正的细节在于如何在物理信道上执行,作者这里炫耀了一下,他们得到了Skyguide和EUROCONTROL两家在瑞士提供相关航空设备服务和测试的企业的支持,并且在ETH Zurich某个屋顶上部署了天线。我们在地图上查了一下,发现这个距离(从苏黎世机场到ETH Zurich)还不算远,因此作者也特别强调了他们的无线电视距传输距离不会影响到正常的机场通信。

从下图中展示的攻击者视角来看,这里用到的软件无线电设备并不罕见,大部分都是可以在市面上买到的,而且作者还在论文中计算了一下发射功率,表示对一架在万米高空(36,000英尺)上的航班发射信号所需要的功率仅仅是10w!如果攻击者能使用25w的发射功率,信号范围可以覆盖到300KM!

作者最后也讨论了一下现实中飞行员是否真的会被伪塔台欺骗,由于现实中飞机上不可能只存在一种通信系统,飞行员不仅会通过语音信道(VHF/121.5 MHz)和雷达系统来获取信息,更重要的是现代航空使用的Traffic Collision Avoidance System(TCAS)系统也会防止碰撞(嗯,又要cue一下羽田机场,8月4日清晨5点44分,东京羽田机场一架从上海浦东起飞的全日空NH968航班遭遇险情,另一架飞机以极快速度逼近,垂直距离仅剩约20米,如果不是TCAS救命,机上所有乘客就全部没命了)。但是这种多重冗余设计也并不是针对CPDLC的防护,如果攻击者使用更复杂的诡计去误导飞行员,那么后果会是怎么样呢?

(别想了,cpdlc-gs不会开源的)


论文:https://www.usenix.org/system/files/usenixsecurity26-ziazi.pdf

跳转微信打开