2

[原创]车载导航GPS欺骗

 2 years ago
source link: https://bbs.pediy.com/thread-271306.htm
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.

[原创]车载导航GPS欺骗-智能设备-看雪论坛-安全社区|安全招聘|bbs.pediy.com

[原创]车载导航GPS欺骗
2022-1-27 10:33 3988

声明:文章涉及内容仅供学习研究参考,请勿违法使用!

先图后码。根据车载导航地图显示,目前车辆行驶在台北忠孝路五段,时速为70到90公里每小时。

 静态定位信息如下图所示:

508256_3VEXDRC3M5MNGBQ.jpg

 而我的真实位置,其实是在北京:

508256_B4ZEUNHFGSGFUV8.jpg

所以前两张图片显示的定位信息和速度是不真实的,是通过GPS欺骗实现的。要想了解GPS欺骗的原理,需要先解释一下GPS卫星定位的原理。关于GPS卫星定位的原理,知乎上有一篇通俗易懂的文章,《5分钟了解GPS定位原理》[1],大致思路就是通过多颗卫星构造距离、速度和时间相关的多项式,然后求解坐标值。定位的前提是被定位的对象需要具备接收GPS信号的能力,这种能力一般通过GPS传感器提供,比如手机和车载导航系统均装备有GPS传感器。

换言之,GPS传感器通过接收卫星信号来实施定位。因此,如果我们能够模拟卫星信号,将模拟的信号通过信号发射装置发送给GPS传感器,那么就有可能实现欺骗GPS传感器获取虚假的位置信息,这种技术即SDR(软件无线电,Software Defined Radio)[2]。能够实现SDR的主流开源硬件产品包括usrp、HackR和bladerf等等,其中usrp功能和性能比较强大,HackR使用最为方便,因此我们的实验使用HackRF进行。

508256_SZGFCPA9NC447TW.jpg

 HackRF One

HackRF的工作模式为半双工模式,即同一时间只能接收或者发送信号,不可同时进行。其工作频率范围为1 MHz到6 GHz,通过USB与PC相连。其他相关特性如下列表所示:

  • half-duplex transceiver

  • operating freq: 1 MHz to 6 GHz

  • supported sample rates: 2 Msps to 20 Msps (quadrature)

  • resolution: 8 bits

  • interface: High Speed USB (with USB Micro-B connector)

  • power supply: USB bus power

  • software-controlled antenna port power (max 50 mA at 3.3 V)

  • SMA female antenna connector (50 ohms)

  • SMA female clock input and output for synchronization

  • convenient buttons for programming

  • pin headers for expansion

  • portable

  • open source

通过HackRF One实现GPS欺骗的原理如下图所示:

 HackRF发射GPS卫星信号的过程描述如下:

1)PC端SDR信号处理软件生成GPS信号数据,经由系统内核、USB传送至HackRF;

2)HackRF收发控制模块将数字信号转换为模拟信号,并控制信号收发模块发送信号;

3)模拟信号通过天线发送给附近的GPS传感器。

在了解了基本的原理之后,我们接下来开始进行本次实验。

为了模拟车辆行驶状态下连续接收的GPS信号,我们需要首先使用GoogleEarth生成运动轨迹,接着使用StatGEN处理路径数据,最后借助gps-sdr-sim [3]工具生成静态GPS数据。

508256_M8UQXFT3BCSZM38.jpg

thread-271306.htm

使用GoogleEarth生成轨迹 

使用GoogleEarth生成轨迹,并导出为kml格式数据包,接着将kml格式数据导入SatGEN,生成MNEA格式文件。

508256_659A2F5QAGMV6XS.jpg

 最后使用gps-sdr-sim生成动态GPS信号数据:

thread-271306.htm

 得到GPS信号数据之后,使用HackRF发射GPS信号:

 这个时候,我们靠近车辆,打开导航,等待1分钟左右之后,地图提示切换了城市:

thread-271306.htm

 接着导航箭头开始随着预设的轨迹移动:

 至此实验成功,我们成功地把车“开到”了台北市。关于使用HackRF实现GPS欺骗的成功率,包含了多种因素。其中两个最重要的因素包括:

1)系统使用的定位手段是否单一,考虑到导航APP可能使用GPS、基站和其他定位系统混合定位,进行实验时需要将导航APP设置为仅GPS定位模式;

2)HackRF是否使用了时钟模块,时钟模块决定了信号发送频率的精准程度,对实验的成败也是至关重要的。

对于时钟模块的对比实验结果总结如下:

1)在不使用时钟模块的情况下,实测手机高德地图、车载高德地图均欺骗失败,只有咕咚运动欺骗成功,并且成功的概率也是极低。

使用HackRF欺骗咕咚运动 

 2)在使用时钟模块的情况下,成功率接近百分之百。究其原因,在不使用时钟模块的条件下,HackRF发送信号的频率可能不十分精准,因此GPS传感器接收到信号之后可能无法正常解析GPS信号,因此时钟信号可能是HackRF进行GPS欺骗的关键。

 将时钟模块连接到HackRF上之后,可以通过如下命令验证时钟是否正常工作:

 如果输出为0x1,则表示时钟工作正常。

参考文章

https://zhuanlan.zhihu.com/p/58518430

https://zh.wikipedia.org/wiki/%E8%BD%AF%E4%BB%B6%E6%97%A0%E7%BA%BF%E7%94%B5

https://github.com/osqzss/gps-sdr-sim

【公告】看雪团队招聘安全工程师,将兴趣和工作融合在一起!看雪20年安全圈的口碑,助你快速成长!

最后于 2022-1-27 10:35 被kxliping编辑 ,原因: 调整图片

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK