Windows 环境中使用 HackRF 的 GPS 欺骗

原文来源:【https://www.hackerdecabecera.com/2020/06/gps-spoofing-with-hackrf-from-windows.html.html】机器翻译加人工修改,不正之处,请指正!

大家好!我想由于该死的 Covid-19,我无法停止在这种禁闭中写一篇文章,而且很长一段时间以来,我一直想与您分享其中一个与无线电和信号世界相关的项目,我我非常热衷于:GPS。

GPS 是我们几乎每天都或多或少使用的东西,部分原因是它在智能手机、智能手表、汽车导航系统等中的使用……但就我个人而言,我花了很长时间才了解它的工作原理.

27853

GPS 的工作原理

GPS 是 Global Positioning System 的首字母缩写词,已经存在多年。它是美国国防部在二战后开发的基于卫星的无线电导航系统,其目的是确定整个地球上任何物体(人、车辆等)的位置,不同的位置精度/误差取决于所用系统的版本和类型。它通过一个由至少 24 颗卫星组成的网络运行,这些卫星围绕地球运行,高度约为 20,000 公里,轨道分布在 6 个不同的轨道平面上,相对于地球赤道平面的倾角约为 55º。这种配置的目的是在地球表面的任何一点(以及任何高度)始终至少有 4 颗卫星在地平线 (OTH) 上方可见。

https://youtube.com/watch?v=TXpTWsi2qSg%3Ffeature%3Dplayer_embedded

GPS 系统及其基础设施的运行基于几个组件或部分:第一个是我们在前面的段落中刚刚看到的“空间部分”,同时还有另外两个部分,即控制部分用户部分。控制组件基于分布在全球的 5 个地面跟踪站,并连接到称为MCS(主控站)的中央控制站。该组件的任务是通过校准和同步时钟以及更新轨道位置来跟踪卫星。

用户组件是链条中的最后一个环节,它基本上是我们用来在地球上定位自己的 GPS 设备,无论是手表、手机、GPS 手持设备、汽车导航仪、船只和飞机定位, ETC

segmentsGPS-1

GPS 欺骗客观上包括什么?基本上,它包括通过无线电发射那些我们想要取代真实信号的“虚假”GPS 坐标。为了实现这一点,我们将在逻辑上依赖于上述用户段中包含的发射功率和/或与接收器的接近程度,以使他们接受我们修改后的信号而忽略真实信号,从而定位到位置和/或路径/ 我们想要的行程。

很重要!!! 在您继续阅读之前…

在这一点上,在继续之前,你将允许我给你一个

非常重要的免责声明,我们必须始终明确:

在事先没有明确法律的场景或情况下广播任何类型的无线电信号是完全被禁止的,并且是一种应受法律惩罚的犯罪行为。本文的目标和其中展示的技术的唯一目的是泄露技术,为此,正如本文后面将看到的,已采用必要的解决方案和资源,以避免对任何公开广播公共领域(也称为无线电空间)造成影响。全球定位系统 (GPS) 越来越多地用于各种关键应用程序和服务。其中包括海上和空中导航、公用事业、电信、银行和计算机行业的时间同步,还包括许多公共安全服务,例如警察、消防,以及更大范围的紧急情况、救援、救援和救护车服务。请让我们意识到这一关键性,让我们都对此负责并表示最大的尊重。

我们要用什么??(硬件和软件)

软件

GPS-SDR-SIM软件

它是日本Takuji Ebinuma的作品,它是一种在 GPS 使用频带中生成数据流的软件,然后可以使用软件定义无线电设备 (SDR) 转换为射频,例如 ADALM-Pluto、BladeRF、HackRF 和 USRP。完整的项目在它的 GitHub 中(上面有超链接),我们唯一需要做的就是用 VisualStudio 编译它以便能够在 Windows 中使用它(这并不需要太多困难,但我会展示你一步一步的过程)。为了生成必要的信号,该软件需要通过 GPS 发射星历文件的 GPS 卫星星座。每日 GPS 广播星历文件 ( brdc ) 是将各个站点的导航文件融合到一个文件中;这种类型的文件对于生成所提到的伪距和所显示的 GPS 卫星的模拟多普勒是必需的。然后使用此模拟距离数据为要从 HackRF 广播的 GPS 信号生成数字化 I/Q 样本。我在哪里可以获得这些 GPS 星历文件?

NASA 在这方面帮助我们,几乎每天都在ftp://cddis.gsfc.nasa.gov/gnss/data/daily/上向我们提供它们(至少到 2020 年 10 月,届时我们需要注册)。最后我们只需要程序从我们的 Windows 计算机与 HackRF 设备通信并传输生成的文件,我们将使用

hackrf_transfer.exe来完成 我们可以自己编译或者从

Pothosware github下载已经编译好的可执行文件。

硬件

作为我们取代的 GPS 信号的发射器,我们将在打开 PortaPack 的情况下使用 HackRF(在图片中),但它处于常规操作模式,因为由于实验室的准备工作,我将无法访问其屏幕或控件过程中)。作为 GPS 信号的接收设备,我将使用 Android 设备,特别是 Nexus 5,它是我用于各种测试和实验的“小工具伴侣”。

IMG_5056.HEIC

此外,虽然不仅仅是硬件,但出于上一节所述的原因,它可以被视为一种“测试场景”作为合法合规的一种方式,并且不违反规定或向无线电公共领域发射任何信号,它有必要使用完全隔离我们设备的法拉第盒或袋子。在我的案例中,我选择了专业屏蔽袋来阻挡外部 RF 电磁波并将它们重新定向到外壳本身的表面,并在内部以相同的方式起作用,我们将在其中安装我们的 HackRF 发射器和我们的 Android电话作为接收器,从而确保我们在这件事上不违反任何法律规范。 

IMG_5047.HEIC
IMG_5058.HEIC

我们只需要在完全合上袋子之前小心,省去连接到我们计算机的 USB 连接线,以命令 HackRF 并在我们的计算机屏幕上显示 Android 手机(在我的例子中,我使用了 SCRCPY 解决方案

IMG_5061.HEIC

编译 GPS-SDR-SIM

下载项目并将其解压缩到文件夹后,我们打开 Visual Studio 并从初始任务菜单中创建一个新的空项目,然后选择“控制台应用程序” 选项。

vs01

打开空项目并看到 Visual Studio 界面后,我们必须将文件

gpssim.cgetopt.c添加到解决方案资源管理器在右侧边缘显示的“源文件”文件夹中。

vs02

展开Visual Studio上方的选项菜单,选择“Release”,然后从上方选项菜单的Compile选项继续编译。

vs03

结果,我们将获得具有我们在项目中给它的名称的可执行文件(在我的例子中是 GPS.exe,展示了我的伟大创造力……)和一些我们必须保存在同一文件夹中的更多对象。要试用它,我们只需从命令行运行,例如使用

-h选项来查看程序的帮助。

vs04

准备好!现在我们可以忘记编译并专注于项目中有趣的部分!

创建信号并使用 HackRF 进行广播

正如我们在软件要求部分提到的,我们需要的基本要素是 GPS 发射星历文件 (brdc),为此我们只需要访问 NASA 提供的 ftp,一旦在里面选择了年份,然后我们去“ 

brdc ” 文件夹并选择可用的最新文件之一(每天有多个文件)。

nasa

现在我们已经准备好了一切,我们只需要决定我们想让 GPS 设备相信它在哪里,那么……你想去哪里旅行?我个人很想回到西班牙南部度假,所以让我们用以下命令生成伪距文件:

gps.exe -b 8 -e brdc1470.20n -l 36.276173,-6.087545 使用选项

-b时,我们以位为单位指示结果 I/Q 的格式,使用 -e 表示

我们刚刚下载的 brdc 星历文件,使用

-l 表示我们要模拟的确切静态坐标。按回车键让它工作。

bincration01

该过程完成后,我们将看到一个扩展名为

.bin且名称为

gpssim的文件如何出现在文件夹中(除非我们在上一步中使用了选项

-o并且指定了另一个文件名)。

bincration02

现在我们只需要进行最后一步:将 HackRF 连接到我们的计算机并将生成的文件发送给它!为此,我们将使用上面部分中注释的

hackrf_transfer工具,要使用的语法是

hackrf_transfer.exe -t gpssim.bin -f 1575420000 -s 2600000 -a 1 -x 0其中

-t必须是我们刚刚使用 gps-sdr-sim 生成的 .bin 文件,

-f是以 Hz 为单位的发射频率(我们必须将其调整为 1.575Ghz,这是 GPS 的使用频率)作为以及

-s调整采样率和

-a

1以激活 HackRF 的 RX/TX 放大器和

-x我们将能够将 TX VGA 增益从 0 调整到 47 dB(对我个人而言最好的结果始终是将其保留为零)。

transfer01

现在我们只需要耐心等待几秒钟/几分钟,我喜欢使用辅助应用程序监控 GPS 活动,当她向我表明她已经拍摄了必要的卫星并给我坐标时,我会使用谷歌地图进行检查.正如我之前所说,此时只是耐心等待稍后检查我们如何从马德里“传送”到 Conil De La Frontera!

从这里开始,想象力是极限……逻辑上是地球!除了能够在精确坐标中定义静态位置外,gps-sdr-sim 还可以生成动态文件,因此我们可以将一个文件作为参数传递给我们自己定义的路径,或者在一个包含我们想要以坐标为中心的位置的 CSV 文件中Earth ( 

ECEF ),或在NMEA GGA跟踪文件中(有模拟器可以生成具有我们想要的路径的特定文件,例如

来自 ATLsoft 的这个文件)。

可能的应对GPS欺骗策略 

如您所见,创建欺诈性 GPS 信号并将设备与之混淆相对容易,系统易受攻击,如今,除了军事通信和一些非常特殊的加密通信外,所有通信都可能受到这种类型的影响的威胁。在所有可能的缓解这些威胁的软件解决方案中,我已经能够调查一些东西并且我发现它们很有趣,它们通过一个监视和早期检测信号强度突然变化的系统,以及一个时间跳跃的监视在接收痕迹及其分析以确定其合理性/可行性方面。非常有趣的是我从制造商 Microchip 找到的硬件解决方案,它是

BlueSky GNSS Firewall只不过是一个防火墙,用于保护所有可能依赖于 GPS 系统的基础设施。为实现这一目标,除了对接收到的信号的特征进行并行分析以检测其中的任何异常之外,还对接收到的所有 GPS 信号数据进行并行评估和检查,以确保合规性。这是一个非常有趣的设备,我建议您看一看。

Deployment_Diagram

好吧,就是这样!我希望这篇文章不会太沉重并且您会喜欢它,一如既往地非常感谢您的访问和阅读!下次见!问候!

发表回复 0

Your email address will not be published. Required fields are marked *