当前位置:   article > 正文

车联网安全之GPS欺骗_satgennmeafree

satgennmeafree

随着车辆GPS技术的广泛应用,其在导航、交通监控等方面的关键性日益凸显,与之相关的安全性问题也备受关注。GPS欺骗便是其中一种重要的威胁手段。

本文旨在使用模拟GPS欺骗设备,模拟不同的GPS攻击以评估其对车辆定位系统的影响。通过这个实验,我们希望深入了解GPS系统的脆弱性,为提升车辆GPS安全性提供实质性的参考,实验结果将有助于揭示潜在的攻击影响,从而促进更加有效的安全措施的研发和应用。

 

Part  01  什么是GPS欺骗?

GPS欺骗是指通过修改GPS信号,故意误导车辆的定位系统,可能对导航、交通管理和整体安全性产生潜在威胁。

GPS欺骗可分为静态GPS欺骗和动态GPS欺骗

静态GPS欺骗是一种通过修改、模拟或屏蔽GPS信号,误导车辆在停车或缓慢行驶状态下的定位系统的攻击。

动态GPS欺骗强调了攻击者不仅仅关注车辆的静态位置,还关注在车辆行驶过程中动态地影响其定位。这种攻击方式可能导致更严重的后果,因为它直接威胁到车辆的实时安全性

Part  02  静态GPS欺骗实验

实验环境

硬件平台:HackRF One、GPS外部时钟、700-2700MHz天线

软件环境:kali运行HackRF环境

GPS终端:使用iphone 6S、小米mix2s等各品牌手机以及某品牌车型车机系统

实验准备

1、gps-sdr-sim项目

这个项目的原理是gps-sdr-sim能根据指定的卫星信息文件、坐标信息、采样频率等参数输出二进制的信号文件,将这个二进制文件导入到USRP或者bladeRF之类的无线电射频设备上就可以实现GPS的伪造。
(1)下载GPS仿真器代码

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

(2)gcc编译:

gcc gpssim.c -lm -O3 -o gps-sdr-sim

2、获取坐标

项目页面上给了三种不同的输入坐标信息的方式:

gps-sdr-sim -e brdc0190.17n -l 29.6562801500,91.1257504400,100 -b 8

-e 指定RINEX格式GPS导航电文文件

-l 指定经纬度和海拔

-b 指定采样精度(hackrf为8,blader为16)

此刻采用的是布达拉宫的经纬坐标。

1702368458_657814ca6ae34cd133776.jpg!small?1702368460414

3、连接hackrf设备

GPS外部时钟如下图所示安装在HackRF板上:

1702368478_657814de0f595f842a642.jpg!small?1702368480710

输入hackrf_debug --si5351c -n 0 -r 可以判断时钟模块是否安装正确,0x01即为安装成功。

1702368493_657814edc9288cc7c7066.jpg!small?1702368495406

查看设备是否被识别,成功识别输入hackrf_info会打印出hackrf的信息:

1702368509_657814fdb5570ddd07746.jpg!small?1702368511749

生成GPS数据

使用-l参数指定之前获取的坐标29.6562801500,91.1257504400,-b参数指定二进制文件格式,执行文件后默认会生成300秒GPS仿真数据。

./gps-sdr-sim -e brdc0190.17n -l 【坐标】 -b 8

等待命令执行结束,文件夹中多了一个gpssim.bin文件,这个文件内容就是模拟生成的GPS数据

1702368579_65781543861cd1197ce65.jpg!small?1702368581138

发射GPS数据

hackrf_transfer 将生成的基带信号重新生成为GPS信号。
指定GPS数据,-f指定发射频率,指定频率为1575420000 即民用GPS L1波段频率,-s指定采样速率,指定采样速率2.6Msps,-x指定发射功率,开启天线增益,指定TX VGA(IF)为0、10、20不等(为了限制影响范围,最大为47,尽量不要使用),最后开启重复发射数据功能。

hackrf_transfer -t gpssim.bin -f 1575420000 -s 2600000 -a 1 -x 47 -R

-f:中心频率,单位 Hz

-s:采样率,单位 Hz(4/8/10/12.5/16/20 MHz,默认 10 MHz)

-a:设置功放(1 表示开启,0 表示关闭)

-R:重复发送模式(默认为关闭)

1702368601_6578155908e63c636598b.jpg!small?1702368602770

