Bluetooth Core Spec经典蓝牙安全机制导读
关键词: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
Legacy pairing and fixed PIN code or Passkey ↩︎ ↩︎
理解公钥与私钥 ↩︎
Guide to Bluetooth Security ↩︎
Bluetooth Core Spec经典蓝牙安全机制导读相关推荐
- 经典蓝牙和BLE学习
1.一些概念理解: 2.遇到的问题: (1)如何让设备作为BLE 设备被扫描到. 一些参考链接: 区别 active and passive scanning 蓝牙安全之Active Scanning ...
- Android 经典蓝牙(Classic Bluetooth)和低功耗蓝牙(BLE)
从蓝牙4.0开始包含两个蓝牙芯片模块:传统/经典蓝牙模块(Classic Bluetooth,简称BT)和低功耗蓝牙(Bluetooth Low Energy,简称BLE) 经典蓝牙是在之前的蓝牙1. ...
- android ble 经典蓝牙,Android 经典蓝牙(Classic Bluetooth)和低功耗蓝牙(BLE)
[实例简介] 从蓝牙4.0开始包含两个蓝牙芯片模块:传统/经典蓝牙模块(Classic Bluetooth,简称BT)和低功耗蓝牙(Bluetooth Low Energy,简称BLE) 经典蓝牙是在 ...
- Android经典蓝牙开发简介(Google官网译文)
公司的项目最近需要用到蓝牙开发的相关内容,因此特地查阅了Google官方文档的内容并进行二次整理,希望能对需要学习该部分的朋友有所帮助. 原文地址:http://developer.android.c ...
- Android 使用经典蓝牙
Android 使用经典蓝牙 本文内容基本是按照安卓官方文档来进行经典蓝牙的学习,大体都从官方文档粘贴而来,英文部分做了写粗略的翻译,作为自己学习安卓经典蓝牙的一个记录.官方文档可参考https:// ...
- 经典蓝牙和低功耗蓝牙的区别
蓝牙 SIG 发布新版本的规范时,都会声明一个版本号.蓝牙1.0大约在1999年发布,2004年发布2.0版本,2007年发布2.1版本,2009年发布3.0版本. 打开蓝牙3.0规范,你会发现经典蓝 ...
- 经典蓝牙Sniff Mode
文章目录 Introduction Application Sniff Sub-rating Reference Introduction Sniff mode为两个已连接的经典蓝牙设备提供了有效的降 ...
- Core Spec 5.0 学习
Vol1 Architecture & Terminology Overview 1 GENERAL DESCRIPTION 蓝牙无线技术是一种短距通信系统,旨在取代连接便携式和/或固定电子设 ...
- Android 蓝牙技术(一)- 经典蓝牙
Android平台支持蓝牙设备通过蓝牙协议栈来实现无线通信.应用层提供了Bluetooth APIs来使用蓝牙功能, 这些API可以使应用可以无线连接其他蓝牙设备实现点对点及多点间通信. 使用Blue ...
最新文章
- sqlite php 函数大全,SQLite 表达式
- 流程表单中js如何清空SheetUser控件数据?
- Visual C++ 中的重大更改
- ajax删除成功后的回调,Ajax成功回调'删除'不触发在Firefox中
- 揭秘:支付宝小程序 V8 Worker 技术演进
- mariadb集群初次启动方法
- Ubuntu 14.04.02 安装openvswitch-2.3.1
- desktop docker 无法卸载_在docker-for-desktop OSX上删除kubernetes集群
- 基于SpringBoot+WebMagic实现一个的爬虫框架
- Linux 中的 XEN 虚拟化技术(二)Xen 的安装和配置
- IE8自动提交form的问题
- 微信小程序下载pdf到本地的坑
- 科技新品 | 索尼最小最轻全画幅微单;Bose第二代睡眠耳塞;华米全新智能手环...
- django crontab UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfe in position 9: invalid start
- 手机QQ邮箱登录不上的解决办法
- ubuntu14.04自定义系统默认xp字体
- ESP32S3系列--代码执行速度优化(从PSRAM执行代码)
- AI测试|天猫精灵智能音箱测试策略与方法
- 团队管理33-典型场景(向下沟通)
- LiveData-原理全解析