导航:首页 > 源码编译 > e21e22算法

e21e22算法

发布时间:2023-03-14 05:49:22

‘壹’ 蓝牙的安全机制有哪些

蓝牙采取的安全机制适用于对等通信的情况,即双方以相同的方式实现认证与加密规程。主要的安全机制为使用密钥。它的链路层使用4个实体提供安全性,一个公开的蓝牙设备地址,长度为48比特;认证密钥,长度为128比特;加密密钥,长度为8~128比特;随机数,长为128比特。蓝牙安全管理器存贮着有关设备和服务的安全信息,安全管理器将决定是否接收数据,断开连接或是否需要加密和身份认证,它还初始化一个可信任的关系以及从用户那里得到一个PIN码。

蓝牙设备有两种信任级别,即可信任和不可信任。可信任级别有一个固定的可信任关系,可以得到大多数服务。可信任设备是预先得到鉴别的。而不可信任设备所得到的服务是有限的,它也可以具有一个固定的关系,但不是可信任的。一个新连接的设备总是被认为是未知的,不可信任的。

对蓝牙协议本身的攻击可以分为两类:主动攻击和被动攻击。主动攻击是没有被认证的第三方对传输过程中的数据流进行修改。主动攻击包括伪装、中继、信息修改以及拒绝服务。被动攻击可以是对传输内容进行窃听,也可以是对通信模式进行监听获取相关信息。




2.1字管理机制

蓝牙链字是长度为128位的随机数,它是蓝牙系统鉴权和加密的基础。为了支持不同阶段、模式的要求,蓝牙系统在链路层上用了4种不同的字来保证系统的安全性。包括单元字KA组合字是KAB,临时字Kmaster及初始化字Kinit。单元字KA与组合字KAB仅产生方式不同,执行的功能是完全相同的。也就是说,KAB是由两个单元A,B共同产生的,而KA仅由一个单元A产生,因此KA在初始化阶段产生后就基本不变了。系统的内存比较小时通常选择KA,而系统对稳定性要求比较高时选择KAB。临时字Kmaster只是临时取代原始字。例如,当主机想与多个子机通信时主机将用同一个加密字,因此把它存放在临时字中,以便于使用。初始化字Kinit仅仅在初始化阶段有效,也主是单元字KA,KAB产生的阶段,它不仅仅是初始化阶段的一个临时字,其产生需要一个PIN。半永久性的链接字在特定的时间内被称作当前链接字。当前链接字和其它

链接字一样,用于鉴权和加密过程。

此外,还用到了加密字KC,加密字被LM的命令激活后将自动被改变。

另外,鉴权字和加密字在不同的阶段执行不同的功能。例如:在两个单元没有建立连接的阶段和已经建立连接的阶段有很大的不同,前者必须首先产生加密字,而后者可以继续使用上次通信的加密字。相应地不同的阶段对字的管理是不一样的。此外当主机想广播消息,而不是一个一个地传送消息时,需要特殊的字管理方法。正是蓝牙系统有力的字管理机制,才使得系统具有很好的安全性,而且支持不同的应用模式。

2.2链接字的产生

初始化字Kunit的值以申请者的蓝牙设备地址、一个PIN码、PIN码的长度和一个随机数作为参数,通过E22算法产生。而申请者相对校验者而言是需要通过验证的一方。因此,申请者需要正确的PIN码和PIN码的长度。一般来讲,由HCI决定谁是申请者,谁是校验者。当PIN的长度少于16个八进制数时,可以通过填充蓝牙设备地址的数据使其增大,因此如果循环使用E22可以使链接字的长度增长为128位。初始化链接字Kint产生后,该单元将产生一个半永久字KA或KAB。如果产生的是一人KAB,则该单元将用一个随机数LK_RAND周期性地加密蓝牙设备地址,加密后的结果为LK_KA,而各自产生的LK_RAND与当前的链接字进行异或运算后,分别产生新值,永为CA和CA,然后互相交换,从而得到了对方的LK_RAND,并以对方的LK_RAND和蓝牙设备地址作为参数,用E21函数产生新值LK_KB的异或运算得到组合字KAB。当KAB产生后,首先单向鉴权一次,看KAB变为当前链接字,而丢弃原先的链接字K。E22的工作原理与E21类似。

‘贰’ 小小要不要出A仗啊,还有效果不怎么显示要出A仗的英雄有哪些啊

蓝牙作为一种新兴的短间隔无线通讯技巧已经在各个范畴得到普遍利用,它供给低本钱、低功耗、近间隔的无线通信,构成固定与移动装备通信环境中的个人网络,使得近间隔内各种信息设备能够实现无缝资源共享。

