MAVLink链路通信协议安全分析*
2019-04-30刘照亮康令州
吴 颖,刘照亮,康令州,刘 欢,朱 江
(中国电子科技集团公司第三十研究所,四川 成都 610041)
0 引 言
无人机(Unmanned Aerial Vehicle,UAV)最先起源于军事领域,随着无人机技术的发展,其用途越来越广泛。目前按照应用领域分为军用无人机、民用无人机,其中军用无人机可再细分为侦察机、靶机、攻击机、通信中继机等类型,民用无人机可进一步细分为交通辅助、地理测绘、物流运输、农药喷洒等类型。按照规模尺寸划分,无人机可分为大型、中型、小型、微型无人机等。虽然各类无人机用途及结构各异,但其链路通信特点可归纳为以下几个方面:无物理防护边界、处于强干扰环境、信道资源受限等。
1 无人机概述
无人机系统通常包括三大部分:地面控制子系统、机载子系统、数据链路子系统。地面控制子系统是无人机的“大脑”,负责无人机的系统调度、任务规划、起飞降落、状态监控、数据处理等。机载子系统是指飞行器部分,负责无人机机体的动力推进、轨迹规划、姿态管理、任务执行、数据采集回传、定位导航等。数据链路子系统是地面控制子系统与机载子系统间的无线传输通道,由无线信号的发送及接收终端组成,包括上行、下行链路。无人机系统的组成如图1所示。
图1 无人机系统组成
2 无线链路安全威胁概述
由于无线信道具有开放性的特征,因而无人机通信环境相比其他通信网络面临更多的安全威胁。文献[1-4]研究并归纳了无人机系统在数据链路中遇到的常见安全攻击,包括通信窃听、信息篡改、身份假冒、重放攻击等。
2.1 通信窃听
攻击者可利用无线电波传输无物理防护边界的特点,截获链路上的传输信号,机载子系统与地面控制子系统交互的数据报文在没有采取保护措施的情况下,将被攻击者窃取,攻击者可多次收集数据样本,最终破译协议。数据报文可能会包含无人机的关键信息(比如飞控指令、配置信息、测控数据、姿态位置等),这些信息一旦被攻击者掌控,攻击者可结合其他手段,破坏无人机正常飞行,甚至劫持无人机,获得控制权。文献[5]提到IBM相关人士表示针对无人机的攻击门槛很低,非法攻击者仅需要掌握基本的信息通信知识,就能够以很低的成本劫持价值上万元的无人机。
2.2 信息篡改
链路上传输的报文存在中间人攻击的可能性,攻击者拦截正常的网络通信数据报文,并对拦截的数据进行“二次加工”,进行增加、删除、插入、修改等非法操作,并且将篡改后的数据报文发送给接收方,通信双方无法察觉数据报文已经被第三方拦截并且被篡改。
2.3 身份假冒攻击
攻击者伪造合法身份,接入无人机系统,非法接收数据或者获取服务。比如伪造遥控指令指挥无人机行动,或者误导地面控制子系统作出错误的指挥判断。文献[6]报道了一家名为Check Point的公司检测到大疆无人机在身份认证阶段的安全漏洞,并且利用该漏洞成功攻入无人机系统内部,非法获取关键信息的访问权,可读取无人机存储的日志、音视频等敏感信息。
2.4 重放攻击
攻击者将截获的历史数据报文发送给接收方。接收方误认为报文来自合法的发送方,向攻击者发送应答报文。攻击者可以多次发送数据报文,占用无人机系统的数据链路信道资源,影响接收方处理性能,并且可多次接收应答报文从而分析破解通信协议。文献[7]提到了美国一所大学的安全团队进行了一次测试,对一架无人机持续发送大量链路连接请求报文,导致无人机超负荷运行而失控。
3 MAVLink协议概述
3.1 协议简介
MAVLink链路通信协议(Mirco Air Vehicle Link Communication Protocol)是一种针对无人设备与遥控设备之间的空中无线链路通信协议,广泛应用于无人机、无人车辆等多种形态的无人装置。该协议由Lorenz Meier于2009年首次发布,随后分别于2013年、2017年发布了MAVLink 1(1.0版本)、MAVLink 2(2.0 版本)[8]。
MAVLink协议主要特点包括以下几个方面。第一,轻量级,协议的定位是面向小型或微型无人飞行装置,从协议的字段和流程设计来看,对通信双方处理性能要求不高。第二,灵活性,协议支持同一个网络下的不同系统通信,也支持同一个系统下不同组件通信,并且可由通信双方自定义业务载荷。第三,兼容性,不同版本之间可以较好的兼容适配,协议的2.0版本与1.0版本总体结构一致,主要差异在于2.0版本在数据报文首部增加了几个标志位字段、扩展了消息编号字段的长度、在尾部增加了可选配的签名字段。
3.2 协议定义
以官网公布的技术文献[8]可知,MAVLink 2协议报文包括协议首部(10字节)、协议载荷(变长,0~255字节)、协议尾部(2字节校验、13字节的可选配的签字字段)。具体协议报文结构如图2所示。
各字段定义如表1所示。
图2 MAVLink2协议报文结构
表1 MAVLink2协议字段定义
4 MAVLink协议安全性分析及改进
结合上文提到的几种主要攻击手段,对MAVLink2进行安全分析。MAVLink2安全机制主要体现在增加了身份验证流程,在协议中对应的字段为签名字段。下面我们重点研究签名字段。字段的组成如图3所示。签名字段定义如表2所示。
图3 MAVLink2协议签名字段结构
表2 MAVLink2协议签名字段定义
4.1 防窃听机制
MAVLink2协议未规定在防窃听方面的安全保护方案,因此如同上文所述,通信链路传输的数据信息存在被非授权者截获而导致隐私泄露的风险。解决方案是在链路协议中引入加密机制,通过对指定字段进行加密保护的方式,实现数据报文的防窃听机制。
4.2 身份验证机制及防篡改机制
协议规定:首先,地面控制子系统创建和管理签名密钥,由其负责将签名密钥以安全的方式传递给通信对端,签名密钥需妥善使用和安全存储,不能让非授权者获知。其次,通信发送方使用散列函数并结合签名密钥产生报文的签名,通信接收方利用相同的签名密钥及散列函数对报文签名进行验证。
针对协议选用的签名机制进行分析,可以得出结论:一方面,非授权者无法获得签名密钥,则无法伪造数据报文的签名,从而保证了通信双方身份的合法性;另一方面,签名是针对整个数据报文除签名字段以外的数据区,非授权者即使对数据报文进行了篡改,接收方通过计算获得的签名与数据报文签名进行比对,签名不符则视为非法数据报文,从而同时保证了数据报文的完整性。
4.3 防止重放攻击机制
协议规定:首先,通信发送方需按照“同一逻辑链路上的时间戳需要单向性变化”的原则产生时间戳。其次,通信接收方需要按规则检验时间戳的正确性:第一种情况,接收方需要留存上一次报文时间戳,待处理报文的时间戳应当大于本地记录的时间戳,否则弃包;第二种情况,如果接收方处于启动状态,并无历史存储记录,报文时间戳应当大于当前时间戳,并且两者相差数值不得大于1 min,否则弃包。
针对协议选用的基于时间戳的防重放机制进行分析可得,这种安全机制存在一定的局限性:一方面,时间戳以10 μs为递增单位,如果数据发送间隔时间小于10 μs,那么后发送的数据报文则会被接收方误认为重放攻击包,造成有效报文被丢弃的情况。另一方面,使用时间戳的前提是无人机机载子系统和地面控制子系统都具有精准的时间同步能力,并非所有无人机都具备这种能力。因此,可增加其他防重放攻击保护手段。
4.4 小结
综上所述,MAVLink1未考虑安全保护的相关内容。相较于MAVLink1,MAVLink2增加了防篡改、身份验证、防止重放攻击等机制,为无人机系统数据链通信的安全防护提供了重要的保障。建议在协议中增加防窃听安全保护措施,并且改进防重放机制,从而进一步增强数据链路通信的安全性。
5 结 语
本文在研究无人机链路通信原理的基础上,总结归纳了无人机链路通信常见的安全威胁和隐患,并以当前主流的MAVLink微型飞行无人机链路通信协议为例进行了研究及分析,指出了其安全性的不足。近年来随着无人机普及率增大,其安全事故频频曝光,造成了公众安全威胁、经济损失和财产损失。所以无人机安全问题应当引起高度重视,在无人机的链路通信协议中加强安全保护机制的设计,为无人机“保驾护航”。