APP下载

基于DSP协处理器的蓝牙安全传输方案设计

2014-07-07黄一才郁滨

计算机工程与应用 2014年16期
关键词:单芯片数据流蓝牙

黄一才,郁滨

信息工程大学密码工程学院系统工程教研室,郑州 450004

基于DSP协处理器的蓝牙安全传输方案设计

黄一才,郁滨

信息工程大学密码工程学院系统工程教研室,郑州 450004

深入分析蓝牙安全机制,结合蓝牙芯片的特点,提出了一种蓝牙安全传输方案,该方案通过重新分配片内资源,用DSP协处理器处理相对复杂的密码运算,解决了通过外部增加硬件增强蓝牙安全性而带来的信息“落地”、硬件复杂等问题。实验结果表明,方案能在不影响蓝牙数据传输速率的情况下增强蓝牙通信安全,且能有效降低蓝牙安全产品成本,实现方便,可靠性高。

蓝牙单芯片;蓝牙安全;DSP协处理器;蓝牙核心协议栈;蓝牙安全传输;算法库

1 引言

自1998年蓝牙规范发布以来,蓝牙以其方便快捷的数据传输能力在手机、汽车、医疗等领域得到了广泛应用。然而由于蓝牙自身安全问题,限制了蓝牙技术在一些如金融、军事等高安全需求领域的进一步应用。

文献[1-3]研究了蓝牙自身安全机制,并指出蓝牙协议在安全方面存在的弱点。文献[4]对蓝牙PIN(Personal Identification Number)安全进行分析,并利用一台Pentium IV PC机在0.06 s时间内破解了四位的PIN码。文献[5]详细分析了一次中继攻击的实施过程,并指出蓝牙缺乏用户身份认证是导致攻击发生的根源。

针对蓝牙自身所存在的安全问题,许多学者从不同角度提出了增强蓝牙安全的方案。文献[6-8]通过改进蓝牙协议层,增加蓝牙用户认证与访问控制,有效保证了上层蓝牙数据的安全。文献[9]通过增加ARM、FPGA来实现蓝牙“三芯片”安全传输。文献[10-11]利用FPGA来实现了蓝牙“双芯片”安全增强方案。文献[12]研究了基于片上系统(System On Chip,SOC)实现蓝牙单芯片应用开发的一般框架,但并未就蓝牙单芯片内蓝牙安全传输方案作深入研究。文献[13]研究了利用蓝牙芯片内XAP处理器实现密码算法的一般方法,并给出了基于蓝牙单芯片密码算法的执行性能,但并未就完整的蓝牙安全增强方案进行研究。

以上研究尽管从不同方面增强了蓝牙通信安全,但由于增加外部芯片导致蓝牙信息“落地”,且增加了硬件复杂度。利用蓝牙单芯片实现蓝牙安全传输,可以实现数据“不落地”处理,在不增加额外硬件的前提下,保证蓝牙数据传输速率,提高蓝牙安全产品的安全性和方便性。

综上所述,本文通过研究蓝牙协议栈和蓝牙芯片结构特点,通过对蓝牙芯片片内资源的重新分配,设计基于蓝牙单芯片的安全传输方案。在此基础上,通过设计基于DSP(Digital Signal Processor)协处理器的算法库结构、数据交互接口和算法库启动过程,最终实现蓝牙单芯片安全传输。

2 安全传输方案设计

蓝牙核心协议负责安全蓝牙信道的建立与管理,并为上层蓝牙应用提供蓝牙数据传输服务,是实现蓝牙通信的关键协议层。因此,通过改进蓝牙核心协议层可有效保护所有蓝牙应用的安全。

2.1 方案总体结构设计

蓝牙链路层通过调用底层蓝牙芯片提供的硬件安全算法实现蓝牙设备认证。结合蓝牙协议栈特点,在L2CAP(Logical Link Control and Adaptation Protocol)层与RFCOMM层,通过引入用户认证与访问控制机制,增加用户认证与访问控制模块,加强对上层数据的细粒度保护,上层通过选择应用层加密,实现对用户数据机密性保护。基于以上思想,设计基于DSP协处理器的蓝牙单芯片安全传输方案总体结构如图1所示。

图1 基于DSP协处理器的蓝牙单芯片安全传输方案总体结构图

图1中深色部分表示采用蓝牙规范本身具备的安全模块,浅色部分为蓝牙安全增强模块。方案总体结构中各模块的功能如下:

(1)硬件安全算法库。该模块是由蓝牙规范定义、由蓝牙芯片厂商在蓝牙基带层采用硬件形式实现的一系列安全算法,如E0算法,为上层协议运行提供数据运算服务。

(2)设备认证模块。该模块主要通过蓝牙规范定义的PIN认证和安全配对过程,实现蓝牙设备认证。

(3)用户认证与访问控制。该模块在HCI(Host Controller Interface)层以上的蓝牙核心协议(L2CAP、RFCOMM层)参与工作,负责对上层提供细粒度安全保护。

(4)应用层加密。该模块通过调用软件算法库中的加密算法对应用层的敏感数据进行加密,达到对用户数据的机密性保护。

(5)软件安全算法库。该模块主要是由各种安全算法组成的安全算法库,为HCI层以上的蓝牙用户认证、应用层加密等提供复杂计算能力。

软件安全算法库一般由计算开销较大的密码算法组成,是保证蓝牙上层数据安全的关键模块。蓝牙通信过程中,XAP处理器主要负责运行蓝牙协议栈,计算量较大的算法放在XAP处理器内实现会使得蓝牙通信速率急剧下降,影响通信质量。与XAP处理器相比,芯片内集成的DSP协处理器具有更高的数据处理能力,将密码算法利用芯片内的DSP协处理器来实现,不仅可以提高算法的执行速度,而且可以最大限度地保证蓝牙通信质量。因此,在XAP处理器内实现标准蓝牙协议栈,L2CAP层以上安全机制所需要的安全算法,则通过DSP协处理器空间的安全算法库实现,同时,由于蓝牙音频编解码对计算速度要求较高且计算速度较快,仍由DSP协处理器来实现。

2.2 安全固件工作流程设计

CSR公司(Cambridge Consultants Ltd)提供了运行于BlueCore蓝牙芯片上的蓝牙协议栈(BlueStack),协议栈包括了蓝牙核心协议及常用的上层应用剖面。因此,在系统上电复位后,蓝牙通信双方通过PIN码配对,实现设备认证,并建立L2CAP连接,随后调用DSP算法库进行蓝牙用户认证,根据认证结果,为上层ACL (Asynchronous Connection-Oriented)应用分配RFCOMM层连接端口,或为音频数据流分配SCO(Synchronous Connection-Oriented)端口。上层应用也可以调用DSP算法库对数据进行加密,保证上层应用层敏感数据安全。蓝牙单芯片上实现数据安全传输的固件工作流程如图2所示。

图2 蓝牙单芯片安全传输固件工作流程图

在L2CAP层以上的安全机制中,所用到的安全算法均通过调用软件算法库接口来实现。因此算法库的设计、算法库与协议栈的数据传递问题是蓝牙单芯片安全传输的关键。

3 DSP算法库构建方法研究

利用蓝牙芯片内的DSP协处理器构建软件算法库是实现上层蓝牙安全固件的关键。本章在文献[14]研究的基础上,从数据传输方式选择、操作链结构设计以及算法库启动过程三个方面深入研究DSP算法库的构建方法。

3.1 算法库结构设计

根据蓝牙单芯片安全传输方案总体结构设计,算法库接受由蓝牙HCI层以上蓝牙协议栈内蓝牙用户认证与应用层加密模块的调用,为相应模块提供复杂数据的快速计算能力,并将计算结果返回调用模块。结合算法库功能及蓝牙芯片在DSP数据处理特点,设计基于DSP协处理器的算法库结构如图3所示。

图3 算法库内部结构

算法库由算法选择、算法参数设置、安全算法、临时数据缓冲区、数据交互接口五个基本模块组成,其中各模块的基本功能如下:

(1)安全算法。该模块是算法库的核心,有安全传输方案中HCI层以上所有安全算法,包括认证算法、协商算法、加密算法等。