由于蓝牙通信标准是以无线电波作为媒介,第三方可能轻易截获信息,所以蓝牙技巧必需采用必定的安全维护机制,尤其在电子交易应用时。为了提供使用的安全性和信息的可信度,体系必须在应用层和链路层提供安全办法。

本文重点讨论了蓝牙信息安全机制的构成原理及相干算法,并指出其在安全性方面存在的不足与问题。由于对于大多数须要将保密放在首位来斟酌的运用来说,蓝牙现行标准所供给的数据安全性是不够的。蓝牙现行规范采用的128位密钥长度的序列的加密在某些情形下可以被破*解。本文同时提出了一种蓝牙安全机制的改良计划,即采用DES加密体制构建强壮的加钥算法,能够在盘算上证实此加密算法是安全可靠的。

1 蓝牙的安全机制

蓝牙采用的安全机制实用于对等通信情况,即双方以雷同方法实现认证与加密规程。链路层使用4个实体提供安全性:一个公然的蓝牙设备地址,长度为48bit;认证密钥,长度为128bit;加密密钥,长度为8~128bit;随机数,长度为128bit。以下重点讨论蓝牙安全机制的组成及相干算法。

1.1 随机数产生器

随机数发生器在蓝牙标准中有主要应用,例如在生成认证密钥和加密密钥中以及查询-应答计划中等。产生随机数的幻想办法是使用具有随机物理特征的真实随机数·发生器,例如某些电子器件的热噪声等,但是在实际应用中通常应用基于软件实现的伪随机数发生器。蓝牙体系对于随机数的要求是随机生成和非反复性。随机生成是指不可能以显明大于零的概率(对于长度为L位的蓝牙加密密钥,概率大于1/2L)估量出随机数值。

目前在众多类型的伪随机数发生器中,线性同余产生器(Linear Congruential Generator)被最普遍地研讨与应用。其表达式为:

Xn+1=Xn+c(modm) n0。

式中和c为常量,m为模数,均为正整数。Xn+c对m作模运算后得到Xn+1。开端时以某种方法给出一个种子数X0;然后应用前一个随机整数Xn天生下一个随机整数Xn+1,由此发生整数随机数列{Xn}。

1.2 密钥治理

蓝牙单元密钥长度不能由单元制作者预置,不能由用户设置。蓝牙基带标准规定不接受由高层软件给出的加密密钥以防止使用者完整把持密钥长度。

1.2.1 密钥类型

链路密钥是一个128位随机数,为通信双方或多方共享的临时性或半永久性密钥。半永久性链路密钥可以用于共享链路单元之间的几个相继认证过程中。临时密钥的典范运用是:在点对多点通讯情形下,同一信息需要安全地发往多个接受端,这时采用主单元密钥代替当前链路密钥。蓝牙标准定义了四种链路密钥:①结合密钥KAB;②单元密钥KA;③临时密钥Kmoster;④初始化密钥Kinit。此外还定义了加密密钥Kc,由当前链路密钥生成。对蓝牙单元来说,单元密钥KA在单元A中生成,依附于该单元,很少转变。结合密钥KAB。由单元A、B方共同生成。临时密钥Kmoster仅在当前会话中使用,也称主单元密钥。初始化密钥Kinit是蓝牙初始化过程中使用的链路密钥。该密钥由一个随机数、一个通常为十进制的PIN码以及发起单元的蓝牙装备地址BD_ADDR生成。PIN码可由用户选择也可以是随蓝牙一起提供的固定数。目前大多数应用中PIN码为4位的10进制数,无法提供较高的安全性。蓝牙基带标准请求PIN码长度为1~16位,因此建议尽量使用较长的PIN码以加强安全性。

1.2.2 密钥生成与初始化

每一对要实现认证与加密的蓝牙单元都要履行初始化进程,其过程由以下几部分组成:

(1)生成初始化密钥Kinit:为初始化过程中临时使用的链路密钥。该密钥由E22算法及相关参数生成,其生成原理图见图1。E22输出的128位初始化密钥Kinit用于链路密钥的交流分配过程。如果申请者与证实者没有交流过链路密钥,则Kinit用于认证过程,否则不再使用。该过程必需保证能够抵抗必定的攻击,例如攻击者使用大批的假蓝牙地址BD_ADDR来测试大批PIN等,如果设备地址固定则每次测试PIN码等候间隔应按指数增添。

(2)认证:假如两个单元没有产生过通讯接洽,则使用初始化密钥作为链路密钥。每次执行认证规程,均宣布新随机参数AU_RANDA。在相互认证中,首先在一个方向履行认证规程,成功后再反向执行认证。认证胜利将得到一个帮助参数ACO,即认证加密偏移量。它将用于生成加密密钥。

