软件定义无线电技术(SDR)是在指定的硬件平台上通过软件重构技术来实现不同的通信标准的无线电技术。SDR 强调以商用化、开放性的硬件设计为通用平台,尽可能地用可升级、可重配的组件来实现各种无线电功能 。 波形文件的加载是 SDR 在软件方面的重要体现和重要组成部分,它支持了 SDR 的多业务能力、性能提升能力以及通信设备的未来扩展能力等复杂要求。在军用和民用通信领域,波形的在线动态加载技术应用非常广泛。近年来,针对通信设备的安全攻击也愈加频繁。提升波形加载的安全性、防止非授权修改等,成为无线通信产品设计与开发时的一个重要研究方向。 波形技术是对数字信息进行调制 / 解调的技术集合。波形文件是波形技术实现的目标文件。本文将以 vxworks 操作系统作为通用处理器的基础软件环境,以 FPGA 目标文件、DSP 目标文件以及 GPP 目标文件组成的波形文件为目标,通过分析一般波形加载流程及其面临的安全风险,提出一种基于无线通信系统的波形文件加载技术的安全策略,以提升无线通信系统的安全性和可靠性。 1 波形文件加载的现状及安全风险 1.1 硬件平台 本 文 采 用 以 GPP 通 用 处 理器、FPGA 芯 片、 DSP 芯片为基础环境的硬件架构,如图 1 所示。
系统上电后,利用外围电路的配置使 DSP 芯片处于主机加载模式(HPI 接口);GPP 通用处理器通过 HPI 接口加载 DSP 芯片执行程序,通过串行加载接口加载 FPGA 芯片执行代码。图 1 中,GPP 通用处理器与 FPGA 芯片之间采用并行接口连接, GPP 通用处理器与 DSP 芯片之间通过 HPI 接口连接, DSP 芯片与 FPGA 芯片之间采用并行接口连接。 1.2 波形文件加载的现状 波形文件加载程序是基于 vxworks 操作系统的一组程序,作用是加载存储于 vxworks 文件系统的波形文件的一组应用或者系统程序。波形加载的一般流程是:加载程序分别读取并加载 FPGA 目标文件、DSP 目标文件、GPP 目标文件。 相比 FPGA 和 GPP 的加载,DSP 目标文件加载的显著特征是:加载 DSP 目标文件前必须加载 DSP bootloader 程序。DSP 目标文件的加载过程,如图 2 所示。
DSP 系 统 的 bootloader 是 指 在 系 统 上 电 时, DSP 将一段存储在外部的非易失性存储器中的代码搬移到内部的高速存储单元中执行 。因此,DSP bootloader 程序对于 DSP 程序的正常运行和再次加 载是极其重要的,是 DSP 目标文件加载、运行的前提。 DSP 目标文件的加载采用的是主机加载模式。当加载程序完成所有代码和数据的写入后,加载程序将产生一个主机中断(HPI),然后 DSP 开始执行已加载的程序 。 在众多的实际目标系统设计过程中,因为功能、性能以及经济性等的考虑,设计人员未采用上述典型的三种类型目标芯片的硬件设计。但在软件设计上,波形加载的一般过程与上述流程基本一致。 1.3 波形文件加载面临的安全风险 在未对 vxworks 操作系统进行安全强化的前提下,波形文件加载的一般流程可能带来的安全风险有: (1)非授权访问:通过访问 vxworks 文件系统进行非授权篡改;加载过程无法保证波形文件的正确性,即波形文件可能会被替换为其他非法的但格式正确的文件; (2)文件系统损坏或者存储单元物理损坏极有可能导致波形文件的损坏; (3)DSP 芯片加载并运行 bootloader 后,波形文件加载程序无法获取其运行状态,增加了 DSP 运行的不确定性。 已被篡改或者替换的、损坏的文件一旦被加载运行,很有可能出现以下情况: (1)波形加载失败,甚至导致波形文件加载程序和 vxworks 操作系统的崩溃; (2)实际运行的波形与原波形不一致,最终导致目标波形的运行失败或者调制解调的效果偏离既定目标; (3)无法探知当前运行的波形的正确性,甚至导致安全域数据被非法发送。 2 波形文件的安全加载策略 2.1 波形文件加载的安全策略 波形文件加载的一般流程存在着安全隐患,因此必须增强其安全性,提升波形加载的可靠性。根据波形文件加载的特征和一般流程,本文提出提升其安全性和可靠性的主要手段有: (1)vxworks 操作系统访问安全性设置; (2)波形文件的指纹及验证; (3)FPGA 目标文件的运行验证; (4)DSP 程序的运行验证; (5)GPP 文件的运行验证 (6)波形文件的成套性鉴别。 2.2 vxworks 操作系统访问控制 在 vxworks 操作系统的配置管理中,直接涉及到用户访问内部资源的配置项有两个:RLOGIN/ TELNET password protection 和 FTP server security,分别作用于 shell 接口和 ftp 远端访问的访问授权。只 有 获 取 正 确 的 访 问 用 户 名 和 密 码, 才 能 通 过 telnet 和 ftp 进行 vxworks 内部资源的管理。配置项如图 3 所示。
在以上两项涉及 vxworks 操作系统安全性设置项中,至少遵循以下两个方面: (1)使用“用户名 + 密码”的安全认证机制,提升访问控制的能力,减少非授权访问; (2)密码的复杂度必须满足复杂密码设置的要求,提升暴力破解下的密码安全系数。 2.3 波形文件的指纹及验证 波形文件加载程序含有两个子程序:指纹获取子程序和指纹验证子程序。它们通过哈希函数对波形文件进行验证。哈希函数被广泛应用于数字签名、消息的完整性鉴别、消息的起源认证等 。 波形文件存储于 vxworks 文件系统后,启动波形文件加载程序的波形文件指纹获取子程序,主要目的是获取波形文件的唯一特征信息,即文件的特征值计算,并将该特征值存储于本地或者存储于波形文件加载程序内。 波形文件加载程序运行时,首先运行波形文件指纹获取子程序,获取存储于文件系统的波形文件的指纹数据,然后通过指纹验证子程序与已存储的数据进行比对,即特征值校验。 波形文件更新时,重新计算并存储其指纹信息(特征值)或者更新波形文件加载程序(指纹信息存储于波形文件加载程序内)。 2.4 FPGA 目标文件的运行验证 FPGA 目标文件是指被编译后以二进制文件方式存在的目标文件。它的指纹信息(特征值)被验证为正确后,FPGA 目标文件被加载到目标器件。 加载完成后,波形文件加载程序即进行 FPGA目标文件验证过程。加载程序与 FPGA 程序通过约定的地址偏移值读取验证数据,验证数据与约定的数据一致,则被确认为 FPGA 加载及运行正常;否则,退出波形文件加载过程并报错。 2.5 DSP 程序的运行验证 DSP 的加载过程不同于 FPGA,是先加载 bootloader 文件,然后加载 DSP 运行文件。因此,bootloader 的运行验证是 DSP 目标文件加载运行验证的首要条件。 DSP bootloader 加载到 DSP 芯片后启动。它会对 DSP 芯片内部的参数信息和外部的环境进行初始化,然后接收发送的 DSP 程序代码,并最终启动运行 DSP 程序代码。如果 DSP bootloader 异常,可能会导致 DSP 程序的最终失效。 DSP bootloader 加载的运行验证过程如图 4 所示。
如果 bootloader 文件存储于 vxworks 的文件系统中,首先需验证 bootloader 文件的特征值。加载并运行 bootloader 后,通过加载总线向约定的地址写入查询指令。bootloader 程序得到查询指令后,通过地址总线写入应答信息。如果应答信息错误或者应答超时,即可判定 DSP bootloader 异常。 DSP bootloader 运行正常后,加载程序前应校验 DSP 运行文件的特征值。校验完成后,加载程序即可加载 DSP 运行文件到目标芯片。 加载并运行 DSP 运行文件后,加载程序应通过类似认证 bootloader 的方法,认证 DSP 运行文件的运行结果。如果设备可能加载多个不同的 DSP 文件,应根据不同的文件反馈不同的认证值。 DSP 的加载过程中,特征值验证失败亦或程序运行认证失败,都必须恢复系统到默认状态。 2.6 GPP 文件的运行验证 GPP 目标文件在加载前同 FPGA 和 DSP 目标文件一样,需要进行特征值校验。特征值校验正确后,即开始加载该文件。 GPP目标文件的加载由vxworks操作系统负责。 vxworks 操作系统在加载适配于自身的程序文件时,会自动进行程序文件的正确性检查。检查内容包括文件校验、符号向量表以及适配性等。如果加载失败,则返回空值;否则。返回相应句柄值。 GPP 目标文件加载完成后,加载程序即可调用启动函数;启动函数执行完毕,立即向加载程序报告其认证值;超时未报告,加载程序判定 GPP 目标文件非法。 如果 GPP 目标文件是非法的,应立即启动卸载程序,清除残留信息,恢复系统至默认状态。 2.7 波形文件的成套性鉴别 波形文件加载的主要目的是为了在一个硬件系统上运行多个波形系统。波形系统的 FPGA 目标文件、DSP 程序文件、GPP 文件应该具备成套性,同时需具备不同的标识来标明自己身份的能力。 因此,加载程序加载完成所有的目标文件后,应该根据 FPGA 目标文件、DSP 程序文件、GPP 文件应答或者报告的认证值进行综合分析判断,查验波形系统的成套性,最终保证波形系统的正确性。 3 结 语 无线通信系统波形文件加载的安全策略,通过访问控制技术、特征值签名技术、认证 - 应答机制和成套性鉴别显著提升了波形文件加载的安全性和可靠性。下一步将继续在 vxworks 文件保护、vxworks 系统安全、指纹信息(特征值)安全存储以及跨平台设计等方面展开工作。 来自海洋兴业仪器http://www.hyxyyq.com
|