Core spec v5.0 Vol1 Part A 5 SECURITY OVERVIEW

时间:2024-10-14 08:07:02

5 SECURITY OVERVIEW

5.1 安全架构

蓝牙安全模型包含5个独特的安全功能:Pairing, bonding, device authentication, encryption and message integrity.

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,数值比较,密码输入 和带外(请参阅第5.2节)。引入安全简单配对后,设备身份验证和加密保持不变。

核心规范的3.0版+ HS增加了对AMP的支持(请参阅第5.5节)。

4.0版增加了低能耗的整个安全模型(请参见5.4节),但未更改BR / EDR或AMP的任何安全功能。

4.1版向BR / EDR物理传输添加了安全连接功能,该功能升级了安全简单配对以利用P 256椭圆曲线,对设备身份验证使用FIPS认可的算法(HMAC-SHA-256和AES-CTR)。 安全连接还增加了消息完整性(AES-CCM)。

4.2版向LE物理传输添加了安全连接功能,该功能升级了LE配对,以利用FIPS批准的算法(AES-CMAC和P-256椭圆曲线),并调整了用于蓝牙LE物理传输的数值比较关联模型。 它还包括对在任一物理传输上使用安全连接生成的密钥的规定,以排除用户在另一物理传输上第二次配对的需要。 蓝牙核心规范4.0和4.1中定义的LE配对称为LE传统配对。

BR / EDR和AMP的安全密钥层次结构如图5.1所示。 密钥层次结构会有所不同,具体取决于物理链接是使用安全连接还是旧版安全性过程和算法。

LE的安全密钥层次结构如图5.2所示。 密钥层次结构会有所不同,具体取决于物理链路是使用LE安全连接还是LE旧式配对过程和算法。

5.2 BR/EDR SECURE SIMPLE PAIRING

安全简单配对的主要目标是简化用户的配对过程。 次要目标是维持或改善蓝牙无线技术的安全性。 由于在许多技术和产品中,高级别的安全性和易用性往往处于相反的境地,因此从最终用户的角度出发,已经采取了很多措施来最大化安全性,同时最大程度地降低复杂性。

5.2.1 Security Goals

安全简单配对具有两个安全目标:防范被动窃听和防范中间人(MITM)攻击(主动窃听)。 “安全简单配对”的目标是超越使用16位字母数字PIN和Bluetooth Core Specification 2.0 + EDR版本以及更早版本中使用的配对算法所提供的最大安全级别。 请注意,许多符合Bluetooth Core Specification 2.0 + EDR和早期版本的蓝牙设备都使用4位数PIN或具有已知值的固定PIN,这大大限制了链路的安全性。

5.2.2 Passive Eavesdropping Protection

为了使用户免受被动窃听,必须将强大的链接密钥与强大的加密算法结合在一起。链接密钥的强度基于攻击者无法得知的其生成过程中的熵(或随机性)量。使用传统配对,唯一的熵源是PIN,在许多使用情况下,通常是用户选择或为给定产品固定的四位数。因此,如果记录了配对过程和一个身份验证交换,则可以在常见的计算硬件上进行非常详尽的搜索以在很短的时间内找到PIN。使用安全简单配对,记录攻击变得更加困难,因为攻击者必须解决公钥加密中的一个难题才能从记录的信息中导出链接密钥。此保护与用户必须处理的密钥长度或其他数字值无关。即使用户不需要执行任何操作,“安全简单配对”也可以抵抗录制和被动窃听攻击。

安全简单配对使用椭圆曲线Diffie Hellman(ECDH)公钥加密技术来阻止被动窃听攻击。 ECDH在抵御被动窃听攻击方面提供了非常高的强度,但是它可能会受到MITM攻击,但是在实践中,它比被动窃听攻击要难得多(请参阅第5.2.3节)。

使用蓝牙核心规范版本2.0 + EDR和更早版本中的安全协议以及16个数字PIN可获得大约53位的熵,而使用16个字母数字字母,区分大小写的PIN在使用整个62个字符集时产生大约95位的熵([0,... 9,'A',...'Z','a',...'z'])。对于不支持安全连接功能(在Core Specification v4.1中引入)的设备,使用FIPS认可的P-192椭圆曲线,安全简单配对具有大约96位的熵,该熵至少与Bluetooth Core中的熵一样好规范2.0 + EDR和更早版本,使用16个字符,字母数字,区分大小写的PIN。对于确实支持安全连接功能的设备,使用FIPS批准的P-256椭圆曲线,安全简单配对具有大约128位的熵。选择ECDH加密技术是优于标准Diffie Hellman(通常称为DH76),因为它在计算上不太复杂,并且不太可能超过普通蓝牙控制器中的低计算能力。

