欺骗GPS
2016年1月份,就在美国总统奥巴马发表最后一次国情咨文的前几个小时,两艘美国海军巡逻艇竟然驶进了伊朗海域。伊朗军方拦截了这两艘船只并扣押了10名美国水兵,这发生在奥巴马即将登台发表演讲之际,着实尴尬。¶第二天,这些水兵被释放,但似乎没有一名军方官员能解释为何船只偏离了既定航线。美国国防部长阿什顿•B•卡特只表示这些受过训练的高素质船员被“误导”了。调查仍在进行当中。¶由于没有明确解释,人们开始猜测,或许是伊朗发出了GPS假信号,以引诱船只行驶到另一条航线上。伊朗要劫持GPS系统(军事GPS信号经过了重重加密)并非易事,但这个想法也并非全无可能。2011年,伊朗曾表示,通过欺骗无人机的GPS,使无人机降落在伊朗而非阿富汗,从而俘获了一架极其机密的美国中央情报局(CIA)无人机。¶在无人机俘获事件的3年之前,本文作者汉弗莱斯(Humphreys)开发出了唯一被公认、能够进行这种操作的GPS干扰欺骗机(GPSspoofer)。对导航系统来说,很难分辨出真正的GPS信号以及来自干扰欺骗机的假信号。同时,本文的另一位作者普西亚基(Psiaki)也在努力研发探测器,用以捕捉正在实施欺骗行为的干扰欺骗机。
在伊朗的刺激下,无人机事件发生后不久,美国国土安全部便决定研究GPS干扰欺骗行为。2012年6月,国土安全部邀请汉弗莱斯所在的得州大学奥斯汀分校团队去攻击一架位于新墨西哥州白沙导弹试验场的无人直升机。该团队的任务是向无人机的GPS发送假冒位置数据,迫使在空中盘旋的无人机降落。GPS干扰欺骗机告诉无人机它正在爬升,导致无人机进行了自动调整——差一点撞进沙地里。
一位操作员采用手动驾驶取代了被欺骗的自动驾驶装置,才避免了灾难的发生。不过,白沙无人机被黑事件还是成为了全美的一大新闻,引起了立法者们的慌乱。很快,汉弗莱斯就因无人机安全问题受到了美国国会相关委员会的传召。
自那之后,GPS欺骗对重要导航系统的可信度形成了重大威胁,而我们对这种欺骗却知之甚少。为了防止被骗,我们首先需要明白敌人是如何伪造GPS信号的。然后,我们必须尽快采取行动,找出方法,提醒GPS用户警惕这些假冒信号。
无人机事件明确指出了GPS的弱点,但是我们认为,其他目标更加令人担忧。手机信号塔、股票交易所和电网都要(至少也是一部分)依靠GPS进行精确授时。一场精心策划、无缝配合的欺骗可以中断通信,扰乱自动金融交易、引发具有严重后果的断电。最坏的情况是,干扰欺骗机的操作者可以控制飞机或船只,引发撞机(船)、趁乱抢劫,甚至绑架重要人士。
2013年,安德鲁·斯科菲尔德(AndrewSchofield)在西南偏南互动大会上听了汉弗莱斯对白沙无人机测试的详细报告后,对这类情况表示了担忧。会后,斯科菲尔德走到汉弗莱斯身边,递上了他的名片,上面写着他的职务“德拉齐斯的白玫瑰船长”。接着他问道:“想去捕获更大的猎物吗?”
名片上所写的“白玫瑰”是一艘65米长的超级游艇,依靠GPS在公海安全航行。这艘价值8000万美元的游艇为一位英国房地产大亨所有,船上收藏有早期绘画大师们的作品,还有用大理石和黄金装饰的浴室。斯科菲尔德是这艘游艇的船长,邀请汉弗莱斯去测试一下他所信任的游艇是否会被欺骗。
起初,汉弗莱斯觉得这个邀请听起来太好了,甚至不像真的。他花了几个小时验证斯科菲尔德的身份,看他是不是一位经验丰富的海员,是否是职业游艇协会的会长。不过,汉弗莱斯还是怀疑斯科菲尔德别有用心。为了判定这位船长的目的,汉弗莱斯假装随意地提到,他的干扰欺骗机会配备“有毒软件药丸”,使它在计划测试的时间和地区以外不起作用。斯科菲尔德连眼睛都没有眨一下,他说,这听起来像是个明智的防范措施。
消除疑虑后,汉弗莱斯开始计划地中海之行,测试干扰欺骗机能否准确地生成一系列谎言,让“白玫瑰”脱离航线。攻击不得不在国际海域发起,这需要获得英国和爱尔兰灯塔局(GeneralLighthouse Authorities)的批准;否则,即使纯粹出于研究目的,篡改GPS信号也属于犯罪。
经过数月规划,2013年6月,“白玫瑰”终于从摩洛哥出发,驶向希腊罗兹岛。游艇顶上安装了两条GPS天线,向驾驶台上的一对GPS标准接收器馈送收到的信号。船上还有汉弗莱斯的干扰欺骗机,包括价值约2000美元的软硬件,其中有一台无线电频率接收器、发射器以及数字信号处理芯片等。
在航行的第一阶段,游艇的GPS接收器尽职地记录从几十颗卫星收到的位置信息,就像以往的航行那样。然后,航行第二天,汉弗莱斯团队用欺骗信号替换了驾驶台收到的信号,指出船只航线正在向左偏移3度。
他们是怎么做到的呢?在正常情况下,GPS接收器会通过同时计算其与多颗卫星的距离来推断自己的位置。每颗卫星都载有原子钟,能够广播它的位置、时间和伪随机噪声码(PRN码,其周期为1毫秒,码长为1023比特)。这些代码可以确认信号来源,比如,发自卫星A而不是卫星B。这是很有必要的,因为所有GPS卫星都是在相同频率上广播民用信号的。
PRN码的构成模式也随着时间重复,它们独特的加减安排使GPS接收器可以用它们来判断卫星和接收器之间的信号传输延迟。接收器利用这些延迟以及卫星位置和时间戳,通过三角划分来计算它的准确位置。要获得准确的方位,接收器必须一次接收4颗甚至更多颗卫星的信号——只需3颗就能算出坐标,但需要第4颗来使接收器上廉价且易产生偏差的时钟与精准的原子钟进行同步。
总体来说,常用的、美国空军运营的GPS网络由31颗导航卫星组成。这些卫星实际会广播两套PRN码:一套民用,一套军用。民用PRN码没有加密,公布在一个公共数据库中。军用PRN码进行了加密,这些代码采用的模式,只有在接收器获得密钥的情况下才能预测。这个密钥不是用来解码的,而是让接收器在代码到达之前知晓代码是什么。虽然非军用接收器能够收到军用GPS信号,但它们无法预知这些信号,也无法用信号来计算它们的位置。出于安全考虑,美国空军频繁地更改军用信号的密钥,只有更新过密钥的接收器才能使用。
要攻击“白玫瑰”游艇上这样的民用接收器,干扰欺骗机的操作者需要根据卫星轨道弄清楚某一时刻哪些GPS卫星会出现在其目标对象的周围。然后,干扰欺骗机会使用公共数据库中的可用公式,伪造每颗卫星的PRN码。接下来,干扰欺骗机会立刻广播出载有与所有邻近卫星相同的代码的微弱信号。GPS接收器会记录下这些微弱信号,并认为它们就是那些卫星所发出的更强的真实信号的一部分。
接下来就是精心策划的“拖拽”(drag-off)步骤了,攻击者必须神不知鬼不觉地置换真正的信号。要达到这个目的,干扰欺骗机操作者需逐步增强假冒GPS信号的强度,直到接收器完全接收这些新信号。如果信号增强得太过突然,接收器以及船上的导航员就可能会发现出了问题。一旦接收器搭上了假冒信号,操作者便可以甩掉真信号,把干扰欺骗机和接收器调整到一套新的坐标上。
回到“白玫瑰”上,在攻击一开始,汉弗莱斯团队欺骗了游艇接收器,使其记录下游艇向左偏移了3度,船员们注意到了这一明显但并非真实的3度偏移。不过,由于这次偏移十分微小,船员们认为可能是水流、侧风等自然力量引起的,所以他们将船微微向右调整了一下。而实际上,正是这次修正将他们带离了航向。
由于船员们的操作,“白玫瑰”偏离了既定航线1公里,斯科菲尔德尚不知情,直到约1小时后汉弗莱斯取消了欺骗行动。对于由导航系统而非船员来修正航向的自动驾驶船只,也可以实施这种做法。
婉转地说,斯科菲尔德很沮丧。他和船员们依靠GPS来保证全船人员的安全——比如远离暴风雨,在晚上或雾天避开浅滩和水下危险。虽然汉弗莱斯的干扰欺骗机对一般黑客来说太复杂,很难进行配置,但许多国家都能开发这项技术(有传言说朝鲜在“野外”实施了欺骗),甚至一些个人也能开发。
幸运的是,普西亚基和他康奈尔大学的学生一直在研究反欺骗防御。事实上,当汉弗莱斯团队在攻击无人机的时候,普西亚基也在白沙测试欺骗探测器的早期原型。该原型成功探测到了每次攻击,但都是经过几个小时的离线计算才做到。
普西亚基能制造出一个实时的欺骗探测器吗?如果能,斯科菲尔德希望能在“白玫瑰”上进行测试——而且是尽快。
保护GPS不受欺骗的方式主要有3种:密码技术、信号失真检测以及到达方向探知。没有任何一种单一方法能够确保阻止每一次欺骗行为,但普西亚基团队发现,将这些方法结合起来就能提供一种合理安全的应对措施,而且可以进行商业化部署。
密码技术提供了对空中传输的信号进行验证的一种方式。例如,民用接收器可采用全部或部分不可测的PRN码,类似美国军方使用的那种,这样,干扰欺骗机就无法事先合成代码了。但要验证每个新信号,每台民用接收器都需要有一个类似军用接收器的那种密钥,而要让攻击者无法获取这些广泛分布的密钥是一件比较困难的事情。
或者,接收器也可只记录下信号不可预测的那部分,等待发送者广播一个经过数字签名的密钥来验证它的来源。但是,这种方式需要美国空军修改GPS信号的广播方式,也需要民用接收器制造商改变这些设备的制造方法。此外,还会有些延迟,意味着导航更新无法得到即刻验证。
另一种更简单的保护方法是让民用信号依附于加密的美国军方信号。虽然民用接收器无法解密军方信号并用它进行导航,但依然能收到并记录下军方信号。一旦民用接收器记录下这些信号,它们就可以观察PRN码的噪声踪迹,虽然它们无法推算出实际代码是什么。这意味着,这些接收器可以通过寻找民用信号背后经过加密的军方信号,来验证民用信号的真伪。不过这种策略还需要第二台位于一个安全地点的民用接收器的帮助,用来验证信号里的踪迹应该是什么样的。否则,干扰欺骗机可以生成与任何民用信号相对应的假冒踪迹。
但密码技术的缺点是,只要利用特殊系统,所有密码技术都很容易受到攻击。这些特殊系统可以拦截任何信号,延迟它们,并用更大的功率进行重新广播,诱导接收器从合法信号切换到延迟信号。这种装置被称为虚造干扰设备,可利用多条天线实现不同长度的延迟。通过改变长度,干扰欺骗机的操作者可以选择如何破坏一台GPS接收器。
另一种防御办法是失真检测。当GPS信号被欺骗的时候,会出现一个简短但可观察到的尖头信号(blip),提醒用户有可疑活动。一般来说,GPS接收器会用几种不同策略来追踪接收信号的振幅尖峰。在假冒信号发出时,接收器会看到真实信号和假冒信号的结合体,在拖拽期间,这种结合体使振幅轮廓产生了一个尖头信号。
失真检测需要增加更多信号处理通道,可能的话,再增加一些硬件,这样用户就可以更为精确地追踪信号振幅轮廓的情况了。这一技术寻找的是非自然特征,比如振幅尖峰超出一定高度或宽度。不过,失真检测器只有在攻击开始和拖拽结束(这个过程可能只持续几分钟)期间捕获到信号的情况下才能工作。
最后一种探测方法是到达方向测知(direction-of-arrivalsensing)。普西亚基在白沙试验场演示时使用的原始欺骗探测器利用的就是这种技术,但是,我们可能还记得,它需要几个小时的离线数据处理来检测欺骗。斯科菲尔德脑中依然清晰地记得“白玫瑰”的改道事件,他想知道有没有可能在船上安装一个可以实时检测的探测器。
到达方向测知技术的原理是,一台干扰欺骗机在一个时间点只能出现在一个地方。如前文所述,干扰欺骗机会按照操作者的意愿,模仿每颗GPS卫星传输一个假冒信号,仿造目标周围每颗卫星的PRN码。关键点在于,干扰欺骗机从一条单一天线发出所有信号,也就是说信号来自同一个方向。而真正的GPS信号却是来自多颗卫星,因此是来自多个角度。
如果能独立检测每个信号来自哪个方向,就能很容易地判断是否受到了欺骗。为了测试这个想法,普西亚基实验室近来建立了一个系统,利用软件和两条天线将干扰度量原理应用到了欺骗探测上。具体来说,就是通过测量一个被称为载波相位的属性来辨别两条相邻天线间信号的差异,然后判定这种差异在信号到达角中的体现。
载波相位监控是一种对抗GPS信号多普勒频移周期的方法。当信号发射源相对接收器进行运动时,就会发生多普勒频移。想象一下消防车从你身边移动的经典案例:随着消防车经过,警笛频率从高到低发生变化。GPS卫星相对于GPS接收器而言也在运动,并且每颗卫星的相对运动都是不一样的。
所以在普西亚基的探测计划里,探测器会测量接收信号的载波相位。如果探测器两条天线之间的载波相位差从一颗卫星到另一颗卫星变化很大,那就说明信号来自多个方向;而如果系统探测到载波相位差变化很小或是没有变化,那就意味着它接收的信号来自一台干扰欺骗机。
初期测试看起来很有前景,但是却遇到了一大阻碍——为了计算载波相位变化,信号处理必须进行离线计算。问题就在于,我们原来的程序使用的编程语言无法与GPS接收器所采用的软件进行实时沟通。然而,2014年4月,汉弗莱斯在得州大学奥斯汀分校的团队提供了得以解决操作难题的一个关键内容,他们证明,GPS软件无线电(其中的混合器、滤波器和调制器/解调器等重要元件是利用软件而非硬件生效的)可以实现对普西亚基离线代码的实时使用,仅有6秒延迟。软件GPS无线电通过脚本命令基本实现了离线代码的实时处理,因此不需要费劲将代码转换成实时编程语言。
在斯科菲尔德的请求下,2014年6月“白玫瑰”在意大利航行时,我们测试了这种防御办法。汉弗莱斯精心策划的欺骗性攻击让游艇以为自己正在以超过900海里/小时的速度、直线从海平面以下23公里的深处穿过意大利和西西里岛驶向利比亚!这是多么荒谬!
普西亚基的欺骗探测器通过测量分别来自卫星和干扰欺骗机的7个GPS信号载波相位,在攻击一开始便提醒驾驶台的船员警惕欺骗。攻击刚刚开始,探测器便注意到它期望看到的真正载波相位差变化突然消失了。这场欺骗从开始到实施“拖拽”总用了125秒,不过普西亚基的探测系统在6秒内就发现了攻击。
今年初,GPS制造商U-blox在其M8系列导航系统的固件更新中率先发布了针对消费级GPS接收器的欺骗防御功能。这家瑞士公司并未透露有关其部署的探测方法细节。不过,我们很肯定,是失真检测,因为这是最容易通过固件升级实施的方法,只需要一些额外的信号处理算法即可。
但是如果无法尽早捕获到信号,基于失真的方法就可能无法发现攻击。密码技术很有效(问问美国军方就知道了),但要么需要对GPS信号的广播方式作大量改动,要么需要额外的高带宽通信链路。欧洲的新型全球卫星导航系统“伽利略”的缔造者们采用了这种办法,并在他们的系统广播中对民用数字加密信号进行了测试。不幸的是,这种系统依然很容易受到虚造干扰设备的攻击。
到达方向测知是我们选择的方法,但实施起来要比失真检测贵得多。这种方法在使用多天线的情况下是最有效的,然而很难在手持设备中应用大型阵列。而且部分欺骗也会使它失去作用:如果干扰欺骗机的目标只是一两个GPS信号,而非范围内每颗卫星的所有信号,那么即使在攻击结束后,有些载波相位差变化也会继续存在。
最后,我们认为,最强大的欺骗防御办法可能是将失真检测和到达方向测知结合起来。在攻击初始阶段,失真检测将发挥作用,到达方向测知则提供了第二道防御。
然而,我们无法保证一般用户能负担得起这类组合解决方案。商用开发者必须通过巨大的销售量来分摊费用,而大多数消费者却不需要欺骗保护。百分之百可以确定,伊朗特工没有兴趣去干扰美国司机寻找受欢迎的新餐厅,也不愿意干扰他们开车带孩子们去打棒球。
对于像斯科菲尔德那样财力雄厚并面临真正风险的人来说,至少有一家制造商已经在向他们销售容易升级且涉及到达方向算法的双天线接收器。制造商或许很快就能在市场上销售防欺骗产品了,每台售价约1万美元。即使不知道附近有没有“偷马贼”,商业飞机、大型船只运营商以及自动化股票交易商也应该都愿意花这些钱来“锁好马厩”换取安心。
同时,对斯科菲尔德来说还有一条好消息,那就是,要完成欺骗,攻击者必须距离目标足够近以判断它的精确位置,记录下目标能看到的GPS卫星,并以可视直线线路传输假冒信号。好在“白玫瑰”视野外还没有船只能执行这项黑客攻击。
伪造物理信号对网络物理安全提出了一个巨大挑战,而这项工作只是其中的一小部分。黑客会向高端汽车的自动刹车系统发送虚假雷达信号,诱使它在车流密集的高速路上紧急刹车吗?这些可能性在增长,也令人担忧,值得注意。我们认为,红/蓝队开发战略(红队负责攻击系统,蓝队负责防御)对其他处理传感器欺骗的任务很有用,就像我们发现这种办法在我们的工作中很有用一样。我们支持蓝队。
作者: Mark L. Psiaki , Todd E. Humphreys
>>>本文为原创,转载请回复。<<<
往期推荐