实验结果

找了小米mix2s、苹果6s进行GPS欺骗实验。小米mix2s未成功 ,苹果6S欺骗成功。尝试了百度、腾讯、高德等地图,均可实现欺骗,微信可以共享虚假位置信息。

也可通过carplay上传至车机中,汽车上传至手机的位置信息已经欺骗成功了。

Part  03  动态GPS欺骗实验

实验环境

硬件设备:

HackRF

HackRF 连接数据线

外部时钟模块(TCXO 时钟模块)

天线(淘宝套餐中的 700MHz-2700MHz 吸盘天线)

软件应用:

hackrf-tools

[Google Earth Pro](https://www.google.com/earth/versions/#earth-pro)

[gps-sdr-sim](https://github.com/osqzss/gps-sdr-sim)

[SatGen Trajectory Generation]

(https://files.cnblogs.com/files/k1two2/SatGenNMEAFree.zip)

操作流程概述

用 Google Earth Pro 制作运动轨迹坐标 kml 文件

前往 NASA 官网下载 GPS 导航电文

用 gps-sdr-sim 将 GPS 导航电文和运动轨迹坐标 kml 文件生成采样文件

hackrf_transfer 发射 GPS 欺骗信号

运动轨迹坐标文件

Google Earth Pro 查看国内地图会存在火星偏移,即卫星图与显示地名、街道信息不对应,以卫星图为准。

启动 Google Earth Pro ,寻找需要模拟地点,点击添加路径:

1702368845_6578164d7966b2ed67efe.jpg!small?1702368847659

Google Earth Pro演示图1

用鼠标点击图上勾画出路径,这里采用玄武湖作为示例:

1702368888_657816786273fcc0a4b33.jpg!small?1702368891246

模拟轨迹图

绘图完成并保存后,在位置可以找到保存的路径,右键将位置另存为导出kml文件:

1702369012_657816f4d6e17a08c99e3.jpg!small?1702369014758

Google Earth Pro演示图2

kml文件内容展示:

1702369049_6578171918b51e507ce02.jpg!small?1702369050772

kml文件内容

NMEA文件

NMEA 是 GPS 导航设备统一的 RTCM 标准协议,包含坐标、海拔、时间轨迹。将运动轨迹坐标 kml 文件导入 SatGen ,就会自动加载 kml 路径。

1702369124_65781764926289fe054b2.jpg!small?1702369126501

SatGen软件截图

调参拟合

调整参数将速度轨迹向真实情况进行拟合,SatGen 会模拟真实运动情况,如:拐弯减速、起步&结束停留……

output                    数据更新率

max longacc               最大纵向加速度

max jerk              最大加速度

max latacc                最大横向加速度

max speed             最大速度

stationary period      起步停留时间

stationary period end  结束停留时间

scenario distance      总路程长度

total time                总耗时

点击"Generate NMEA file",即可生成标准的 NMEA 轨迹文件。

1702369155_6578178318c6fe6efc7d9.jpg!small?1702369157210

NMEA文件内

绕圈轨迹制作

要制作绕圈跑的 NMEA 轨迹只需要画一圈,将 NMEA 文件内容复制粘贴即可:

$GPGGA,090453.93,2306.36704898,N,11328.49988987,E,1,05,2.87,160.00,M,-21.3213,M,,*7C

$GPGGA,090454.00,2306.36704898,N,11328.49988987,E,1,05,2.87,160.00,M,-21.3213,M,,*71

……

$GPGGA,090453.93,2306.36704898,N,11328.49988987,E,1,05,2.87,160.00,M,-21.3213,M,,*7C

$GPGGA,090454.00,2306.36704898,N,11328.49988987,E,1,05,2.87,160.00,M,-21.3213,M,,*71

……

GPS导航电文

导航电文用于计算卫星当前的位置和信号传输的时间,从而使 GPS 接收机在接收导航电文后能确定自身的位置。

各个接收机厂商普遍采用统一的 RINEX 格式,RINEX 本质上是文本文件,RINEX 文件遵循标准的[命名规则](https://cddis.nasa.gov/Data_and_Derived_Products/GNSS/RINEX_Version_3.html)

获取GPS导航电文

可以在NASA官网上获取 RINEX 格式的GPS导航电文,卫星星历是用于描述太空飞行体位置和速度的表达式——两行式轨道数据系统。

https://cddis.nasa.gov/archive/gps/data/daily/2017/019/17n/

1702369180_6578179c261e80605a1b3.jpg!small?1702369181890

GPS导航电文1

GPS导航电文定义

解压后可以用文本编辑器打开,导航电文文件结果如图所示:

1702369194_657817aa7ce4f90b158e4.jpg!small?1702369196065

生成采样文件

利用 [gps-sdr-sim](https://github.com/osqzss/gps-sdr-sim) 配合 GPS 导航电文和 NMEA 文件生成 HackRF 发射信号需要的采样文件。

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

修改动态模式时间上限

gps-sdr-sim 默认动态模式最大只能生成 300s ;静态模式 86400s (10Hz)。结合实际情况修改"gpssim.h"的"USER_MOTION_SIZE"实现自定义时间上限。

将"USER_MOTION_SIZE"调得比 NMEA 轨迹总耗时长 30s 以上。HackRF 开始发出信号,到手机 GPS 被欺骗需要一定时间(30s左右),所以时间上限多加 30s ,让定位稳定被欺骗,以防在模拟定位与真实定位之间跳变。

最终运行作用时长取决于较短的那个时间。假如轨迹总耗时400s ,"USER_MOTION_SIZE"定义动态模拟时间上限 300s ,最终运行 300s 。

#3000 == 300s

make USER_MOTION_SIZE=3000

编译gps-sdr-sim

gcc gpssim.c -lm -O3 -o gps-sdr-sim

用法:gps-sdr-sim [选项]

选项:

-e用于GPS星历表的RINEX导航文件(必填)

-u用户动作文件(动态模式)

-gNMEA GGA流(动态模式)

-c <位置> ECEF X,Y,Z,以米为单位(静态模式),例如3967283.15,1022538.18,4872414.48

-l <位置> Lat,Lon,Hgt(静态模式),例如30.286502,120.032669,100

-t <日期,时间>场景开始时间YYYY / MM / DD,hh:mm:ss

-T <日期,时间>将TOC和TOE覆盖到方案开始时间

-d <欺骗时间>持续时间[秒](动态模式最大值:300静态模式最大值:86400)

-o <输出> I/Q采样数据文件(默认值:gpssim.bin;使用 - 用于stdout)

-s <频率>采样频率[Hz](默认值:2600000)

-bI/Q数据格式[1/8/16](默认值:16)

-i 禁用航天器场景的电离层延迟

-v 显示有关模拟频道的详细信息

生成采样文件

./gps-sdr-sim -e <导航电文文件> -g <轨迹文件> -b 8 -o <输出二进制文件路径>

"-b 8":降低输出文件大小。hackrf 支持的是8-bit的二进制文件,其他 sdr 查询 [readme](https://github.com/osqzss/gps-sdr-sim)

1702369224_657817c8040cc4835ffb3.jpg!small?1702369225784

发射GPS欺骗信号

连接hackrf设备

GPS外部时钟如下图所示安装在HackRF板上。

1702369241_657817d9ad9528d6de1f6.jpg!small?1702369244745

输入hackrf_debug --si5351c -n 0 -r 可以判断时钟模块是否安装正确,0x01即为安装成功。

1702369256_657817e858675595ad4a6.jpg!small?1702369257951

查看设备是否被识别,成功识别输入hackrf_info会打印出hackrf的信息:

1702369272_657817f809b1efbca94f3.jpg!small?1702369273659

发射信号

hackrf_transfer -t gpssim.bin -f 1575420000 -s 2600000 -a 1 -x 20 -R

-t:信号采样文件(gps-sdr-sim 生成的 bin 文件)

-f:频率赫兹;美国官方的GPS L1信号频段1575420000Hz

-s:HackRF 采样速率 2.6Msps

-a:放大器使能,接收/发射射频放大器:1=使能;0=禁用

-x:增益分贝,TX VGA(中频)增益,0-47db;1dB步长

-R:重复发射模式

实验结果

地图中当前的位置信息按照模拟的动态位置信息开始移动。

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取 

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)

同时每个成长路线对应的板块都有配套的视频提供: 

大厂面试题

 

视频配套资料&国内外网安书籍、文档

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~ 

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击) 

特别声明:

此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/951299
推荐阅读
相关标签
  

闽ICP备14008679号