5.2.3 Man-In-The-Middle Protection

中间人(MITM)攻击发生在用户想要连接两个设备,但他们在不知不觉中连接到第三台(攻击)设备时,他们不希望彼此直接连接,而第三台设备扮演着他们尝试使用的设备的角色 与。 然后,第三设备在这两个设备之间中继信息,从而给人以直接连接的错觉。 攻击设备甚至可以窃听两个设备之间的通信(称为主动窃听),并且能够在连接上插入和修改信息。在这种类型的攻击中,两个设备之间交换的所有信息都会被破坏,攻击者可能会将命令和信息注入每个设备中,从而潜在地损坏设备的功能。 成为攻击受害者的设备仅在存在攻击者时才能够通信。 如果攻击者未处于活动状态或不在范围内,则两个受害设备将无法直接相互通信,并且用户会注意到它。

为防止MITM攻击,安全简单配对提供了两种用户辅助的数字方法:数字比较或密码输入。 如果安全简单配对将使用16个十进制数字,则可用性将与使用具有16个十进制数字PIN的旧式配对相同。 在这种情况下,MITM成功插入其自己的链接密钥的机会是10 的16次方 = 2的 53次方个配对实例中的1个,这是不必要的低概率。

“安全简单配对”保护用户免受MITM攻击,目标是使MITM能够成功进行攻击的概率为1,000,000分之一。 通过使用六位数字进行数字比较和输入密码,选择了MITM保护的强度,以最大程度地降低用户影响。 之所以选择这种级别的MITM保护,是因为在大多数情况下,当连接过程由于失败的MITM攻击而失败时,可以提醒用户注意MITM攻击者的潜在存在。 尽管大多数用户认为只要他们没有破坏自己的密码,一个4位数字的密钥就足以进行身份验证(即银行卡PIN码),但是使用6位数字可以使安全简单配对符合FIPS,并且被认为具有 几乎没有明显的可用性影响。

5.2.4 Association Models

安全简单配对使用四个关联模型,分别称为数值比较,Just Works,带外和密钥输入。 以下各节将更详细地描述这些关联模型中的每一个。
会根据两个设备的I / O功能去确定关联模型。

5.2.4.1 Numeric Comparison

数值比较关联模型是为这种场景设计的:两个设备都可以显示6个数字并且都支持用户输入‘yes’ 或者 ‘no'。这个模式的典型是 cell phone - PC场景

在两个显示屏上都向用户显示一个六位数的数字(从“ 000000”到“ 999999”),然后询问两个设备上的数字是否相同。 如果在两个设备上都输入“是”,则说明配对成功。

数值比较有两个目的。首先,因为很多设备的名称都不是唯一的,它向用户确认正确的设备已相互连接。 其次,数值比较可防止MITM攻击(请参阅第5.2.3节)。

请注意,从密码的角度来看,“数字比较”与“蓝牙核心规范”及更早版本使用的PIN输入模型之间存在显着差异。 在数字比较关联模型中,与蓝牙安全模型一样,六位数字是安全算法的人工产物,而不是输入。 知道显示的数字对解密两个设备之间交换的编码数据没有好处。

5.2.4.2 Just Works

Just works关联模型是为这个场景设计的:至少其中一台设备没有能够显示六位数字的显示器,也没有能够输入六位十进制数字的键盘。这种模式的一个很好的例子是手机/单声道耳机场景,其中大多数耳机没有显示器。

Just Works关联模型使用数字比较协议,但从未向用户显示数字,应用程序可能只是要求用户接受连接(具体实现方式取决于最终产品制造商)。

Just Works关联模型提供与“数值比较”关联模型相同的保护,以防止被动窃听,但不提供针对MITM攻击的保护。

与当今使用固定PIN的头戴式耳机的经验相比,Just Works关联模型的安全级别要高得多,因为实现了高度保护,可以防止被动窃听。

5.2.4.3 Out of Band

带外(OOB)关联模型主要设计用于以下场景:带外机制用于发现设备以及交换或转移在配对过程中使用的密码号。 为了从安全性角度来看有效,与蓝牙无线电通道相比,带外通道在安全性方面应提供不同的属性。 带外通道应能抵抗MITM攻击。 如果不是这样,则在身份验证期间可能会损害安全性。

用户的体验取决于带外机制。 例如,使用近场通信(NFC)解决方案,用户将首先触摸两个设备,然后可以选择将第一个设备与另一个设备配对。 如果输入“是”,则表示配对成功。 这是一次触摸式体验,其中在两个设备中都使用了交换的信息。 交换的信息包括发现信息(例如蓝牙设备地址)以及密码信息。 其中一个设备将使用蓝牙设备地址与另一个设备建立连接。 其余的交换信息在身份验证期间使用。

