航空ACARS系统接收解码与其安全性 – 作者:OpenATS

*本文作者:OpenATS,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

MH370 出事之后,伴随着这个航班的话题一直是热门,航空的安全问题也引起了全球人们的关注。事发之后,英国Inmarsat公司提供了MH370飞机与卫星的握手数据,并提供了技术支持,对飞机可能失事的位置进行了估算。

Inmarsat为英国卫星电信公司。此公司所经营的商业通信卫星,无论在航海、航空、通信都有着广泛的应用,目前已经发展到第五代Inmarsat卫星。Inmarsat所有卫星分布在距离地球35700km左右的地球同步轨道上,属于高轨道卫星,通信覆盖范围非常广,一直都是船舶在大海中与外界通联的重要通信卫星。其实不仅仅在海事领域,航空领域也有着重要的应用。很多人知道飞机在飞行的时候有一个ADS-B自动报告系统,不断发送自己的实时位置,这个系统是防撞系统的一部分,而另一个比较重要的系统便是ACARS。ACARS是通信寻址报告系统,是飞机与航空公司通信的一个重要途径。此系统会将飞机的4D数据(经纬度、海拔、速度等)还有各种传感器数据经过此链路发送给航空公司,让航空公司实时得到飞机的一些数据,比如发动机健康状态、飞机舱门的打开关关闭状态等等信息,对飞机进行维护和调度等工作。

MH370跟卫星通信的便是ACARS服务,ACARS的通信链路有HF、VHF、L波段三条链路,其中VHF一般为近地时使用,由于VHF波段的特性,传输距离受到限制,HF在此方面会弥补一些不足。当飞机远离大陆的时候,比如跨海洋飞行,就只能靠L波段的卫星通信链路来与地面控制中心进行联系。飞机可以通过Inmarsat卫星提供的AERO链路进行短消息、语音还有自动报告系统的相互通信。其飞机到卫星的上行频率为:1545~1547MHz之间,卫星与地面站的下行链路采用的为C波段3.6GHz。

当然,租用卫星链路的费用是非常昂贵的。事发当时,MH370的卫星服务已经过期,所属航空公司没有续费,按照常理来说,MH370是没有卫星通信数据的。但是,此系统有个重要特性,那就是卫星载荷属于透明转发。简单来说,飞机到卫星的数据,卫星是不经过处理的,直接变频以C波段3.6GHz的频率大功率下传,而地面站会不断接收信号后,进行解调和解码工作,得到飞机发送的原始数据并存储到数据库中。当系统对数据进行检索,如果发现某飞机并没有开通服务或者服务到期没有续费后,便不会把这些数据发送给航空公司。所以Inmarsat公司完全没有责任提供MH370的信息,而事发后,Inmarsat公司对MH370提供了原始数据支持,从数据库中调取了MH370与卫星通信的数据,与MH370通信的卫星便是位于东经64.5°附近的Inmarat3-F1卫星,此卫星为Inmarsat第三代通信卫星,于1996年发射,重量为2068kg。

以下是马来西亚政府给失联人员亲属报告中公开的卫星数据,报告并非卫星原始数据,而是经过筛选出一些有用信息的数据。

真正的卫星原始数据(来源Inmarsat公司某高管):

在搜索MH370的时候,搜索队唯一可靠的数据参考便是这份卫星数据,可以根据数据大概推算出飞机失事的时间。我们可以看到最后一次飞机通过AERO的R通道发送握手数据包的时间为UTC 0:19分,而后续再也没有跟卫星进行通信。MH370飞机的AES ID为35200217 ,澳大利亚地面站的GES ID为305。搜索队根据卫星数据中的时间、BFO、BTO数据,来进行粗略的飞机飞行路径估算,向着可能坠毁的方向进行了大面积的搜寻,最后结果是大家众所周知的:一无所获。

那么什么是BTO呢,BTO(Burst Timing Offset,瞬时时间偏移)就是信号由飞机发送后,到达卫星产生的时间偏差。由于飞机发送握手数据时,会附带上发送数据的时间,这个时间是非常精确的,取自飞机上GPS授时系统。而无线电的传输速度为固定的光速,这样就可以根据BTO的数据,大概计算出飞机到卫星之间的距离。

BFO(Burst Frequency Offset,瞬时频率偏移),简单来说就是卫星接收到的频率与标准频率产生的频率偏移量。为什么会产生偏移呢?这里牵扯的知识就是著名的多普勒频移,可能都多少了解些多普勒频移,常用的例子就是火车由远至近产生的声音变化,也就是所说的红移和蓝移。在无线电通信中,多普勒频移为非常常见的现象。应用范围也非常广泛,比如多普勒雷达。飞机在飞行时,速度会非常快,这时候会产生一个随飞机速度变化而变化的频移现象。根据多普勒频移计算公式,由于发射频率f,无线电传播速度C还有频率偏移 △f都为已知,飞行速度可以估算,可以计算得到飞机相对于卫星位置的余弦角度,再结合别的数据进行了推算,并且做了大量飞机飞行数据的对比,目前推测出了飞机可能坠毁于印度洋。

