Bluetooth的Security概述

涉及到BluetoothSecurity相关的概念很多,并分散到不同的文档(Specification, Whitepaper)中,甚至Specification中不同的部分都零散着Security的论述。导致给理解BluetoothSecurity带来不少的困难。也许是因为大家理解不够的缘故吧,使得各种Bluetooth产品的对于SecurityUI有很大的差异。从而对于用户来说,本来很SimpleBluetooth产品反而使用起来颇为繁琐了。也许,也有另外一个原因,是Bluetooth Specification过于灵活了,太多的Optional Requirement了吧。

 

1Bluetooth Security的不同安全模式

 

被访问者

Bluetooth Device根据不同的安全需求可以处于不用的安全模式(厂家决定或者让用户选择)。

 

Security Mode 1

没有任何的安全检查

 

Security Mode 2

Service Level的安全检查,在Link的时候并不需要进行安全检查,只是在Link建立后,在访问Service之前(channel establishment request – 接收到L2CAP_ConnectReq之前)进行安全检查。

Security Mode 2中的各种Service又可以有不同的安全要求,从而进行不同的安全检查

-------------------------------------------------------------------------------------------------------------------------------

. Authorization Required:

在访问该Service之前,需要进行Authorization (授权认证) Authorization包含了Authentication(身份认证),这意味着,在授权(Authorization)之前你需要知道对方是谁(Authentication)。如果需要访问处于该安全等级的Device中的Service,有下面的途径:

1Trusted Device可以自动可以访问

2Untrusted  Device每次访问Service之前都需要一个Authorization步骤

 

. Authentication Required:

在访问该Service之前,需要Authentication(身份认证)

 

. Encryption Required:

在访问该Service之前,切换到加密模式(encrypted mode)

-------------------------------------------------------------------------------------------------------------------------------

Security Mode1可以看作Security Mode 2的一个特例。当Security Mode 2Device中的任何一个Service都没有上述的安全要求的时候,也就意味着不进行任何的安全检查 --- 等同于Security Mode1

 

Security Mode 3:

Link Level的安全检查,在Link建立之前(发出LMP_link_setup_complete之前),进行安全检查。安全检查主要是Authentication,也可以同时进行Encryption

 

请注意Authorization (授权认证)Authentication(身份认证)之间的区别。

Authentication:对对方Device进行身份认证,证明对方是你认识的人。技术上要求两个Device之间存在一个Link Key。如果Authentication的时候没保存有Link Key,就进行Paring(让用户输入Passkey)。注意,在一个session期间(连接开始到断开连接),可能进行很多次Authentication

Authorization:这是指在Security Mode 2下,控制对不同Service的访问权限。在UI上可以表现为显示一个对话框”A想要访问你的X Service,是否允许? Authorization包含了Authentication

 

访问者

对于访问对象Device A,访问者Device B可以是A的:

 

. Trusted Device

该设备已经通过Authentication,并保存有一个Link Key,并被标示(可以通过一个UI选择)为”Trusted”

 

. Untrusted Device

该设备已经通过Authentication,并保存有一个Link Key,但没有”Trusted”标示。

 

. Unknown Device

该设备没保存有任何安全信息。

 

由此可见,对于保存有Link KeyTrusted DeviceUntrusted Device,都可以自动通过Authentication检查。但只有Trusted Device可以自动通过Authorization检查。

 

2,几个相关概念的定义

 

Paring:

这是指通过UI输入一个Passkey (PIN),建立一个Link Key的过程。Paring可以发生在在Bonding的过程中,或者发生在如果两个设备之间没有保存的Link Key的情况下进行Link或者channel连接而需要Authentication的时候。

 

Bonding:

这是指通过Paring建立一个Link Key,并把该Link Key保存起来的过程。这个保存起来的Link Key可以供以后的Authentication使用。Bonding可以分为General bondingDedicated bondingGeneral bonding不仅仅Paring,还可以对高层(high layer)进行安全参数设置(比如设置”Trusted”标示)。

 

Passkey:

这是一个UI层次的概念,由用户输入。PasskeyUI之外的地方也被称为PINPasskey可以长达16个字符。

 

Link Key:

也称为Authentication Key,由Passkey产生,用于进行Authentication并产生Encryption KeyLink Key128 bits

 

Encryption Key:

Link Key产生,用于进行加密(encryption)。可以是8-128 bits。可变长的主要原因是不同国家对出口产品的加密算法有不同的限制。

 

Encryption Key是经常发生改变的,每当切换到加密模式就产生一个新的Encryption Key

Link Key就相对稳定一些,但在不同的时候/不同的环境下有不同类型的Link Key被使用:

The combination key Kab: 由两个Device组合产生Link Key

The unit key Ka: 由一个Device产生Link KeyKab会更安全一些,但条件不允许的情况下也可以采用Ka

The temporary key Kmaster: 这是用于某些特殊目的(比如Master广播数据到所有的Slave)而临时产生的,使用完成后切换回原来的Link Key

The initialization key Kinit: 在没有任何Link key的情况下需要产生Kab或者Ka作为Common Link Key的时候,使用Kinit作为临时Link Key来保证新产生的Common Link Key被安全地交换。

 

参考:

"Specificaiton of the Bluetooth System"  2.0 + EDR

"Bluetooth Securtiy Architecture" 1.0

"Bluetooth Security White Paper" 1.0

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值