OOB机制可以实现为只读或读/写。 如果一侧是只读的,则执行单向身份验证。 如果双方都是读/写的,则执行双向身份验证。

仅当先前的OOB信息交换已激活配对过程并且设备中的一个(或两个)赋予OOB作为IO功能时,才选择OOB协议。 该协议使用已交换的信息,仅要求用户确认连接。

OOB关联模型支持可以交换密码信息和蓝牙设备地址的任何OOB机制。 OOB关联模型不支持用户已激活蓝牙连接并且仅想将OOB用于身份验证的解决方案。

5.2.4.4 Passkey Entry

密码输入关联模型主要设计用于以下情况:一个设备具有输入功能,但不具有显示六位数字的能力,而另一设备具有输出功能。 PC和键盘方案就是这种模型的一个很好的例子。

在带显示屏的设备上为用户显示一个六位数的数字(从“ 000000”到“ 999999”),然后要求用户在另一台设备上输入该数字。 如果在第二台设备上输入的值正确,则说明配对成功。 请注意,从密码的角度来看,Password条目和Bluetooth Core Specification 2.0 + EDR和更早版本使用的PIN条目模型之间存在显着差异。 在Passkey Entry关联模型中,与2.0 + EDR安全模型一样,六位数字独立于安全算法,而不是其输入。 知道输入的号码对解密两个设备之间交换的编码数据没有好处。

5.2.4.5 Association Model Overview

下图从发现技术的角度介绍了安全简单配对,然后介绍了不同的关联可能性。

5.3 SECURE CONNECTIONS ONLY MODE

当设备要求在BR / EDR物理传输上仅使用FIPS批准的算法时,它应在BR / EDR物理传输上进入“仅安全连接”模式。 仅限安全连接模式有时也称为“ FIPS模式”。 当设备具有较高的安全性比保持与不支持安全连接的设备的向后兼容性更为重要时,应使用此模式。 主机将强制在配对过程中使用P-256椭圆曲线,使用安全认证序列,并使用AES-CCM进行加密。

当设备要求在LE物理传输上仅使用FIPS批准的算法时,它应在LE物理传输上进入“仅安全连接”模式。 仅限安全连接模式有时也称为“ FIPS模式”。 当设备具有更高的安全性比保持与不支持LE安全连接的设备的向后兼容性更为重要时,应使用此模式。 在这种模式下,主机将强制在配对过程中使用P-256椭圆曲线。

如果将BR / EDR / LE设备配置为仅安全连接模式,则BR / EDR和LE传输器都将处于仅安全连接模式。

5.4 LE SECURITY

蓝牙核心规范v4.0中引入的配对机制(称为LE旧式配对)在BR / EDR安全功能(例如安全简单配对)的安全方面有一些差异。 从用户角度来看,关联模型类似于BR / EDR安全简单配对,并且名称相同,但是所提供保护的质量有所不同。

5.4.1 Association Models

蓝牙LE使用四个关联模型,分别称为Just Works,数字比较,带外和密钥输入。 LE旧式配对没有等效的数值比较。

在LE旧式配对中,这些关联模型中的每一个都与BR / EDR安全简单配对相似,但以下情况除外。

Just Works和Passkey Entry不提供任何被动的窃听保护。 这是因为安全简单配对使用椭圆曲线Diffie-Hellman,而LE传统配对则不使用。

在LE安全连接配对中,四个关联模型在功能上等效于BR / EDR安全连接。

每个关联模型的使用均基于设备的I / O功能。

5.4.2 Key Generation

蓝牙LE中的密钥生成由主机在每个LE设备上独立于任何其他LE设备执行。 通过在主机中执行密钥生成,可以升级密钥生成算法,而无需更改控制器。 注意:BR / EDR中的密钥生成是在控制器中执行的。

蓝牙LE使用多个键,每个键都有特定的用途,如下所示:

•数据和设备认证的机密性
•未加密数据的身份验证
•设备身份

在LE中,通过组合配对期间每个设备的贡献来生成用于提供机密性和身份验证的密钥。

5.4.3 Encryption

蓝牙LE中的加密使用AES-CCM加密。 与BR / EDR一样,LE加密在Controller中执行。

5.4.4 Signed Data

