Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

Misbinding Attacks on Secure Device Pairing and Bootstrapping

作者: Mohit Sethi, Aleksi Peltonen, Tuomas Aura

单位: NomadicLab, Ericsson Research, Finland Aalto University, Finland

会议: Asia CCS 2019

链接: https://research.aalto.fi/files/36903088/Sethi_Peltonen_Aura_Misbinding_Attacks_on_Secure_Device.pdf

1 概述

安全设备配对是一个配置两台设备安全通信的过程,包含密钥交换与身份认证。与其他安全协议不同,由于通信对象是物理设备,配对不要求预先建立密码凭证或安全基础结构,大多数情况下用户能够直接观察或触碰安全设备,因此用户可以充当带外通信信道或信任的第三方来提供初始安全性。

本文针对设备配对协议的误绑定攻击进行研究。

攻击场景:当绑定的设备中存在被攻击者控制的设备,并且绑定过程通过用户的物理访问来验证,那么攻击者可以误导用户来实现合法设备与另一台攻击者设备绑定。

本文主要贡献如下: (1)提出设备配对和引导协议中身份绑定错误问题 (2)对于蓝牙安全简单配对和EAP-NOOB协议进行详细的分析并实施真实攻击 (3)构建检测误绑定攻击的协议形式化模型,并且发现了一种新类型的攻击 (4)讨论了攻击潜在影响和相应对策

2 背景

2.1 安全协议攻击

认证密钥交换协议的目的是在两个或多个通信终端间,建立一个共享的加密密钥,该共享密钥用于保护通信的完整性和机密性。

认证密钥交换协议需要足够安全以能够抵抗Dolev-Yao攻击者,该攻击者在拥有加密密钥的情况下,能够在网络中以任意方式欺骗、拦截和修改消息。攻击者还可能会冒充一个通信中间人(MITM),是合法参与者,但通过重播消息来误导他人。

2.2 Identity Misbinding

图1显示了对未经身份验证的密钥交换的攻击。 图1 对DH身份验证攻击

两个端点A和C执行DH密钥交换,一个中间人攻击者B位于两个端点之间并且操控消息。对于从A传输到C的消息,攻击者会替换掉A的标识符,并且对自己的标识符签名。这导致A和C的状态不一致:A正确地认为它与C共享会话密钥g^xy,但C认为与B共享密钥g^xy。

该攻击不损害数据的保密性,因为B不会获得会话密钥。

2.3 设备配对与重放攻击

安全设备配对是一种引导过程,它在两个先前未关联的设备之间建立安全通道。虽然设备配对的目标与认证密钥交换协议的目标相似,但有一个主要区别:设备通常没有其他设备的公钥或证书、标识符信息

典型的设备配对协议在无线信道上执行DH或ECDH密钥交换,然后使用人工辅助的带外信道(human-assisted out-of-band (OOB))来对设备身份进行识别,阻止潜在的中间人攻击。

3 MISBINDING IN DEVICE PAIRING

图2 针对设备配对的身份错误绑定攻击

图2(a)显示了这种配对协议的通用结构。

  • 在不安全的带内通道中,设备之间进行未认证的密钥交换
  • 在安全的带外通道中,用户能够物理访问设备并对其进行身份认证

通常情况下,身份验证通常基于用户对设备的物理访问。

攻击场景:如图2(b)所示,一台配对设备B遭到破坏。用户希望配对设备A和B,但是设备B被攻击者控制的,并将身份验证消息重放到另一个设备C。设备A和C最终配对,这与用户的意图不符。

设备C可以是正常合法的设备,不需要与B串通,只需要攻击者能够将其置于配对模式并与其交互。

3.1 Bluetooth case study

目前蓝牙设备使用简单配对协议(SSP)进行配对。

  • 在数字比较模式中,要求用户比较两台设备上显示的6位代码
  • 在OOB模式,要求用户将从一台设备上获得的验证信息安全的传输到另一台设备
  • just-works模式不需要任何输入输出信息,只要发起即可配对。

作者以数字比较模式下的蓝牙SSP协议作为配对协议错误绑定案例来进行说明,如图3所示。

攻击场景:(1)用户Alice不知道设备B受到了攻击(被攻击者控制),想要将A与B配对;(2)攻击者拥有设备C,攻击者的目标是将A与C配对,但使Alice认为A与B配对;(3)A和C在彼此蓝牙无线电范围内。

攻击步骤如下:

  1. Alice想要将设备A与B配对。
  2. Alice在A上搜索蓝牙设备,攻击者要使得设备C能被发现,并且确保C与B的名称相匹配,使得Alice从列表中错误的选择C进行连接。SSP协议启动,设备A与C进行ECDH交换。
  3. 在配对过程中,设备A和C会显示6位代码,使用户对其进行比较。攻击者读取C的6位代码,将其转发到设备B上。Alice会读取B显示的代码与A进行比较。
  4. 如果Alice看到设备A与B显示相同的6位代码,则确认两台设备的配对。此时,Alice认为设备A与B成功配对,实际上设备A与C配对。

