加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_阳江站长网 (https://www.0662zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 评论 > 正文

科普 | 低功耗蓝牙配对

发布时间:2020-06-04 09:14:36 所属栏目:评论 来源:站长网
导读:Paring(配对)和 bonding(绑定)是实现蓝牙射频通信安全的一种机制,有两点需要注意: 一是 paring/bonding 实现的是蓝牙链路层的安全,对应用来说完全透明,也就是说,不管有没有 paring/bonding,你发送或接收应用数据的方式是一样的,不会因为加了 pa

Paring(配对)和 bonding(绑定)是实现蓝牙射频通信安全的一种机制,有两点需要注意:

一是 paring/bonding 实现的是蓝牙链路层的安全,对应用来说完全透明,也就是说,不管有没有 paring/bonding,你发送或接收应用数据的方式是一样的,不会因为加了 paring/bonding 应用数据传输需要做某些特殊处理;

二安全有两种选项:加密或者签名,目前绝大多数应用都是选择加密,后续我们也会以加密为重点进行讲述

实现蓝牙通信安全,除了 paring/bonding 这种底层方式,用户也可以在应用层去实现相同功能,两者从功能上和安全性上没有本质区别,只不过应用层自己实现的话,需要自己选择密码算法,密钥生成,密钥交换等,如果你不是这方面的专家,你的应用就有可能会存在安全漏洞。Paring/bonding 则把上述过程标准化,放在了蓝牙协议栈中,并且其安全性得到了充分评估,用户可以 “无感的” 用上安全的蓝牙通信。

Paring/bonding 是蓝牙 security manager(SM)的一部分,SM 定义了蓝牙通信的安全框架,里面涉及安全架构,密码工具箱,paring 协议等,其中 paring 协议是关键,所以我们经常把 paring 和 SM 二者等价,下面将对 paring 进行详细阐述。

1、基本概念解读

°Paring(配对)

配对包括配对能力交换,设备认证,密钥生成,连接加密以及机密信息分发等过程,配对的目的有三个:加密连接,认证设备,以及生成密钥。从手机角度看,一旦设备跟手机配对成功,蓝牙配置菜单将包含该配对设备,如下所示:

科普 | 低功耗蓝牙配对

如果用户需要主动删除配对设备,点击配对设备右边的“设置”菜单,出现如下界面,选择“取消配对”或者“忽略该设备”,设备的配对信息即被手机删除。

科普 | 低功耗蓝牙配对

°

Bonding(绑定)

配对过程中会生成一个长期密钥(LTK,long-term Key),如果配对双方把这个 LTK 存储起来放在 Flash 中,那么这两个设备再次重连的时候,就可以跳过配对流程,而直接使用 LTK 对蓝牙连接进行加密,设备的这种状态称为 bonding。

如果 paring 过程中不存储 LTK(不分发 LTK)也是可以的,paring 完成后连接也是加密的,但是如果两个设备再次重连,那么就需要重走一次 paring 流程,否则两者还是明文通信。

在不引起误解的情况下,我们经常把 paring 当成 paring 和 bonding 两者的组合,因为只 paring 不 bonding 的应用情况非常少见。在不引起混淆的情况下,下文就不区分 paring 和 bonding 的区别,换句话说,我们会把 paring 和 bonding 两个概念等同起来进行混用。

°SM(security manager)

蓝牙协议栈的安全管理层,规定了跟蓝牙安全通信有关的所有要素,包括 paring,bonding,以及下文提到的 SMP。

°SMP(security manager protocol)

安全管理协议,SMP 着重两个设备之间的蓝牙交互命令序列,对 paring 的空中包进行了严格时序规定。

°OOB(out of band,带外)

OOB 就是不通过蓝牙射频本身来交互,而是通过比如人眼,NFC,UART 等带外方式来交互配对信息,在这里人眼,NFC,UART 通信方式就被称为 OOB 通信方式。

°Passkey

又称 pin 码,是指用户在键盘中输入的一串数字,以达到认证设备的目的。低功耗蓝牙的 passkey 必须为 6 位。

°Numeric comparison(数字比较)

Numeric comparison 其实跟 passkey 一样,也是用来认证设备的,只不过 passkey 是通过键盘输入的,而 numeric comparison 是显示在显示器上的,numeric comparison 也必须是 6 位的数字。

°MITM(man in the middle)

MITM 是指 A 和 B 通信过程中,C 会插入进来以模拟 A 或者 B,并且具备截获和篡改 A 和 B 之间所有通信报文的能力,从而达到让 A 或者 B 信任它,以至于错把 C 当成 B 或者 A 来通信。

如果对安全要求比较高,需要具备 MITM 保护能力,在 SM 中这个是通过认证(authentication)来实现的,SM 中实现认证的方式有三种:OOB 认证信息,passkey 以及 numeric comparison,大家根据自己的实际情况,选择其中一种即可。

°LESC(LE secure connections)

又称 SC,蓝牙 4.2 引入的一种新的密钥生成方式和验证方式,SC 通过基于椭圆曲线的 Diffie-Hellman 密钥交换算法来生成设备 A 和 B 的共享密钥,此密钥生成过程中需要用到公私钥对,以及其他的密码算法库。

LESC 同时还规定了相应的通信协议以生成该密钥,并验证该密钥。需要注意的是 LESC 对 paring 的其他方面也会产生一定的影响,所以我们经常会把 LESC 看成是一种新的配对方式。

°Legacy paring

在 LESC 引入之前的密钥生成方式,称为 legacy paring,换句话说,legacy paring 是相对 LESC 来说的,不支持 LESC 的配对即为 legacy paring(legacy 配对)。

°TK(Temporary Key,临时密钥)

legacy paring 里面的概念,如果采用 just work 配对方式,TK 就是为全 0;如果采用 passkey 配对方式,TK 就是 passkey;如果采用 OOB 配对方式,TK 就是 OOB 里面的信息。

°STK(short term key,短期密钥)

legacy 配对里面的概念,STK 是通过 TK 推导出来的,通过 TK 对设备 A 和 B 的随机数进行加密,即得到 STK。

°LTK(long term key,长期密钥)

legacy 配对和 LESC 配对都会用到 LTK,如前所述,LTK 是用来对未来的连接进行加密和解密用的。Legacy paring 中的 LTK 由从设备根据相应的算法自己生成的(LTK 生成过程中会用到 EDIV(分散因子)和 Rand(随机数)),然后通过蓝牙空中包传给主机。

LESC 配对过程中,先通过 Diffie-Hellman 生成一个共享密钥,然后这个共享密钥再对设备 A 和 B 的蓝牙地址和随机数进行加密,从而得到 LTK,LTK 由设备 A 和 B 各自同时生成,因此 LTK 不会出现在 LESC 蓝牙空中包中,大大提高了蓝牙通信的安全性。

°IRK(Identity Resolving Key,蓝牙设备地址解析密钥)

有些蓝牙设备的地址为可解析的随机地址,比如 iPhone 手机,由于他们的地址随着时间会变化,那如何确定这些变化的地址都来自同一个设备呢?

答案就是 IRK,IRK 通过解析变化的地址的规律,从而确定这些地址是否来自同一个设备,换句话说,IRK 可以用来识别蓝牙设备身份,因此其也称为 Identity information。IRK 一般由设备出厂的时候按照一定要求自动生成。

°Identity Address(设备唯一地址)

蓝牙设备地址包括 public,random static, private resolvable,random unresolved 共四类。

如果设备不支持 privacy,那么 identity address 就等于 public 或者 random static 设备地址。

(编辑:应用网_阳江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读