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。

Bluetooth core 5.0 ---------- BR/EDR 安全简单配对(BR/EDR secure simple pairing)相关推荐

  1. Bluetooth core 5.0 Generic Access Profile ---------- 模式 - BR/EDR 物理传输(physical transport)

    4.1.可发现性模式(discoverability modes) 关于 inquiry(查询),蓝牙设备应处于 non-discoverable mode(不可发现模式)或 discoverable ...

  2. 蓝牙架构(10)—— 5 安全概述(5.1 安全架构 5.2 BR / EDR安全简单配对 5.3 仅安全连接模式 5.4 LE安全)

    Vol 1架构和术语概述 Part A 5 安全概述 Agenda: Part A 5 安全概述. 5.1 安全架构. 5.2 BR / EDR安全简单配对. 5.2.1安全目标. 5.2.2被动窃听 ...

  3. Bluetooth Core Spec经典蓝牙安全机制导读

    关键词:Bluetooth Classic Security 经典蓝牙安全机制 Pairing Authentication Encryption 本文基于Bluetooth Core Spec v5 ...

  4. br模式edr模式_蓝牙BR/EDR 和Bluetooth Smart的十大重要区别

    物理信道(Physical Channel) 所有的无线电通信都是发生在预先定义的信道之上,蓝牙也不例外.但Bluetooth Smart采用的信道却与蓝牙BR/EDR有些许不同,尤其是在Blueto ...

  5. 编译调试 .NET Core 5.0 Preview 并分析 Span 的实现原理

    很久没有写过 .NET Core 相关的文章了,目前关店在家休息所以有些时间写一篇新的????.这次的文章主要介绍如何在 Linux 上编译调试最新的 .NET Core 5.0 Preview 与简 ...

  6. 深入研究 Angular 和 ASP.NET Core 3.0

    本文要点: 可以把多个 Angular 应用程序集成到 ASP.NET 网站中 把 Angular 代码打包成 Web 组件是引导 Angular 应用程序的好方法 可以把用 Angular 编写的 ...

  7. 使用.NET Core 3.0 预览版,Web API和Visual Studio 2019进行ASP.NET Core Blazor游戏开发

    目录 介绍 使用ASP.NET核心Blazor创建这个奇怪的图像输出应用程序应该知道什么? 背景 先决条件 Visual Studio 2019 .NET Core 3.0 Preview SDK B ...

  8. C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(中)

    译文,个人原创,转载请注明出处(C# 6 与 .NET Core 1.0 高级编程 - 41 ASP.NET MVC(中)),不对的地方欢迎指出与交流. 章节出自<Professional C# ...

  9. .NET Core 3.0 正式公布:新特性详细解读

    点击蓝字"dotNET匠人"关注我哟 加个"星标★",每日 7:15,好文必达! 作者丨Richard Lander 译者丨核子可乐 策划丨赵钰莹 近日,.NE ...

  10. 《你必须掌握的Entity Framework 6.x与Core 2.0》正式出版感想

    前言 借书正式出版之际,完整回顾下从写博客到写书整个历程,也算是对自己近三年在技术上的一个总结,整个历程可通过三个万万没想到来概括,请耐心阅读. 写博.写书完整历程回顾 从2013年12月注册博客园账 ...

最新文章

  1. 李宏毅机器学习笔记六——Gradient Descent
  2. Mysql主从复制及Tomcat的相关介绍
  3. oracle 分区表
  4. [翻译]Json.NET API-Linq to Json Basic Operator(基本操作)
  5. 云原生时代,企业多活容灾体系构建思路与最佳实践
  6. Android下ListView的分页(9.6)
  7. 关于java的项目_关于java项目与javaweb项目
  8. spark学习-Spark算子Transformations和Action使用大全(Transformations章(二))
  9. java、class、jar、aar、dex、smali、apk之间的关系
  10. 在光伏并网柜保护监测领域安科瑞给出的解决方案
  11. LaTeX pdf转eps格式
  12. 用amd组装高档游戏型计算机,高配吃鸡真带劲!高端最新只选AMD游戏主机
  13. python爬虫requests模块
  14. Pytorch(GPU)配环境原理:cuda+cudnn+pytorch配环境的每一步到底干了些什么?
  15. 作为程序员,你关注哪些国外 IT 网站?
  16. 2)react-redux抽离redux
  17. 送书 | 《商品期货量化交易实战》
  18. PTA-c语言 水仙花数
  19. 如何将 SWF 文件添加到 PPT 的每一张幻灯片
  20. 立创eda学习笔记十二:常见pcb板布局约束原则

热门文章

  1. 酒与茶--网友-心香一束著
  2. tps 、qps、bps、Bps的含义
  3. java分别用链表和数组实现栈
  4. 二维平面上线段与直线位置关系的判定
  5. 采铜:基于心理学的高效学习策略
  6. Detectron 创建blob的过程
  7. 信息学奥赛一本通:1132:石头剪子布
  8. Arduino制作跑马灯
  9. HTML5期末大作业:在线电影网站设计——电影我不是药神响应式页播(4页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程设计
  10. ptb同一屏呈现两张图片matlab,PTB诊断心电数据库中的原始ECG信号的特征提取