Secure Simple Pairing(安全简单配对)的主要目标是为用户简化配对过程。次要目标是维护或提高蓝牙无线技术的安全性。由于在许多技术和产品中,高水平的安全性和易用性常常处于截然相反的两端,因此从最终用户的角度来看,在最大限度地提高安全性的同时尽量减少复杂性的问题上,人们付出了很大的努力。
1、Security Goals(安全目标)
Secure Simple Pairing 有两个安全目标:防止 passive eavesdropping(被动窃听)和防止 man-in-the-middle (MITM) attacks(中间人攻击)(active eavesdropping(主动窃听))。请注意,许多符合Bluetooth Core Specification 2.0 + EDR和更早版本的蓝牙设备使用 4-digit PIN(4位PIN)或已知值的固定PIN,这极大地限制了链接的安全性。
2、Passive Eavesdropping Protection(被动窃听保护)
strong link key(强链路密钥)与 strong encryption algorithm(强加密算法)相结合是防止用户被动窃听所必需的。链路密钥的强度取决于其生成过程中攻击者不知道的 entropy(熵(randomness(或随机性)))的大小。使用 legacy pairing(遗留配对),entropy(熵)的唯一来源是 PIN,在许多用例中,PIN 通常是由用户选择的四位数字,或者为给定的产品固定的四位数字。因此,如果记录了配对过程和一个身份验证交换,就可以在非常短的时间内对常用的计算硬件执行 exhaustive search(穷举搜索)来找到PIN。在 Secure Simple Pairing 下,记录攻击变得更加困难,因为攻击者必须解决公钥加密中的一个难题,才能从记录的信息中获得链路密钥。这种保护与用户必须处理的 passkey 或其他数值的长度无关。即使在用户不需要做任何事情的情况下,Secure Simple Pairing 对记录和 passive eavesdropping attacks(被动窃听攻击)也具有相同的抵抗力。
Secure Simple Pairing 使用椭圆曲线Diffie Hellman (ECDH)公钥密码学作为一种阻止被动窃听攻击的方法。ECDH提供了一个非常高度的力量对被动窃听攻击但它可能受到MITM攻击。对于支持安全连接特性的设备,使用 FIPS-approved P-256 elliptic curve(fips批准的P-256椭圆曲线),Secure Simple Pairing 大约有128位 entropy(熵)。ECDH密码学的选择优于标准的Diffie Hellman(通常称为DH76),因为它的计算复杂度较低,而且不太可能超过普通蓝牙控制器的低计算能力。
3、Man-In-The-Middle Protection(中间人保护)
当用户想要连接两个设备,可是用户并没有直接连接上那两台设备,相反却在不知情的情况下连接到第三(攻击)设备,该第三(攻击)设备扮演着用户正试图进行配对的设备的角色,这时候就会发生 man-in-the-middle (MITM) attack(中间人攻击)。然后第三个设备在两个设备之间传递信息,给人一种它们是直接连接的错觉。attacking device(攻击设备)甚至可能窃听两个设备之间的通信(称为 active eavesdropping(主动窃听)),并能够插入和修改 connection 上的信息。在这种类型的攻击中,两个设备之间交换的所有信息都被破坏,攻击者可能会向每个设备中注入命令和信息,从而潜在地破坏设备的功能。成为攻击目标的设备只有在 attacker(攻击者)在场时才能进行通信。如果 attacker(攻击者)没有 active 或者不在活动范围内,那么两个受害者设备将无法直接通信,而用户才将注意到这一点。
为了防止MITM攻击,Secure Simple Pairing提供了两种用户辅助的数值方法:numerical comparison(数值比较)或 passkey entry。如果 Secure Simple Pairing 将使用 16 decimal digit numbers(16位小数),那么可用性将与使用16位小数 PIN 的legacy pairing相同。
Secure Simple Pairing 保护用户不受MITM攻击,目标是提供1 / 1,000,000的机会,使MITM能够成功发起攻击。通过使用6位数字进行数值比较和密码输入,选择了MITM保护的强度以最小化用户的影响。之所以选择这种级别的MITM保护,是因为在大多数情况下,当由于MITM攻击失败而导致连接过程失败时,可以提醒用户注意MITM攻击者的潜在存在。虽然大多数用户认为,只要他们没有泄露密码,一个4位密钥就足以进行身份验证(即 bank card PIN codes(银行卡PIN码)),但使用6位密钥可以使 Secure Simple Pairing 符合FIPS,这被认为对可用性的影响很小。
4、Association Models(关联模型)
Secure Simple Pairing 使用四种关联模型,称为 Numeric Comparison(数值比较)、Just Works、Out Of Band 和 Passkey Entry。所使用的关联模型基于这两个设备的 I/O capabilities(I/O功能)确定的。
4.1、Numeric Comparison(数值比较)
Numeric Comparison association model(数字比较关联模型)是为这样的场景设计的:两个设备都能够显示一个六位数,并且都能够让用户输入“yes”或“no”。这个模型的一个很好的例子是手机/ PC场景。
用户会在两个显示器上看到一个六位数(从“000000”到“999999”),然后询问这两个设备上的数字是否相同。如果在两个设备上都输入“yes”,则配对成功。
numeric comparison 有两个目的。首先,由于许多设备没有唯一的名称,因此它向用户提供了正确的设备彼此连接的确认。其次,数值比较提供了针对MITM攻击的保护。
请注意,从加密的角度来看,数值比较与蓝牙核心规范和早期版本所使用的PIN输入模型有很大的不同。在 Numeric Comparison association model 中,六位数字是安全算法的产物,而不是输入,就像蓝牙安全(security)模型中的情况一样。知道显示的数字对于解密两个设备之间交换的编码数据也是没有任何用处的。
4.2、Just Works
Just Works association model 主要是为以下场景设计的:其中至少有一台设备没有能够显示六位数的显示器,也没有能够输入六位数的键盘。这个模型的一个很好的例子是手机/单声道耳机场景,其中大多数 headsets(耳机)耳机没有显示。
Just Works association model 使用 Numeric Comparison protocol(数值比较协议),但是用户从来没有看到过数字,application 可能只要求用户接受连接(具体实现取决于最终product manufacturer(产品制造商))。
Just Works association model 提供了与 Numeric Comparison association model 相同的防止被动窃听的保护,但是没有提供针对MITM攻击的保护。
与目前的固定 PIN 耳机相比,由于实现了对 passive eavesdropping(被动窃听)的高度保护,所以 Just Works association model 的安全级别要高得多。
4.3、Out of Band
Out of Band (OOB) association model 主要用于使用Out of Band mechanism(机制)来发现设备以及交换或传输配对过程中使用的 cryptographic numbers(密码)的场景。为了从安全的角度来看是有效的,Out of Band channel(带外信道)应该在安全性方面提供与 Bluetooth radio channel(蓝牙无线信道)不同的属性。Out of Band channel 应该能够抵抗MITM攻击。如果不是,安全性可能在身份验证期间受到损害。
根据 Out of Band mechanism,用户的体验略有不同。例如,使用 Near Field Communication(近场通信)(NFC)解决方案,用户最初将把两个设备放在一起,并可以选择将第一个设备与另一个设备配对。如果输入“yes”,则配对成功。这是一个单一的触摸体验,交换的信息在两个设备中使用。交换的信息包括发现信息(如蓝牙设备地址)和 cryptographic information(加密信息)。其中一个设备将使用蓝牙设备地址与另一个设备建立连接。其余交换的信息在 authentication(身份验证)期间使用。
OOB机制可以实现为 read only or read/write(只读或读/写)。如果 read only 一侧,则执行单向身份验证。如果 read/write 双方,则执行双向身份验证。
只有当先前的OOB信息交换激活了 pairing process(配对过程),并且设备中的一个(或两个)设备将OOB作为IO功能时,才会选择OOB协议。协议使用已交换的信息,并简单地要求用户确认连接。
OOB association model 支持任何可以交换加密信息和 Bluetooth Device Address(蓝牙设备地址)的 OOB 机制。OOB association model 不支持这样的解决方案:用户已经激活了 Bluetooth connection(蓝牙连接),并且只希望使用 OOB 进行 authentication(身份验证)。
4.4、Passkey Entry
Passkey Entry association model 主要设计用于这样的场景:一个设备具有输入功能,但不具备显示六位数字的能力,而另一个设备具有输出功能。这个模型的一个很好的例子是PC和键盘场景。
在显示设备上向用户显示一个六位数(从“000000”到“999999”),然后要求用户在另一个设备上输入该数字如果在第二个设备上输入的值是正确的,则配对成功。请注意,从密码学的角度来看,Passkey Entry 与蓝牙Core Specification 2.0 + EDR使用的 PIN entry model 以及早期版本之间存在显著差异。在 Passkey Entry association model 中,六位数字不依赖于安全算法,也不是输入,2.0 + EDR安全模型就是这样。知道输入的数字对于解密两个设备之间交换的编码数据是没有任何用处的。
4.5、Association Model 概述
下图从用于发现的技术以及不同的关联可能性的角度展示了 Secure Simple Pairing。