这个攻击是由于每台设备都会有默认名称,通常为品牌和型号,例如”TomTom Go 510”。设备名称是用户可配置的,因此攻击者有可能将C重命名与B同名。

如果攻击者想使用不能修改名称的设备C,他可以选择与设备B具有相同品牌和型号的设备,从而具有相同默认名称。如果攻击者想使用不能修改名称的设备C,并且与B不同型号,这时攻击者可以在带内无线信道上修改设备名称。

在Alice被欺骗选择了错误的设备之后,SSP安全协议启动。SSP数值比较模式如图4所示。

  1. 阶段1:执行ECDH密钥交换。
  2. 阶段2:设备之间交换随机数Na、Nb,并进行检查;然后进行用户辅助身份认证,每台设备向用户显示6位验证码,由ECDH交换密钥和随机数计算得到;如果验证码匹配,则用户确认两台设备配对成功。
  3. 阶段3:设备以加密的方式确认ECDH导出密钥是否正确。
  4. 阶段4:设备生成link key,即共享会话密钥。
  5. 阶段5:在LMP协议中使用link key加密通信。

SSP协议存在该问题的原因是它没有验证设备名称或设备其他属性

在此类攻击中,只有设备B需要进行误绑定攻击的相关操作,攻击者需要控制其用户界面,设备A和C完全可以为正常设备。作者将设备B的攻击者实现为一个全屏应用,通过4G接收6位代码进行模拟配对。

上述针对蓝牙配对的攻击适用于任何版本的SSP或传统配对。作者认为它可以适用于所有设备配对协议,其中设备标识是由对设备的物理访问单独认证的。

3.2 IoT device bootstrapping case study

第二个案例是关于IoT设备安全引导和注册协议。由于在该协议中设备标识是通过物理访问来确定的,作者认为其与设备配对是相似的,也容易受到身份误绑定攻击。

可扩展认证协议(EAP)是一种认证框架,它通常假设无线设备是在身份验证服务器上预先注册的。EAP带外身份认证(EAP-NOOB, Nimble out-of-band)是一种支持用户辅助引导和注册的EAP认证方法,一般通过第一次或在硬重置后启动设备来激活协议。特点如下:

  • EAP-NOOB用于初始没有已知标识符、没有凭证、没有对用户和网络任何了解的设备。
  • EAP-NOOB注册新设备到认证服务器,并将其与用户账户关联。
  • 流程:设备(peer)首先与服务器执行一个ECDH密钥交换;用户从配对设备上传递一个带外消息到服务器(或从服务器到设备)。一方面验证服务器和用户能够控制设备,另一方面使设备注册到服务器和用户账户。
  • 带外消息传递方式可以是QR code、NFC消息、音频片段。

攻击场景:(1)用户Alice想要将相机B注册到Alice的服务器和用户账户上,但Alice不知道相机B遭到破坏;(2)攻击者拥有设备C,攻击者的目标是将设备C注册到Alice服务器和用户账户上,但使Alice认为A与B配对;(3)B和C在同一认证服务器提供服务的无线网络覆盖区域中。

攻击步骤如下:

  1. Alice初始化相机B的EAP-NOOB协议,来将其注册到服务器。
  2. 同时,攻击者初始化相机C的EAP-NOOB协议。
  3. Alice登陆服务器,搜索可供注册的新设备。如果找到与B型号匹配的相机(但实际上是相机C而不是B),则传递一个OOB消息的二维码到B相机。
  4. 相机B扫描二维码并将其传输给攻击者,攻击者将二维码发送给相机C并进行扫描,来授权设备C注册到Alice的服务器上。
  5. 最后,相机C实现在认证服务器上的注册、与Alice账户关联,并建立用于进一步认证和网络连接的凭证。Alice以为连接到账户的是B,实际上是C。

为了误导Alice从服务器中选择错误的相机,攻击者需要匹配其品牌和型号或用户可能搜索的其他元数据,这可以通过使用相同类型的相机实现。此外,攻击者还可以重新伪造设备C,从B复制设备元数据,包括序列号等。

与设备配对不同,攻击者的设备C无需靠近Alice设备B,只需在同一认证服务器提供服务的无线网络覆盖区域中即可。

4 FORMAL ANALYSIS OF MISBINDING

形式化建模和模型检查是密钥交换协议开发和分析中的标准方法,能够发现了各种协议缺陷,并且可以精确定义协议所具有的预期的安全属性。

与其他的形式化建模相比,安全协议的模型检查器的特殊之处在于,除了将系统设计作为输入之外,它们通常具有内置的Dolev-Yao型攻击者模型,研究人员不需要明确定义;但必须指定协议所需的安全属性,然后模型检查器确定攻击者是否能够诱使诚实用户违反这些属性。

此外,需要单独考虑一种攻击类型:损坏的内部参与者。它们通常先被建模为诚实的用户,但是能够将秘密交给攻击者并被攻击者控制,然后将其归入攻击者。

作者用ProVerif对案例研究协议及其安全需求进行了建模。

  • 增强设备配对模型,以发现误绑定攻击。
  • 了解配对协议与其他误绑定漏洞的差异