蓝牙LE支持在具有信任关系的两个设备之间通过未加密的ATT承载发送认证数据的功能。 这可以通过使用连接签名解析密钥(CSRK)对数据进行签名来完成。 发送设备在数据PDU后面放置一个签名。 接收设备会验证签名,如果签名被验证,则数据PDU被假定为来自可信源。 签名由签名算法生成的消息身份验证代码和计数器组成。 该计数器用于防止重放攻击,并在发送的每个已签名数据PDU上增加。

5.4.5 Privacy Feature

蓝牙LE支持一项功能,该功能可通过频繁更改蓝牙设备地址来降低一段时间内跟踪LE设备的能力。

为了使使用隐私功能的设备重新连接到已知设备,该设备地址(称为私有地址)必须可由其他设备解析。 专用地址是使用在绑定过程中交换的设备的解析身份密钥(IRK)生成的。

隐私功能有两种变体。 在第一种变体中,私有地址由主机解析和生成。 在第二变体中,在主机提供控制器设备身份信息之后,控制器在不涉及主机的情况下解析并生成专用地址。 另外,当控制器中的解析列表无法存储绑定设备所需的所有设备标识解析密钥时,第二种变体可能涉及主机。

隐私有两种模式:设备隐私模式和网络隐私模式。 处于设备隐私模式的设备仅关注设备的隐私,并且即使对等设备过去已分发其IRK,也将接受来自包含其标识地址以及包含私有地址的对等设备的广告数据包 。 在网络隐私模式下,设备将仅接受来自包含私有地址的对等设备的广告数据包。 默认情况下,当控制器解析和生成专用地址时,将使用网络隐私模式。

主机通过添加和删除设备标识来维护解析列表。主机可以向控制器提供完整的解析列表或解析列表的子集。 设备身份由对等方的身份地址以及本地和对等方的IRK对组成。

当Controller执行地址解析并且主机需要引用解析列表中包含的对等设备时,它将使用该对等设备的标识地址。 同样,从控制器到主机的所有传入事件都将使用对等方的设备标识,前提是对等方的设备地址已解析。 如果控制器无法在广告中解析对等方的设备标识地址,则它将事件传递给主机以在主机中进行解析。

在Controller中执行地址解析时,可以进行设备过滤,因为可以在检查对等设备的身份地址是否在白名单中之前对其进行解析。

图5.4显示了控制器解析列表和控制器白名单之间关系的逻辑表示。 遵循此模型不需要解析列表和白名单的实际实现。 解析列表可以独立于白名单。

注意:并非白名单中的所有设备都是设备标识地址。

如果仅在主机中执行地址解析,则设备可能会增加功耗,因为必须禁用设备筛选。

5.5 AMP SECURITY

AMP安全性不会改变用户体验,因为它利用了Bluetooth 2.1 + EDR Core Specification中引入的相同的Secure Simple Pairing关联模型。 从用户的角度来看,所有无线电都是在一个过程中“配对”的。

AMP安全性在“安全简单配对”过程中开始。 BR / EDR的链接密钥是在“安全简单配对”的第4阶段生成的。 从BR / EDR链接密钥生成一个256位的通用AMP链接密钥(GAMP_LK)。 配对完成后,通用AMP链接密钥与BR / EDR链接密钥一起存储在安全性数据库中。

AMP安全性不会影响BR / EDR链接密钥,因此对于支持Generic AMP功能的设备和不支持Generic AMP功能的设备都保持向后兼容性。

首次使用AMP时,由AMP Manager使用新的安全简单配对功能h2和AMP类型的KeyID为该AMP类型创建一个专用AMP密钥。 专用AMP链接密钥的长度取决于AMP类型。 如果由于先前的连接而已经存在成对的主密钥,则不会创建AMP链接密钥,并且已存储的密钥将被重用。

专用AMP链接密钥在物理链接创建过程中发送到PAL。 每个PAL负责在物理链路建立过程的安全阶段使用专用AMP链路密钥。 请注意,专用AMP链接密钥用于同一AMP上的多个会话。

每次成功创建专用AMP密钥时,就会更新Generic AMP Link密钥。 这是通过h2函数和KeyID'gamp'执行的。

5.6 KEY GENERATION BETWEEN BR/EDR AND LE PHYSICAL
TRANSPORTS

当两个BR / EDR / LE设备在两个传输上都支持安全连接时,可以在单个配对过程中生成两个传输的密钥。 将密钥从一种传输方式转换为另一种传输方式的能力避免了配对两次的需要,从而提供了更好的用户体验。

在BR / EDR物理传输上的“安全简单配对”的第4阶段生成的BR / EDR链接密钥可以转换为长期密钥(LTK),以用于LE传输。 类似地,在LE物理传输上的配对的第二阶段期间生成的LTK可以被转换为BR / EDR链路密钥以用于BR / EDR物理传输。