关键词:Bluetooth Classic Security 经典蓝牙安全机制 Pairing Authentication Encryption

本文基于Bluetooth Core Spec v5.3,梳理了Core Spec中BT Classic Security相关内容。

根据Vol 1, Part C: Core Specification Change History, 经典蓝牙Security相关修改历史如下:

  • v1.1 TO v1.2

    • Deprecate the use of Unit Key for security
  • v2.0+EDR TO v2.1+EDR
    • Introduce Encryption Pause and Resume
    • Introduce Secure Simple Paring
    • Introduce Security Mode 4
  • v4.0 TO v4.1
    • Introduce BR/EDR secure connections

Vol 1, Part A, 5 SECURITY OVERVIEW非常重要,一定要细读。该章说明了Bluetooth security机制演变历史和设计目标,重要的名词术语,包括

  • Bluetooth security model包含五种security features:

    • Pairing: create secret keys
    • Bonding: store secret keys
    • Device authentication: verify the same keys
    • Encryption
    • Message integrity
  • 经典蓝牙的三种security mechanism,依照出现时间先后,依次为:
    • BR/EDR Legacy Paring:use short variable PIN or fixed PIN
    • Secure Simple Pairing (SSP): four association models
    • Secure Connections: upgrades Secure Simple Pairing
  • Secure Simple Paring (SSP)根据设备的IO capabilites可以使用四种association models:
    • Just Works
    • Numeric Comparison
    • Passkey Entry
    • Out-Of-Band

关于Encryption,BR/EDR和BLE都是在Controller完成的。
关于Key generation,BR/EDR是由Controller完成的,但是BLE是由Host完成的。

Vol 2, Part C 3.2 FEATURE DEFINITIONS 列出了LMP中security相关feature及其定义,3.5 FEATURE REQUIREMENTS列出了features之间的依赖/互斥关系,包括

  • Broadcast encryption - Mutually exclusive feature: Coarse clock adjustment
  • Encryption - Mandatory
  • Pause Encryption
  • Secure Connections (Controller Support) - Require features: Pause encryption and Ping
  • Secure Connections (Host Support) - Require features: Secure Simple Pairing (Host Support) and Secure Connections (Controller Support)
  • Secure Simple Pairing (Controller Support) - Mandatory
  • Secure Simple Pairing (Host Support)

Vol 2, Part C, 4.2 SECURITY 详细说明了以下功能涉及到的PDU、Error Code和Procedure Sequence。如果你没有看之前的Security Overview,很可能陷入细节当中,而不能理解Security的整体流程和这些功能的相互关系。

  • Authentication

    • Legacy authentication:

      • Performed when at least one device does not support both the Secure Connections(Controller Support) and Secure Connections(Host Support) features.
      • A mutual authentication is not mandatory.
    • Secure authentication:

      • Performed when both devices support the Secure Connections(Controller Support) and Secure Connections(Host Support) features.
      • Always a mutual authentication.
  • Pairing

    • (Legacy) pairing - Section 4.2.2, Only when at least one of the two sides is based on the very old Core Spec v2.0 and below.1
    • Secure Simple Pairing - Section 4.2.7, Mandatory between two devices both supporting Core Spec v2.1 and above.1
  • Change link key

  • Change current link key type

  • Encryption

    • E0 encryption(legacy) mechanism - At least one device does not support both the Secure Connections(Controller Support) and Secure Connections(Host Support) features.
    • AES-CCM encryption mechanism - Both devices support Secure Connections(Controller Support) and Secure Connection(Host Support) features.
  • Request supported encryption key size

Vol 2, Part H Security Spec规定了Encryption、Authentication和Key Generation schemes的实现细节,比如详细的steps和algorithms。为了便于理解,读者有必要了解对称加密和非对称加密的基本概念2。该章包含了以下内容:

  • Random number generation
  • Key management
  • Encryption (E0)
  • Authentication
  • The authentication and key-generating functions
  • Secure Simple Pairing
  • AES-CCM encryption for BR/EDR

读者可以阅读综述性文献3,加深对Core Spec中security mechanism的理解。

Reference


  1. Legacy pairing and fixed PIN code or Passkey ↩︎ ↩︎

  2. 理解公钥与私钥 ↩︎

  3. Guide to Bluetooth Security ↩︎