4.1 Modelling device pairing

作者主要讨论数字比较模式的蓝牙SSP。同时也对SSP OOB模式和Wi-Fi Direct进行了建模,得到了类似的结果。

作者考虑在一个用户能够物理访问双方节点的条件下的配对过程,并且添加了对用户意图、选择和动作的建模考虑。模型包括三种过程:用户、发起装置A和非发起装置B。

模型主要包含以下特点:

  • 设备模型:在ProVerif中使用私有通道来模拟用户对设备的物理访问,这些通道能够保护通信的机密性和完整性。在蓝牙的情况下,专用信道用于读取数字代码,如果数值匹配,则用于确认与设备的匹配。
  • 用户模型:(1)用户选择两个设备,并将其配对的决定记录为事件;(2)比较设备显示的6位验证码;(3)确认与设备匹配。
  • 配对过程:用户需要访问两个专用通道,PhysicalChannelA是发起方设备,PhysicalChannelB是非发起方设备。
  • 受损的设备:通常是通过向公共通道泄漏其机密(如私钥)来建模的,以允许攻击者控制该通道。

简单的说,误绑定违反了以下安全属性:只有当用户希望对两个设备进行配对时,才会对它们进行配对。

作者在ProVerif中将误绑定形式化为对应属性:如果两个设备使用同一个link key完成配对,并且一个用户对其中至少一个设备具有物理控制权,则要么(1)用户打算对这两个设备进行配对,要么(2)用户受到危害,要么(3)两个设备都受到危害。在ProVerif中,此对应属性可以定义如下:

ProVerif查找这些条件的反例,确定误绑定攻击。

作者通过ProVerif,发现了5种不同类型的错误绑定攻击,如图7所示。

每个子图显示两个房间,诚实的用户试图在自己的房间里配对两个设备,发起者A1和非发起者B1,但其中一个最终与上面房间里的设备配对(用红色粗箭头表示)。黑色的单向箭头显示了攻击者如何将6个数字代码从一个设备转发到另一个设备,或者在图7(e)中的双重误绑定情况下,如何从无线通信中嗅探其输入。

  • 有4类与图2(b)所示的基本误绑定攻击类似:受损害设备可以是发起方A或非发起方B;设备C可以是能够被用户访问的受损设备或正常设备。
  • 双重误绑定。如图6所示,存在两个诚实的用户,他们都在尝试绑定两台设备,其中一台受到破坏;受损设备之间相互串通,最终导致其他两台正常设备被绑定。

4.2 Modelling device bootstrapping

虽然EAP-NOOB和蓝牙的验证模型不同,但检测误绑定相关的部分是相似的。

主要区别在于在EAP-NOOB中,只有配对设备需要通过物理访问通道识别。由于EAP-NOOB服务器有一个强大的可加密验证的标识(HTTPS-URL和-web证书),作者假设服务器不能被攻击。

作者同样在ProVerif上制定了一系列属性,查询反例。

5 MITIGATION

5.1 Authentication solutions

  • 将端点标识绑定到创建的会话来解决误绑定问题。

    例如,签名端点标识进行身份认证。这适用于设备具有证书、用于身份验证的公钥和唯一名称的情况。

  • 向用户传送设备标识符(如型号和序列号)。

    常用方法是将设备身份信息印刷在设备上。缺点是用户需要将身份验证的设备标识符与序列号模板或密钥指纹进行比较,使得配对过程复杂化。

5.2 Asset tracking

作者认为检测虚假的设备身份的实际方法是asset tracking(资产追踪),这要求每个设备都有一个唯一的标识符。

  • 当用户购买设备时,该标识符将注册到数据库中。在最简单的情况下,只有人工用户才能访问数据库。

  • 如果用户知道其设备的型号和序列号以及分配给每个设备的用途,可以结合数据库中的信息在设备配对期间进行交叉检查。
  • 例如,如果只有一个新的显示设备分配给Alice,Alice会在部署设备时将数据库中的设备信息与设备配对过程中经过身份验证的标识进行比较。

5.3 On Bluetooth SSP and double misbinding

作者指出数字比较模式的SSP容易出现双重误绑定,是由于计算验证码Va和Vb的所有输入都在无线链路上传输,并且可以被监听。

如果Va和Vb作为ECDH共享密钥计算,则这两个受损设备无法在其显示器上显示相同的值,这可以防止双重误绑定。

但是由于设备在显示验证码之前必须计算ECDH共享密钥,可能会影响在处理器速度较慢的设备上的用户体验。

6 DISCUSSION

  • 误绑定漏洞并不特定于蓝牙SSP和EAP-NOOB,其他协议也可能存在此类问题,例如DPP(Device Provisioning Protocol),任何依赖于用户对端点进行物理识别方法的配对协议或引导协议同样易受到攻击。
  • 误绑定攻击的前提是用户想要与被破坏的设备进行配对或注册,用户被误导并信任受损设备。很多协议的设计者并没有考虑到这一点。