关于蓝牙技术安全机制的分析.doc
- 格式:doc
- 大小:599.00 KB
- 文档页数:7
蓝牙技术蓝牙是一种支持设备短距离通信的无线电技术,近年来已经成为研究的热点问题并获得了广泛的应用。
本文从蓝牙技术的起源和特点讲起,详细介绍了蓝牙系统的组成、蓝牙技术的信息安全机制和蓝牙技术的组网方案,最后对蓝牙技术的发展做了展望。
关键词:蓝牙系统组成信息安全机制组网方案1 蓝牙技术概况1.1 蓝牙的起源蓝牙的名字来源于10世纪丹麦国王Harald Blatand,因为他十分喜欢吃蓝梅,所以牙齿每天都带着蓝色。
蓝牙将当时的瑞典、芬兰与丹麦都统一了起来。
1999年12月1日,蓝牙特殊利益集团——Bluetooth SIG发布了蓝牙技术最新标准1.0B 版。
发展至今,加盟的公司已超过2000多家。
一项公开的全球统一的技术规范能得到工业界如此广泛的关注和支持是前所未有的。
当然,这主要得益于蓝牙技术本身所具有的广阔应用前景和诱人的商机。
1.2 蓝牙技术的特点蓝牙技术使用高速跳频和时分多址等先进技术,在近距离内最廉价地将几台数字化设备呈网状链接起来。
蓝牙是一个开放性的、短距离无线通信技术标准。
它可以用来在较短距离内取代目前多种线缆连接方案,穿透墙壁等障碍,通过统一的短距离无线链路,在各种数字设备之间实现灵活、安全、低成本、小功耗的话音和数据通信。
蓝牙作为一种新兴的短距离无线通信技术已经在各个领域得到广泛应用,它提供低成本、低功耗、近距离的无线通信,构成固定与移动设备通信环境中的个人网络,使得近距离内各种信息设备能够实现无缝资源共享。
2 蓝牙系统的参数指标及组成2.1 蓝牙系统结构基本系统参数及指标工作频段:ISM频段2.402GHz—2.480GHz双工方式:TDD业务类别:同时支持电路交换及分组交换业务数据标称速率:1Mbit/s异步信道速率:非对称连接723.2kbit/s 57.6kbit/s对称连接:433.9kbit/s (全双工模式)同步信道速率:64kbit/s (3个全双工信道)信道间隔:1MHz信道数:79发射功率及覆盖:0dBm(1mW),1—10m覆盖,20dBm(100mW),扩展至100m覆盖跳频频点数:79个频点/MHz(2408+k(MHz),k=0,1,2……78);跳频速率:1600次/s工作模式:Active/Sniff/Hold/Park数据连接方式:面向连接业务SCO(话音,电路交换、预留时隙)、无连接业务ACL(分组数据、分组交换、轮询)方式:1/3FEC(3bit重复码),2/3FEC(截短Hamming码),CRC—16,ARQ鉴权:反应逻辑算术方式密钥:以8bits为单位增减,最长128bits安全机制:链路级,认证基于共享链路密钥询问/响应机制,认证和加密密钥生成基于SAFER+算法话音编码方式:CVSD或对数PCM网络拓扑结构:Ad hoc(无中心自组织)结构,Piconet及Scatternet2.2 蓝牙系统的组成蓝牙系统由无线单元、链路控制单元、链路管理和软件结构和协议体系组成。
Layer,LL)以及主机控制接口层(Host Controller Inter-face,HCI);主机层包括:逻辑链路控制和适配器层(Logical Link Control and Adaptation Protocol,L2CAP)、属性协议层(Attribute Protocol,ATT)、通用属性协议配置规范层(Generic Attribute Profile,GATT)、安全管理层(Security Manager Protocol,SMP)以及通用访问规范层(Generic Access Profile,GAP)。
Controller用来实现与硬件相关的射频接收发送初步数据逻辑协议等工作,Host处理完全纯数据协议逻辑的工作,比较特别的HCI层用于衔接Host和Controller通信的中间层。
本文主要研究和分析BLE建立连接时的配对绑定过程。
BLE协议体系结构如图1所示。
BLE的配对绑定过程分为3个阶段[1],第一个阶段是发起配对绑定请求,实际上是配对特征交换得到临时密钥(Temporary Key,TK)值;第二个阶段使用SMP协议进行各种中间密钥的传送和计算,实际上是身份确认以及短期密钥(Short Term Key,STK)生成;第三个阶段是在第二个阶段的基础上进行密文通信交换各种所需要的密钥,例如:长期秘钥(Long Term Key,LTK)、身份解析秘钥(Identity Root Key,IRK)和连接签名解析秘钥(Connec-tion Signature Resolving Key,CSRK)等。
配对绑定阶段流程如图2所示。
2 安全管理协议■2.1 SMP中加密算法BLE协议规定了SMP中使用的是一个单向函数,用于产生秘钥、加密和提供完整性检查。
这种加密引擎被称为先进加密系统(Advanced Encryption Standard,AES)。
BLE 中使用AES的128位版本[2],也就是明文、秘钥和密文都52 | 电子制作 2020年02-03月软件开发是 128 位的,其加解密的安全函数为e,加解密表达式如(1): 密文=ekey(明文)/密文=e(key,明文) (1)这里的加密引擎函数e为AES标准中的电子密码本模式(Electronic Codebook mode encryption,ECB),计算MAC(Media Access Control)地址时使用到了函数CMAC,它是由Counter with Cipher Block Chaining-Message Au thentication Code (CCM)实现。
关于蓝牙的安全机制蓝牙技术提供短距离的对等通信,它在应用层和链路层上都采取了保密措施以保证通信的安全性,所有蓝牙设备都采用相同的认证和加密方式。
在链路层,使用4个参数来加强通信的安全性,即蓝牙设备地址BD_ADD R、认证私钥、加密私钥和随机码RAND。
蓝牙设备地址是一个48位的IEEE地址,它唯一地识别蓝牙设备,对所有蓝牙设备都是公开的;认证私钥在设备初始化期间生成,其长度为128比特;加密私钥通常在认证期间由认证私钥生成,其长度根据算法要求选择8~128比特之间的数(8的整数倍),对于目前的绝大多数应用,采用64比特的加密私钥就可保证其安全性;随机码由蓝牙设备的伪随机过程产生,其长度为128比特。
一、随机码生成每个蓝牙设备都有一个伪随机码发生器,它产生的随机数可作为认证私钥和加密私钥。
在蓝牙技术中,仅要求随机码是不重复的和随机产生的。
“不重复”是指在认证私钥生存期间,该随机码重复的可能性极小,如日期/时间戳;“随机产生”是指在随机码产生前不可能预测码字的实际值。
二、密钥管理加密私钥的长度是由厂商预先设定的,用户不能更改。
为防止用户使用不允许的密钥长度,蓝牙基带处理器不接受高层软件提供的加密私钥。
若想改变连接密钥,必须按基带规范的步骤进行,其具体步骤取决于连接密钥类型。
1.密钥类型连接密钥是一个128比特的随机数,它由两个或多个成员共享,是成员间进行安全事务的基础,它本身用于认证过程,同时也作为生成加密私钥的参数。
连接密钥可以是半永久的或临时的。
半永久连接密钥保存在非易失性存储器中,即使当前通话结束后也可使用,因此,它可作为数个并发连接的蓝牙设备间的认证码。
临时连接密钥仅用于当前通话。
在点对多点的通信中,当主设备发送广播信息时,将采用一个公共密钥临时替换各从设备当前的连接密钥。
蓝牙的信息安全机制及密钥算法改进
蓝牙是一种无线通信技术,它被广泛应用于手机、智能设备和其他电子设备之间的短距离通信。
为了确保蓝牙通信的安全性,蓝牙标准制定了一些信息安全机制和密钥算法。
1. 信息安全机制:
- 配对和认证:蓝牙设备在连接之前需要进行配对和认证。
这样可以确保通信双方是合法的设备,并且可以防止未经授权的设备访问通信。
- 加密:蓝牙使用一种称为E0的对称加密算法对通信数据进行加密。
这种算法使用一个密钥和一个伪随机数生成器对数据进行加密,从而保护数据的机密性。
- 频率跳变:蓝牙使用频率跳变技术来防止外部干扰和窃听攻击。
频率跳变使得蓝牙通信频率在不同的时间片段上跳变,这样即使敌对方能够截获蓝牙信号,也很难对其进行完全解码。
2. 密钥算法改进:
- Bluetooth Low Energy (BLE):BLE是蓝牙的低功耗版本,它引入了一种称为AES-CCM的高级加密标准。
AES-CCM算法结合了AES(Advanced Encryption Standard)和CCM(Counter with CBC-MAC)算法,提供了更高的安全性和数据完整性。
- DoS防护:蓝牙标准还采取了一些措施来防御拒绝服务(DoS)攻击。
例如,限制对蓝牙设备的连接请求次数和频率,以及对连接请求进行认证和授权。
总的来说,蓝牙的信息安全机制和密钥算法不断进行改进以应对新的安全威胁和攻击方法。
未来,随着技术的发展,蓝牙标准可能会继续推出更加安全的机制和算法。
蓝牙的安全模式蓝牙设备总共拥有四种标准化的访问安全模式。
安全模式1(不安全);安全模式2 (服务级别强制安全);安全模式3(链路级强制安全);安全模式4(服务级别强制安全,带密钥配对策略)。
不同的安全模式决定可用的服务安全级别。
使用安全模式1的设备被认为是不安全的。
在这种安全模式下,安全功能(认证和加密)从未启动,因此设备和连接容易受到攻击。
实际上,这种模式下的蓝牙设备是不分敌我的,并且不采用任何机制来阻止其他蓝牙设备建立连接。
如果远程设备发起配对、认证或加密请求,那么安全模式1设备将接受该请求而不加任何认证。
安全模式2是服务级强制安全模式,其可以在链路建立之后但在逻辑信道建立之前启动安全讨程。
在议这种安全模式下,本地安全管理晶控制对特定服务的访问。
访问控制以及与其他协议和设备用户的接口由单独的集中式安全管理器维护。
此策略可以为具有不同安全需求并行运行的应用程序定义不同的安全策略和信任级别来限制访问,可以在不提供对其他服务的访问的情况下授予访问某些服务的权限。
在这种模式下,引入了授权的概念(即决定特定设备是否允许访问特定服务的过程)。
安全模式3提供最好的安全性。
它是链路级强制安全模式,其中蓝牙设备在链路完全建立之前启动安全过程。
在安全模式3下运行的蓝牙设备为设备的所有连接授权认证和加密。
因此,在进行认证、加密和授权之前,甚至不能进行服务的发现。
一旦设备经过身份认证,服务级别授权通常不会被安全模式3设备执行。
当经过身份验证的远程设备在不了解本地设备所有者的情况下使用蓝牙服务时,服务级授权应被执行以防止认证滥用。
安全模式4使用安全简单配对策略(Secure Simple Pairing , SSP ),其中在链路密钥生成时,椭圆曲线(Elliptic Curve Diffie- Hellman , ECDH )密钥协议取代了过时的密钥协议。
武汉工程大学邮电与信息工程学院蓝牙技术的安全性学生姓名 黎子晨学 号专业班级 通信0806成绩1. 蓝牙技术介绍:●一级标题为“黑体、加粗、四号”字●段前、段后均13磅,行距为“多倍行距=1.73”蓝牙,是一种支持设备短距离通信(一般10m内)的无线电技术。
能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。
利用“蓝牙”技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网Internet之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽道路。
蓝牙采用分散式网络结构以及快跳频和短包技术,支持点对点及点对多点通信,工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段。
其数据速率为1Mbps。
采用时分双工传输方案实现全双工传输。
信息时代最大的特点便是更加方便快速的信息传播,正是基于这一点,技术人员也在努力开发更加出色的信息数据传输方式。
蓝牙,对于手机乃至整个IT业而言已经不仅仅是一项简单的技术,而是一种概念。
当蓝牙联盟信誓旦旦地对未来前景作着美好的憧憬时,整个业界都为之震动。
抛开传统连线的束缚,彻底地享受无拘无束的乐趣,蓝牙给予我们的承诺足以让人精神振奋。
蓝牙技术是一种无线数据与语音通信的开放性全球规范,它以低成本的近距离无线连接为基础,为固定与移动设备通信环境建立一个特别连接。
其程序写在一个9 x 9 mm的微芯片中。
例如,如果把蓝牙技术引入到移动电话和膝上型电脑中,就可以去掉移动电话与膝上型电脑之间的令人讨厌的连接电缆而而通过无线使其建立通信。
打印机、PDA、桌上型电脑、传真机、键盘、游戏操纵杆以及所有其它2的数字设备都可以成为蓝牙系统的一部分。
除此之外,蓝牙无线技术还为已存在的数字网络和外设提供通用接口以组建一个远离固定网络的个人特别连接设备群。
蓝牙工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段。
蓝牙的数据速率为1Mb/s 。
摘要: 蓝牙安全问题是除价格之外直接制约蓝牙技术广泛应用的瓶颈之一,文章通过对其安全结构、安全模式、安全级别、链路层安全参数、鉴权、密钥管理、加密等分析,讨论蓝牙安全体系中存在的一些问题,旨在探讨蓝牙技术在应用过程中如何能够实现一个真正的无电缆连接、方便快捷、安全可靠的通信环境。
关键词: 蓝牙;安全;鉴权;加密蓝牙提供了一种短距离的无线通信标准,解决了小型移动设备间的无线互连问题。
它以规范的公开性、频带的无须授权性等优点而越来越受到人们的重视。
蓝牙技术的应用范围也已经从替代各种移动信息电子设备之间的电缆,向信息家电、电子商务、汽车、航空、医疗、交通等更加广阔的领域中拓展。
同时,由于蓝牙工作在ISM214GHz 开放频段上,很容易受到干扰。
因此,它的安全性就显得尤为重要。
为了保证通信的安全,蓝牙系统必须在链路层和应用层上提供安全措施。
1 蓝牙安全机制的框架1.1 蓝牙的安全结构图1 蓝牙安全体系结构蓝牙的安全体系结构由用户接口、应用程序、RFCOMM 或者其他复用协议、L2CAP、链路管理器/ 链路控制器、安全管理器(Security Manager) 、通用安全管理实体、HCI、服务数据库、设备数据库、注册等模块组成。
其安全体系结构如图1 所示。
其中实线为“询问”过程,虚线为“注册”过程。
该体系结构各个部件的功能如下。
其中安全管理器是蓝牙安全体系结构中的关键部件。
它主要完成以下六种功能:存储和查询有关服务的相关安全信息;存储和查询有关设备的相关安全信息;回应来自协议实体或应用程序的访问请求(允许或拒绝) ;在连接到应用程序之前进行认证或加密;通过初始化或处理ESCE(外部安全控制实体,例如设备用户) 的输入来建立设备级的信任关系;初始化呼叫及查询由用户输入的个人标识码PIN ,PIN 输入也可以由应用程序来完成。
服务数据库为每个服务提供相关的安全入口。
在起始阶段存储在非易失性存储器NVM 或服务寄存器中。
信任设备必须储存在设备数据库NVM中。
如果入口因故而被删除,那么设备就看成未知设备,而且被设为默认的访问级别。
用户接口其功能是为实现授权而产生的用户交互对话,如输入PIN 等,如果安全管理器需要PIN ,可以使用对ESCE 的调用,也可以直接从链路管理器中取得。
RFCOMM或其它复用协议是需要对服务访问作决定的其它复用协议(如RFCOMM) 以与L2CAP 同样的方式查询安全管理器,但有另外的附加注册过程,它允许对连接到复用协议本身的连接去设置访问策略。
L2CAP 接口要求安全管理器在导入和导出请求状态下有访问数据库的权利。
HCI/ 链路管理器的接口模块可实现以下功能: ①鉴权请求; ②加密控制; ③远程设备的名称请求; ④在链路层设置加密策略; ⑤在链路层设置鉴权策略。
有一些注册过程是必须的,如:有安全级别和协议栈信息的服务、在L2CAP 层之上的复用协议。
注册由负责在BT 协议栈中设置路径的实体完成,它的具体实现取决于注册的实体,如果没有注册,就使用缺省设置。
该体系结构指出何时关联用户(如输入PIN) ,以及为了支持预期的安全检验功能底层的蓝牙协议需要执行的动作。
蓝牙安全体系建立在L2CAP 层之上,它可以实现对服务的选择性访问。
利用中央安全管理器很容易实现灵活的访问机制,因为协议及其它实体的接口很简单,并且它们被局限于请求/ 答应和注册这样一种过程,访问控制封装在安全管理器中。
因此,实现更为复杂的访问不会影响其他部分的实现。
在该体系结构中,访问一个信任设备的信息流,连接的建立过程依次为:(1) HCI 向L2CAP 发送连接请求。
(2) L2CAP 请求安全管理器给予访问权限。
(3) 安全管理器查询服务数据库。
(4) 安全管理器查询设备数据库。
(5) 如果有必要,安全管理器执行鉴权和加密过程。
(6) 安全管理器给予访问权限。
(7) L2CAP 继续建立连接。
1.2 蓝牙的安全模式蓝牙规范中定义了三种安全实现模式:·安全模式1 :无安全机制·安全模式2 :服务级安全机制·安全模式3 :链路级安全机制安全模式1 :无任何安全需求,无须任何安全服务和机制的保护。
此时任何设备和用户都可以访问任何类型的服务;其典型的应用有:电子名片(vCard) 的交换、电子日历(vCalendar) 等数据传输。
安全模式2 :对系统的各个应用和服务需要进行分别的安全保护,包括授权访问、身份鉴别和加密传输。
加密和鉴别发生在逻辑链路控制和适配协议(L2CA 信道建立之前) 。
安全模式3 :对所有的应用和服务的访问都需要实行访问授权、身份鉴别和加密传输。
这种模式的鉴别和加密发生在链路配置完成之前。
113 安全级别(1) 设备的安全级别蓝牙技术标准为蓝牙设备定义了三个级别的信任等级:·可信任设备:设备已经通过鉴权,存储了链路密钥,在设备数据库中标识为“可信任”,可信任设备可以无限制的访问所有的业务;可信任级别可以得到大多数服务。
·不可信任设备:设备已通过鉴权,存储了链路密钥,但在设备数据库中没有标识为“可信任”,不可信任设备访问业务是受限的。
·未知设备:无此设备的安全性信息,为不可信任设备。
(2) 服务的安全级别蓝牙技术标准定义了三种服务安全级别:需要授权与鉴权的服务、仅需要鉴权的服务、对所有设备开放的服务。
一个服务的安全等级由以下三种属性决定,它们保存在服务数据库中。
·需授权———只允许信任设备自动访问的业务(例如,在设备数据库中已登记的那些设备) 。
未被信任的设备需要在授权过程完成后才能访问该业务。
授权总是需要鉴权过程来确认远端设备的身份。
·需鉴权———在连接到应用程序之前,远端设备必须接受鉴权。
·需加密———在允许访问服务之前,链路必须进入加密模式。
另外,蓝牙还定义了缺省安全级别,用于提供继承应用的需要。
当处在最低安全级别时,任何设备都可以得到服务。
当处于最高安全级别时,服务需要授权和鉴权,这时可信任设备可以访问服务,但不可信任设备则需要手工授权,方可访问服务。
2 链路层安全体系211 链路层安全参数在链路层中使用了四种不同的实体来保证安全。
每一个用户有一个唯一的蓝牙设备地址(BD2AD2DR) 、两个加密密钥和一个随机数(每交易一次,变化一次) 。
这四个实体及其长度如表1 所示。
表1 链路层的实体及其长度实体长度蓝牙设备地址(BD2ADDR) 48bit秘密的认证密钥128bit秘密的加密密钥(比特长度可变) 8~128bit随机数(RAND) 128bit蓝牙设备地址(BD2ADDR) :是一个48 位的IEEE 地址。
对于每个蓝牙设备单元来说,这个地址是惟一的、公开的,通过MMI(人机接口交互) 或者查询过程得到。
认证密钥:认证密钥在设备初始化期间生成,它由两个或多个蓝牙网络成员共享,用于认证过程,同时也作为生成加密密钥的参数。
蓝牙采用了一种功能强大的现代加密算法(SAFER + ) 来生成128bit 的认证密钥。
认证密钥由一个随机数、PIN 码的低8 位及BD2ADDR 生成。
加密密钥:通常在认证期间由认证密钥生成,其长度根据算法要求选择8~128bit 之间的数(要求是8bit 的整数倍) 。
当前给出的64bit 加密长度足以满足大部分用户的保密要求。
加密密钥的长度由厂商预先设定,用户不能更改。
为防止用户使用不允许的密钥长度,蓝牙基带处理器不接受高层软件提供的加密密钥。
使用加密方式进行点对多点的通信时,主设备可以使用不同的加密密钥与每一台从设备进行通信。
随机数(RAND) :随机数RAND 由蓝牙单元内随机过程或者伪随机过程生成,其长度为128bit ,它不是静态参数,经常会发生变化。
2.2 鉴权(Authentication)鉴权是为了防止非法访问数据,防止伪造合法用户。
鉴权的作用有两个:一是进行身份认证;二是确认参数传递是否成功。
蓝牙鉴权有一个先决条件,那就是鉴权单元和被鉴权单元之间链路已经有链路字并且安全。
蓝牙的鉴权方案采用询问与响应策略。
协议检查双方是否有相同的密钥,如果有则鉴权通过。
在鉴权过程中生成一个鉴权加密偏移值ACO ,并存储在两个设备中用于以后加密密钥的生成。
在方案中,校验者对于申请者是否能够根据认证算法E1 认证随机数AU2RANDA ,并返回认证结果SERS ,进行校验。
如图2。
图2 询问—响应策略由图 2 可知:E1 算法输入参数包括随机数AU2RANDA 及申请者的蓝牙设备地址BD2ADDR ,使用该地址可以防止简单的反射攻击,由单元A 和单元B 共享的密钥为当前链接字。
鉴权方案按以下步骤进行:①被鉴权设备A 向鉴权设备B 发送一个随机数供鉴权。
②利用E1 鉴权函数,使用随机数、鉴权设备B 的蓝牙地址和当前链路密钥匹配时得出响应。
③鉴权设备B 将响应发往请求被鉴权设备A ,设备A 而后判断响应是否匹配。
哪个设备将被鉴权由应用决定,这意味着被鉴权设备不一定是主设备。
鉴权可以单向进行,也可以互相鉴权。
某些应用只要求进行单向鉴权。
而在点对点对等通信中,可能更希望互相鉴权。
如果鉴权失败,则必须经过一段时间(即等待时间) 后才会允许新一轮鉴权。
这样可阻塞一些恶意的试验性攻击。
213 密钥管理为了确保数据的安全传输,蓝牙系统定义了几种密钥,其中最重要的密钥是链路密钥,它用于BT 两个设备的鉴权。
使用链路密钥可以得到加密密钥,它可以保护报文数据并对所有的新传输重新生成密钥。
对于PIN 来说,虽然它不是密钥,但可以用来识别蓝牙设备。
(1) 链路密钥链路密钥是一个128 位随机数,为通信双方或多方共享,构成多方安全通信的基础。
它用于两个蓝牙设备之间的鉴别。
针对不同应用,有四类链路密钥:·单元密钥KA :KA 在单元A 中生成。
它的存储只需要较少内存的蓝牙单元,用于设备允许大量的其他用户访问且设备存储空间小的情形。
·联合密钥KAB :KAB由单元A 和单元B 的信息生成。
每一对新单元组合均需要生成新联合密钥。
它用于安全要求高且需要较大存储空间的设备间。
·临时密钥Kmaster :此密钥在主设备需同时向多个从设备传输数据时使用。
在此会话过程中,它将临时替代原有的链路密钥。
·初始化密钥KINT :该密钥在初始化过程使用。
它用于保护初始化参数的传输。
(2) 加密密钥由当前的链路密钥推算而来,每次需要加密密钥时它会自动更换。
之所以将加密密钥与鉴权密钥分离开,是因为可以使用较短的加密密钥而不减鉴权过程的安全性。
(3) PIN PIN 码是一个个人识别码,它可以是蓝牙设备提供的一个固定码,也可以由用户任意指定。
但两个设备中的PIN 码必须匹配。