利用开源项目实现定位和时间欺骗(二)

  • A+
所属分类:安全文章

GPS-SDR-SIM 项目是麻省理工学院许可下发布的开源 GPS 基带信号生成器项目。本期继续介绍该项目如何实现,想看上期请点链接利用开源项目实现定位和时间欺骗(一)

1 下载编译gps-sdr-sim

该项目以RINEX格式的GPS星历档案和想要定位的位置为输入,生成全球定位系统基带信号,供软件无线电平台回放。生成样本的默认最大持续时间为三分钟。可以通过以下命令在linux系统上获取GPS-SDR-SIM的代码并编译:

$ git clone [email protected]:osqzss/gps-sdr-sim.git
cd gps-sdr-sim
$ gcc gpssim.c -lm -fopenmp -o gps-sdr-sim

可以查看GPS-SDR-SIM命令的具体用法

$ ./gps-sdr-sim -h
Usage: gps-sdr-sim [options]
Options:
    -e <gps_nav>  RINEX navigation file for GPS ephemerides (required)
    -u <user_motion> User motion file (dynamic mode)
    -g <nmea_gga>  NMEA GGA stream (dynamic mode)
    -l <location>  Lat,Lon,Hgt (static mode) e.g. 30.286502,120.032669,100
    -o <output>  I/Q sampling data file (default: gpssim.bin)
    -s <frequency>  Sampling frequency [Hz] (default:
    2600000)
    -b <iq_bits>  I/Q data format [8/16] (default:8)

2 软件无线电平台

为了将信号传输到真实的环境中,我们需要软件定义的无线电平台,如HackRF、BladeRF、USRPHackRF是一个使用USB 2.0接口的开源SDR平台,工作在10MHz到6GHz的频段,最大支持20Msps采样速率,但只有半双工。它提供了从主机驱动到ARM固件甚至硬件方案、PCB布局和BOM的每一个设计细节。BladeRF采用USB 3.0接口,工作在300MHz至3.8GHz频段,支持独立的RX/TX 12位40MSPS正交采样和全双工。BladeRF似乎比HackRF具有更好的射频性能,因为它使用一个集成的射频芯片来支持300兆赫兹到3.8兆赫兹的所有工作射频频率范围。HackRF使用印刷电路板上的一些射频开关和射频转换器将2.3千兆赫兹和2.7千兆赫兹之间的窄工作频率扩展到10兆赫兹和6千兆赫兹,这带来了相当大的射频功率损耗。但根据我们的实验,HackRF和BladeRF发射的GPS信号都可以被常规GPS接收机解码。在这里我们使用HackRF来实现。

./gps-sdr-sim -e brdc3540.14n -l 31.603202, 120.466576, 100 -b 8 -d 100

可以通过以上代码来生成2014年12月20日静态位置的GPS基带信号样本。这里需要指定星历文件(可自行更新至最新的星历数据),设置经纬度,必须指定采样精度为8否则用hackRF one欺骗成功率不高。在这里需要注意的是,参考的文章都没有添加-d参数,实验的过程中发现没有这个参数生成的仿真文件为空,所以我在这里使用-d 100生成了一个100s的gps信号文件(约500M)。

另外如果有其他目的也可以伪造一个动态的GPS数据样本,例如欺骗计步器,轨迹等

$./gps-sdr-sim -e brdc3540.14n -u circle.csv -b 8

3 HackRF发射GPS数据

基带信号样本产生后,我们可以通过软件无线电平台的天线进行传输。我们可以使用下面的命令行使用HackRF以1575.42兆赫兹重复传输样本。

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

指定GPS数据,指定频率为民用GPS L1波段频率,指定采样速率2.6Msps,开启天线增益,指定TX VGA(IF)为0(为了限制影响范围,最大为47慎用),最后开启重复发射数据功能。其中:

-t 文件名,从文件传输数据。

-f 频率,赫兹

-s 采样速率,采样速率单位为赫兹。

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

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

-R 重复发射模式。

“-R”参数非常方便,因为“gpssdr-sim”只产生三分钟的样本,而GPS接收器可能在三分钟内不能完成第一次GPS捕获过程。

实现结果

手机终端40秒左右就可以被欺骗成功,如果不成功可以考虑将-x 0改为-x 10或20,或者重新生成基带信号文件试试。实验参数如下:

Item Value
Hardware HackRF one
Test device iPhone 7plus
Test network China Mobile LTE, China Unicom LTE
Real location East China Normal University
Real localtime Africa (31.603202IN, 120.466576E)

利用开源项目实现定位和时间欺骗(二)该结果表明手机对GPS信号的依赖程度很高,手机内的应用更是如此。

利用开源项目实现定位和时间欺骗(二)


本文始发于微信公众号(轩辕实验室):利用开源项目实现定位和时间欺骗(二)

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: