在智能手机上跟踪ADS-B系统的飞机航线信息
飞机飞行的中断可能会给航空公司造成数十亿美员的损失,但即便如此大多数现代商业航班仍旧依赖于存有严重安全问题的空中交通管制系统。到2020年,这些系统将会被升级为一个被称之为NextGen的系统,该系统依赖于ADS-B(广播式自动相关监视)系统。
“ADS-B Out”是ADS-B的基本功能,它负责将信号从飞机发送方经过视距传播发送给地面接收站或者其他飞机。在本教程中,我将带大家初步了解ADS-B系统,以及如何HACK ADS-B系统,并在智能手机上跟踪飞机航线。
ADS-B有多重要?
你可以想象自己现在是一名飞行员,需要完成一次横跨大西洋的飞行任务。在漆黑的夜晚,你主要依靠空中防撞系统(TCAS)来避免发生冲撞事故。再打个比方,现在在你飞行的方向突然出现了上百架的飞机。如果你此时你使用的是空客自动驾驶功能,那么它将自动为你作出飞行选择。
其次在安全方面例如在繁忙的节假日期间,针对主要机场的ADS-B系统的入侵可能造成的后果。大自然已经为我们提供了很好的案例,例如“洛杉矶机场数以千计的旅客的噩梦”,“冰岛火山Eyjafjallajökull造成的飞机中断”使航空公司成本高达17亿美元等。而如今,黑客也可以做到这一点。
图为2010年4月15日(星期四)冰岛火山爆发后ADS-B数据
本文我将为大家展示的是,对于“ADS-B In”和TCAS的欺骗攻击的示例,它们在协作测距系统中协同工作,因为它们都建立在相同的基础模式S数据链路上。这代表了FAA的NextGen系统中一种类型的漏洞,该类漏洞早在2001年9月18日就已经被公认。并在11年后的2012年的入侵事件中被证明。嘲讽的是到2016年,该类漏洞再次被一名黑客使用廉价的SDR设备入侵。
某些应用程序可能需要对ADS-B信息进行独立验证以检测欺骗,这是提出安全性问题的方面。
ADS-B是如何工作的?
ADS-B系统是一个集通信与监视于一体的信息系统,由信息源、信息传输通道和信息处理与显示三部分组成。ADS-B的主要信息是飞机的4维位置信息(经度、纬度、高度和时间)和其他可能附加信息(冲突告警信息,飞行员输入信息,航迹角,航线拐点等信息)以及飞机的识别信息和类别信息。此外,还可能包括一些别的附加信息,如航向、空速、风速、风向和飞机外界温度等等。
ADS-B的应用分为两类:发送(OUT)和接收(IN)。其中OUT是ADS-B的基本功能,它负责将信号从飞机发送方经过视距传播发送给地面接收站或者其他飞机。ADS-B IN是指航空器接收其他航空器发送的ADS-B OUT信息或地面服务设备发送的信息,为机组提供运行支持和情境意识。他们每秒钟以纯文本,未加密和未认证的方式执行此操作,也正是ADS-B In功能,为我们打开了飞机欺骗攻击的大门。
廉价的DVB-T加密狗可以获取250公里范围内的飞机ADS-B(飞机的身份,位置和速度)数据
尽管如此,ADS-B是FAA的NextGen系统的支柱。该系统旨在允许更多的飞机在特定空域内运行,同时增加安全性,减轻空中交通管制日益增加的负担。
美国联邦航空局甚至授权“在大多数受控制的美国领空飞行的飞机必须在2020年1月1日之前装备ADS-B”,而不考虑ADS-B固有的安全问题的事实。美国联邦航空局正在尽最大努力以500美元的奖励说服大家使用ADS-B。
截至2017年8月,美国共约164,200架通用航空固定翼飞机已经装备了约29000架,占比达到17%。但配备商用飞机的百分比要大得多,约6,670架飞机中有2,000架装备,占比达到30%。
事实上FAA的Ron Jones,在Defcon 20的精彩演讲(幻灯片)中,也指出了关于ADS-B系统存在的,包括干扰,注入以及窃听等基本安全问题。
如何HACK ADS-B?
虽然我们可以做到对飞机的数据欺骗,但这会造成严重的安全问题和影响并惹来牢狱之灾。因此,本教程将只侧重于ADS-B数据的接收。以下我们将会用到SDR,在之前我发布的文章做过介绍。只需插入25美金的SDR设备,将其调到1090 MHz即可!
然而在实际情况中,我们只要一部智能手机就可以实现该功能。我们只需简单的在手机上安装Flightradar24或FlightAware这两个应用,就可以实现对航班信息数据的实时跟踪。
Step 1:安装Flightradar24
Flightradar24应用,可在Google Play商店和iOS App Store中进行下载。需要说明的是该应用程序仅支持Android 4.1 / iOS 8.2或更高版本的系统。如果你的手机版本较旧,你也可以通过它的官方网站获取信息。
Step 2:运行和帐户设置
应用程序完成安装后,当我们运行它时将会要求获取我们的位置信息,我们点击允许即可。这一步非常重要,将直接影响后续所有功能的实现,如增强现实。
点击右上角的登录图标。你将看到一个界面,为你提供免费试用版,我们根据提示点击获取。这里需要我们注册登录,可以使用Facebook或Google账户登录,它将自动为你创建一个新的帐户。
Step 3:设置调整
在主界面我们可以看到,左下角一个齿轮状的设置图标。我们可以定制自己喜欢的形式,例如更改地图类型,在飞机图标上放置标签,添加地图日/夜线等。
Step 4:雷达视图观察你周围的飞机
以下是你打开APP在主界面看到的标准视图。视图中的飞机已用不同类型的图标为你标出,想要获取目标航班更多的信息,只需点击相应的飞机图标即可。
你可能已经注意到Flightradar24,并未对一些较小型的飞机进行标注,如Cessnas和Pipers也被称为通用航空。这是因为它们是以单独的978 MHz频率运行,而不是1090 MHz的商用飞机,Flightradar24和FlightAware等应用程序都不会对该频率的流量解码。
Step 5:AR视图效果
现在我们可以使用应用程序中最酷的部分。点击左上角的AR选项卡,并赋予APP使用你相机的权限。你也可以通过校准屏幕来提高其准确度。
这里应用程序在手机中使用惯性测量单元(IMU),与GPS配合使用,以估计你的位置。目前Flightradar24的数据库支持查看全球约 60 %的航班信息,其中七成为欧洲航班,其它为美国航班。通过在overview和details之间的切换,可以帮助我们更好的获取航班信息。
Step 6:3D视图效果
另一个更酷的功能是,Flightradar24还可以为我们模拟类似于驾驶舱看到的视觉体验。在地图或AR视图中选择飞机后,点击左下角的3D视图即可。
Step 7:开源威胁情报收集
如果你想了解更多有关特定航班的信息,你只需点击“更多信息”图标。
随后我们将获取到一个曲线视图,其中包含了飞机的类型,速度和高度。
实际上,除了以上直观的数据外,通过简单的分析我们还可以得到一些其它的信息,比如他们到达巡航高度的时间(高度线变平),以及由于头/尾风导致的飞行速度的减慢或加速。
Step 8:跟踪全球的飞机
点击底部栏上的 “Route” 图标,它会为你显示航班的位置。
值得一提的是,Flightradar24尝试使用了多点定位技术(MLAT),来尽可能的避免之前提到的一些漏洞,特别是对于欺骗的防范,并提供最准确的飞机线路图。
MLAT(Multilateration,多点定位技术)利用多个地面接收机接收到机载应答机信号的时间差,计算得出飞机位置。机载应答机在T0发出信号,由于飞机距地面多个地面接收机的距离不同,会导致多个地面接收机接收到应答机信号的时间也不同,接收机1/2/3/4接收到信号的时间分别为T1/T2/T3/T4,这就表示,飞机到接收机1/2/3/4的距离分别为(T1-T0)*C(光速),(T2-T0)*C,(T3-T0)*C,(T4-T0)*C。知道了飞机到4个点的距离,就可以计算出飞机的位置了。(这样解释是为了便于理解,但事实上不是这么计算的,因为我们无法获知T0。实际的计算方式,是利用T1/T2/T3/T4之间的时间差,从而计算出飞机到4个接收机间的距离差,再计算出飞机的位置。多点定位是一种很常用的定位方式,在各行业都有应用,GPS也是一种多点定位,可以将MLAT想象为将GPS放到地上了)。
Flightradar24在其网站中声称:“欧洲和北美的大部分地区如今都覆盖着大约3,000-10,000英尺的MLAT。在墨西哥,巴西,南非,印度,中国,日本,台湾,泰国,马来西亚,印度尼西亚,澳大利亚和新西兰地区也有MLAT覆盖。未来将会有更多的地区覆盖MLAT,我们将继续向我们的网络添加新的接收器。“
Step 9:搜索特定航班信息
通过点击主界面顶部的搜索栏来查询数据库。通过该功能你可以实时的查看和跟踪,亲人或朋友的航班是否已准时到达。或者你也可以像那位无聊的波音飞行员一样,花费18个小时在美国版图上画出一架波音787客机。
Step 10:添加提醒
在主界面,你还可以在底部栏的中央添加提醒。由于是免费试用版,因此自定义提醒功能无法使用,我们可以勾选”Squawk 7700 General Emergency”(紧急情况)选项。
通过本文,我们对ADS-B及其漏洞有了初步的了解。在我的下篇文章中,我将教大家使用Rasberry Pi和RTL-SDR加密狗来构建我们自己的ADS-B接收机,尽请关注!
在智能手机上跟踪ADS-B系统的飞机航线信息的更多相关文章
- Android智能手机上的音频浅析
手机可以说是现在人日常生活中最离不开的电子设备了.它自诞生以来,从模拟的发展到数字的,从1G发展到目前的4G以及不久将来的5G,从最初的只有唯一的功能(打电话)发展到目前的全功能,从功能机(featu ...
- Android智能手机上的音频浅析【转】
本文转载自:https://blog.csdn.net/david_tym/article/details/80903385 手机可以说是现在人日常生活中最离不开的电子设备了.它自诞生以来,从模拟的发 ...
- Linux 如何使用压缩与解压缩的方式将Windows下的zip压缩包上传到Linux系统
当我们无法使用xftp方式上传文件到Linux系统时,我们可以使用在Windows下压缩文件夹,然后到Linux系统下解压缩的方式,完成整个上传工作. 第一步:在Windows系统下,将整个文件夹压缩 ...
- 在VMware Workstation上安装CentOS6.5系统步
在VMware Workstation上安装CentOS6.5系统步骤 听语音 | 浏览:147 | 更新:2016-07-28 15:45 | 标签:安装 虚拟机 CENTOS 1 2 3 4 5 ...
- 在 Linux 的 KVM虚拟机 上安装 Mac OS 系统的研究总结
在 Linux 的 KVM虚拟机 上安装 Mac OS 系统的研究总结 一.资料来源: 网上一共找到两个方法,一个是视频上的教程,一个是网页资料. 二.视频资料方法内容:1.install qe ...
- [ssh]如何设计ARM板上多用户key登录系统
如何设计ARM板上多用户key登录系统
- 目标世界上最小的Linux系统—ttylinux体验
ttylinux的官方网址:http://ttylinux.net/ 简单翻译一下: 你当前访问的是ttylinux的主页,一个针对多种CPU架构的极小的GNU/Linux系统.最小的ttylinux ...
- 如何在老惠普电脑上安装windows xp系统
如何在老惠普电脑上安装windows xp系统 前提,老式的紧凑的惠普台式机,装了linux系统,想要装windows xp系统另作他用.但是使用U盘PE怎么也进不了? 解决办法: 1.拆下惠普主机上 ...
- 如何使用压缩的方式将Windows下的zip压缩包上传到Linux系统
我们可以使用在Windows下压缩文件夹,然后到Linux系统下解压缩的方式,完成整个上传工作. 第一步:在Windows系统下,将整个文件夹压缩成zip后缀的压缩包 方法一:
随机推荐
- 【二分 贪心】bzoj3477: [Usaco2014 Mar]Sabotage
科学二分姿势 Description Farmer John's arch-nemesis, Farmer Paul, has decided to sabotage Farmer John's mi ...
- 无法连接Elasticsearch解决方案
前言 最近还是在弄ELK,并且在测试Logstash从kafka消费日志(最后输出到Elasticsearch). 测试完毕后,在kibana中,并没有发现Elasticsearch中的数据. 后来装 ...
- 文件操作-cp
Linux cp命令 也是我们在实际使用中非常常用的一个命令,主要用来复制文件.文件夹等.今天就来给大家介绍下 cp命令 的使用. 转载自 https://www.linuxdaxue.com/lin ...
- windows2012安装sql2012报错
一. 处理
- 如何用纯 CSS 创作一个菱形 loader 动画
效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/eKzjqK 可交互视频教 ...
- laravel模型关联与列表展示
上面这个是一个模型关联的图,其实我们很容易去理解 比如说,一对一,也就是说一个用户对应的是一个手机号. 一对多,比如说一篇文章可以有多条评论 一对多反向:如一篇文章可以有多条评论,但对应每条评论也只针 ...
- c++-string-1
解答注意: 我写的时候考虑了: 1) " my"(设置flag,为true时表示上一个是非空格字符) 2) "hello John"(最后不是空格结尾, ...
- 剑指Offer(书):调整数组顺序使奇数位于偶数前面
题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. public void ...
- Spring核心技术(十二)——基于Java的容器配置(二)
使用@Configuration注解 @Configuration注解是一个类级别的注解,表明该对象是用来指定Bean的定义的.@Configuration注解的类通过@Bean注解的方法来声明Bea ...
- Java实现——字符串分割以及复制目录下的所有文件
0. 前言 今天有个需求,把Android中data/data目录下指定(通过读预置的XML文件)的多个应用下的多个目录全部内容通过OTG模式复制到U盘中. 首先读取XML文件内的某个节点的属性值, ...