刘文斌,丁建锋
(西南通信研究所,四川成都610041)
SCA电台内部消息安全管理机制的设计与验证
刘文斌,丁建锋
(西南通信研究所,四川成都610041)
SCA电台一般基于CORBA组件模型来设计业务、控制、信号处理、硬件抽象以及人机相关的各种组件,其分布式处理架构使得电台内部的业务数据难以集中管控,导致业务极不安全[S1],为解决该问题进行了深入的探索,研究了SCA软件架构及其安全架构,提出了电台内部业务消息的SCA组件化处理流程,给出了消息内容的安全集中管理机制以及消息存放位置单独传送的设计方法,并在SCA电台中对组件设计和安全集中管理机制进行了实现与测试验证。
软件定义电台 软件通信体系结构 安全管理 伙伴算法
为支持电台能像电脑运行应用软件一样方便地加载波形软件,解决波形组件的标准化规范问题,解决互联互通互操作问题,实现真正意义上的软件定义电台(SDR,Software Defined Radio),美国防部借助联合战术无线系统(JTRS,Joint Tactical Radio System)项目提出了软件无线电软件通信体系结构(SCA,Software Communication Architecture)标准。从2001年发布SCA2.2标准[1]开始,各国科研单位以极高的热情投入到SCA电台及其波形开发[2-3]中,到如今已经发展超过10年。美军以AN/PRC-152、AN/PRC-117G等为代表的基于SCA2.2标准架构的电台也经历了市场与实战检验[4],SCA规范已经得到广泛应用。
SDR在满足能加载多种波形的同时,需要考虑各个波形的安全加密需求,为此,需要设计一个统一的安全架构,使得波形切换时能够保持安全体系的运行不受影响。SCA2.2发布的安全体系附件[5],给电台的安全架构设计提供了参考。
SDR电台设备一般既要使用密文/话通信,又有使用明文/话通信的需求,且不同的业务有不同等级密码算法的保护需求。这些业务消息(包括明文和密文信息以及部分引导信息)以数据包的形式,存储在设备的软件进程或软件组件开辟的缓存中。SDR电台是一个多进程并发的设备,需要对进程间的数据、缓存进行安全隔离和统一管理。比如当设备进行明密模式切换时或波形切换时,应当清除在各进程或组件中的所有缓存数据,这样明密数据包或不同安全等级的数据包就不会混合,实现进程数据安全隔离。在检测到安全事件,如入侵告警时,同样有清除这些缓存中所有数据的需求。因此,有必要设计一种机制,来实现电台设备尤其是SCA电台内部信息的安全管理,但又不能影响正常的业务通信。
SCA定义了核心框架(CF,Core Framework),指的是必要的开放软件基础接口和配置文件,在嵌入式以及分布式计算环境中,提供对应用(即波形)组件的部署、管理、互连与互通信。实用的SCA软件平台包括两个方面,一是提供SCA操作环境,含核心框架、操作系统与中间件,这些是智能SCA电台的基础,提供了运行的架构;二是提供满足SCA接口规范的SCA设备组件,实现软件平台对硬件平台的管理,并提供波形与硬件平台的交互通路和隔离。
不同用户对电台的需求不同,可根据承载方式分为手持、背负、车载、舰载、机载,也可根据信道多少分为单通道、双通道、多通道。文中基于最简的全功能SCA架构模型进行电台设计,如图1所示,硬件架构上,通过安全保密模块,将硬件架构隔离成电台红边和电台黑边,安全加密模块一方面实现两个处理器的物理隔离,另一方面实现红黑交互的安全控制与信息加解密。红边、黑边至少配置一个智能CPU(又称通用处理器,GPP),红边黑边GPP型号可以不同。红边、黑边独立运行一套SCA软件环境。安全加密模块,插入数字处理板的红、黑处理器之间,一方面实现两个处理器的物理隔离,另一方面实现红黑交互的安全控制与信息加解密。
如图1所示,SCA架构采用分层独立设计思想。从消息传输流程看,最底层为硬件设备;第二层为操作系统;第三层为中间件层,引入中间件可以屏蔽不同操作系统的差异;第四层为应用层,通常所说的CORBA组件在该层描述,即需要运行在GPP的操作系统和中间件之上。SCA为了实现软件与硬件的分离,把传统的DSP、FPGA、安全加密模块或物理IO看成非CORBA组件,并封装了硬件适配组件(如Modem适配组件、IO适配组件,又称SCA设备组件)作为这些非CORBA组件的代理,既兼顾了对传统应用(波形)实现方法的继承,又实现了应用(波形)的硬件无关性。
图1 SCA2.2系统软件架构Fig.1 SCA2.2 system software architecture
SCA电台的软件架构因为对软件层次和技术都有较细的划分,SCA架构下的电台安全架构的开发就更加复杂,因此需要较长的学习曲线。为了推动SDR的发展,满足小型化、低功耗、多功能、高安全等多方要求,需要设计符合SCA规范的软硬件平台,同时也需要设计高效的电台内部消息传输和安全管理机制,应对多种波形多种业务的数据处理需要。文献[6]提供了模块化设计与安全设计思路,但缺乏具体方案实现以及测试结果分析;文献[7-8]等在嵌入式设备中提出使用伙伴算法对内存分配进行优化或安全方面的设计,但侧重于操作系统级别的内存分配,缺乏在SCA电台这种组件化运行环境中的设计方案。
SCA2.2架构有两种方式实现安全加密架构。一种方式是,安全加密模块封装成普通CORBA软件组件,提供基于CORBA的安全端口,红边、黑边的组件都可以通过CORBA端口连接访问;第二种方式是,把安全加密模块看成一个非CORBA组件,红边、红边组件只能通过安全适配组件(SCA设备组件)访问安全加密模块,以此实现红黑完全隔离,如图1所示。
上述第一种方式设计通用性更好,但现阶段尚未完全成熟,且在CORBA访问等红黑隔离设计上还需进一步实践验证。第二种方式考虑较为全面,设计也更加复杂,文中重点描述第二种方式。第二种方式至少需要三种机制配合。机制一:红边与黑边各部署一个安全适配组件,用于红边与黑边业务的交互。对于红边业务数据,经过红边安全适配组件送给安全加密模块加密后送到黑边调制;黑边解调后的数据,则通过黑边安全适配组件送给安全加密模块解密后送到红边。机制二:人机控制通过安全控制组件对安全加密模块进行各种安全控制。机制三:红边与黑边的CORBA互通,比如状态信息与配置信息等交互,通过安全加密模块进行旁路控制, CORBA使用可替换的底层传输机制,来适应这种安全机制,从而实现安全的跨平台分布式调用。
同一个平台上,SDR既能加载传统窄带波形,实现与传统电台的互通,又能够切换到新型宽带波形,实现IP无线组网。具体实施中,我们在电台的红边GPP上设计了四个设备组件和两个波形软件组件,如图2所示:①数据设备组件作为数据终端设备的适配器,对底层硬件和协议(如串口)进行抽象;②话音设备组件作为送/受话设备的适配器,对话音处理硬件进行抽象;③网口设备组件作为网口的适配器,对网口MAC/PHY层进行代理,基于网口驱动与物理网口进行交互;④安全适配组件作为安全加密模块的代理,对安全加密接口和协议进行抽象;⑤红边控制组件用于低速数据、话音的配置、封包、状态机管理、业务切换与流控;⑥安全网络协议栈组件封装IP网络协议栈,对网口设备组件送来的MAC包进行IP、TCP/UDP等标准协议处理。
图2 红边数据处理组件设计Fig.2 Design of data components in red side
波形设计人员可以根据需要灵活地加载不同的波形组件并设置连接关系。以宽带波形高速IP业务设计需求为例,图2中需要用到的波形组件是安全网络协议栈组件,需要用到的平台组件是网口设备组件和安全适配组件。以高速UDP/IP业务(如视频)发送为例,红边的数据处理流程是:①网口设备组件基于网口驱动监听网口状态,当有数据到来时,开辟内存空间保存数据包,并把数据包拷贝到CORBA字符流中,调用安全网络协议栈端口,把CORBA字符流作为参数传递到安全网络协议栈组件;②安全网络协议栈组件从CORBA字符流中取出数据并保存到临时开辟的缓存空间,处理完毕后,把添加了安全开销头的数据包拷贝到新创建的CORBA字符流中,调用安全适配组件端口,把CORBA字符流作为参数传递到安全适配组件;③安全适配组件从CORBA字符流中取出数据,送给安全加密模块进行加密处理。
SCA的分层和组件化设计,使得多个SCA组件间可以进行多种消息交互,且每个组件可以管理自己的缓存。因为一个处理通道上的业务数据消息会在不同组件上的多个缓存间拷入拷出,且每个组件都可以对数据进行复制,因此统一的数据管理(如擦除管理)十分困难。
为解决数据处理的分布式组件化与数据存放的集中式安全化之间的矛盾,文中提出使用操作系统提供的进程间通信机制—共享内存机制。但如何开辟并维护公共的内存区,如何在多个组件之间实现内存区中数据的共享和资源回收,使得数据处理高速、稳定,且可以根据需要擦除共享内存区里的数据,从而实现数据的安全管理,这些都是设计的难题。
文中提出的在SCA电台中使用基于共享内存的安全管理机制来对数据进行集中管理,设计了安全管理对象,它管理一片公共的内存区,基于伙伴算法进行内存分配和回收。各个组件都可以创建安全管理对象来访问同一片公共内存区,采用互斥机制来避免不同组件对该内存区同时进行读写操作。组件与组件间的信息传输,只需要把数据信息一次性存入到共享内存区,把数据存储位置等信息(数据索引)从一个组件发到另一个组件,中间传输过程无需对数据进行拷贝,因此,这种数据传输又可称为零拷贝传输。
安全管理机制可以基于伙伴算法对内存区进行合理的分配与回收,伙伴算法一般用于操作系统的内存分配,文中借鉴用于组件间传递信息的公共内存分配。假设公共内存数据区大小为4K字节且初始均空闲,某数据包申请分配1K字节的空间,则安全管理机制把4K字节分成两块2K字节,又把第一块2K字节分成两块1K字节,再把第一块1K字节分配给该数据包。相同大小的块合成一个链表,便于分配时查找。构成伙伴的两个块,需要满足:大小相同,物理地址连续,且从同一个大块中拆分。两个伙伴空闲时,又可以合并成一个。伙伴算法虽然内存利用率较低,但算法简单,内存分配与回收速度快。
安全管理机制下的红边IP业务通信流程设计如图3所示,其中UDP/IP包发送流程如下:①经过安全认证后的网口设备组件通过安全管理对象,使用伙伴算法为数据在共享内存中分配内存并填入数据,然后把数据指针转换成数据索引;②网口设备组件把数据索引发送到安全网络协议栈组件,如图3中箭头1所示;③经过安全认证后的安全网络协议栈组件收到数据索引,把索引转换成一个指向共享内存中的有效的数据指针;④安全网络协议栈组件基于该数据指针,若处理完数据,则释放相应的内存空间;若需要添加开销头,只需把数据指针前移相应数据位置进行添加即可(需要指示网口设备组件开辟内存空间时预留相应的数据位置),然后修改索引信息,并把索引传递给后边的安全适配组件,如图3中箭头2所示。从该流程的分析中可以看出,三个经过安全认证的组件间的数据交互无需进行数据拷贝,且数据一直保存在共享内存区中。红边UDP/IP包接收流程如图3中箭头3和箭头4所示。使用IP协议Ping包测试安全网络协议栈组件的流程如图3中箭头1和箭头4所示。这些基于IP的协议均可以基于安全管理机制进行消息处理。窄带波形低速数据与话音业务也可以通过这种机制来实现数据的安全管理。
图3 安全管理机制设计Fig.3 Design of security management mechanism
共享内存区可以分为共享内存管理区与共享内存数据区两个部分,其中管理区用于存储内存分配情况、数据索引等信息,数据区用于存储需处理的业务数据内容。安全管理对象可以提供接口用于紧急状况下擦除数据区中的所有数据,以维护数据的安全性,但不会擦除管理区的内容,因此不会影响安全管理对象和相关软件模块的正常工作。数据清除控制指令可以由安全加密模块在发现安全等级发生改变时发出。
文中基于SCA电台操作环境,对上述方案进行了CORBA组件实现和安全管理机制的实现,并进行了验证。实验参数如表1所示。验证方案使用QNX6.5操作系统提供的共享内存机制,并在此基础上设计内存管理对象,用于在RAM中开辟并管理2M字节的公共内存区。网口设备组件、网络协议栈组件和安全适配组件都可以创建内存管理对象,共同对这同一片公共内存区进行统一管理,但只会由先启动的组件开辟公共内存空间。网口设备组件和安全适配组件同属平台组件,在平台启动时加载。网络协议栈作为波形的一个组件,在波形加载后运行。
2M字节的内存区至少可以缓存1 000包IP数据包,这样的缓存机制可以在高速处理的同时,减少瞬时速率过高引起的丢包,提高数据处理的可靠性。虽然为每包数据分配的空间是2n字节,对内存空间有一定浪费,但该设计能足够满足电台的数据传输需求,而且可以利用冗余空间存储安全加密协议所需添加的开销头,因此减少了拷贝次数。
表1 安全管理机制参数Table 1 Parameters of security management mechanism
文中在实现了如图3所示组件的基础上,基于IP协议进行Ping包测试,用于验证安全管理机制的可行性。
IP_Request请求包从测试计算机(该计算机端口已完成认证)发到电台网口,电台网口驱动获取数据包后存入安全内存数据区,再通过网口设备组件把位置索引转发给安全网络协议栈组件(图3中的箭头1传递数据索引)。安全网络协议栈组件把收到的索引转换成数据指针,对数据进行分析,然后启动协议栈的IP协议处理,创建IP_Reply应答包进行应答(图3中的箭头4传递数据索引)。一个方向的消息流程处理完毕后,才会释放对应的内存空间。
文中使用Windows命令窗口统计了测试计算机从发送请求包到收到应答包之间的延时,结果如表2所示,数据载荷为32~512字节时,均能在1 ms内收到应答,这说明安全管理机制工作正常,各组件对公共内存区数据的读写正常。
通过网络抓包工具发现,当数据载荷较大时(如3 000字节的载荷数据),测试计算机Ping请求会把数据拆分放入3个IP包依次发送,并能在5 ms内收到对应的3个连续应答IP包,这说明为电台设计的安全管理机制在连续发送与接收包的情况下工作正常,各个组件对内存数据区的处理操作没有影响到其它组件的处理。
表2 Ping包测试结果Table 2 Test results of ping
由此可见,文中设计的安全机制,在不同的数据长度下,在连续包发送情况下,都能够正常工作,其数据处理能力能够满足一般的小型低功耗电台宽带波形需求。各个组件都能够利用消息内容的位置索引来映射存放在共享内存区中的消息内容,使得数据存储与消息发送相分离,在保障数据安全的情况下,满足电台内部消息传送的需要。
SCA电台内部的软件模块化设计思想支持复杂的组件间消息传递流程,但消息的安全管理非常困难。文中提出的安全管理机制,实现了处理器对消息内容即业务数据进行集中管理,对消息内容映射的存储位置信息进行单独发送,在满足数据处理要求的同时,能够在安全等级发生改变时对数据进行清除,从而确保业务数据的安全。此外,数据存储与消息发送相分离,实现只传递数据位置而不传递数据内容的零拷贝机制,能够减少数据复制,加快数据处理。后续研究可以考虑为不同消息设置优先级别和安全级别,以支持不同消息采用不同优先级的QoS处理,并支持不同安全等级事件发生时基于安全级别的消息内容清除。
[1] JTRS JPO.MSRC-5000 SCA V2.2(2001-11-17), Software Communication Architecture Specification[S]. USA:JTRS JPO,2014.
[2] 张海燕,丛键.一种新型SCA电台的分析与设计[J].通信技术,2012,45(09):21-24,28.
ZHANG Hai-yan,CONG Jian.Analysis and Design of A Novel SCA Tactical Radio[J].Communications Technology,2012,45(09):21-24,28.
[3] 彭麟,宋滔.宽带高速电台的低功耗小型化设计与研究[J].通信技术,2013,46(09):23-25.
PENG Lin,SONG Tao.Miniaturization Design and Research of Wideband High-Speed Receiver Radio[J]. Communications Technology,2013,46(09):23-25.
[4] 徐剔.从美空军购置“猎鹰”Ⅲ宽带电台谈起[J].通信导航与指挥自动化,2009(06):67-70.
XU Ti.Topics about FalconⅢRadiosPurchased by USA Air Force[J].Communication Navigation and Command Automation,2009(06):67-70.
[5] JTRS JPO.MSRC-5000 SEC V1.1(2001-11-17),Security Supplement to the Software Communication Architecture Specification[S].USA:JTRS JPO,2014.
[6] BROWN T,MARCH D,PALUM L.Mobile Wireless Communications Device Providing Data Management and Security Features and Related Methods:US 2007/0094463 A1[EB/ OL].(2007-04-26)[2014-1-25].http://www.freepatentsonline.com/y2007/0094463.html
[7] 赵跃华,蔡贵贤,黄卫菊.一种嵌入式安全内存管理的设计与实现[J].计算机工程与设计,2006,27(16): 3092-3095.
ZHAO Yue-hua,CAI Gui-xian,HUANG Wei-ju.Design and Implementation of Embedded and Secure Memory Management[J].Computer Engineering and Design. 2006,27(16):3092-3095.
[8] 郑晓曦,张虎.一种改进的伙伴系统内存管理方法[J].计算机与数字工程,2008,36(03):46-48,133.
ZHENG Xiao-xi,ZHANG Hu.An Improved Buddy System Method for Memory Management[J].Computer& Digital Engineering.2008,36(03):46-48,133.
LIU Wen-bin(1983-),male,M.Sci., engineer,majoring in software defined radio.
丁建锋(1977—),男,学士,高级工程师,主要研究方向为无线通信系统。
DING Jian-feng(1977-),male,B.Sci.,senior engineer, majoring in wireless communication system
Implementation and Verification of Secure Message Management Mechanism in SCA Radio
LIU Wen-bin,DING Jian-feng
(Southwest Research Institute of Communications,Chengdu Sichuan 610041,China)
SCA Radio based on CORBA component model is generally used to design the components related to traffic,control,signal processing,hardware abstraction and HMI.This distributed processing architecture would result in hard implementation of centralized control on the traffic data within the radio,and thus lead to some safety problems.In order to solve these problems,SCA software architecture and related security architecture are discussed,the message processing procedures for traffic data by SCA components proposed,and the design methods for centralized security management mechanism and location information transferring mechanism for message given in this paper.These methods are implemented,tested and verified by SCA components.
SDR;SCA;security management;buddy algorithm
TN924;TP309.2
A
1002-0802(2014)03-0308-06
10.3969/j.issn.1002-0802.2014.03.015
刘文斌(1983—),男,硕士,工程师,主要研究方向为软件无线电;