(2)算法选择。该模块根据蓝牙协议栈中安全模块的要求,从安全算法模块中选择对应的算法,为算法分配必要资源,建立适合算法运行的内部环境,并启动算法处理中断进程。

(3)算法参数设置。该模块负责接受由蓝牙协议栈发送的算法可变参数,如密钥、随机数等,在算法选择模块正确调用安全算法的基础上,为算法设置必要的运行参数。

(4)临时数据缓冲区。该模块主要负责安全算法运算过程中临时数据变量的存储,通过设置静态表或循环缓冲的方式解决因算法去除与数据传递速率不匹配的问题。

(5)数据交互接口。该模块主要负责与蓝牙协议栈之间进行数据交互,根据控制消息与数据流特点,选择适合的数据交互方式,为算法库正常运行提供必要数据准备。

数据交互接口是实现DSP协处理器与蓝牙栈之间数据传递的重要通道。基于DSP协处理器的算法库与蓝牙协议栈之间传递的数据包括控制类消息传递与应用数据流两类,下面对算法库的数据交互操作接口进行进一步详细设计。

3.2 数据交互接口设计

蓝牙协议栈与DSP协处理器算法之间有三种通信方式:短消息(Short M essage)、长消息(Long M essage)、数据流(Stream)。其中短消息与长消息实现方式较为简单,占用资源较少,数据流传递方式实现相对较为复杂,但数据传递速度快,适合批量数据集中场合。

(1)控制消息传递

在DSP协处理器算法库中,控制消息主要包括算法库启动、停止指令,认证、密钥协商等,数据传递时机较为分散,数据量较小,因此可以采用消息传递机制来实现。

(2)应用数据流传递

应用数据流通常为需要算法处理的批量的用户数据,如需要进行加解运算的明文或密文。由于数据流传递方式在批量数据传递时具有明显的性能优势,因此可以采用数据流传递方式实现应用批量传递。蓝牙协议栈与DSP协处理器之间批量数据的传递过程如图4所示。

图4 批量数据传递过程示意图

蓝牙协议栈将待处理数据写入MMU提供的虚拟写端口,DSP完成对数据处理后,将数据写入虚拟读端口,并最终传递到蓝牙协议栈。其中涉及三次数据转移过程,即输入流例程、变换流例程、输出流例程,它们的功能分别是:

①输入流例程。该例程主要负责将数据由输入缓冲复制到DSP RAM空间内的MMU读端口缓冲。

②变换流例程。该例程主要负责DSP RAM空间内的数据经DSP协处理器算法库处理后,写入输出缓冲。

③输出流例程。该例程主要负责将数据由DSP的MMU写端口缓冲复制到MMU端口输出缓冲。

其中输入/输出流对象用于在协议栈缓冲与cbuffer之间传递数据,操作函数利用cbops的库操作$cbops. shift,通常采用定时中断方式实现。变换流不仅实现了输入缓冲与输出缓冲之间的数据传递,而且完成了DSP数据处理,采用查询方式实现。结合DSP协处理器的内部结构,设计变换流的三级操作链结构图5所示。

图5 变换流三级操作链结构

在变换数据流中,通常采用中断方式对输入缓冲中的数据进行实时处理。在变换数据流的中断例程中,利用cbops操作结构为每一个数据流建立三级操作链结构,即定义变换流的数据流对象、操作符对象、操作函数列表,建立具有自动流控的数据流连接,并在操作函数列表中通过选择算法库中具体安全算法的入口地址实现对算法库的调用。

3.3 算法库启动过程设计

DSP协处理器算法库在虚拟机(VM,Virtual Machine)的控制下完成初始化,等待来自VM的控制指令,并根据需要为VM提供计算服务。在认证与协商过程中,算法库计算结果通过消息机制回传给蓝牙协议栈,而在应用层加密时,密文直接通过数据流通道返回蓝牙协议栈。图6描述了一次应用层数据加密过程中,启动应用层数据加密服务,建立带自动流控的数据流传递机制,启动算法库的过程。

步骤1DSP处理器和RAM空间初始化。初始化后,各寄存器进入复位状态,RAM空间清零,VM对DSP程序存储区和数据区初始化。