(3)生成单元密钥:单元密钥在蓝牙单元首次运行时生成,依据E21算法生成并几乎不转变。初始化时,通信双方通常选用一个内存容量较少的单元中的密钥作为链路密钥。

(4)生成联合密钥:联合密钥是分离在A单元与B单元中生成的两个数字的组合。生成过程是:每个单元生成随机数LK_RANDA与Lk_RANDB,采用E21算法与各自的随机数、蓝牙地址分辨生成另一个随机数LK_KA与LK_KB,并通过其他操作后两个单元得出联合密钥。然后开端互相认证过程以确认交互过程胜利。结合密钥交流分配成功后将废弃使用原链路密钥。

(5)生成加密密钥:加密密钥Kc依据E3算法,由当前链路密钥、96bit加密偏移数COF和一个128bit随机数导出。

(6)点对多点配置情况:实际上,主单元通知几个从单元使用一个公共链路密钥广播加密新闻,在多数应用中这个公共链路密钥是临时密钥,记为Kmoster。Kmoster被从单元接受后便可用它替换原链路密钥Kmoster的产生过程为:首先由2个128bit的随机数RAND1与RAND2生成新链路密钥Kmoster:Kmoster=E22(RAND1,RAND2,16)。然后将第3个随机数RANO发往从单元,主、从单元根据E22、当前链路密钥及RAND盘算出128bit捣乱码overlay,主单元将overlay与新链路密钥按位异或成果发送给从单元,再计算出Kmoster。在后面的认证过程中盘算出一个新ACO值。

1.3 加密规程

对有效载荷加密通过流密码算法实现,流密码与有效载荷同步,加密原理图如图2所示。流密码体系由三部分组成:履行初始化、生成密钥流比特、执行加密或解密。有效载荷密钥生成器将输进比特流以适当次序进行组合并移人密钥流生成器使用的4个线性反馈移位存放器LFSR。第二部分是重要部分,密钥流比特根据Massey与Rueppel提出的方法生成,该方法经过一定的剖析与研讨,证实具有较高的加密性能,但此法可能受到相关攻击,其改良方法在本文后面具体描写。

1.3.1 约定加密密钥长度与加密模式

实现基带尺度的蓝牙装备须要定义最大容许密钥字节长度Lmax,1Lmax16。在天生加密密钥前,有关单元必需约定密钥实际长度。主单元将建议值L(M)sug发送给从单元。假如L(S)minL(M)min并且从单元支撑建议值,从单元对此给予确认,L(M)min成为本链路加密密钥长度值。假如不满足上述条件,从单元将向主单元发送新的建议值L(S)min〈L(M)sug,主单元对此建议评估。反复此规程直至达成协定或一方废弃商谈。

1.3.2 加密算法

加密规程使用流密码加密。加密系统使用线性反馈移位存放器(LFSRs),寄存器系统输出由具有16状况的有限状态机进行组合,状况机输出或是密钥流序列,或是初始化阶段的随机初始值。加密算法需要提供加密密钥、48bit蓝牙地址、主单元时钟比特与128bit随机数RAND,加密算法原理如图3所示。

其中,有4个LFSR(LFSR1,…,LFSR4),比专长度分辨为L1=25,L2=31,L3=33,L4=39,反馈多项式(抽头多项式,特点多项式)。4个存放器长度之和是128bit。

这些多项式都是本原多项式,汉明重量都为5,可以统筹天生序列具有良好的统计特征与减少硬件实现所须要的异或门数两方面的请求。

令xit表现LFSRit时刻输出状况比特,由四元组(x1t,…,x4t)得Yt为:

,式中Yt为整数,取值为0,1,2,3或4。加法生成器输出由下述方程给出:

式中,T1〔.〕与T2〔.〕是GF(4)上两个不同的线性双射。

密钥流生成器工作前需要为4个LFSR(总共128bit)装载初始值并且断定C0与C-14bit值,这些132bit初始值使用密钥流生成器由规定的输入量导出,输入量分离为密钥Kc、48bit蓝牙地址和26bit主单元时钟CLK26-1。加密算法初始化过程:(1)由128bit加密密钥Kc生成有效加密密钥,记为K’c,令L(1L16)为用8bit组数目表现的有效密钥长度,则K’c(x)=g2(L)(x)(Kc(x)modg1(L)(x))。(2)将K’c、蓝牙地址、时钟以及6bit常数111001移入LFSR。加密算法初始化完成后,从加法组合器输出密钥流用于加密/解密。

1.3.2 认证

