基于GNSS完好性的ADS-B防欺骗

2018-09-18 11:04
雷达科学与技术 2018年4期
关键词:接收机报文解析

, , ,

(1.中国民航大学国家空管运行安全技术重点实验室, 天津 300300;2.中国民航大学电子信息与自动化学院, 天津 300300)

0 引言

广播式自动相关监视(ADS-B)系统已成为民用航空一种重要的新监视手段,但其开放共享的监视架构使它面临易被人为攻击和遭受虚假欺骗等安全性问题。若虚假的ADS-B系统向周围邻近的飞机或ADS-B地面站发送虚假ADS-B报文,则会造成飞行秩序的混乱,严重的会造成飞行冲突,酿成灾难性事故。因此,要实现ADS-B系统的全面推广应用,必须解决该系统易被人为攻击和虚假欺骗的安全漏洞。

目前国内外学者在非信息安全领域解决ADS-B系统防欺骗的方法主要有3种。第一种为采用一次监视雷达/二次监视雷达(PSR/SSR)校验法,通过将雷达获得的航迹与ADS-B信号形成的航迹进行比对来鉴定虚假位置目标;第二种为多基站时差定位校验法,利用机载ADS-B报文传输的到达时间差对目标进行位置解算;第三种为多阵列天线校验法,利用多面阵列天线对ADS-B报文进行空中方位的解算处理,获得目标真实位置信息,借此识别虚假欺骗目标。

上述3种方法都需要给ADS-B系统加装额外设备。本文提出一种基于全球导航卫星系统(GNSS)完好性信息与ADS-B报文完好性特征属性参数进行一致性比对的ADS-B自主式防欺骗方法,只是加装在ADS-B系统机载端和/或地面端的一种防欺骗算法,无须增加额外设备,能大大降低实现成本。

1 ADS-B报文完好性特征属性参数提取

ADS-B报文中完好性特征属性参数综合反映了ADS-B报文所提供定位信息的精度和完好性,因此对ADS-B报文的解析和对报文中完好性特征属性参数的提取是完成ADS-B自主式防欺骗算法的必要内容之一。

目前ADS-B报文中的位置信息都依赖于GNSS接收机,GNSS接收机在输出位置信息的同时亦输出水平保护级(HPL)来表征定位数据的精度。HPL是一个以计算出来的位置为圆心的圆的半径,飞机真实位置以1~10-7的概率落在圆圈内。为提高ADS-B报文有限长度内信息利用率,ADS-B机载设备将HPL值转化为导航不确定类别(NUC)值,NUC是ADS-B报文中充分反映GNSS完好性信息的特征属性参数,NUC是一个0~9的整数。随着对监视系统定位精度和完好性要求的提高,美国航空无线电技术委员会(RTCA)在2002年颁布的DO-242A《广播式自动相关监视(ADS-B)最低航空系统性能标准》中,提出了导航精度类别(NAC)、导航完好性类别(NIC)和监视完好性界别(SIL)的概念,对定位信息的精度和完好性分别进行描述[1],但目前只有极少数机载ADS-B设备支持该标准,因此,本文只考虑ADS-B报文中NUC参数的提取。

图1为1090ES ADS-B报文的基本结构[2],它由4个前导脉冲报头和112个信息脉冲数据构成。前导脉冲用来表示该数据为S模式数据,后112个信息脉冲数据在内容上有严格的格式要求,其中前88 bit为消息位,包括5 bit下行链路格式(DF)、3 bit设备能力标识位域(CA/CF/AF)、24 bit飞机地址(AA)以及56 bit ADS-B数据(ME),最后24 bit则为奇偶校验位(PI)。

ADS-B数据体主要存放在56 bit的ME字段中,其中前5 bit为TYPE字段(TYPE Code),表示不同类型的报文,取值0~31,但空中位置报文只能取0, 9~18和20~22之间的整数。空中位置报文中的经度和纬度采用紧凑位置报告(CRP)格式进行编码,而高度信息则直接取自于GNSS定位数据或气压高度表[2-3]。

根据文献[2-3],ADS-B报文中NUC的值依据接收机输出的HPL值的范围进行编码,通过解算TYPE Code的值,便可解码通过查表得到对应的NUC值,NUC对于位置和速度分别有一个指标,本文只研究表示定位精度和完好性的NUCp,因此文中出现的NUC均代表NUCp。

