Agenda:
Part A 5 安全概述.
5.1 安全架构.
5.2 BR / EDR安全简单配对.
5.2.1安全目标.
5.2.2被动窃听保护.
5.2.3中间人Man-In-The-Middle保护.
5.2.4关联模型.
5.3 仅安全连接模式.
5.4 LE安全.
5.4.1 关联模型.
5.4.2 密钥生成.
5.4.3 加密.
5.4.4 签名数据.
5.4.5 隐私功能.
5.1 安全架构
(240页)蓝牙安全模型包括五个不同的安全功能:配对(Pairing),绑定(Bonding),设备认证(Device authentication),加密(Encryption)和信息完整性(Message integrity):
蓝牙核心安全架构随着时间的推移不断发展。
最初,配对使用基于SAFER +的E21或E22算法。此版本的配对称为“BR / EDR传统配对”。设备认证最初基于E1算法,该算法也基于SAFER +。加密利用源自Massey-Rueppel算法的E0算法。加密消息完整性也没有规定。请注意,虽然CRC提供了一些完整性保护,但不会考虑提供加密完整性,因为它很容易伪造。
核心规范的2.1版+ EDR引入了安全简单配对,它采用了FIPS认可的算法(SHA-256,HMAC-SHA-256和P-192椭圆曲线),并引入了四种关联模型:Just Works,Numeric Comparison,Passkey进入和带外(见第5.2节)。
引入安全简单配对时,设备身份验证和加密保持不变。
核心规范的3.0 + HS版增加了对AMP的支持(参见第5.5节)。
4.0版增加了Low Energy的整个安全模型(参见第5.4节),但没有改变BR / EDR或AMP的任何安全功能。
版本4.1为BR / EDR物理传输添加了安全连接功能,该功能将安全简单配对升级为使用P-256椭圆曲线,设备认证使用FIPS认可的算法(HMAC-SHA-256和AES-CTR)。 Secure Connections还添加了消息完整性(AESCCM)。
版本4.2将安全连接功能添加到LE物理传输,升级LE配对以使用FIPS认可的算法(AES-CMAC和P-256椭圆曲线),并使数字比较关联模型适用于蓝牙LE物理传输。(241页)它还包括在物理传输上使用安全连接生成的密钥的规定,以排除用户第二次在另一个物理传输上配对的需要。 蓝牙核心规范4.0和4.1中定义的LE配对称为LE传统配对。
BR / EDR和AMP的安全密钥层次结构如图5.1所示。 密钥层次结构根据物理链路是使用安全连接还是传统安全过程和算法而有所不同。
LE的安全密钥层次结构如图5.2所示。 密钥层次结构根据物理链路是使用LE安全连接还是LE传统配对过程和算法而不同。(242页)
5.2 BR / EDR安全简单配对
由于高水平的安全性和易用性通常在许多技术和产品的频谱的两端,因此在最大限度地提高安全性的同时,最大限度地降低了最终用户的复杂性。
5.2.1安全目标
安全简单配对有两个安全目标:
安全简单配对的目标是超过使用16个字母数字PIN提供的最大安全级别,以及蓝牙核心规范版本2.0 + EDR和早期版本中使用的配对算法。请注意,许多符合蓝牙核心规范2.0 + EDR和早期版本的蓝牙设备使用4位数的PIN或固定的已知值的PIN,这极大地限制了链路的安全性。
5.2.2被动窃听保护
(243页)强大的链接密钥与强大的加密算法相结合是必要的,以便为用户提供防止被动窃听的保护。链接密钥的强度基于其生成过程中的熵(或随机性)量,攻击者不会知道。
安全简单配对使用椭圆曲线Diffie Hellman(ECDH)公钥加密作为阻止被动窃听攻击的手段。 ECDH提供了非常高的强度来抵御被动窃听攻击,但它可能受到MITM攻击,然而,在实践中执行比被动窃听攻击更难(见第5.2.3节)。
使用蓝牙核心规范版本2.0 + EDR中的安全协议以及之前的16位数字PIN可实现约53位的熵,而当使用整个62个字符集时,16个字符的字母数字,区分大小写的PIN会产生大约95位的熵([0,... 9,'A',......'Z','a',...'z'])。
对于不支持安全连接功能的设备(在核心规范v4.1中引入),使用FIPS认可的P-192椭圆曲线,安全简单配对具有大约96位的熵,这至少与蓝牙核心中的熵一样好 规范2.0 + EDR及更早版本使用16个字符,字母数字,区分大小写的PIN。 对于支持安全连接功能的设备,使用FIPS认可的P-256椭圆曲线,安全简单配对具有大约128位的熵。 ECDH密码术是在标准Diffie Hellman(通常称为DH76)上选择的,因为它在计算上不太复杂,并且不太可能超过普通蓝牙控制器中的低计算能力。
5.2.3中间人Man-In-The-Middle保护
(244页)当用户想要连接两个设备而不是直接相互连接时,他们会在不知不觉中连接到第三个(攻击性)设备,该设备扮演他们试图使用的设备的角色,从而发生中间人(MITM)攻击配对。
在这种类型的攻击中,两个设备之间交换的所有信息都受到损害,并且攻击者可能将命令和信息注入到每个设备中,从而可能损害设备的功能。
为了防止MITM攻击,安全简单配对提供了两种用户辅助的数字方法:数字比较或密钥输入。
如果安全简单配对使用16位十进制数字,则可用性与使用16位十进制数字的传统配对相同。在这种情况下,MITM成功插入其自己的链接密钥的机会是1016 = 253个配对实例中的1,这是不必要的低概率。安全简单配对可保护用户免受MITM攻击,其目标是提供MITM可成功攻击的百万分之一的机会。
选择此级别的MITM保护,因为在大多数情况下,当连接过程因MITM攻击失败而失败时,可以警告用户可能存在MITM攻击者。虽然大多数用户认为只要他们没有泄露密码,但4位密钥足以进行身份验证(即银行卡密码),使用6位数字可使安全简单配对符合FIPS标准,这被视为几乎没有可察觉的可用性影响。
5.2.4关联模型
安全简单配对使用四种关联模型,称为数字比较Numeric Comparison,正常工作Just Works,带外和密钥输入。以下各节将更详细地描述这些关联模型中的每一个。
使用的关联模型是基于两个设备的I/O能力的确定性。
5.2.4.1 数字比较
(245页)数字比较关联模型设计用于两个设备都能够显示六位数字并且两者都能够让用户输入“是”或“否”的情况。这种模式的一个很好的例子是手机/ PC方案。
数字比较有两个目的。
请注意,与数字比较和蓝牙核心规范及早期版本使用的PIN条目模型之间的加密观点存在显着差异。
5.2.4.2 正常工作
Just Works关联模型主要设计用于至少有一个设备没有能够显示六位数字的显示器,也没有能够输入六位十进制数字的键盘的情况。
此型号的一个很好的例子是手机/单声道耳机方案,其中大多数耳机没有显示器。
Just Works关联模型使用数字比较协议,但用户永远不会显示数字,应用过程可能只是要求用户接受连接(确切的实现取决于最终产品制造商)。
与今天使用固定PIN的耳机的体验相比,Just Works关联模型的安全级别相当高,因为实现了对被动窃听的高度保护(?)。
5.2.4.3 带外Out of Band
(246页)带外(OOB)关联模型主要用于使用带外机制来发现设备以及交换或传输配对过程中使用的加密号码的场景。
为了从安全的角度来看是有效的,与蓝牙无线电信道相比,
如果不是,则在身份验证期间可能会危及安全性。
根据带外机制,用户的体验略有不同。例如,使用近场通信(NFC)解决方案,用户将首先将两个设备一起触摸,并且可以选择配对第一个设备与其他设备。如果输入“是”,则配对成功。
这是一种单一触摸体验,其中交换的信息在两个设备中使用。交换的信息包括发现信息(例如蓝牙设备地址)以及加密信息。其中一个设备将使用蓝牙设备地址与其他设备建立连接。在认证期间使用其余的交换信息。
OOB机制可以实现为只读或读/写。
仅当配对过程已通过先前的OOB信息交换激活并且设备中的一个(或两个)给出OOB作为IO能力时,才选择OOB协议。该协议使用已交换的信息,并简单地要求用户确认连接。
OOB关联模型支持任何可以交换加密信息和蓝牙设备地址的OOB机制。 OOB关联模型不支持用户激活蓝牙连接并且仅希望使用OOB进行身份验证的解决方案。
5.2.4.4 密码输入
密钥条目关联模型主要是针对一个设备具有输入功能但无法显示六位数而另一个设备具有输出功能的情况而设计的。这个模型的一个很好的例子是PC和键盘场景。
在具有显示器的设备上向用户显示六位数字(从“000000”到“999999”),然后要求用户在另一个设备上输入该号码。如果在第二个设备上输入的值正确,则配对成功。
请注意,密钥输入与蓝牙核心规范2.0 + EDR和早期版本使用的PIN条目模型之间的加密观点存在显着差异。 在Passkey Entry关联模型中,(247页)六位数字与安全算法无关,而不是对其的输入,如2.0 + EDR安全模型中的情况。知道输入的数字对解密两个设备之间交换的编码数据没有好处。
5.2.4.5 关联模型概述
下图显示了从用于发现的技术的角度来看安全简单配对,然后是不同的关联可能性。
5.3 仅安全连接模式
当设备要求在BR / EDR物理传输上仅使用FIPS认可的算法时,它应在BR / EDR物理传输上进入仅安全连接模式。仅安全连接模式有时称为“FIPS模式”。当设备具有高安全性而不是保持与不支持安全连接的设备的向后兼容性时,应该使用此模式。主机将强制在配对期间使用P-256椭圆曲线,使用安全认证序列,并使用AES-CCM进行加密。
当设备要求在LE物理传输上仅使用FIPS认可的算法时,它应该在LE物理传输上进入仅安全连接模式。(248页)仅安全连接模式有时称为“FIPS模式”。当设备具有高安全性而不是保持与不支持LE安全连接的设备的向后兼容性时,应该使用此模式。在此模式下,主机将强制在配对期间使用P-256椭圆曲线。
如果在仅安全连接模式下配置BR / EDR / LE设备,则只有在两个设备都支持安全连接时才会使用传输。
5.4 LE安全
蓝牙核心规范v4.0中引入的配对机制(称为LE Legacy Pairing)在安全方面与BR / EDR安全功能(如安全简单配对)有一些差异。从用户的角度来看,关联模型类似于BR / EDR安全简单配对,并且具有相同的名称,但在提供的保护质量方面存在差异。
5.4.1 关联模型
蓝牙LE使用四种关联模型,称为Just Works,数字比较,带外和密钥输入。 LE传统配对没有相当于数字比较。
在LE传统配对中,这些关联模型中的每一个都与BR / EDR安全简单配对类似,但有以下例外
每种关联模型的使用都基于设备的I / O功能。
5.4.2 密钥生成
(249页)蓝牙LE中的密钥生成由主机在每个LE设备上执行,独立于任何其他LE设备。注意:BR / EDR中的密钥生成在Controller中执行。通过在主机中执行密钥生成,可以升级密钥生成算法,而无需更改控制器。
蓝牙LE使用多个密钥,每个密钥用于特定目的,如下所示:
在LE中,通过将来自每个设备的贡献组合成在配对期间使用的链接密钥来生成单个链接密钥。在BR / EDR中,密钥生成在Controller中执行。
5.4.3 加密
蓝牙LE中的加密使用AES-CCM加密。与BR / EDR一样,LE加密在Controller中执行。
5.4.4 签名数据
蓝牙LE支持通过未加密的ATT承载在具有可信关系的两个设备之间发送经过验证的数据的能力。这是通过使用连接签名解析密钥(CSRK)对数据进行签名来完成的。
5.4.5 隐私功能
蓝牙LE支持通过频繁更改蓝牙设备地址来降低在一段时间内跟踪LE设备的功能。
(250页)隐私功能有两种变体。
主机通过添加和删除设备标识来维护解析列表。主机可以向Controller提供完整的解析列表或解析列表的子集。设备标识由对等方的标识地址和本地和对等方的IRK对组成。
在Controller中执行地址解析时,可以进行设备过滤,因为在检查对等设备的设备标识地址是否在白名单之前,可以解析对等设备的标识地址。
图5.4显示了Controller解析列表和Controller白名单之间关系的逻辑表示。解析列表和白名单的实际实现不需要遵循此模型。
注意:并非白名单中的所有设备都是设备标识地址。
当仅在主机中执行地址解析时,设备可能会经历增加的功耗,因为必须禁用设备过滤。
————————————————————————————————————————
Reference
1 BT specification Core 4.2,Bluetooth SIG.
————————————————————————————————————————
作者按:蓝牙从业者,潜心学习BT stack,蓝牙协议奇多无比,概述只是开始,网上资料还比较多,学到后面的各种spec就只剩下英文原版可以参考了,遂把自己的笔记发出来,互相交流,互相交流。