蓝牙技术认证实体使用所谓查验-应答方案。通过两步协定,申请者是否知道机密密钥使用对称密钥进行证实。这意味着,一个准确的申请者/证实者对,在查验-应答方案中将共享雷同密钥Kc,证实者对于申请者是否能够认证算法K1认证随机数AU_RANDA,并返回认证成果SERS,进行查验。其认证及加密密钥生成函数可以参考相关材料,此处略。?

2 蓝牙安全机制的方案改进

现有蓝牙安全机制重要存在两个重要问题。一个是单元密钥的应用问题:在鉴权和加密进程中,由于单元密钥没有转变,第三方应用此密钥来窃取信息。128位密钥长度的E0序列加密在某些情形下可通过不是很庞杂的方式破*解。另一个是蓝牙单元供给的个人辨认码(PIN码)的不安全问题:由于大多数利用中PIN码是由4位十进制数组成,所以采取穷举法很轻易攻击胜利。

战胜这些安全性问题的解决办法除了增添PIN码长度外,要害是要采用更为强壮的加密算法,如用数字加密标准DES取代序列加密算法。DES是一种块加密方式,加密过程是针对一个个数据块进行的。在DES算法中,原始信息被分为64位的固定长度数据块,然后应用56位的加密密钥通过置换和组合办法生成64位的加密信息。与蓝牙序列的加密算法不同,数学上可以证实块加密算法是完整安全的。DES块密码是高度随机和非线性的,其发生的密文和明文与密钥的每一位都相干。DES的可用加密密钥数目非常宏大,应用于每一位明文信息的密钥都是从这个宏大数目的密钥中随机产生的。DES算法已经被广泛采用并以为非常可靠。采用DES加密算法的蓝牙技巧可以将蓝牙运用到安全性较高的应用中往,例如电子金融交易、ATM等。

2.1 DES算法

1977年美国国度尺度局颁布了联邦数据加密标准DES。由于DES算法保密性强,迄今尚无切实可行的破译方式,所以DES得到了普遍地利用。DES是一种分组密码体制,它将明文按64位一组分成若干组,密钥长为56位。其基础思想是采取变换的组合与迭代,将明文中的各组变为密文组。

在DES系统中,乘积变换是加密过程的核心,持续进行16次操作,每次更新一组密钥。移位变换B是移位变换A的逆变换。图4为DES体制加密流程,图的右侧表现DES系统的密钥生成过程。初始密钥是一串64bit的随机序列。经过重复移位变换,产生16组子密钥(K1~K16),每组子密钥用于一次乘积变换。所谓初始重排(IP)就是打乱输进分组内比特原有排列顺序,重新排列,排列方式是固定的。

DES的一次乘积变换运算步骤为:(1)把64bit输入码分成左右两组,每组32位比特,分辨用Li-1和Ri-1代表。其中i代表第i次乘积变换,i=1~16。(2)把该次乘积变换输入分组的右组32位比特变为输出分组的左组32位比特,即Li=Ri-1。(3)输入分组右组32位比特经过扩大操作变为48位比特*码组。(4)扩大变换输出的48位比特与子密钥Ki的48位比特按模2相加,输出的48位比特分为8组,每组6位。(5)把每组6位比特进行密表(S-盒)替换,产生4位比特。输入的6位比特的第1、6两位决议密表内所要选择的行数,其余4位决议密表内的列数。(6)把8组密表输出合并为32位比特,然后与本次乘积变换输进左组Ci-1按位模2相加,即可得到第i次乘积变换的右32位输出Ri。

2.2 DES算法的特色

DES算法具有以下特色:

(1)DES的保密性仅仅取决于对密钥的保密,算法公然。

(2)在目前程度下,不知道密钥而在一定的时光内要破译(即解析出密钥K或明文)是不可能的,至少要树立2 56或2 64个项的表,这是现有资源无法实现的。

(3)由于雪崩效应,无法分而破之,一位的变更将引起若干位同时变更。

综上所述,由DES算法构建的蓝牙安全机制是可靠的,采取穷举方法攻击是不现实的。假设有一台每秒完成一次DES加密的机器要用将近1000年的时光才干破译这个密码。

以上算法能够坚持数据加密进程中与蓝牙尺度所需参数的一致性,它与蓝牙算法发生的单元密钥在时光实现上同处一个数目级别,符合蓝牙规范请求。

本文首先重点讨论了蓝牙信息安全的机制构成,对其各部分的算法及实现步骤进行了具体阐明。然后对现有蓝牙规范安全性做了必定的评估,

并依据其不足提出了由DES算法构建新的安全计划,能够给蓝牙在安全性要求较高的应用上提供一个安全设计的改良参考。
相关的主题文章:

借助亚运契机把产品推向海外

