在智能手机上跟踪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后缀的压缩包 方法一:
随机推荐
- Sql语句的一些事(一)
(1)LIMIT子句(MySql) ----LIMIT 子句用于规定要返回的记录的数目,一般和Order By一起使用 经常用于数据的分页查询,但是一旦数据量一大,limit的性能就会急速下降 格式: ...
- Springboot(二)-application.yml默认的配置项以及读取自定义配置
写在前面 ===== spring-boot 版本:2.0.0.RELEASE ===== 读取自定义配置 1.配置文件:sys.properties supply.place=云南 supply.c ...
- python--初识html前端
一.HTML文档结构 最基本的HTML文档: <!DOCTYPE html> <html lang="zh-CN"> #这个lang表示语言,zh-CN是中 ...
- windows中Python多版本与jupyter notebook中使用虚拟环境
本人电脑是windows系统,装了Python3.7版本,但目前tensorflow支持最新的python版本为3.6,遂想再安装Python3.6以跑tensorflow. 因为看极客时间的专栏提到 ...
- List<T> List<?> 区别用法
List<T>是泛型方法,List<?>是限制通配符 List<T>一般有两种用途:1.定义一个通用的泛型方法.伪代码: public interface Dao{ ...
- Python中字典的key都可以是什么
作者:Inotime 来源:CSDN 原文:https://blog.csdn.net/lnotime/article/details/81192207 答:一个对象能不能作为字典的key,就取决于其 ...
- 【04】图解JSON
[04]图解JSON 附件列表
- cf898d Alarm Clock
区间上有 \(n\) 个点,问你为达到目的:长度为 \(m\) 的区间内点的个数都 $ < k$需要去掉多少个点. 贪心.每个区间我们总是去掉最后的,也就是说除非万不得已我们是不会去掉点的. 队 ...
- c#笔记2018-12-27
using System; /*2018-12-27 c#学习笔记 * 1.c#判断if /else if /switch * 2.循环while/for/do-while * 3.循环实例: for ...
- 2011 Michigan Invitational Programming Contest
Crossings Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100463 Description ...