1 事件
1月12日,就在奥巴马准备发表任上最后一次国情咨文演讲的前一小时,两艘载有10名海军的美国巡逻艇因驶入伊朗水域,被伊朗军方扣押,这一突发事件,给总统的上台演说增加了几分尴尬。第二天,船员们就被伊方释放,但美方似乎没有官员能对偏离航向的原因做出合理解释。国防部长阿什顿卡特只是简单回应到:那些训练有素的船员“迷航”了,调查在进行中。
图:伊朗媒体报道的美国巡逻艇大兵缴械投降画面
2 猜想
该事件虽然没有明确的解释,但不免让人们猜测,可能是伊朗向美方巡逻艇发出GPS欺骗攻击,诱使船只偏离航向。虽然美军军用GPS经过高度加密,常规上劫持GPS系统也非常困难,但对伊朗来说,曾有过先例:2011年,伊方曾声称通过GPS欺骗技术捕获了CIA的一架机密无人机,该无人机原计划在阿富汗降落。
3 GPS欺骗技术的发展
早在2008年,德克萨斯州立大学奥斯汀分校的Humphreys教授已经研发出了业内公认的GPS欺骗攻击系统(GPS spoofer),该spoofer针对导航系统发送虚假信号,几乎可以以假乱真。另外,康奈尔大学的Psiaki教授也在GPS信号探测和欺骗领域进行着深入研究。
在伊朗捕获美国无人机事件不久,美国土安全部便决定对无人机GPS欺骗技术展开调查。2012年6月,Humphreys研究团队受DHS之邀在白沙导弹靶场进行无人直升机攻击测试(TED视频),最终,无人机被GPS欺骗系统成功诱骗。该测试攻击也受到国家立法层面和媒体的关注,后来,Humphreys还受邀出席了美国国会关于无人机安全的讨论。
此后,虽然GPS欺骗攻击的严重性深入人心,但其对导航系统的威胁却鲜为人知。为了预防GPS欺骗,我们首先要了解对手如何破坏GPS信号。
无人机捕获事件和攻击测试明显表明了GPS漏洞的存在,而GPS的其它应用更令人担忧,如:手机信号塔、证券交易所、电网等关键系统都部分或全部使用GPS精准定时。有针对性的GPS欺骗可导致通信中断、金融交易混乱、电力系统瘫痪等。可以相像,最严重的情况,GPS欺骗攻击者甚至可以操纵信号,让飞机或轮船发生相撞。
4 GPS欺骗攻击测试实例-白玫瑰号游艇
Andrew Schofield,白玫瑰号超级游艇船长,在2013年德州SXSW互动会议上听取了Humphreys关于白沙无人机攻击测试的案例细节后,主动邀请Humphreys对白玫瑰号游艇的GPS信号进行测试。Humphreys接受了这项邀请。白玫瑰号游艇主要依靠GPS来定位航行,通过GPS天线和接收器来接收卫星数据。
Humphreys与研究团队携GPS欺骗系统登上了白玫瑰号游艇从摩纳哥到希腊罗德岛的旅程。就在行程的第二天,研究团队便成功利用虚假信号取代了GPS接收器的接收信号,实现了游艇的左向3度偏移。偏移十分轻微,最终,GPS欺骗攻击使白玫瑰号偏出预定航线一公里。
5 GPS欺骗技术原理
Humphreys团队是如何做到的?在通常的运行机制中,GPS接收器通过一次计算与多个卫星的距离来判断自身位置。每个卫星都配置有原子钟,并时刻向外广播其位置、时间和伪随机噪音码(由1023个正负号组成的签名模式, PRN码)。因为所有GPS卫星都使用相同的频率来广播民用信号,这些PRN码用来标识信号发射源,所以非常重要。
PRN码的构成模式也随时重复变换,GPS信号接收器通过其正负号的独特排列方式,来判断和卫星之间的通信传输延迟。GPS信号接收器使用这些延迟,配合卫星方位和时间戳,精确测量出自身位置。
虽然一个GPS接收器使用3颗卫星数据就能定位坐标,但为了得到更好更精确的修正位置,接收器必须同时接收四颗或更多的卫星信号。
GPS网络由31颗卫星组成,并由美国空军操作控制。这些卫星广播民用和军用两种PRN码,其中,民用PRN码是不加密且在卫星数据库中公开的,而军用PRN码是被加密的,只有当GPS接收器具备其秘密密钥才可接收解码数据。
通常来说,即使非军用GPS接收器接收了军用GPS信号,却无法使用这些信号来判断位置。另外,出于安全原因,美国空军频繁变换军用信号接收密钥,因此,只有那些拥有最新密钥的军用GPS接收器才能正常接收使用军用信号。
如果要攻击像白玫瑰游艇上的民用GPS信号接收器,GPS欺骗系统必须判断出在给定时间区域内攻击目标附近的轨道卫星,然后利用公开数据库中的公式,伪造不同卫星的PRN码信息,之后,欺骗系统在攻击目标附近,通过广播与卫星信号相同的PRN码值信息,欺骗攻击目标的GPS接收器注册接收这些虚假信号。
有一种艺术性的攻击技巧“Drag-Off”,可以隐秘地覆盖掉真实的GPS信号。要做到这一点,在GPS接收器获取这些受骗信号之前,欺骗系统必须逐渐增加虚假信号功率。如果虚假信号频率增加得太快,也会引起怀疑。一旦GPS接收器锁定并接收了这些虚假错误信号,攻击者可以调整接收器,舍弃真实信号,更换成其它新的坐标集。
6 GPS欺骗防御技术
幸运的是,来自美国康奈尔大学的Psiaki教授和他的学生团队已经研发出反GPS欺骗的防御系统。事实上,Humphrey团队在白沙靶场进行无人机攻击测试的同时,Psiaki也在现场对一个早期的GPS防御模型进行测试,该模型经过数小时的离线计算可以成功检测每次GPS欺骗攻击。
防止GPS欺骗攻击,有三种主要方式:加密、信号失真检测、波达方向(DOA)感应。单独一种方法不可能实现完全防御。
加密:
加密方式为使用者提供了空中认证信号。举个例子,就像民用GPS接收器获取了加密的军用PRN码后,将不能完全可知或解码,当然,GPS欺骗系统也不可能做到提前伪造合成加密信号。如果要认证每个信号,那么每台民用GPS接收器将要携带类似于军用接收器上的加密密钥,而且要保证攻击者不能轻易获取到这些密钥。
或者,接收器可以先接收信号中的不可预测或解码的那部分,之后,等待发送方广播有数字签名的加密密钥来验证信号源。然而,这种方式会产生短暂延迟,而且,还需要掌握GPS网络的美国空军修改信号广播方式,另外,民用接收器制造商也要重新改变设备构造。
当然,另外一种简单方法就是,在军用加密信号中“加载”民用信号。目前,军用信号即使无法被解码和用于导航,但已经可以被民用接收器接收,民用接收器通过观察接收到的PRN码噪音痕迹,能间接验证信号发射源。这种策略还需依赖另外一台安全的民用接收器,这台接收器用以区分验证多个信号的噪音痕迹,否则,攻击者一样可以制造虚假的痕迹。
加密技术的缺点是,所有的加密方式都容易被专门的系统进行信号拦截、传输延迟、信号重放等攻击,这种专门的工具称为信号模拟干扰器Meacon,它可以使用多种天线来模拟不同距离的信号延迟,通过调整延迟距离,攻击者可以轻易欺骗任何GPS接收器。
信号失真检测:
另一种防御GPS欺骗的方法是信号失真检测,当GPS信号正在被欺骗攻击时,这种方法可以根据一个短暂可观测的峰值信号来警告用户。通常,GPS接收器会使用不同策略来追踪接入信号的振幅强度,当一个模拟信号被传输发送时,接收器上显示的是原始信号和假信号的合成,而这种合成将会在Drag-off期间的振幅中出现一个峰值信号。
波达方向感应:
Psiaki在白沙靶场演示的欺骗探测防御系统就是使用这种技术,该系统主要技术点在于,它需要几个小时的脱机数据处理计算来检测欺骗攻击。
FB百科:
波达方向(Direction Of Arrival)估计,又称为谱估计(spectral estimation)、波达角(Angle Of Arrival)估计。一个信源有很多可能的传播路径和到达角。如果几个发射器同时工作,每个信源在接收器处形成潜在的多径分量角度。因此,接收天线能估计出这些到达角就显得很重要,目的是估计出哪个发射器在工作以及发射器所处的方向。
由于真实的GPS信号来自于多颗卫星,因此在GPS接收器附近会形成多种角度。而在真实的GPS欺骗攻击场景中,同一时间只能在一个地方,通过伪造GPS接收器附近卫星的PRN码来制造虚假信号,并且,这些不同的信号将会从一个天线进行传播扩散,它们到达GPS接收器附近时,产生的是同一个方向的角度。所以,波达方向感应正是利用了这样一种事实和原理,如果GPS接收器附近的同一方向,产生了不同的信号,那么,GPS欺骗攻击可能正在进行。
当然,如果能分别感应到每个信号的到达方向,就可轻易确定是否正遭受GPS欺骗。为了验证这个想法,最近,Psiaki的实验室利用干涉检测原理,构建了一种使用软件和两个天线的GPS欺骗发现系统。具体来说,它使用载波相位作为检测属性,分辨信号在不同天线之间的变化区别,来确定信号的到达角度(方向)。
载波相位是指在信号接收时刻,卫星信号的相位相对于接收器产生的载波信号相位的测量值。载波相位检测是计算GPS信号多普勒频移周期的方法。多普勒频移发生于信号发射器与接收器有相对移动时。一个经典的例子就是:当消防车经过并远离你时,警笛声音的频移从高到低。 GPS卫星与GPS接收器之间会产生相对运动,并且这种相对运动对每个卫星都不同。
7 GPS欺骗攻击检测防御实例-白玫瑰号游艇
在Schofield的要求下,Psiaki团队在2014年6月白玫瑰号巡游意大利时测试了这个检测防御系统。欺骗攻击由Humphreys团队策划,使船偏离行驶在前往利比亚的航道上。Psiaki的GPS欺骗检测器通过测量来自多个卫星和欺骗系统的7个GPS信号载波相位,在攻击一开始,就向船员发出了欺骗发现警告。当攻击开始后,欺骗检测器发现,不同的变化在真正的载波相位差中消失了。至利比亚航道的Drag-off欺骗,在开始后约125秒进入攻击,而Psiaki的检测系统在其中首个循环检测的第6秒内就捕获到了攻击。
8 几种欺骗防御技术比较
今年初,GPS制造商U-blox在其M8系列的商用导航系统中通过更新固件内置了欺骗防御装置。该公司没有公布欺骗检测的方法,但估计可能是信号失真检测,因为这种方法最容易固件更新来实现。
但是,基于失真检测的方法可能在攻击早期不能及时捕获欺骗,相对来说,加密方法是非常有效的(当然这得详细咨询美国空军),但这需要GPS信号广播方式在物理构造上做出改变,当然,或许还需要高带宽通信链路。目前,欧洲伽利略导航卫星系统的设计师们已经认可并测试了这种方法,但是,这样的加密信号系统仍然易受信号干扰攻击。
另外,波达方向感应比失真检测成本更昂贵,因为它需要多个大型天线设备。而且,有些攻击仍可以欺骗它:如果欺骗攻击系统的目标只接收一到两个GPS信号,而不是附近范围内所有卫星信号,那么,在欺骗防御系统关闭后,有些载波相位差甚至在攻击后仍然存在。
9 结语
最终,我们认为信号失真检测和波达方向感应的综合可能是最好的欺骗防御方法。失真检测应用于攻击初始阶段,而波达方向感应则提供第二道阶段防御。
但是,这样的综合解决方案对大多数普通用户来说,稍显昂贵,而且,一般用户并不需要欺骗防御系统。当然,希望这是个安全的赌注,当美国驾驶员开车寻找时髦餐馆或载小孩去看棒球比赛时,也许伊朗特工对这种GPS欺骗根本不感兴趣。
以上研究仅仅是信息物理网络安全(CPS)的一小部分。想像一下,在拥挤的高速公路上,黑客能做到发送虚假雷达信号到高档汽车的自动剎车系统,让它来个急刹车吗?答案是肯定的,令人惶恐的。在信息安全测试研究中,红队实施系统攻击,而蓝队负责防御侦察,这种测试方法对我们的工作非常有用,在某些方面来说,我们亟需加强防御能力建设。
Humphreys 目前还在德州大学奥斯汀分校担任航天工程和工程力学系副教授。联邦调查局特工曾多次参观了他的实验室,并向他咨询有关GPS欺骗攻击的事。