张双, 孔德岐, 王元勋, 万欣宇, 姚红静, 郭阳明
(1.西北工业大学, 陕西 西安 710072; 2.西安航空计算技术研究所, 陕西 西安 710068)
ARINC811规范中飞机机载网络划分为飞机控制域(aircraft control domain,ACD)、航空公司信息服务域(airline information services domain,AISD)、乘客信息与娱乐服务域(passenger information and entertainment services domain,PIESD)。ACD域包括飞行控制、航电、燃油、环控等高安全(safety)等级(A~C级)飞机控制系统,实现飞机的安全飞行,对于数据通信有着极高的安全性要求,在A380/A350/B787和C919中均使用ARINC664P7网络。航空公司信息服务域包括机载信息服务器、视频监视、电子飞行包、机载空地无线等低安全等级(D~E级)航电系统,为航空公司提供飞机的信息化运营与维护服务,使用符合ARINC664P3规范的航空以太网。为了实现飞机的信息化服务,ACD域与AISD域之间需要实时交换大量的数据,导致ACD域面临来自AISD域的信息安全(security)威胁,进而可能影响ACD域系统的功能安全与飞机的适航性。在A380/A350与C919等新型飞机上已实现从ACD域到AISD域的ARINC664P7单向安全通信。随着新一代宽体飞机对机载系统的数字化和信息化需求提升,ACD域与AISD域之间的ARINC664P7双向安全通信成为打通信息互通的关键。
文献[1]提出了一种航电核心域网络与网络服务系统内部网络之间安全的数据通信方法,但未实现安全功能模块的运行空间隔离。文献[2-4]针对微内核的虚拟化架构,提出了虚拟机间的通信加速方法与I/O机制。文献[5-7]针对嵌入式系统,从架构与硬件角度提出了相应信息安全设计方法。文献[8-11]针对物联网的轻量级虚拟化场景,提出基于Unikernel技术的解决方案以及相关信息安全保护方法。
虚拟化技术通过将不同功能的子系统部署在同一硬件平台的虚拟机上,为计算资源的管理和隔离提供了一种更加灵活高效的解决方法。为此,本文试图基于引入虚拟化技术后的航电信息交换场景,建立飞机网络域之间的信息双向安全通信架构,设计基于属性的信息访问控制模型,以及安全关键数据保护与安全关键组件健康监控方法,实现飞机控制域与航空公司信息服务域之间实时、高速与安全的信息交换。
ACD域与AISD域的互联拓扑如图1所示,为了实现2个域之间的双向安全通信与异构网络数据交换,从飞机级设计部署航电安全网关,应满足以下主要技术指标约束:
1) 具有ARINC664P7和航空以太网的连通性,支持与ACD域和AISD域的网络连接;
2) 隔离ACD域和AISD域之间的数据交换;
3) 控制AISD域流向ACD域的消息通信;
4) 在实现功能步骤2)的前提下,应能在50 ms内完成数据双向转发;
5) ACD域消息交换性能不低于70 Mb/s。
图1 飞机控制域与航空公司信息服务域网络拓扑
由此可见,航电安全网关的技术指标既要求网关实现网络域数据交换与隔离,还需满足实时性要求,而现有的实现方案无法满足以上要求。虚拟化技术能提供空间隔离特性,保证在虚拟机内部运行的应用仅能使用所驻留虚拟机的计算资源、网络接口以及固定存储空间等,而不能访问到其他虚拟机的资源。为此,采用多核处理器实现高性能计算需求,通过空间隔离实现虚拟机间安全通信需求,设计基于虚拟化的航电双向安全通信架构,如图2所示。
图2 基于虚拟化的航电双向安全通信架构
基于虚拟化的航电双向安全通信架构由硬件设施层、虚拟机管理软件和虚拟机组件构成。硬件设施层实现通用计算、ARINC664P7网络通信和航空以太网通信等功能,包括多核计算、ARINC664P7端节点、航空以太网端节点等硬件组件。多核计算硬件采用支持非对称多处理AMP和Hypervisor指令的PowerPC多核处理器,能够支持虚拟机与处理器核的一对一绑定。
虚拟机管理软件工作在处理器特权层,用于完成虚拟机资源配置、虚拟机创建、虚拟机间单向安全通信等功能。虚拟机管理软件根据预先配置的物理资源定义创建虚拟机,在运行时根据通信访问策略,实现虚拟机之间的单向安全通信。
虚拟机运行在处理器应用层,根据业务与网络域隔离需求,设计部署3个虚拟机,分别是航电网络访问控制虚拟机(ACDAC-VM)、信息网络访问控制虚拟机(AISDAC-VM)与健康监控与日志记录虚拟机(HMLOG-VM)。每个虚拟机分配单独的处理器核、内存、网络接口等硬件资源。
航电网络访问控制虚拟机负责ACD网络域的通信与访问控制功能,包括4个组件:
1) 航电网络通信访问控制组件:负责从虚拟机安全通信管理组件接收消息,根据访问策略对消息进行策略判定,将合规的消息通过接口发给航电网络发送组件。
2) 航电网络发送组件:根据ARINC664P7网络配置,将合规的消息打包成ARINC664P7通信帧,通过航电网络端节点驱动组件的接口发送。
3) 航电网络接收组件:根据ARINC664P7网络配置,接收ACD域发来的ARINC664P7通信帧,解析通信帧,调用虚拟机安全通信管理组件接口发给信息网络通信代理组件。
4) 航电网络端节点驱动组件:采用硬件虚拟化实现虚拟机层对ARINC664P7端节点硬件的PCIE驱动与DMA高速访问。
信息网络访问控制虚拟机负责AISD网络域通信代理和访问控制功能,包括2个组件:
1) 信息网络通信代理组件:作为AISD域的访问控制执行者,对出入航电安全网关的AISD域消息实施策略控制。
2) 信息网络端节点驱动子卡:采用硬件虚拟化实现对航空以太网端节点#1硬件的访问。
为了提高方案的安全性和可靠性,特别设计了健康监控与日志记录虚拟机,负责实时监控航电网络访问控制虚拟机与信息网络访问控制虚拟机的健康状态,并记录日志,包括2个组件:
1) 健康监控组件:实时监控并记录航电网络访问控制虚拟机与信息网络访问控制虚拟机内部的组件健康状态,发现失效组件时立刻告警。
2) 日志记录组件:实时接收并记录虚拟机内部功能组件发送的运行日志,用于审计和架构优化。
基于虚拟化的航电双向安全通信架构通过虚拟化技术实现了功能组件的空间隔离特性,为了实现系统对ACD域和AISD域之间的数据交换与消息流控制需求,设计基于属性的多航电域访问控制模型(attribute-based access control for multiple avionics domain,MAD-ABAC),如图3所示。
MAD-ABAC模型包括以下元素:
1) AISD PEP:航司信息服务域策略执行点,处理AISD域内客户端的访问请求。
2) AISD PDP Contract:航司信息服务域策略判定点合约,为AISD PEP提供策略查询服务。
3) AISD PDP属性:定义AISD PDP策略属性和属性关系。
4) VMM PEP:虚拟机管理层策略执行点,处理VM中的访问请求。
5) VMM PDP Contract:虚拟机管理层策略判定点合约,为VMM PEP提供策略查询服务。
6) VMM PDP属性:定义VMM PDP策略属性和属性关系。
7) ACD PEP:飞机控制域策略执行点,处理来自AISD域和ACD域的访问请求。
8) ACD PDP Contract:飞机控制域策略判定点合约,为ACD PEP提供策略查询服务。
9) ACD PDP属性:定义ACD PDP策略属性和属性关系。
10) ACD RA PEP:飞机控制域网络资源属性策略执行点,处理对ACD域网络资源访问请求。
11) ACD RA Contract:飞机控制域网络资源属性策略判定点合约,为ACD RA PEP提供策略判定服务。
12) ACD RA属性:定义飞机控制域网络资源策略的属性与属性关系。
MAD-ABAC模型内部元素采用分布式部署。其中,AISD PEP、AISD PDP Contract与AISD PDP属性部署在AISDAC-VM中;VMM PEP、VMM PDP Contract与VMM PDP属性部署在VMM中;ACD PEP、ACD PDP Contract、ACD RA PEP、ACD RA Contract、ACD PDP属性与ACD RA属性部署在ACDAC-VM中。
MAD-ABAC模型的执行在初始化阶段,系统将AISD PDP属性、VMM PDP属性、ACD PDP属性和ACD RA属性从固储中读取,并结构化成访问控制策略,供相应的Contract使用。在运行时阶段,相应的PEP与PDP Contract按访问控制策略执行信息流控制判定。信息流多级访问控制的执行策略判定规则如下:
1) 从AISD域到ACD域:由低安全等级到高安全等级,信息流顺序经过AISD PEP、VMM PEP、ACD PEP、ACD RA PEP等4级策略判定。
2) 从ACD域到AISD域:由高安全等级到低安全等级,为提高消息转发性能,信息流顺序经过ACD RA PEP、VMM PEP、AISD PEP等3级策略判定。
MAD-ABAC模型基于属性执行控制决策,决策抽象为U,R,A1,…,An→perm,其中U表示用户,R表示资源,Ai表示属性,perm表示决策结果,合约策略属性集设计见表1。
表1 合约策略属性集
根据数据对核心功能执行的必要性和泄露后对功能的影响程度,认定AISD PDP Contract、VMM PDP Contract、ACD PDP Contract、ACD RA Contract为架构的安全关键数据,这些数据不能被非法访问。为此,设计了合约安全关键数据保护模型,实时监控其完整性是否被破坏。以ACD PDP Contract为例,保护模型如图4所示。
图4 合约安全关键数据保护模型
图4中,保护流程在初始化阶段,航电网络访问控制配置加载组件读取ACD PDP属性文件,计算每条规则的校验值,建立ACD PDP Contract,然后使用数字签名算法计算其签名值,并保存在预定的内存区。运行时阶段,当需要对通信数据进行策略判定时,航电网络访问控制规则匹配组件实时读取ACD PDP Contract中的策略,计算其校验值,与保存在运行时规则库中的校验值比较。比较结果如果相同,则该策略有效并允许使用;如果不同,则表明该策略已被篡改,航电网络访问控制规则匹配组件发出告警。同时,在规定的时间周期,航电网关关键数据监控组件使用数字签名算法计算ACD PDP Contract的签名值,并与合约签名值比较。比较结果如果相同,则ACD PDP Contract有效,如果不相同,则表明其已被篡改,航电网关关键数据监控组件立刻发出告警。
由此可见,合约安全关键数据保护模型从2个层次对安全关键数据的完整性提供了保障,使用校验值实现对规则数据的完整性保护;使用签名值实现对运行时规则库的完整性保护。同时,通过周期性检查,能够及时发现关键数据是否被篡改。
航电双向安全通信架构部署在飞机控制域与航空公司信息服务域的边界,具有高可靠与高可用要求。根据功能组件对系统实现核心功能的重要性和失效后对系统的影响程度,认定航电网络通信访问控制组件、航电网络发送组件、航电网络接收组件和信息网络通信代理组件为安全关键组件。因此,应实时监控架构中的安全关键功能组件功能的有效性,如果发现功能失效,立刻记录日志并报告。为此,设计了安全关键组件有效性实时监控模型,模型如图5所示,执行过程如图6所示。
图5 安全关键组件有效性实时监控模型
安全关键组件有效性实时监控模型中的各安全关键功能组件在运行时,周期的生成组件健康状态数据、更新时间戳、计算校验值,然后写入状态存储区中。健康监控组件每周期从状态存储区中读取各安全关键功能组件的健康状态数据,通过检查时间戳和校验值以判断对应的组件是否有效,并将各组件的健康状态数据综合成航电安全网关的健康状态消息并上报机载综合维护管理系统。如果健康状态组件发现某个安全关键组件为失效状态,则生成告警消息,发送至日志记录组件。
图6 安全关键组件有效性实时监控执行过程
基于虚拟化的航电双向安全通信架构与信息流安全访问控制模型,研制虚拟化航电安全网关(virtualization avionics secure gateway,VASG)。VASG硬件基于QorIQ T2080多核处理器设计,板载4 GB内存,1个ARINC664P7端节点连接ACD网络,2个千兆航空以太网端节点连接AISD网络。本方法需在支持虚拟化的嵌入式实时操作系统上验证,VASG使用国内自主研发的天脉嵌入式实时操作系统,其虚拟机管理器采用微内核设计。微内核虚拟机管理器运行在处理器的特权级,确保其对系统物理资源的管理和控制,虚拟机及其内部的应用运行环境、中间件、设备驱动、应用等全部运行在非特权层,防止单个虚拟机的异常行为对整个系统的运行造成影响。微内核虚拟机管理器构建的虚拟机具有空间隔离特性,可在不同虚拟机间提供安全保护。
VASG采用硬件虚拟化技术,将航电网络访问控制虚拟机与ARINC664P7端节点子卡硬件绑定,将信息网络访问控制虚拟机与航空以太网端节点1绑定,将健康监控与日志记录虚拟机与航空以太网端节点2绑定。
结合实验验证需求,构建如图7所示的基于VASG的双向安全通信验证环境,开展双向安全通信的功能测试、性能测试等工作。ACD域验证设备用于验证VASG的ACD网络通信功能与性能;AISD域验证设备用于验证VASG的AISD网络通信功能与性能;机载网络攻击仿真设备能向AISD网络注入包括DDoS攻击、后门攻击、蠕虫攻击等类型的网络攻击,用于验证VASG的安全隔离功能。
图7 虚拟化航电安全网关的双向安全通信验证环境
分别在无网络攻击和注入网络攻击2种不同安全条件下开展VASG的双向安全通信功能、性能测试。
表2 虚拟化航电安全网关功能测试项
VASG功能测试项目见表2,采用自动化测试方法开展测试。首先根据功能测试需求使用Python语言开发测试用例程序,然后在验证环境中执行测试程序,并将测试输出与预计结果对比。性能测试采用随机生成64,128,256,384,512,1 024,2 048,4 096,8 192字节大小的消息,进行数据转发时间和消息交换速率的性能测试,选择100次实验结果进行性能均值分析。
实验过程步骤设计如下:
1) 在无网络攻击条件下,开展VASG的功能测试与性能测试。
2) 向AISD网络注入网络攻击报文,构建一个混合流量的网络条件,开展VASG的功能与性能测试。
图8 性能测试结果
在无网络攻击和注入网络攻击2种条件下,VASG功能测试的各项结果与预期结果一致。性能测试结果如图8所示。无网络攻击网络条件下,ACD网络数据发送的最大转发时间为45.3 ms,ACD网络数据接收的最大转发时间为41.3 ms,;ACD网络的消息发送速率的最小值为73.1 Mb/s,均值为75.3 Mb/s,消息接收速率最小值为92.5 Mb/s,均值为93.2 Mb/s。注入网络攻击条件下,ACD网络数据发送的最大转发时间为49.8 ms,ACD网络数据接收的最大转发时间为46.5 ms;ACD网络消息发送速率的最小值为69.9 Mb/s,均值为70.4 Mb/s,消息接收速率最小值为84.1 Mb/s,均值为86.2 Mb/s。由测试结果看,在网络攻击条件下,AISDAC-VM因处理攻击流量,数据转发性能有所下降,最大转发时间均小于50 ms,消息收发速率均值大于70 Mb/s,满足系统技术指标。
新一代宽体飞机的信息互联应用场景中,飞机网络域间安全通信是实现飞机控制域内系统与航空公司信息服务域内系统之间高速数据交换的核心技术。基于虚拟化的航电双向安全通信需求,提出基于属性的多航电域多级访问控制模型,设计了合约安全关键数据保护、安全关键组件有效性实时监控等方法。基于虚拟化航电安全网关物理样机,开展了功能、性能与网络安全实验验证,实验结果表明本方法满足技术指标要求。本方法不仅可用于宽体飞机,也可用于有网络域双向通信场景需求的其他类型航空器。