2 GNSS完好性参数解算

作为GNSS完好性参数,水平保护级(HPL)直接影响着1090ES ADS-B报文中位置信息的质量和可靠性,同时HPL也充分反映在ADS-B报文特征属性里。虽然目前ADS-B报文中的NUC参数都是通过接收机自主完好性监视(RAIM)预测的HPL转化来的,但作为RAIM的升级和扩展,本文在遵循DO-260A标准定义的ADS-B报文前提下,探索利用高级接收机自主完好性监视(ARAIM)解算的HPL进行ADS-B自主式防欺骗,从而将ADS-B报文自主式防欺骗的过程由航路、非精密进近扩展到LPV-200进近。

2.1 基于RAIM的HPL解算

接收机自主完好性监视(RAIM)是利用全球定位系统(GPS)接收机的多余观测值,或借助其他机载辅助信息,来检测和识别故障卫星的一种机载增强系统(SBAS)。RAIM只提供水平完好性监视,其监视结果可支持民用航空航路、终端区和非精密进近飞行对完好性的要求[4]。

在进行RAIM增强算法之前,需要根据当前位置下可见星的空间几何先判断RAIM的可用性,即根据接收的卫星导航数据计算HPL,并与所在飞行阶段要求的水平保护限值(HAL)相比较,如果HPL

可用性判定中HPL的具体算法如下:

设GPS的伪距观测模型为

y=Gx+ε

(1)

用户状态的最小二乘解为

(2)

伪距残差矢量v为

(3)

由上式可知,向量v中包含卫星观测误差信息,可以用作判断有无故障星的依据。通常距离残差向量v中的各分量是相互独立的服从正态分布的随机误差。

(4)

式中,SSE是伪距残差矢量平方和,且SSE=||ν||2=νTν。

在H0假设下,对于一定的误警率Pfa,可以得到[5]

1-Pfa

(5)

在H1假设下,对于一定的漏警率Pmd,由[5]

(6)

临界偏差则为

(7)

令每颗卫星的特征斜率为Slope(i),它是G的相关函数,即[6]

(8)

式中,A=(GTG)-1GT,S=I-G(GTG)-1GT。

在位置误差一定的情况下,卫星的斜率越大对应的检验统计量越小,卫星故障也越难检测。

因此,HPL为

(9)

式中,Slopemax为Slope(i)的最大值。

2.2 基于ARAIM的HPL解算

高级接收机自主完好性监视(ARAIM)不仅能提供水平完好性监视,还支持具有垂直引导满足航向信标性能(LPV)的进近对完好性的要求,最多可以支持将飞机以规定的所需导航性能(RNP)引导至距地面200 ft(60 m)高度的LPV(即LPV-200)[7]。

与RAIM算法流程不同,ARAIM直接根据具体飞行阶段对导航系统完好性的要求来计算保护限值,即通过控制危险误导信息概率(PHMI)来满足某一飞行阶段的完好性要求。基于多假设分组解(MHSS)的ARAIM算法是GNSS发展结构研究小组推荐的算法,通过扩展传统分组解法和使用多种假设法对完好性风险进行评估,考虑到在多个独立和相关卫星故障条件下多星座的伪距测量值,通过最优分配连续性和完好性风险来计算水平和垂直保护级,在算法上更加严格和灵活[8]。

GPS单星座下线性伪距方程如式(1)所示,多星座时ARAIM则需统一观测量的时空坐标基准,不同系统之间的钟差分别进行估计。

(10)

(11)

(12)

(13)

想要计算HPL,首先必须计算HPLq(q=1和2),而HPLq是以下方程的解[9-10]:

(14)

3 基于GNSS完好性ADS-B自主式防欺骗算法

基于GNSS完好性ADS-B自主式防欺骗算法的整体设计思路如图2所示,主要算法流程如下:

1) ADS-B报文库的生成。由于1090ES ADS-B数据与SSR数据共享传输射频,所以先从ADS-B接收机接收的原始数据中筛选出ADS-B空中报文,再根据RTCA DO-260标准规定的ADS-B报文格式和报文中包含的数据信息编解码算法,生成ADS-B虚假空中报文,将真假报文混合得到一个ADS-B报文库。