亚运官方的无纸化低碳宣传

想让您商店商场生意源源不断吗?

‘叁’ 蓝牙的技术信息

主要文章:蓝牙协议栈和蓝牙协议


蓝牙被定义为协议层架构,包括核心协议、电缆替代协议、电话传送控制协议、选用协议。所有蓝牙堆栈的强制性协议包括:LMP、L2CAP和SDP。此外,与蓝牙通信的设备基本普遍都能使用HCI和 RFCOMM这些协议。
1 LMP:
链路管理协议(LMP)用于两个设备之间无线链路的建立和控制。应用于控制器上。
2 L2CAP
逻辑链路控制与适配协议(L2CAP)常用来建立两个使用不同高级协议的设备之间的多路逻辑连接传输。提供无线数据包的分割和重新组装。
在基本模式下,L2CAP能最大提供64kb的有效数据包,并且有672字节作为默认MTU(最大传输单元),以及最小48字节的指令传输单元。
在重复传输和流控制模式下,L2CAP可以通过执行重复传输和CRC校验(循环冗余校验)来检验每个通道数据是否正确或者是否同步。
蓝牙核心规格附录1 在核心规格中添加了两个附加的L2CAP模式。这些模式有效的否决了原始的重传和流控模式。 增强型重传模式(Enhanced Retransmission Mode,简称ERTM):该模式是原始重传模式的改进版,提供可靠的L2CAP 通道。 流模式(Streaming Mode,简称SM):这是一个非常简单的模式,没有重传或流控。该模式提供不可靠的L2CAP 通道。 其中任何一种模式的可靠性都是可选择的,并/或由底层蓝牙BDR/EDR空中接口通过配置重传数量和刷新超时而额外保障的。顺序排序是是由底层保障的。
只有ERTM 和 SM中配置的 L2CAP通道才有可能在AMP逻辑链路上运作。
3 SDP
服务发现协议(SDP)允许一个设备发现其他设备支持的服务,和与这些服务相关的参数。比如当用手机去连接蓝牙耳机(其中包含耳机的配置信息、设备状态信息,以及高级音频分类信息(A2DP)等等)。并且这些众多协议的切换需要被每个连接他们的设备设置。每个服务都会被全局独立性识别号(UUID)所识别。根据官方蓝牙配置文档给出了一个UUID的简短格式(16位)。
4 RFCOMM
射频通信(RFCOMM)常用于建立虚拟的串行数据流。RFCOMM提供了基于蓝牙带宽层的二进制数据转换和模拟EIA-232(即早前的的RS-232)串行控制信号,也就是说,它是串口仿真。
RFCOMM向用户提供了简单而且可靠的串行数据流。类似TCP。它可作为AT指令的载体直接用于许多电话相关的协议,以及通过蓝牙作为OBEX的传输层。
许多蓝牙应用都使用RFCOMM由于串行数据的广泛应用和大多数操作系统都提供了可用的API。所以使用串行接口通讯的程序可以很快的移植到RFCOMM上面。
5 BNEP
网络封装协议(BNEP)用于通过L2CAP传输另一协议栈的数据。主要目的是传输个人区域网络配置文件中的IP 封包。BNEP在无线局域网中的功能与SNAP类似。
6AVCTP
音频/视频控制传输协议(AVCTP)被远程控制协议用来通过L2CAP传输AV/C指令。立体声耳机上的音乐控制按钮可通过这一协议控制音乐播放器。
7 AVDTP
音视频分发传输协议(AVDTP)被高级音频分发协议用来通过L2CAP向立体声耳机传输音乐文件。适用于蓝牙传输中的视频分发协议。
8 TCS
电话控制协议–二进制(TCS BIN)是面向字节协议,为蓝牙设备之间的语音和数据通话的建立定义了呼叫控制信令。此外,TCS BIN 还为蓝牙TCS设备的的群组管理定义了移动管理规程。
TCS-BIN仅用于无绳电话协议,因此并未引起广泛关注。
9采用的协议
采用的协议是由其他标准制定组织定义、并包含在蓝牙协议栈中,仅在必要时才允许蓝牙对协议进行编码。采用的协议包括: 点对点协议(PPP):通过点对点链接传输IP数据报的互联网标准协议 TCP/IP/UDP:TCP/IP 协议组的基础协议 对象交换协议(OBEX):用于对象交换的会话层协议,为对象与操作表达提供模型 无线应用环境/无线应用协议(WAE/WAP):WAE明确了无线设备的应用框架,WAP是向移动用户提供电话和信息服务接入的开放标准。
根据不同的封包类型,每个封包可能受到纠错功能的保护,或许是1/3速率的前向纠错(FEC) ,或者是2/3速率。此外,出现CRC错误的封包将会被重发,直至被自动重传请求(ARQ)承认。 任何可发现模式下的蓝牙设备都可按需传输以下信息: 设备名称 设备类别 服务列表 技术信息(例如设备特性、制造商、所使用的蓝牙版本、时钟偏移等) 任何设备都可以对其他设备发出连接请求,任何设备也都可能添加可回应请求的配置。但如果试图发出连接请求的设备知道对方设备的地址,它就总会回应直接连接请求,且如果有必要会发送上述列表中的信息。设备服务的使用也许会要求配对或设备持有者的接受,但连接本身可由任何设备发起,持续至设备走出连接范围。有些设备在与一台设备建立连接之后,就无法再与其他设备同时建立连接,直至最初的连接断开,才能再被查询到。
每个设备都有一个唯一的48-位的地址。然而这些地址并不会显示于连接请求中。但是用户可自行为他的蓝牙设备命名(蓝牙设备名称),这一名称即可显示在其他设备的扫描结果和配对设备列表中。
多数手机都有蓝牙设备名称(Bluetooth name),通常默认为制造商名称和手机型号。多数手机和手提电脑都会只显示蓝牙设备名称,想要获得远程设备的更多信息则需要有特定的程序。当某一范围内有多个相同型号的手机(比如 Sony Ericsson T610)时,也许会让人分辨哪个才是它的目标设备。(详见Bluejacking) 1 动机
蓝牙所能提供多很多服务都可能显示个人数据或受控于相连的设备。出于安全上的考量,有必要识别特定的设备,以确保能够控制哪些设备能与蓝牙设备相连的。同时,蓝牙设备也有必要让蓝牙设备能够无需用户干预即可建立连接(比如在进入连接范围的同时).
未解决该矛盾,蓝牙可使用一种叫bonding(连接) 的过程。Bond是通过配对(paring)过程生成的。配对过程通过或被自用户的特定请求引发而生成bond(比如用户明确要求“添加蓝牙设备”),或是当连接到一个出于安全考量要求需要提供设备ID的服务时自动引发。这两种情况分别称为dedicated bonding和general bonding。
配对通常包括一定程度上的用户互动,已确认设备ID。成功完成配对后,两个设备之间会形成Bond,日后再再相连时则无需为了确认设备ID而重复配对过程。用户也可以按需移除连接关系。
2 实施
配对过程中,两个设备可通过一种创建一种称为链路字的共享密钥建立关系。如果两个设备都存有相同的链路字,他们就可以实现paring或bonding。一个只想与已经bonding的设备通信的设备可以使用密码验证对方设备的身份,以确保这是之前配对的设备。一旦链路字生成,两个设备间也许会加密一个认证的异步无连接(Asynchronous Connection-Less,简称ACL) 链路,以防止交换的数据被窃取。用户可删除任何一方设备上的链路字,即可移除两设备之间的bond,也就是说一个设备可能存有一个已经不在与其配对的设备的链路字。
蓝牙服务通常要求加密或认证,因此要求在允许设备远程连接之前先配对。一些服务,比如对象推送模式,选择不明确要求认证或加密,因此配对不会影响服务用例相关的用户体验。
3 配对机制
在蓝牙2.1版本推出安全简易配对(Secure Simple Pairing) 之后,配对机制有了很大的改变。以下是关于配对机制的简要总结: 旧有配对:这是蓝牙2.0版及其早前版本配对的唯一方法。每个设备必须输入PIN码;只有当两个设备都输入相同的PIN码方能配对成功。任何16-比特的 UTF-8字符串都能用作PIN码。然而并非所有的设备都能够输入所有可能的PIN码。 有限的输入设备: 显而易见的例子是蓝牙免提耳机,它几乎没有输入界面。这些设备通常有固定的PIN,如0000或1234,是设备硬编码的。 数字输入设备: 比如移动电话就是经典的这类设备。用户可输入长达16位的数值。 字母数字输入设备: 比如个人电脑和智能电话。用户可输入完整的UTF-8 字符作为PIN码。如果是与一个输入能力有限的设备配对,就必须考虑到对方设备的输入限制,并没有可行的机制能够让一个具有足够输入能力的设备去决定应该如何限制用户可能使用的输入。 安全简易配对(SSP):这是蓝牙2.1版本要求的,尽管蓝牙2.1版本的也许设备只能使用旧有配对方式和早前版本的设备互操作。 安全简易配对使用一种公钥密码学(public key cryptography),某些类型还能防御中间人(man in the middle,简称MITM)攻击。SSP 有以下特点: 即刻运行(Just works):正如其字面含义,这一方法可直接运行,无需用户互动。但是设备也许会提示用户确认配对过程。此方法的典型应用见于输入输出功能受限的耳机,且较固定PIN机制更为安全。此方法不提供中间人(MITM) 保护。 数值比较(Numeric comparison):如果两个设备都有显示屏,且至少一个能接受二进制的“是/否”用户输入,他们就能使用数值比较。此方法可在双方设备上显示6位数的数字代码,用户需比较并确认数字的一致性。如果比较成功,用户应在可接受输入的设备上确认配对。此方法可提供中间人(MITM) 保护,但需要用户在两个设备上都确认,并正确的完成比较。 万能钥匙进入(Passkey Entry):此方法可用于一个有显示屏的设备和一个有数字键盘输入的设备(如计算机键盘),或两个有数字键盘输入的设备。第一种情况下,显示屏上显示6位数字代码,用户可在另一设备的键盘上输入该代码。第二种情况下,两个设备需同时在键盘上输入相同的6位数字代码。两种方式都能提供中间人(MITM) 保护。 非蓝牙传输方式(OOB):此方法使用外部通信方式,如近场通信(NFC),交换在配对过程中使用的一些信息。配对通过蓝牙射频完成,但是还要求非蓝牙传输机制提供信息。这种方式仅提供OOB机制中所体现的MITM保护水平。 SSP被认为简单的原因如下: 多数情况下无需用户生成万能钥匙。 用于无需MITM保护和用户互动的用例。 用于数值比较,MITM 保护可通过用户简单的等式比较来获得。 使用NFC等OOB,当设备靠近时进行配对,而非需要一个漫长的发现过程。 4 安全性担忧

蓝牙2.1之前版本是不要求加密的,可随时关闭。而且,密钥的有效时限也仅有约23.5 小时。单一密钥的使用如超出此时限,则简单的XOR攻击有可能窃取密钥。 一些常规操作要求关闭加密,如果加密因合理的理由或安全考量而被关闭,就会给设备探测带来问题。 蓝牙2.1版本从一些几个方面进行了说明: 加密是所有非-SDP(服务发现协议)连接所必需的。 新的加密暂停和继续功能用于所有要求关闭加密的常规操作,更容易辨认是常规操作还是安全攻击。 加密必须在过期之前再刷新。 链路字可能储存于设备文件系统,而不是在蓝牙芯片本身。许多蓝牙芯片制造商将链路字储存于设备—然而,如果设备是可移动的,就意味着链路字也可能随设备移动。 另请参见:基于通信网络的移动安全和攻击
蓝牙拥有机密性、完整性和基于SAFER+分组密码的定制算法的密钥导出。蓝牙密钥生成通常基于蓝牙PIN,这是双方设备都必须输入的。如果一方设备(如耳机、或类似用户界面受限的设备)有固定PIN,这一过程也可能被修改。配对过程中,初始密钥或主密钥通过E22算法生成。 E0流密码也用于加密数据包、授权机密性,它是基于公共加密的、也就是之前生成的链路字或主密钥。这些密钥可用于对通过空中接口传输的数据进行后续加密,密钥有赖于双方或一方设备中输入的PIN。
Andreas Becher于2008年发表了蓝牙漏洞信息的利用概况。
2008年9月,美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)发布了蓝牙安全指南(Guide to Bluetooth Security),供相关机构参考。该指南描述了蓝牙的安全功能,以及如何有效的保护蓝牙技术。蓝牙技术有它的优势,但它易受拒绝服务攻击、窃听、中间人攻击、消息修改及资源滥用。用户和机构都必须评估自己所能接受的风险等级,并在蓝牙设备的生命周期中增添安全功能。为减轻损失,NIST文件中还包括安全检查列表,其内包含对蓝牙微微网、耳机和智能读卡器的创建和安全维护的指南和建议。
蓝牙2.1发布于2007年,相应的消费设备最早出现于2009年,为蓝牙安全(包括配对)带来了显着的改观。更多关于这一改变的信息,请参见“配对机制”部分。 主要文章:Bluejacking

