5

【定位不准的烦心事系列】第1篇:谈谈卫星定位的位置干扰

 2 years ago
source link: https://segmentfault.com/a/1190000041444522
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【定位不准的烦心事系列】第1篇:谈谈卫星定位的位置干扰

现代人的生活已经离不开手机,离不开地图,一旦遇到定位不准的问题,就会产生很多问题,而且有些会很严重,比如打车找不到车、外卖找不到顾客,更惨的是开车的时候在高速上转圈圈,多跑个100公里也是有可能的。

大家把定位准确当做一个理所应当的事情,现在定位技术这么发达,北斗3代成功组网,定位怎么还会不准呢?确实,随着时间的推进,定位的精度是越来越高的,但是有一个潜在风险,会导致定位精度下降。

这个风险来自卫星定位欺骗技术的泛滥。卫星定位欺骗,或者位置干扰,是通过地面上的卫星伪基站广播定位信号,让周边的定位设备误以为接受到了真实的定位信号,从而将定位结果设置为干扰者预设的一个位置。之前我们比较多的听说一些人用伪通信基站去群发垃圾短信,而今天,位置干扰也越来越普遍,比如:

  • 驾考作弊:驾校学习都会要求学员上车练习,而且车上有一些设备会记录学员的练习轨迹,作为学员完成学习的证据,但是一些学员不想花时间学车,于是有一些人员会利用伪基站播发伪信号,让车辆记录仪的定位点自动围绕驾校道路行驶,即使这个设备在远离驾校的地点。这样学员不需要花1分钟学车,就可以达到所要求的学车时长。
  • 远程打卡:一些企业会基于轨迹对员工进行工时统计,少数员工可能会通过伪造自身位置的方法作假。
  • 打车刷单:一些司机为了获取接单奖励或者挑单,用作弊办法修改自己的定位点,让平台以为他在某个指定的位置,或者完成了某个订单。
  • 无人机反制:一些企业不希望无人机靠近自己的场所,于是对无人机的位置进行干扰,让其误以为进入禁飞区自动降落,或者偏离航线。
  • 反跟踪:运营车辆上都装有北斗定位装置,一些企业或个人不希望自己的真实位置被发现,于是进行位置干扰。

定位伪造方法有很多种,有些只影响单一的设备(比如在设备上直接修改定位结果),而卫星伪基站的方法,则是技术含量比较高的方法,这个方法可以将附近所有设备的位置全部干扰,具体的影响范围和基站的发射功率有关,小功率的基站只影响附近几米的范围,而大功率的基站,可以影响周边几十公里,甚至在室内接受不到卫星信号的情况下,都会被干扰。

这种干扰能够将定位点定位到任意位置,而且运动速度、方向都可以指定。于是用户可能发现自己的定位点在几千公里之外,或者轨迹成为一个奇怪的形状,比如画圆圈或者沿某条道路在行驶。

位置干扰技术的原理是什么呢?简单来说,卫星定位是通过接收到卫星信号,读取信号报文,获得时间戳,然后用时间戳和本地时间相减计算出和卫星的距离,再求解一个4元方程组(x,y,z坐标以及本地时钟偏移量)。

由于卫星信号的规格是公开的,我们可以将任意的时间填充到信号报文中,再通过特定的载波信号发射出去,就可以让其他设备获得错误的定位信号。最简单的方法,是直接把某个地点的信号录下来,然后在另一个位置回放。要定位到指定位置,只需要用该位置计算出每颗星播发的时间戳即可。而现在已经有人把整个报文编写、载波调制、信号发射这一系列步骤做了封装,成为货架产品,任何人只要买了设备就可以自己输入目标经纬度以及速度方向,甚至是整段轨迹,然后就可以进行位置干扰了。

比如,HackRF是一款设备,可以发射自定义的信号,有一些开源软件可以生产GNSS的软信号,再通过HackRF发射出去,就成了一个伪基站。而且,一个设备可以同时发送多路信号,模拟多颗卫星。

为什么卫星信号这么容易被干扰呢?因为GPS设计之初并没有在安全性上考虑的很严谨,所以报文完全没有加密,用户侧也没有做鉴权,是完全开放的。

后续的伽利略、格洛纳兹、北斗也都遵循相同的设计理念,报文、调制过程都是类似的,都会被干扰。安全性比较好的方式,是军码,这种报文采用专门的频率进行发射,其报文规格、编码方式都是保密的,要读取报文需要专门的秘钥,因此难以破解或者干扰,但这种方法无法解决民用设备的安全性问题。

目前一些芯片厂商,以及高德,在做一些工作去发现这种干扰,从而避免影响到用户。具体的方法包括:

1.载波校验:真信号和假信号同时出现时,可以检查信号强度是否有异常(假信号往往信号很强,才能覆盖真信号)。

2.信号方向校验:检测信号的来源方向,如果不是来自天空,则有异常(对天线有要求)。

3.报文一致性校验:检查报文的每个字段是否和真实信号一致。

4.解算校验:解算后发现某些卫星的距离异常,比如同时收到真信号和假信号。

5.多源校验:结合惯导、网络定位以及其他定位方式校验卫星定位的结果是否异常。

以上这些方法可以在一定程度上降低被干扰的概率,但是还是无法彻底杜绝。对于普通用户来讲,当发现自己的定位结果异常时,如何发现是由于卫星信号干扰导致呢?

1.首先,看自己的定位结果是不是出现在机场、油库、驾校这些地点,或者自己的位置附近是否有油库或者是一些敏感设施。

2.然后,确认自己设备的定位结果来自卫星定位而不是网络定位,如果是安卓用户可以下载一个AndroiTS GPS Test软件,如果显示Fix或ON,则代表卫星定位成功,否则是网络定位。

对于iPhone,下载phyphox,进入GPS页面,如果速度为负说明是网络定位,否则是卫星定位。

3.此外,在明确手机定位方式是卫星定位的情况下,如果周边的多台手机都定位在了错误的位置(至少偏离了200米以上,如果偏离距离不远,有可能是卫星定位点漂移了),则大概率此地被某个周边的伪卫星基站给干扰了。

有些干扰未必是干扰者的本意,他本来可能只想控制某个小范围的设备,但是天线功率设置不合理,信号被扩散到很远的地方。

能够明确有干扰,如何解决呢?只能向政府部门寻求帮助,可以打电话给当地的无线电管理部门,要求排查。无线电管理部门有专门的仪器可以检测伪基站信号,确定位置,并将设备关停。欢迎大家举报非法的无线电干扰行为。

具体电话可参考

https://www.miit.gov.cn/gzcy/cydh/art/2020/art_ba58d28194884d66b0032861a11e0bd2.html


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK