关于蓝牙技术安全机制的分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
* 收稿日期:2005-04-25
关于蓝牙技术安全机制的分析
蒋笑梅1 黄 富1 黄剑晓2
(11广西师范大学物理与信息学院,广西 桂林 541004
21西安科技大学通信与信息工程学院,西安 710054)
摘 要: 蓝牙安全问题是除价格之外直接制约蓝牙技术广泛应用的瓶颈之一,文章通过对其安全
结构、安全模式、安全级别、链路层安全参数、鉴权、密钥管理、加密等分析,讨论蓝牙安全
体系中存在的一些问题,旨在探讨蓝牙技术在应用过程中如何能够实现一个真正的无电
缆连接、方便快捷、安全可靠的通信环境。
关键词: 蓝牙;安全;鉴权;加密
中图分类号: TN92915 文献标识码:A 文章编号:1003-7551(2005)02-0029-06
蓝牙提供了一种短距离的无线通信标准,解决了小型移动设备间的无线互连问题。它以规范的公开性、频带的无须授权性等优点而越来越受到人们的重视。蓝牙技术的应用范围也已经从替代各种移动信息电子设备之间的电缆,向信息家电、电子商务、汽车、航空、医疗、交通等更加广阔的领域中拓展。同时,由于蓝牙工作在I SM214GHz 开放频段上,很容易受到干扰。因此,它的安全性就显得尤为重要。
为了保证通信的安全,蓝牙系统必须在链路层和应用层上提供安全措施。
1 蓝牙安全机制的框架
111
蓝牙的安全结构
图1 蓝牙安全体系结构
蓝牙的安全体系结构由用户接口、应用程序、RFCOMM 或者其他复用协议、L2C AP 、链路管理器/链路
控制器、安全管理器(Security Manager)、通用安全管理实体、HCI、服务数据库、设备数据库、注册等模块组成。其安全体系结构如图1所示。其中实线为/询问0过程,虚线为/注册0过程。该体系结构各个部件的功能如下。
其中安全管理器是蓝牙安全体系结构中的关键部件。它主要完成以下六种功能:存储和查询有关服务的相关安全信息;存储和查询有关设备的相关安全信息;回应来自协议实体或应用程序的访问请求(允许或拒绝);在连接到应用程序之前进行认证或加密;通过初始化或处理ESCE(外部安全控制实体,例如设备用户)的输入来建立设备级的信任关系;初始化呼叫及查询由用户输入的个人标识码PIN,PI N输入也可以由应用程序来完成。
服务数据库为每个服务提供相关的安全入口。在起始阶段存储在非易失性存储器NVM或服务寄存器中。
信任设备必须储存在设备数据库NVM中。如果入口因故而被删除,那么设备就看成未知设备,而且被设为默认的访问级别。
用户接口其功能是为实现授权而产生的用户交互对话,如输入PIN等,如果安全管理器需要PIN,可以使用对ESCE的调用,也可以直接从链路管理器中取得。
RFC OMM或其它复用协议是需要对服务访问作决定的其它复用协议(如RFCOMM)以与L2C AP同样的方式查询安全管理器,但有另外的附加注册过程,它允许对连接到复用协议本身的连接去设置访问策略。
L2C AP接口要求安全管理器在导入和导出请求状态下有访问数据库的权利。
HCI/链路管理器的接口模块可实现以下功能:¹鉴权请求;º加密控制;»远程设备的名称请求;¼在链路层设置加密策略;½在链路层设置鉴权策略。
有一些注册过程是必须的,如:有安全级别和协议栈信息的服务、在L2CAP层之上的复用协议。注册由负责在B T协议栈中设置路径的实体完成,它的具体实现取决于注册的实体,如果没有注册,就使用缺省设置。
该体系结构指出何时关联用户(如输入PIN),以及为了支持预期的安全检验功能底层的蓝牙协议需要执行的动作。蓝牙安全体系建立在L2CAP层之上,它可以实现对服务的选择性访问。利用中央安全管理器很容易实现灵活的访问机制,因为协议及其它实体的接口很简单,并且它们被局限于请求/答应和注册这样一种过程,访问控制封装在安全管理器中。因此,实现更为复杂的访问不会影响其他部分的实现。
在该体系结构中,访问一个信任设备的信息流,连接的建立过程依次为:
(1)HCI向L2C AP发送连接请求。
(2)L2C AP请求安全管理器给予访问权限。
(3)安全管理器查询服务数据库。
(4)安全管理器查询设备数据库。
(5)如果有必要,安全管理器执行鉴权和加密过程。
(6)安全管理器给予访问权限。
(7)L2C AP继续建立连接。
112蓝牙的安全模式
蓝牙规范中定义了三种安全实现模式:
#安全模式1:无安全机制
#安全模式2:服务级安全机制
#安全模式3:链路级安全机制
安全模式1:无任何安全需求,无须任何安全服务和机制的保护。此时任何设备和用户都可以访问任何类型的服务;其典型的应用有:电子名片(vCard)的交换、电子日历(vCalendar)等数据传输。
安全模式2:对系统的各个应用和服务需要进行分别的安全保护,包括授权访问、身份鉴别和加密传
输。加密和鉴别发生在逻辑链路控制和适配协议(L2CA信道建立之前)。
安全模式3:对所有的应用和服务的访问都需要实行访问授权、身份鉴别和加密传输。这种模式的鉴别和加密发生在链路配置完成之前。
113安全级别
(1)设备的安全级别
蓝牙技术标准为蓝牙设备定义了三个级别的信任等级:
#可信任设备:设备已经通过鉴权,存储了链路密钥,在设备数据库中标识为/可信任0,可信任设备可以无限制的访问所有的业务;可信任级别可以得到大多数服务。
#不可信任设备:设备已通过鉴权,存储了链路密钥,但在设备数据库中没有标识为/可信任0,不可信任设备访问业务是受限的。
#未知设备:无此设备的安全性信息,为不可信任设备。
(2)服务的安全级别
蓝牙技术标准定义了三种服务安全级别:需要授权与鉴权的服务、仅需要鉴权的服务、对所有设备开放的服务。一个服务的安全等级由以下三种属性决定,它们保存在服务数据库中。
#需授权)))只允许信任设备自动访问的业务(例如,在设备数据库中已登记的那些设备)。未被信任的设备需要在授权过程完成后才能访问该业务。授权总是需要鉴权过程来确认远端设备的身份。
#需鉴权)))在连接到应用程序之前,远端设备必须接受鉴权。
#需加密)))在允许访问服务之前,链路必须进入加密模式。
另外,蓝牙还定义了缺省安全级别,用于提供继承应用的需要。当处在最低安全级别时,任何设备都可以得到服务。当处于最高安全级别时,服务需要授权和鉴权,这时可信任设备可以访问服务,但不可信任设备则需要手工授权,方可访问服务。
2链路层安全体系
211链路层安全参数
在链路层中使用了四种不同的实体来保证安全。每一个用户有一个唯一的蓝牙设备地址(BD-AD-DR)、两个加密密钥和一个随机数(每交易一次,变化一次)。这四个实体及其长度如表1所示。
表1链路层的实体及其长度
实体长度
蓝牙设备地址(BD-ADDR)48bit
秘密的认证密钥128bit
秘密的加密密钥(比特长度可变)8~128bit
随机数(RAND)128bit
蓝牙设备地址(B D-ADDR):是一个48位的IEEE地址。对于每个蓝牙设备单元来说,这个地址是惟一的、公开的,通过MMI(人机接口交互)或者查询过程得到。
认证密钥:认证密钥在设备初始化期间生成,它由两个或多个蓝牙网络成员共享,用于认证过程,同时也作为生成加密密钥的参数。蓝牙采用了一种功能强大的现代加密算法(SAFER+)来生成128bit的认证密钥。认证密钥由一个随机数、PIN码的低8位及BD-ADDR生成。
加密密钥:通常在认证期间由认证密钥生成,其长度根据算法要求选择8~128bit之间的数(要求是8bit的整数倍)。当前给出的64bit加密长度足以满足大部分用户的保密要求。加密密钥的长度由厂商预先设定,用户不能更改。为防止用户使用不允许的密钥长度,蓝牙基带处理器不接受高层软件提供的加密密钥。使用加密方式进行点对多点的通信时,主设备可以使用不同的加密密钥与每一台从设备进行通信。
随机数(RAND):随机数RAND由蓝牙单元内随机过程或者伪随机过程生成,其长度为128bit,它不是