Bluejacking是指用户通过蓝牙无线技术向对方不知情的用户发送图片或信息。常见的应用包括短信息,比如“你被Bluejack了”。Bluejacking不涉及设备上任何数据的删除或更改。Bluejacking可能涉及取得对移动设备的无线控制和拨打属于Bluejack发起者的付费电话。安全上的进展已经缓解了这一问题。 一、2001–2004
2001年,贝尔实验室的Jakobsson和Wetzel from发现并指出了蓝牙配对协议和加密方案的缺陷。2003年,A.L. Digital 公司的Ben和Adam Laurie发现蓝牙安全实施上的一些重要缺陷有可能导致个人信息的泄露。随后Trifinite Group的Martin Herfurt在德国汉诺威电脑展(CEBIT)的游乐场中进行了现场试验,向世界展示了这一问题的重要性。 一种称为BlueBug的新型攻击被用于此次实验。2004年,第一个生成通过蓝牙在移动电话间传播的病毒出现于塞班系统。卡巴斯基实验室最早发现了该病毒,并要求用户在病毒传播之前确认未知软件的安装。病毒是由一群自称“29A”的病毒开发者作为验证概念编写,并发送防病毒机构的。因此,它应被看作是对蓝牙技术或塞班系统的潜在威胁,而非实际的威胁,原因是该病毒并未散播至塞班系统之外。2004年8月,一个世界纪录级的实验(另请参见Bluetooth sniping)证实,如果有定向天线和信号放大器,2类蓝牙无线电的范围可扩增至1.78km(1.11mi)。这就造成了潜在的安全威胁,因为攻击者将能够在相当程度的远距离之外接入有缺陷的蓝牙设备。攻击者想要与目标设备建立连接,还必须能够接受其发出的信息。如果攻击者不知道蓝牙地址和传输通道(尽管它们在设备使用状态下几分钟之内就能推导出来),就不可能对蓝牙设备进行攻击。
二、2005年
2005年1月,一种称为Lasco.A的移动恶意程序蠕虫开始针对采用塞班系统(60系列平台)的移动电话,通过蓝牙设备自我复制并传播至其他设备。一旦移动用户允许接收另一设备发送来的文件(velasco.sis),这一蠕虫即可开始自动安装。一旦安装成功,蠕虫变回开始寻找并感染其他的蓝牙设备。此外,蠕虫会感染设备上其他的.SIS文件,通过可移动的媒体文件(保全数位、CF卡等)复制到另一设备上。蠕虫可导致移动电话的不稳定。
2005年4月,剑桥大学安全研究员发表了针对两个商业蓝牙设备间基于PIN配对的被动攻击的研究结果。他们证实了实际攻击之快,以及蓝牙对称密钥建立方法的脆弱。为纠正争议缺陷,他们通过实验证实,对于某些类型的设备(如移动电话),非对称密钥建立更可靠且可行。
2005年6月,Yaniv Shaked和Avishai Wool发表文章,描述了蓝牙链路获得PIN的被动和主动方法。如果攻击者出现在最初配对时,被动攻击允许配有相应设备的攻击者窃听通信或冒名顶替。主动攻击方法使用专门建立的、必须插入到协议中特定的点的信息,
让主从设备不断重复配对过程。然后再通过被动攻击即可攻获PIN码。这一攻击的主要弱点是它要求用户在设备受攻击时根据提示重新输入PIN。主动攻击可能要求定制硬件,因为大多数商业蓝牙设备并不具备其所需的定时功能。
2005年8月,英国剑桥郡警方发布警告,称有不法分子通过有蓝牙功能的电话跟踪放置于车中的其他设备。警方建议当用户把手提电脑或其他设备放置于车中时,须确保任何移动网络连接均处于禁用状态。
三、2006年
2006年4月, Secure Network和F-Secure的研究人员发布了一份报告,提醒人们注意可见状态下的设备之多,并公布了有关蓝牙服务的传播、以及蓝牙蠕虫传播进程缓解的相关数据。
四、2007年
2007年10月,在卢森堡黑客安全大会上,Kevin Finistere和Thierry Zoller展示并发布了一款课通过Mac OS X v10.3.9 和 v10.4上的蓝牙进行通信的远程跟外壳(root shell)。它们还展示了首个PIN 和 Linkkeys 破解器,这是基于Wool 和 Shaked的研究。

阅读全文

与e21e22算法相关的资料

热点内容
ios支持的解压缩格式 浏览:703
平安经营贷结清后如何解压 浏览:938
苹果系统的解压缩软件 浏览:856
python火锅店运营分析 浏览:985
c语言编译器手机在线 浏览:848
战舰世界什么服务器地址 浏览:550
windowsphone解压缩 浏览:646
android工程目录结构 浏览:137
pdf文档是反的 浏览:528
javaobject比较 浏览:867
安卓如何设置微信屏幕锁 浏览:189
本溪云服务器 浏览:375
玩机技巧华为app如何了解纯净模式 浏览:905
换算法则数不变 浏览:719
java工作流activiti 浏览:788
单片机自动门程序 浏览:423
java培训长沙 浏览:494
程序员生存现状 浏览:588
光环游戏安装器在哪个文件夹 浏览:654
公众号图片被压缩 浏览:291