作者:长城计算机软件与系统有限公司 于 跃 韩永飞
1.概论
蓝牙技术基于芯片,提供短距离范围的无线跳频通信。它有很低的电源要求,并且可以被嵌入到任何数字设备之中。具有蓝牙芯片的数字设备,比如便携计算机、手机、PDA,可以通过蓝牙移动网络进行通信。几年内,蓝牙将会出现在电视机、Hi-Fis、VCR和微波炉等设备之中。
蓝牙采用的无线跳频技术使人们误认为蓝牙的安全机制已经解决。可是实际上,无线跳频技术对于窃听者和截取者不是一个技术障碍。目前的蓝牙芯片和设备并不具备数据的保密、数据的完整性和用户身份认证等安全措施。
同其他无线通信网络一样,蓝牙网络也是一个开放的网络。互联网在设计之初,由于没有考虑安全机制的设计,时至今日仍然面对着许多安全问题。第一代移动通信同样没有设计安全机制,致使第一代可移动通信设备可以被仿造和监听。第二代移动通信GSM网络虽然使用了加密算法对用户进行鉴别,但是加密算法比较弱,已经十分容易被破译,在互联网上就可以下载破译软件;对语音信号没有有效的加密措施,不但手机上没有加密措施,机站间也没有加密措施。
目前,互联网和第三代移动通信以及WAP都采用PKI技术及公开密钥算法和对称密钥算法的混合使用来保证可鉴别性、数据完整性和保密性以及通信的不可否定性。
现在,蓝牙技术在SIG讨论蓝牙协议2.0版本的同时,工业界已实施蓝牙协议的1.0版和1.0B版。目前,基于1.0B版的协议栈进入使用阶段,各种蓝牙设备业已面世或在研发之中。
蓝牙技术在诞生之初,并没有考虑其安全性的问题。虽然现在已提供128位的芯片号作为设备的鉴权号,可是它在通信中可以被篡改和冒用。
SIG最近开始重视蓝牙的安全问题,并且初步提出了蓝牙安全的模式1、模式2和模式3。由于模式3的详细安全方案仍在讨论中,本文主要以模式2为基点讨论蓝牙的安全性。
2 蓝牙的安全结构
蓝牙技术已经成为全球电信和电子技术发展的焦点。新开发的应用蓝牙技术的产品也层出不穷。蓝牙技术正在被广泛地应用于计算机网络、手机、PDA和其他领域。
蓝牙芯片是蓝牙设备的基础。西方国家已生产了基于不同技术(CMOS、绝缘体硅片等)的蓝牙芯片。蓝牙芯片的价格已在下降,在近两年内将达到人们普遍可以接受的水平。一个基于蓝牙技术的移动网络终端可以由蓝牙芯片及所嵌入的硬件设备、蓝牙的核心协议栈、蓝牙的支持协议栈和应用层协议4部分组成。
一个基于蓝牙技术的安全的移动网络终端还包括安全管理系统。一个基于蓝牙技术的安全的移动网络终端的系统结构如图1所示。
西方国家的公司有的在芯片上开发LMP(链接管理协议),有的将LMP固化在芯片之中。
3 协议栈和安全管理系统
国际标准规定了3种蓝牙设备的安全模式:模式1,现有的大多数基于蓝牙的设备,不采用信息安全管理和不执行安全保护及处理;模式2, 蓝牙设备采用信息安全管理并执行安全保护和处理,这种安全机制建立在L2CAP中和它之上的协议中;模式3,蓝牙设备采用信息安全管理和执行安全保护及处理,这种安全机制建立在芯片中和LMP(链接管理协议)。
鉴于蓝牙芯片的现状,采用模式3将需要对现有的蓝牙芯片进行重新设计并且要增加和增强芯片的功能,不利于降低芯片价格。西方蓝牙技术的生产商都在考虑采用模式2。
模式2的安全机制允许在不同的协议上增强安全性。L2CAP可以增强蓝牙安全性,RFCOMM可以增强蓝牙设备拨号上网的安全性,OBEX可以增强传输和同步的安全性。
蓝牙的安全机制支持鉴别和加密。鉴别和认证可以是双向的,密钥的建立是通过双向的链接来实现的。鉴别和加密可以在物理链接中实现(例如,基带级),也可以通过上层的协议来实现。
4 安全的技术实施
(1)DH方案
使用DH算法建立双方加密信息所用的密钥,其工作流程如下。
在第一次通信中,当通信状态已经确立后,发送方通过无线跳频信号传送A给接收方。
A=g^x mod p
接收方在收到A之后,发送B给发送方。
B=g^y mod p
然后,发送方和接收方做以下计算:
key=g^xy mod p
由于双方都具有了key,当双方作进一步通信时,它们可以对发送文件或数据M作加密。
C=key?M?
接收方可以使用同样的key得到明文。
M=key?C?
DH方案有它的缺点,即主要是对用户没有作身份认证。
(2)RSA方案
RSA方案可以有效地解决用户的身份认证和密钥的确立,其工作流程如下。
A和B是蓝牙无线通信的使用者,A和B在同一个CA(电子证书机构)拿到自己的电子证书,其中包括自己的公钥和有效等。它们也拥有CA的证书。
A和B通信时:
第一步,A将自己的证书送给B,B验证A的证书。
第二步,确认A的证书后,B将自己的证书送给A。
第三步,A确认B的证书后,用B的公钥加密。一个用于数据加密的对称密钥,它的运算如下:
C=(key)PBmodN
其中N=p.q,p和q是两个大的素数,N是模,PB是公钥。
第四步,B收到C之后,做以下运算:
key=CRBmodN
RB是B的密钥。
第五步,在第四步结束后,双方都拥有key,双方的通信就可以用key来加密C=(M)key,由于只有A和B知道key,所以加密后的C只有A和B可以解密。
该协议栈和安全管理系统可以建立在任何基于RFCOMM的蓝牙设备上。它的目标是建立一套安全的蓝牙通信机制。
在鉴别和认证的过程中,以前的一些蓝牙设备可以实现设备的鉴别。该例子可以实现对用户身份的鉴别,它还有以下其他优点。
1)不仅可以对设备认证,还可以对用户的身份认证,防止冒用和伪造设备。在L2CAP或RFCOMM中调用函数MDH(element,Root,modnln,VAR1,VAR2,VAR)建立两方共享的密钥和实现对用户的认证。
2)加密可靠和安全,加密方法灵活。加密功能可以由EXBX、RFCOMM或L2CAP调用安全管理系统的EA(Date、Key、VAR1)实现,由CA(Date、Key、VAR1)实现解密。
3)数据的完整性。系统可以检测干扰和传输信号的改变。在任何一级协议中,通过调用MAC(Data、Key、VAR1、VAR2)可以发现无线信号所受到的干扰和改变。
5 结论
蓝牙技术正在引起越来越广泛的重视,在工业和家庭方面的应用也越来越多。它的安全性随着它的应用将被使用者重视,设计和规划蓝牙的安全已成为刻不容缓的任务。本文的目的旨在抛砖引玉,引发业内专家的讨论和参考,将蓝牙技术开发得更完善和更实用。