本发明涉及卫星导航技术领域,特别涉及一种攻击检测方法、攻击检测器、计算机可读存储介质和终端。
背景技术
目前,由于良好的性能和低廉的接入成本,我们的生活日益依赖全球导航卫星系统(globalnavigationsatellitesystem,gnss),因此,gnss的安全也受到越来越多的公众关注。gnss信号欺骗是所有导航应用程序的关键威胁。当假冒信号被故意广播给目标用户时,就会发生欺骗攻击,从而导致错误的位置确定。因此,gnss接收机需要一个能够检测欺骗信号的功能。由于全球导航卫星系统安全的重要性,已经开发出了许多攻击检测技术,例如,基于多天线和绝对功率测量的攻击检测技术。但是,该技术需要额外的硬件或对接口规范进行更改,因此,它们的应用是被限制的。
现有技术中还提供了一种检测欺骗攻击的方法,即检测假冒信号源的位置(即卫星轨道位置),包括使用地面通信信号或者使用惯性导航系统两种方法。当使用地面通信信号时,通过使用地面通信信号来比较确定的导航卫星接收机位置。一般而言,地面通信系统不仅为了通信目的,而且可以提供位置信号,基站信号比gnss信号更难、更不容易被欺骗。当使用惯性导航系统时,将惯性解决方案与gnss导出的位置解决方案进行比较。
技术实现要素:
为了解决上述技术问题,本发明提供了一种攻击检测方法、攻击检测器、计算机可读存储介质和终端,能够高效、鲁棒地检测欺骗攻击。
为了达到本发明目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种攻击检测方法,包括:
确定对应存在欺骗攻击假设的上层检测阈值,以及对应不存在欺骗攻击假设的下层检测阈值;
获取由卫星信号确定的第一卫星位置和由预测星历确定的第二卫星位置,定义统计量为所述第一卫星位置和所述第二卫星位置之差的绝对值,计算当前时刻的统计量的对数似然比累计和;
比较所述对数似然比累计和与所述上层检测阈值的大小,以及所述累计和与所述下层检测阈值的大小,以确定是否存在欺骗攻击。
进一步地,所述比较所述对数似然比累计和与所述上层检测阈值的大小,以及所述累计和与所述下层检测阈值的大小,以确定是否存在欺骗攻击,包括:
如果所述累计和大于或等于所述上层检测阈值,则确定存在欺骗攻击;
如果所述累计和小于或等于所述下层检测阈值,则确定不存在欺骗攻击;
如果所述累计和在所述下层检测阈值和所述上层检测阈值之间,则获取下一时刻的统计量的值,重新计算所述累计和并进行所述比较。
进一步地,所述计算当前时刻的统计量的对数似然比累计和的计算公式为:
其中,
进一步地,所述确定对应存在欺骗攻击假设的上层检测阈值,以及对应不存在欺骗攻击假设的下层检测阈值,包括:
确定可接受的虚警概率α和可接受的漏检概率β;
根据确定的虚警概率α和漏检概率β,计算所述上层检测阈值λu和所述下层检测阈值λl:
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一项所述的攻击检测方法的步骤。
本发明实施例还提供了一种攻击检测器,包括确定模块、计算模块和比较模块,其中:
确定模块,用于确定对应存在欺骗攻击假设的上层检测阈值,以及对应不存在欺骗攻击假设的下层检测阈值;
计算模块,用于获取由卫星信号确定的第一卫星位置和由预测星历确定的第二卫星位置,定义统计量为所述第一卫星位置和所述第二卫星位置之差的绝对值,计算当前时刻的统计量的对数似然比累计和;
比较模块,用于比较所述对数似然比累计和与所述上层检测阈值的大小,以及所述累计和与所述下层检测阈值的大小,以确定是否存在欺骗攻击。
进一步地,所述比较模块确定是否存在欺骗攻击的方法,包括:
如果所述累计和大于或等于所述上层检测阈值,则确定存在欺骗攻击;
如果所述累计和小于或等于所述下层检测阈值,则确定不存在欺骗攻击;
如果所述累计和在所述下层检测阈值和所述上层检测阈值之间,则获取下一时刻的统计量的值,重新计算所述累计和并进行比较。
进一步地,所述计算模块计算当前时刻的统计量的对数似然比累计和的计算公式为:
其中,
进一步地,所述确定模块具体用于:
确定可接受的虚警概率α和可接受的漏检概率β;
根据确定的虚警概率α和漏检概率β,计算所述上层检测阈值λu和所述下层检测阈值λl:
本发明实施例还提供了一种终端,包括卫星接收机、星历预测器和如以上任一项所述的攻击检测器,其中,
所述卫星接收机,用于接收卫星信号,根据卫星信号确定所述第一卫星位置;
所述星历预测器,用于接收来自服务器的种子数据,根据种子数据确定所述第二卫星位置。
本发明的技术方案,具有如下有益效果:
本发明提供的攻击检测方法、攻击检测器、计算机可读存储介质和终端,通过比较由卫星信号确定的第一卫星位置和由预测星历确定的第二卫星位置之差的绝对值的对数似然比累计和与预先设置的二元检测阈值的大小,实现了一种新的攻击检测方法,通过使用新的信号源(即预测星历)来检测假冒信号源的位置,能够高效、鲁棒地检测出欺骗攻击。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例的一种攻击检测方法的流程示意图;
图2为本发明实施例的一种攻击检测器的结构示意图;
图3为本发明实施例的一种终端的结构示意图;
图4为本发明实施例的一种攻击检测系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
参照图1,本发明实施例提供了一种攻击检测方法,包括如下步骤:
步骤101:确定对应存在欺骗攻击假设的上层检测阈值,以及对应不存在欺骗攻击假设的下层检测阈值;
需要说明的是,本发明通过二元假设检验来实现攻击检测。二元检测是一种简单假设检验,输出为两种可能的假设之一,h0和h1,并称h0为零假设(表示不存在欺骗攻击),h1为备选假设(表示存在欺骗攻击)。
优选地,本发明的二元假设检验基于最优序列概率比检验(sequentialprobabilityratiotest,sprt)实现攻击检测。sprt是一种检测技术,它为给定的错误率提供最小的检测延迟。它是最佳的,因为它使用最少的信息量做出可靠的决定。sprt需要最小的内容和时间,以提供可靠的检测和最佳的延迟,在低复杂性和低内存要求下,保证有界的假警报和错过检测概率。sprt设置两个检测阈值:下层检测阈值λl和上层检测阈值λu,其中下层检测阈值λl代表不存在欺骗攻击,上层检测阈值λu代表存在欺骗攻击。当计算出的测试统计值超出这些检测阈值时,可以得出结论,并停止数据收集。
进一步地,步骤101中确定对应存在欺骗攻击假设的上层检测阈值,以及对应不存在欺骗攻击假设的下层检测阈值,包括:
确定可接受的虚警概率α和可接受的漏检概率β;
根据确定的虚警概率α和漏检概率β,计算所述上层检测阈值λu和所述下层检测阈值λl:
需要说明的是,检测阈值的选取,分别反映了可接受的假警报事件的概率pfa和错过检测事件的概率pmd。根据奈曼-皮尔逊标准,可接受的pfa和pmd应设置为pfa=p(d1|h0)=α;pmd=p(d0|h1)=β,d1代表检测出欺骗攻击的区域,d0代表没有检测出欺骗攻击的区域;α、β分别为可接受的虚警概率和可接受的漏检概率。通过给定的pfa和pmd,可以得到两个对数似然比阈值λl与λu。
假设检测移动到样本k,那么k的似然比是
其中,
根据pfa和pmd的定义,得到:
通过取面积d0和d1的积分,可以得到似然比的上下阈值。
已知给定为
步骤102:获取由卫星信号确定的第一卫星位置和由预测星历确定的第二卫星位置,定义统计量为所述第一卫星位置和所述第二卫星位置之差的绝对值,计算当前时刻的统计量的对数似然比累计和;
具体地,假设
预测星历(或称为扩展星历)的目的是提供一致的辅助数据,以协助卫星接收机快速定位。辅助数据可能包括卫星轨道和时钟的预测,一般而言,预测星历比在卫星接收机上收到的广播星历更难,也更不容易受骗。这种检测欺骗攻击的方法是将接收到的卫星位置与预测的卫星位置进行比较。这一比较是通过采用序列概率比检验方法进行。
需要说明的是,当通过预测星历确定的第二卫星位置有效时,所述第一卫星位置和所述第二卫星位置之差仅包含噪音,即h0:δi=n,其中,n~n(0,σ2),即n服从期望为0,标准差为σ的高斯分布。所述标准差σ为通过预测星历确确定的卫星位置精度。
在一个实施例中,所述标准差σ的值可以是固定值,例如20米或25米。
当卫星信号存在欺骗攻击时,通过卫星信号确定的第一卫星位置将包含一个大误差,即h1:δi=a+n,其中,h1~n(a,σ2),即h1服从期望为a,标准差为σ的高斯分布,a是对欺骗信号影响的极小值的误差估计。
在一个实施例中,所述期望a的值可以是固定值,例如200或250米。
在这两种假设下,最终的统计量
进一步地,所述计算当前时刻的统计量的对数似然比累计和的计算公式为:
其中,
步骤103:比较所述对数似然比累计和与所述上层检测阈值的大小,以及所述累计和与所述下层检测阈值的大小,以确定是否存在欺骗攻击。
进一步地,所述比较所述对数似然比累计和与所述上层检测阈值的大小,以及所述累计和与所述下层检测阈值的大小,以确定是否存在欺骗攻击,包括:
如果所述累计和大于或等于所述上层检测阈值,则确定存在欺骗攻击;
如果所述累计和小于或等于所述下层检测阈值,则确定不存在欺骗攻击;
如果所述累计和在所述下层检测阈值和所述上层检测阈值之间,则获取下一时刻的统计量的值,重新计算所述累计和并进行比较。
需要说明的是,进入下一时刻时,当前时刻的对数似然比的累计和
本发明实施例还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一项所述的攻击检测方法的步骤。
如图2所示,本发明实施例还提供了一种攻击检测器,包括确定模块201、计算模块202和比较模块203,其中:
确定模块201,用于确定对应存在欺骗攻击假设的上层检测阈值,以及对应不存在欺骗攻击假设的下层检测阈值;
计算模块202,用于获取由卫星信号确定的第一卫星位置和由预测星历确定的第二卫星位置,定义统计量为所述第一卫星位置和所述第二卫星位置之差的绝对值,计算当前时刻的统计量的对数似然比累计和;
比较模块203,用于比较所述对数似然比累计和与所述上层检测阈值的大小,以及所述累计和与所述下层检测阈值的大小,以确定是否存在欺骗攻击。
进一步地,所述确定模块201具体用于:
确定可接受的虚警概率α和可接受的漏检概率β;
根据确定的虚警概率α和漏检概率β,计算所述上层检测阈值λu和所述下层检测阈值λl:
进一步地,所述计算模块202计算当前时刻的统计量的对数似然比累计和的计算公式为:
其中,
进一步地,所述比较模块203确定是否存在欺骗攻击的方法,包括:
如果所述累计和大于或等于所述上层检测阈值,则确定存在欺骗攻击;
如果所述累计和小于或等于所述下层检测阈值,则确定不存在欺骗攻击;
如果所述累计和在所述下层检测阈值和所述上层检测阈值之间,则获取下一时刻的统计量的值,重新计算所述累计和并进行较。
需要说明的是,进入下一时刻时,当前时刻的对数似然比的累计和
如图3所示,本发明实施例还提供了一种终端,包括卫星接收机301、星历预测器302和如以上任一项所述的攻击检测器303,其中,
所述卫星接收机301,用于接收卫星信号,根据卫星信号确定所述第一卫星位置;
所述星历预测器302,用于接收来自服务器的种子数据,根据种子数据确定所述第二卫星位置。
需要说明的是,本发明所述的终端可以是任何类型的设备,如笔记本电脑、平板电脑、智能手机、可穿戴的电子设备等等。终端可以包括(但不限于)用于执行和存储指令的处理器和内存,软件可以包括一个或多个应用程序和操作系统。终端可以具有多个处理器和多个共享或单独的内存组件。
图4为根据本发明所述的一种攻击检测系统。如图4所示,卫星信号420a、420b和420c从一个或多个卫星410a、410b和410c发射。从一个或多个卫星410a至410c传输的卫星信号420a至420c可以由终端450接收,终端450被配置为使用卫星信号420a至420c与卫星410a至410c通信。
终端用户使用包括在终端450中的gnss技术确定终端的位置。如图4所示,假冒或欺骗信号460可由模拟器(如gnss模拟器)生成,由发射机470传送到有限区域。发射机470可以以更高的信号功率传输,并可能与信号闭塞环境或主动干扰器结合,以减少终端450检测到实际gnss信号的可能性。
参考图4,终端450可包括卫星接收机451、星历预测器452和攻击检测器453。在任何给定时间,卫星接收机451能够区分哪些卫星410a至410c发射卫星信号420a至420c及其各自在空间的位置。星历预测器452使用从服务器430接收到的种子数据生成未来的星历。与卫星接收机451的实际观测相比,这种种子数据可以提供完整的gnss星座。在某些实现中,根据星历预测器452的能力,预测星历的有效期在14或28天之内。每个卫星的预测星历包括卫星轨道数据和时钟状态。星历预测器452可以提供预测的或扩展的星历,以协助卫星接收机451确定终端450的位置,从而减少了初次定位时间(timetofirstfix,ttff)。根据目前披露的一个实施例,星历预测器452存储了一个用于预测轨道和时钟的软件程序,可以根据软件程序计算出轨道和时钟的预测。
如图4所示,种子数据通过无线通信网络440从服务器430传输。在一个实施例中,无线通信网络440可以是蜂窝通信网络。终端450使用射频信号与蜂窝站通信(不显示)根据各种蜂窝技术,如全球移动系统(globalsystemformobilecommunication,gsm),码分多址(codedivisionmultipleaccess,cdma),宽带码分多址(widebandcodedivisionmultipleaccess,wcdma),长期演进(longtermevolution,lte)等。在另一个实施例中,无线通信网络402可以是无线局域网(localareanetwork,lan)。终端450使用射频信号与接入点(不显示)通信,根据各种通信协议,如基于电气和电子工程师协会(instituteofelectricalandelectronicsengineers,ieee)802.11协议(如wifi网络)。
攻击检测器453能够分别从卫星接收机451和星历预测器452接收一个或多个导航读数。卫星接收机451的一个或多个导航读数是卫星接收机451接收到的一个或多个卫星位置。星历预测器452的一个或多个导航读数是星历预测452所预测的一个或多个卫星位置。攻击检测器453监视卫星接收机451中的一个或多个导航读数,以检测恶意导航信息。恶意导航信息,其中可能包括从一个或多个发射机470传输的一个或多个欺骗信号460。从一个或多个发射机470传输的一个或多个或欺骗信号460可以由终端450接收。
攻击检测器453将接收到的卫星位置与预测的卫星位置进行比较。这一比较是通过使用二元假设检验实现的,它可以通过在攻击检测器453中存储的软件程序进行执行。当导航读数从卫星接收机451和星历预测452分别收集,攻击检测器453执行一个不断进行的统计分析,重复执行。导航读数在每次观察或收集间隔后反复进行评估,直到作出决定为止。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。