2) ADS-B报文解析。根据ADS-B报文解析方法,对ADS-B报文库中所有的ADS-B报文进行解析,得到报文的接收时间、飞机的位置信息(经纬高)以及NUC值。

3) HPL值解算。下载GNSS卫星星历,获取卫星运行轨道的开普勒参数,设定卫星遮蔽角为5°。由星历数据计算得到在报文接收时刻,飞机位置处可见星数目及其位置坐标。根据RAIM或ARAIM中HPL的算法,计算出ADS-B报文中时间和位置信息处预测的HPL值。

4) 虚假报文的剔除。根据RTCA DO-260标准,将得到的预测HPL值转化为预测NUC值,对比预测NUC值是否与报文解析得到的NUC值相等,如果相等则判断为真实报文,否则为虚假报文。

3.1 基于RAIM的ADS-B自主式防欺骗算法仿真

在Matlab仿真平台上对图2给出的防欺骗算法流程进行仿真实现。由于目前几乎所有民航运输飞机机载ADS-B设备的定位和导航信息均来自GPS接收机,而GPS输出的完好性信息HPL值是由内嵌在GPS接收机内部的RAIM算法计算得到的,故仿真实验采用从美国海岸警卫队官网(http://www.navcen.uscg.gov)下载的YUMA格式的GPS历书数据,数据包含正在运行的31颗GPS卫星,卫星遮蔽角取5°。

本仿真实验系统主要包括三大内容板块:第一部分主要完成ADS-B虚假报文的生成;第二部分主要完成卫星历书的加载和真假报文的混合;第三部分则完成对虚假欺骗的判别,并将结果直接显示在界面上。仿真实验系统的具体功能实现如下。

首先采用SBS-3系列ADS-B接收机,以中国民航大学北院[N39.1,E117.3,3]为接收点,接收从2015年5月18日6时51分18秒至2015年5月18日8时50分54秒之间,近2 h共计11 853条ADS-B和SSR报文数据。数据以十六进制保存为dat格式的文件,为便于仿真先转化存放在excel表格中,如图3所示。机载设备发送的ADS-B报文中并不包含报文生成发送的时间信息,但接收机在接收到报文时,会根据当地的计算机系统时间给报文加上一个时间戳,直接在报文的最前端加上相应的协调世界时(UTC)到达时间信息。

然后对图3所示的原始报文数据进行处理,筛选出只带有时间和ME消息字段的ADS-B报文数据。根据1090ES数据链报文的结构和组成,通过解析筛选得到所有ADS-B报文数据以及发送报文的所有飞机的身份识别号(ID)。选取其中接收到广播报文比较多的飞机进行仿真,本次仿真选取的飞机ID为8D780D33,通过筛选得到如图4所示的总计279条该架飞机的ADS-B空中位置报文。

通过Matlab模拟生成ID为“8D780D33”飞机的ADS-B虚假报文。图5为ADS-B虚假报文的模拟生成界面,该界面包括ADS-B报文模板的输入、各种时间和位置等仿真参数的输入以及仿真生成的虚假报文的显示。其中在飞机身份标签的文本框中输入包含飞机ID信息且满足RTCA DO-260标准的ADS-B报文,作为生成虚假报文的参考模板。虚假报文可以人为设定报文的经纬度和时间信息,高度值和NUC值则采用选取随机数的方式。本次实验共生成500条ID为“8D780D33”飞机的虚假ADS-B空中位置报文。

将接收的279条ID为“8D780D33”飞机的真实ADS-B空中位置报文,与模拟生成的500条虚假ADS-B空中位置报文相混合,得到含779条ADS-B报文的报文库。同时加载GPS历书文件,得到所有卫星的开普勒轨道参数。

最后解析报文库中的所有报文,得到对应报文的到达时间、飞机位置信息(经纬高)和NUC值。根据报文到达时间和位置,利用RAIM便可获得对应时间和位置处的HPL预测值。依据RTCA DO-260标准将该预测的HPL值转化为预测的NUC值,并将其与对应报文解析得到的NUC值进行一致性比对:如果两者一致则判断为真报文,否则判断为虚假欺骗。图6是对ID为“8D780D33”飞机的所有ADS-B空中位置报文的判别结果。上述处理过程在Matlab仿真平台上运行时间总计1.065 009 s。

为了获得本ADS-B自主式防欺骗方法的性能,分别对接收到的10架飞机的3 372条原始真实报文进行解析,并利用本防欺骗方法进行报文的真假判别,结果显示由上述3 372条原始报文通过CPR解码算法解析得到的578个位置信息中,有一条被误判为欺骗报文,误警率为0.173%。同样模拟生成5 000条虚假的ADS-B空中位置报文,对这些报文进行解析并利用本防欺骗算法进行真假判别,结果显示2 500个位置信息中有1个被误判为真实位置信息,漏警率为0.04%。

3.2 基于ARAIM的ADS-B自主式防欺骗算法仿真

基于ARAIM的ADS-B自主式防欺骗算法原理和流程与图2所示的一致,只不过由于目前接收到的飞机广播的ADS-B真实报文,其HPL都是基于RAIM算法而生成的[4],因此必须仿真生成完好性信息是基于ARAIM的ADS-B空中位置报文,并把这种报文作为真实报文。图7为这种报文的模拟仿真生成界面。

图7所示的仿真界面包括ADS-B报文模板的输入、各种时间和位置等仿真参数的输入以及仿真生成的真实ADS-B报文的显示。其中在报文模板标签的文本框中输入包含飞机ID信息且满足RTCA DO-260标准的ADS-B报文,作为模拟生成真实报文的参考模板。设定报文的经纬度和时间信息,高度值则采用选取随机数的方式给出。根据给定的时间和位置信息,利用基于MHSS的ARAIM算法计算HPL,并转化为报文中的NUC。依据ADS-B报文的编码原理,根据时间、空中位置信息(经纬高)和NUC值,模拟生成500条ID为“8D780D33”的飞机的真实报文,并显示在界面上。

此处ARAIM算法采用的是“GPS+GLONASS”双星座,星历数据采取http://celestrak.com网站上下载的两行轨道数据(TLE),包括正在运行的31颗GPS卫星和29颗GLONASS卫星,卫星截止高度角设为5°。

将仿真生成的ADS-B真实空中位置报文与3.1节仿真生成的虚假空中位置报文相混合,得到ID为“8D780D33”飞机广播的ADS-B报文库。解析所有接收到的报文,得到对应的报文到达时间、飞机位置(经纬高)以及NUC。根据时间和位置信息,利用基于MHSS的ARAIM算法计算出预测的HPL,转化为预测的NUC,并将其与解析得到的报文中的NUC值作一致性比对。如果二者一致,则判断为真报文,否则为虚假报文,如图8所示。上述处理过程在Matlab仿真平台上运行时间总计1.813 226 s。

同样,为了获得本方法的性能,利用上述模拟产生真实报文的方法,生成5 000条ADS-B真实报文,并用本方法进行报文的真假识别,结果显示得到的2 500个位置报文均为真实报文,误警率为0。同样模拟生成5 000条虚假ADS-B空中位置报文,对这些报文进行真假识别,结果有1个被误判为真实位置报文,漏警率为0.04%。

4 结束语

本文提出了一种基于GNSS完好性信息的ADS-B自主式防欺骗方法,并基于RAIM对ADS-B接收机接收的真实ADS-B报文与模拟产生的虚假ADS-B报文进行了相应的报文防欺骗仿真实验,结果表明本方法能有效防止不含完好性信息或完好性信息与飞机位置不关联的虚假ADS-B报文的恶意欺骗,误警率和漏警率分别为0.173%和0.04%。考虑到随着ADS-B技术的发展,其报文中的完好性信息完全有可能来自其他的GNSS增强技术,因此本文还同时研究了基于ARAIM的ADS-B自主式防欺骗算法,并进行了相应仿真,仿真结果同样表明本文提出的防欺骗方法具有良好的防虚假ADS-B报文欺骗的性能。

猜你喜欢
接收机报文解析
基于J1939 协议多包报文的时序研究及应用
功率放大器技术结构及在雷达接收机中的应用
GNSS接收机FLASHADC中比较器的设计
低轨星座短报文通信中的扩频信号二维快捕优化与实现
浅析反驳类报文要点
一种宽带低功耗四合一接收机设计
一种面向ADS-B的RNSS/RDSS双模接收机设计
睡梦解析仪
电竞初解析
对称巧用解析妙解