1.安全架构
蓝牙安全模型包括五个不同的安全特性:配对、绑定、设备身份验证、加密和消息完整性。
- 配对:创建一个或多个共享密钥绑定的过程
- 绑定:存储在配对过程中创建的密钥用于后续连接,以形成受信任的设备对
- 设备身份验证:验证两个设备具有相同的密钥
- 加密:消息保密
- 消息完整性:防止消息伪造
BR/EDR遗留配对利用了基于更安全的E21或E22算法。设备认证是基于E1算法的,它也是基于更安全的。加密利用了MasseyRuepel算法。算法中导出的E0算法。没有提供加密消息的完整性。虽然CRC提供了一些完整性保护,但它不被认为提供密码完整性,因为它可以很容易地伪造。
2.BR/EDR安全简单配对
安全简单配对的主要目标是简化用户的配对过程。次要目标是维护或提高蓝牙无线技术的安全性。由于在许多技术和产品中,高水平的安全性和易用性往往处于相反的两端,人们从最终用户的角度最大限度地提高安全性,同时最小化复杂性。
2.1 安全目标
安全简单配对有两个安全目标:防止被动窃听和防止中间人(MITM)攻击(主动窃听)。安全简单配对的目标是超过使用16个字符、字母数字、区分大小写的密码所提供的最大安全级别,该密码通常使用4位密码或固定密码,限制了链路的安全性。
2.2 被动窃听保护
必须使用强链接密钥和强加密算法来为用户提供被动窃听保护。
2.3 中间人保护
当用户想要连接两个设备,但他们不是直接连接,而是不知情地连接到第三个(攻击)设备,扮演他们试图配对的设备的角色时,就会发生中间人(MITM)攻击。然后,第三个设备在两个设备之间中继信息,给人一种它们是直接连接的错觉。攻击设备甚至可以窃听这两个设备之间的通信(称为主动窃听),并且能够插入和修改连接上的信息。在这种类型的攻击中,两个设备之间交换的所有信息都受到损害,攻击者可能会向每个设备注入命令和信息,从而潜在地损害设备的功能。成为攻击受害者的设备只有在攻击者存在的时候才能进行通信。如果攻击者不活动或超出范围,两个受害者设备将无法直接通信,用户会注意到。
为了防止MITM攻击,安全简单配对提供了两种用户辅助的数字方法:数字比较或密钥输入。如果安全简单配对将使用16个十进制数字,那么可用性将与使用具有16个十进制数字PIN的遗留配对相同。在这种情况下,MITM成功插入自己的链接键的机会是10^16个=2^53个配对实例中的1,这是一个不必要的低概率.
安全简单配对保护用户免受MITM攻击,其目标是提供100万分之一的机会,使MITM可以成功发动攻击。通过使用6位数的强度进行数字比较和密码键输入,选择MITM保护的强度以尽量减少用户的影响。之所以选择此级别的MITM保护,是因为在大多数情况下,当连接过程由于MITM攻击失败而失败时,可以向用户警告到MITM攻击者的潜在存在。虽然大多数用户认为,只要他们没有损害他们的密钥,一个4位的密钥就足以进行身份验证(例如:银行卡PIN代码),6位数字的使用允许安全简单配对是兼容FIPS的,这被认为几乎没有可感知的可用性影响。
2.4 关联模式
所使用的关联模型是基于这两种设备的输入/输出能力的确定性模型。
2.4.1 数字比较
数值比较关联模型是为两种设备都能够显示6位数字,并且都能够让用户输入“是”或“否”的场景而设计的。这个模型的一个很好的例子是手机/PC场景。
用户在两个显示器上显示一个6个数字(从“000000”到“999999”),然后询问两个设备上的数字是否相同。如果在两个设备上都输入了“是”,则配对成功。
数值比较有两个目的。首先,由于许多设备没有唯一的名称,它会向用户确认正确的设备相互连接。其次,数值比较提供了对MITM攻击的保护。
数值比较有两个目的。首先,由于许多设备没有唯一的名称,它会向用户确认正确的设备相互连接。其次,数值比较提供了对MITM攻击的保护配对。在数值比较关联模型中,六位数字是安全算法的伪影,而不是其输入,就像PIN输入模型中的情况那样。了解所显示的数字对解密两个设备之间交换的编码数据没有任何好处。
2.4.2 正确操作
JustWorks关联模型主要是为至少有一个设备不能显示六位数字的显示器,也不能输入六个十进制数的键盘而设计的。这种模型的一个很好的例子是手机/单声道耳机的场景,其中大多数耳机没有显示器。
JustWorks关联模型使用数字比较协议,但用户从未显示一个数字,应用程序可能只是要求用户接受连接(确切的实现取决于最终产品制造商)。
JustWorks关联模型提供了与数值比较关联模型对被动窃听的保护,但对MITM攻击没有保护。
与今天使用固定PIN的耳机的经验相比,JustWorks关联模型的安全级别要高得多,因为对被动窃听实现了高度的保护。
2.4.3 带外
带外(OOB)关联模型主要是为使用带外机制来发现设备以及交换或传输配对过程中使用的密码号码的场景而设计的。为了从安全的角度来看更有效,频外信道应该提供与蓝牙无线通道不同的安全特性。带外信道应能抵抗MITM的攻击。如果不是,则在身份验证过程中可能会损害安全性。
用户的体验因带外机制的不同而有所不同。例如,使用近场通信(NFC)解决方案,用户(s)将最初将两个设备触摸在一起,并被赋予选择将第一设备与另一个设备配对。如果输入了“是”,则配对成功。这是一个单一的触摸体验,其中交换的信息被用于两个设备。交换的信息包括发现信息(如蓝牙设备地址)以及加密信息。其中一个设备将使用蓝牙设备地址与另一个设备建立连接。其余的交换信息将在身份验证期间使用。
OOB机制可以作为只读或读/写来实现。如果其中一侧为只读的,则执行单向身份验证。如果双方都是读写的,则执行双向身份验证。
只有当配对过程被以前的OOB信息交换激活,并且一个(或两个)设备提供OOB作为IO功能时,才会选择OOB协议。该协议使用已交换的信息,并且只是要求用户确认连接。
OOB关联模型支持可以交换加密信息和蓝牙设备地址的任何OOB机制。OOB关联模型不支持用户已激活蓝牙连接并希望使用OOB的解决方案
2.4.4 密码项
密码键输入关联模型主要是为一个设备具有输入功能,但不能显示六位数,而另一个设备具有输出功能的情况而设计的。这个模型的一个很好的例子是PC和键盘场景。
用户会显示一个6位数字(从“000000”到“999999”),然后被要求在另一个设备上输入该数字。如果在第二个设备上输入的值正确,则配对成功。
从密码学的角度来看,密码密钥条目和BR/EDR遗留配对所使用的PIN条目模型之间有显著差异。在密码输入关联模型中,6个数字独立于安全算法,而不是对其的输入,如PIN输入模型中的情况。知道输入的数字对解密两个设备之间交换的编码数据没有任何好处。
2.4.5 关联模型概述
下图从用于发现的技术以及不同的关联可能性的角度显示了安全的简单配对。
安全的简单配对关联模型
3. 仅安全连接模式
当设备要求在BR/EDR物理传输上只使用FIPS批准的算法时,它应该在BR/EDR物理传输上进入“仅安全连接模式”。仅限安全连接的模式有时被称为“FIPS模式”。当设备具有高安全性比与不支持安全连接的设备保持向后兼容性更重要时,应该使用此模式。主机将强制执行在配对过程中使用P-256椭圆曲线,使用安全的身份验证序列,并使用AES-CCM进行加密.
当设备要求在LE物理传输上只使用FIPS批准的算法时,它应在LE物理传输上进入“仅安全连接模式”。仅限安全连接的模式有时被称为“FIPS模式”。当设备具有高安全性比与不支持LE安全连接的设备保持向后兼容性更重要时,应该使用此模式。在此模式下,主机将强制执行在配对期间使用P-256椭圆曲线。
如果BR/EDR/LE设备配置为“仅安全连接”模式,则BR/EDR和LE传输都将处于“仅安全连接”模式。
4.LE 安全
4.1 关联模式
蓝牙LE使用了四种关联模型,被称为只是工作,数字比较,带外和密码键输入。LE遗留配对没有等价的数值比较。
在LE遗留配对中,每个这些关联模型都类似于BR/EDR安全简单配对,但有以下例外。
•Just Works和Passkey Entry不提供任何被动窃听保护。这是因为安全简单配对使用椭圆曲线微分,而Hellman和legacy配对不使用椭圆曲线微分。
在LE安全连接配对中,这四种关联模型在功能上等同于BR/EDR安全连接。每个关联模型的使用都是基于设备的输入/输出功能。
4.2 密匙生成
蓝牙LE中的密钥生成由主机在每个LE设备上独立于任何其他LE设备执行。通过在主机中执行密钥生成,可以升级密钥生成算法,而无需更改控制器。
注:BR/EDR中的密钥生成将在控制器中执行。
蓝牙LE使用多个键,每个键用于特定用途,如下:
- 数据的保密性和设备认证
- 未加密数据的身份验证
- 设备身份
在LE中,用于提供保密性和身份验证的密钥是通过结合在配对过程中提供的每个设备的贡献而生成的。
4.3 加密
蓝牙LE中的加密使用AES-CCM加密技术。与BR/EDR一样,在LE中,在控制器中执行加密。
4.4 签名数据
蓝牙LE支持在两个具有受信任关系的设备之间通过未加密的ATT传输器发送身份验证数据的能力。这是通过使用连接签名解析密钥(CSRK)签名数据来完成的。发送设备在数据PDU之后放置一个签名。接收设备验证了签名,如果验证了签名,则假定数据PDU来自可信源。该签名由由签名算法生成的消息身份验证代码和一个计数器组成。该计数器用于防止重播攻击,并在发送的每个签名数据PDU上增加。
4.5 隐私特性
蓝牙LE支持一种通过频繁更改蓝牙设备地址来降低在一段时间内跟踪LE设备的能力的功能。
为了使使用隐私特性的设备重新连接到已知设备,设备地址,称为私人地址,必须可由另一个设备解析。私有地址使用绑定过程中交换的设备的解析标识密钥(IRK)生成。
术语“分辨率”是指设备用于从接收到的私有地址和IRK计算设备标识地址的过程,而状态“解析”是解析的成功结果。
隐私功能有两种变体。在第一个变体中,私有地址由主机解析和生成。在第二个变体中,在主机提供控制器设备身份信息后,控制器不涉及主机而解析而生成私有地址。此外,当控制器中的解析列表无法存储绑定设备所需的所有设备标识解析密钥时,第二个变体可能涉及主机。
隐私保护有两种模式:设备隐私保护模式和网络隐私保护模式。处于设备隐私模式的设备只关心设备的隐私,并且将接受来自包含其身份地址以及包含私人地址的同行设备的广告数据包,即使同行设备过去已经分发过其IRK。在网络隐私模式下,设备将只接受来自包含私有地址的对等设备的广告数据包。默认情况下,当控制器解析和生成私有地址时,将使用网络隐私模式。
主机通过添加和删除设备标识来维护一个解析列表。主机可以为控制器提供一个完整的解析列表或解析列表的一个子集。设备标识由对等用户的身份地址和本地和对等用户的IRK对组成。
当控制器执行地址解析,并且主机需要引用解析列表中包含的对等设备时,它将使用对等设备的设备标识地址。同样地,从控制器到主机的所有传入事件都将使用对等设备的设备身份,前提是对等设备的设备地址已经被解析。如果控制器无法在广告中解决对等设备的标识地址,那么它可以将该事件传递给主机,以便在主机中进行解决。
当在控制器中执行地址解析时,设备过滤成为可能,因为对等的设备标识地址是否在白列表中之前解析。
显示控制器解析列表和控制器白名单之间关系的逻辑表示。解析列表和白名单的实际实现不需要遵循此模型。解析列表可能独立于白名单。
标题解析列表和设备白名单的逻辑表示
当只在主机中执行地址解析时,设备可能会增加功耗,因为必须禁用设备过滤。
5.AMP安全
AMP安全性不会改变用户体验,因为它使用了与BR/EDR相同的安全简单配对关联模型。从用户的角度来看,所有的无线设备都在一个过程中“配对”。
AMP安全在安全简单配对过程中开始。BR/EDR的链接键是在安全简单配对的第4阶段生成的。从BR/EDR链路密钥生成一个256位通用AMP链接密钥(GAMP_LK)。在配对完成后,通用AMP链接密钥与BR/EDR链接密钥一起存储在安全数据库中。
AMP安全性不会影响BR/EDRLink密钥,因此,对于支持通用AMP功能的设备与不支持通用AMP功能的设备保持向后兼容性。
当第一次使用AMP时,AMP管理器使用新的安全简单配对函数h2和AMP类型的KeyID为该AMP类型创建一个专用的AMP密钥。专用AMP链接密钥的长度取决于AMP类型。如果由于以前的连接而已经存在成对主键,则不会创建AMP链接键,并且重复使用存储的密钥。
在物理链接创建过程中,专用的AMP链接密钥被发送到PAL。每个PAL负责在物理链接建立过程的安全阶段使用专用AMP链接密钥。
专用AMP链接密钥用于同一AMP上的多个会话。
每次成功创建一个专用的AMP密钥时,都将更新通用的AMP链接密钥。这是使用具有KeyID“gamp”的h2函数执行的。
6.传输和物理传输之间的密钥生成
当两个BR/EDR/LE设备支持两个传输上支持安全连接时,可以在单个配对过程中生成两个传输的密钥。将密钥从一个传输转换到另一个传输的能力防止了需要两次配对,从而获得更好的用户体验。
在BR/EDR物理传输上的安全简单配对的第4阶段中生成的BR/EDR的链接密钥可以转换为长期密钥(LTK),用于LE传输。类似地,在LE物理传输上配对的第二阶段中生成的LTK可以转换为BR/EDRLink密钥,用于BR/EDR物理传输。