步骤2建立数据流连接。在VM的控制下建立蓝牙协议栈与端口间双向数据流连接。

步骤3启动DSP处理器。VM向DSP发送处理器启动指令,指令寄存器载入程序指令,数据地址发生器产生读数据地址。

步骤4设定DSP数据处理模块的加密/解密模式。VM通过模式设定消息更新密钥并生成算法各圈使用的圈子密钥,为启动信道加密算法做准备。

步骤5执行数据加/解操作。算法库检测DSP RAM输入缓冲,有数据到来时,按算法分组长度将输入缓冲内的数据依次进行处理,并将处理后的数据传递到输出端口。收到数据传输结束消息,算法处理完所有数据后结束本次操作。

图6 应用层加密中启动DSP安全算法库过程

4 实验及结果分析

根据本文蓝牙单芯片安全传输方案的设计思想,在两台主机之间建立安全蓝牙信道,对蓝牙应用层数据传输速率进行测试。

4.1 实验方案设计

为了基于DSP协处理器的蓝牙单芯片安全传输方案性能进行验证,本文设计如图7所示的实验环境。

图7 实验环境示意图

其中,蓝牙芯片选用CSR公司的BC05蓝牙模块。测试过程中,蓝牙模块与主机之间通过UART连接,测试数据由主机1经UART接口传递至BC05蓝牙模块,在蓝牙模块内处理(如加密等)完成后经蓝牙信道传递到另一端蓝牙接收模块,蓝牙接收模块内完成数据处理(如解密等)后,经UART接口传递至主机2。在主机1与主机2上对数据的发送和接收速率进行统计,得到实现数据。

为了对基于DSP协处理器的蓝牙单芯片安全传输方案的数据传输性能进行测试,本文设计了以下三个对照实验:

实验1:在蓝牙信道建立后,不启用DSP协处理器算法库,即蓝牙信道中采用明文传输数据,即普通蓝牙通信。

实验2:依据文献[13]的设计思想,在蓝牙信道建立后,采用XAP处理器上的加密算法对协议栈数据包进行加密,即XAP方案。

实验3(本文方案):在蓝牙信道建立后,启用DSP协处理器算法库对来自蓝牙协议栈的数据包进行加密,并将处理结果返回蓝牙协议栈。

4.2 结果分析

利用如图7所示的实验平台,设定UART波特率为115 200,数据加/解密算法采用公开的AES算法(分组长度为128比特,密钥长度为128比特,迭代次数为10次),对以上三个方案分别进行10独立实验,每次传递1 MB数据,记录每次实验数据,得到应用层数据传输速率如图8所示。构、数据交互接口、算法库启动过程三个方面对方案中的DSP协处理器算法库的构建方法进行了重点研究。实验结果表明,利用DSP协处理器来实现计算量较大的密码算法能够尽量减少对蓝牙数据传输速率的影响,实现蓝牙数据“不落地”处理,有效保证了蓝牙数据传输安全。另外,本文仅对DSP处理器内一种加密算法的执行性能进行测试,当DSP处理器内运行多个复杂密码算法后,对整个数据传输性能的影响仍有待进一步研究。同时,DSP协处理器算法库的实现过程较为复杂,深入分析DSP内部结构特点,研究提高DSP协处理器算法并行执行性能也是需要重点研究的问题。

图8 ACL数据包数据传输速率

从实验3(本文)与实验2[13]实验结果可以看出,采用DSP协处理器算法库实现的加密通信数据传输速率明显高于XAP方案,因此采用DSP协处理器算法库实验对提高算法执行速率,减少加密过程对蓝牙传输速率的影响具有重要作用。

从实验3(本文)与实验1的实验结果可以看出,采用DSP协处理器算法库后数据加密传输速率与明文传输速率相当,制约数据传输速率的关键在于UART通道或蓝牙本身的数据传输。

综上所述,基于DSP协处理器实现蓝牙单芯片安全传输能够满足蓝牙对数据传输速率要求,利用蓝牙芯片内的DSP协处理器实现蓝牙单芯片安全传输是实际可行的。

5 结束语

本文结合现有蓝牙安全增强方案的设计方法及蓝牙芯片的结构特点,设计了一种基于DSP协处理器的蓝牙单芯片安全传输方案,并从DSP协处理器算法库结