其实,Inmarsat3-F1的卫星轨道并非是固定不变的,Inmarsat3-F1这颗卫星的轨道相较于赤道平面倾斜角度大概为4.94°,这就意味着它的轨道平面跟赤道并非完全平行。也就是说,随着时间变化,它在地面的垂直投影会呈现一个以赤道为中心的南北移动的8字形,卫星也是在以一个相对于地面较小的速度的移动。所以在计算时也要考虑这部分数据,并且飞机处在一个立体位置,飞机的高度上升下降都会造成多普勒频移现象。

在事发之后,英国科学家Duncan I. Steel 在他的自己网站上(http://www.duncansteel.com/),根据公开的一些数据,根据自己的知识对MH370可能飞行方向做出了非常详细的计算和模拟,对这些计算和推算感兴趣的同学可以去邓肯的网站看一下他的文章。

回到前面提到的ACARS服务,ACARS在VHF段根据不同地区和国家的频率而不同,我国大陆的频率在131.450MHz,飞机在此频率上传各种传感器的信息。国内提供航班实时信息的某软件就是采用了此系统数据,包括飞机关闭舱门、进入滑行状态等等都在ACARS系统中有着详细的定义,他们的数据主要来源是通过从航空公司购买。

ACARS采用的调制方式为MSK,与传统的MSK编码略有不同,采用1200Hz和2400Hz对报文进行编码,以1200Hz的正半波表示0,负半波表示1,以2400Hz相位π的正弦信号表示0,以2400Hz相位0的正弦信号表示1。

已经有不少软件可以直接对其信号进行解调和解码工作,对141.450MHz信号进行了采集和解码。在VHF频段我们使用Acarsd软件进行了解调和解码便得到了原始的ACARS数据:

Inmarsat卫星针对航空系统的服务叫做AERO服务,AERO分为了AERO-L、AERO-H 、AERO-H+、 AERO-C等不同业务,提供了语音、短消息、传真、数据等业务。ACARS除了承载着航空ATS(空中交通服务)系统外,还承载着航空公司运营控制(AOC)和航空公司行政通信(AAC)消息。

卫星到飞机的返向链路同样工作于L波段,这方面的接收解码工作非常简单,L波段的下行信号非常强,甚至可以使用GPS天线改造一下滤波器便可以顺利接收,下面为使用Airspy的接收频谱,就不放出解码信息了。

针对卫星下行到地面站的数据,目前还国际上还没有多少人接收成功。本人搭建了一个接收环境用于验证。因为频率为3.6GHz,采用了很久之前中星六号卫星电视的高频头,其中有少部分频率覆盖范围为3.4~4.2GHz,本振频率为5150MHz,刚好涵盖此频率。之前的C波段高频头为线极化,而卫星下行信号为右旋圆极化,直接接收会损失3dB。所以做了一个极化片,这样高频头可以接收圆极化信号。而高频头中含有22K开关,电压跟极化方向一定要对应。高频头的阻抗为75欧姆,使用了一个75欧姆转50欧姆的转换器,防止信号损失较多。在北京,成功接收并解码来自太平洋上空的Inmarsat4-F1(140.5°E)卫星的AERO下行信号,可以计算得到两个卫星下行信号频率大概为3614MHz左右。

用JAERO软件解码后可以得到飞机与地面站通信的一些短消息和通信信息。

ACARS作为航空系统中的一个重要的组成部分,有着非常重要的作用。考虑到航空系统中的链路兼容性和紧急情况的问题,大部分用的是未加密通信,也同时带来了相应的隐患。在2013年荷兰HITB黑客大会上,其中一个议题就是讲发送伪造飞机的ACARS数据达到控制飞机的目的。ACARS是未经过任何加密的,任何人都可以窃听和伪造数据,这并不意味着仅仅靠伪造ACARS数据就可以将飞机进行控制,作为飞机驾驶员的操作标准是,当ACARS与空管命令产生冲突时,以空管命令为准,或者通过语音电话核实。当然,语音电话也是可以伪造的,技术门槛要更高一些。我相信作为一名真正的黑客,是不会以飞机为目标进行破坏行为的。

几个月前,德国总理默克尔的飞机在飞往参加G20峰会的路上,出现系统故障,导致飞机紧急返回的情景。在关键时刻,机组人员只能通过卫星电话与地面控制中心取得联系,安排返程和降落。自从MH370事件之后,人们充分意识到了在关键时刻卫星通信的重要性,国际民用组织(ICAO)推出新的标准,让民航所有飞机飞行员每15分钟报告一次位置。

卫星通信作为偏远地区和远离大陆地区的唯一可靠的通信方式,承载着众多人的安全,随着卫星通信的加快发展,相信随着航空ATN网络的推进,飞机失踪这类事情不会再次重演,航空管理系统也会越来越完善。

*本文作者:OpenATS,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

来源:freebuf.com 2019-04-10 09:30:04 by: OpenATS

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论