Bluetooth Core Spec经典蓝牙安全机制导读相关推荐

  1. 经典蓝牙和BLE学习

    1.一些概念理解: 2.遇到的问题: (1)如何让设备作为BLE 设备被扫描到. 一些参考链接: 区别 active and passive scanning 蓝牙安全之Active Scanning ...

  2. Android 经典蓝牙(Classic Bluetooth)和低功耗蓝牙(BLE)

    从蓝牙4.0开始包含两个蓝牙芯片模块:传统/经典蓝牙模块(Classic Bluetooth,简称BT)和低功耗蓝牙(Bluetooth Low Energy,简称BLE) 经典蓝牙是在之前的蓝牙1. ...

  3. android ble 经典蓝牙,Android 经典蓝牙(Classic Bluetooth)和低功耗蓝牙(BLE)

    [实例简介] 从蓝牙4.0开始包含两个蓝牙芯片模块:传统/经典蓝牙模块(Classic Bluetooth,简称BT)和低功耗蓝牙(Bluetooth Low Energy,简称BLE) 经典蓝牙是在 ...

  4. Android经典蓝牙开发简介(Google官网译文)

    公司的项目最近需要用到蓝牙开发的相关内容,因此特地查阅了Google官方文档的内容并进行二次整理,希望能对需要学习该部分的朋友有所帮助. 原文地址:http://developer.android.c ...

  5. Android 使用经典蓝牙

    Android 使用经典蓝牙 本文内容基本是按照安卓官方文档来进行经典蓝牙的学习,大体都从官方文档粘贴而来,英文部分做了写粗略的翻译,作为自己学习安卓经典蓝牙的一个记录.官方文档可参考https:// ...

  6. 经典蓝牙和低功耗蓝牙的区别

    蓝牙 SIG 发布新版本的规范时,都会声明一个版本号.蓝牙1.0大约在1999年发布,2004年发布2.0版本,2007年发布2.1版本,2009年发布3.0版本. 打开蓝牙3.0规范,你会发现经典蓝 ...

  7. 经典蓝牙Sniff Mode

    文章目录 Introduction Application Sniff Sub-rating Reference Introduction Sniff mode为两个已连接的经典蓝牙设备提供了有效的降 ...

  8. Core Spec 5.0 学习

    Vol1 Architecture & Terminology Overview 1 GENERAL DESCRIPTION 蓝牙无线技术是一种短距通信系统,旨在取代连接便携式和/或固定电子设 ...

  9. Android 蓝牙技术(一)- 经典蓝牙

    Android平台支持蓝牙设备通过蓝牙协议栈来实现无线通信.应用层提供了Bluetooth APIs来使用蓝牙功能, 这些API可以使应用可以无线连接其他蓝牙设备实现点对点及多点间通信. 使用Blue ...

最新文章

  1. sqlite php 函数大全,SQLite 表达式
  2. 流程表单中js如何清空SheetUser控件数据?
  3. Visual C++ 中的重大更改
  4. ajax删除成功后的回调,Ajax成功回调'删除'不触发在Firefox中
  5. 揭秘:支付宝小程序 V8 Worker 技术演进
  6. mariadb集群初次启动方法
  7. Ubuntu 14.04.02 安装openvswitch-2.3.1
  8. desktop docker 无法卸载_在docker-for-desktop OSX上删除kubernetes集群
  9. 基于SpringBoot+WebMagic实现一个的爬虫框架
  10. Linux 中的 XEN 虚拟化技术(二)Xen 的安装和配置
  11. IE8自动提交form的问题
  12. 微信小程序下载pdf到本地的坑
  13. 科技新品 | 索尼最小最轻全画幅微单;Bose第二代睡眠耳塞;华米全新智能手环...
  14. django crontab UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfe in position 9: invalid start
  15. 手机QQ邮箱登录不上的解决办法
  16. ubuntu14.04自定义系统默认xp字体
  17. ESP32S3系列--代码执行速度优化(从PSRAM执行代码)
  18. AI测试|天猫精灵智能音箱测试策略与方法
  19. 团队管理33-典型场景(向下沟通)
  20. LiveData-原理全解析

热门文章

  1. @Repository
  2. Myeclipse报错:“Versions of Spring facet could not be detected”的解决方法
  3. 【人工智能】自动化编程的历史,现状,发展与未来
  4. WebLogic-ONS configuration failed ONS 配置失败
  5. WiFi设备的区域性要求
  6. 知识产权贯标补贴政策查询大全及怎么申请,奖励20万
  7. 打码色带在包装行业的应用
  8. 最大公约数和最小公倍数系列
  9. 为什么不倾向推荐书和书单
  10. 如何提高你的记忆力之二