[1]Markus J,Susanne W.Security weaknesses in Bluetooth[M]. San Francisco:[s.n.],2001.

[2]Jørgen H K.BlueTooth—Introduction to wireless security[Z]. 2008.

[3]Hager M C T,M idkiff S F.Demonstrating vulnerabilities in Bluetooth security[J].IEEE,2003:1420-1424.

[4]Yaniv S,Avishai W.Cracking the Bluetooth PIN[C]//the 3rd USENIX/ACM Conf on Mobile Systems,Applications,and Services(MobiSys),2005.

[5]A lbert L,Erhan Ç,Murat A,et al.Relay attacks on Bluetooth authentication and solutions[M].Berlin Heidelberg:Springer-Verlag,2004.

[6]王利涛,郁滨.蓝牙用户认证方案的设计与仿真实现[J].计算机工程与设计,2008,29(14):3607-3609.

[7]郁滨,王利涛.一种蓝牙访问控制方案的设计与实现[J].仪器仪表学报,2007.

[8]卢小亮,刘连东,郁滨.一种基于角色的蓝牙强制访问控制方案的设计[C]//计算机应用与进展学术年会(CACIS),2008.

[9]李颖川.蓝牙安全平台设计与安全传输研究[D].郑州:信息工程大学,2008.

[10]李海燕,郁滨.基于NiosII的蓝牙主机设计与实现[J].计算机工程与设计,2009,30(22):5116-5119.

[11]Hämäläinen P,Liu N,Sterling R.Design and implementation of an enhanced security layer for Bluetooth[C]// Croatia Z.8th International Conference on Telecommunications-ConTEL,2005.

[12]殷伟凤,刘高平,李国胜,等.基于蓝牙单芯片的嵌入式蓝牙系统实现[J].计算机工程与应用,2004,40(20):111-113.

[13]黄一才,郁滨.基于蓝牙单芯片的密码算法实现方案研究[J].计算机技术与应用进展,2009:112-116.

[14]黄一才.基于蓝牙的密码资源注入系统设计与实现[D].郑州:信息工程大学,2010.

HUANG Yicai,YU Bin

Department of Cryptography Engineering,Information Engineering University,Zhengzhou 450004,China

The Bluetooth security mechanism and the structure of the Bluetooth chip are analyzed,and then a Bluetooth security transmission scheme is proposed in this paper.By redistributing the in-chip resources,DSP coprocessor is used to deal with the comparative complex cryptographic algorithm.Contrasting with adding extra chip hardware,the proposed scheme solves the problem of information leakage and hardware complexity.Experimental results demonstrate that the scheme can not only enhance the communication security of Bluetooth and reduce the cost of Bluetooth security products, but also show s high reliability without influencing the Bluetooth transmission speed.

single Bluetooth chip;Bluetooth security;DSP coprocessor;Bluetooth core protocol stack;Bluetooth security transmission;algorithms library

A

TP309.1

10.3778/j.issn.1002-8331.1209-0122

HUANG Yicai,YU Bin.Design of bluetooth security transmission scheme based on DSP cop rocessor.Computer Engineering and Applications,2014,50(16):81-85.

黄一才(1985—),男,助教,研究领域为短距离无线通信技术,信息安全;郁滨(1964—),男,博士,教授,研究方向为无线通信、系统工程、信息安全。E-mail:HuangYicai3698@163.com

2012-09-14

2012-11-12

1002-8331(2014)16-0081-05

CNKI网络优先出版:2012-12-18,http://www.cnki.net/kcms/detail/11.2127.TP.20121218.1521.013.htm l

猜你喜欢

单芯片数据流蓝牙
蓝牙音箱的直线之美
汽车维修数据流基础(下)
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
一种提高TCP与UDP数据流公平性的拥塞控制机制
RDA宣布推出高性能蓝牙音频系统单芯片RDA5836
紧急:蓝牙指尖陀螺自燃!安全隐患频出
基于数据流聚类的多目标跟踪算法
北医三院 数据流疏通就诊量
Marvell发布64位单芯片移动通信处理器