当前位置: 首页 > news >正文

蓝牙 - 如何实现安全性

蓝牙技术在加密上做了很多工作,来保证你的数据安全。

这些年来,我们的许多电子设备都转向了使用无线技术进行连接。我们的鼠标、键盘、耳机和扬声器上不再有长长的纠缠的电线,而使用了简单方便的无线技术,科技进步改善了我们的生活。

由于这些无线设备中有许多依靠蓝牙技术,蓝牙技术联盟(蓝牙技术的权威机构)在保持便利性和可靠性的同时增加了各种安全协议。

通过巧妙的方法和算法,蓝牙技术变得更加安全。本文将介绍蓝牙的安全功能是如何设计出来的,以及应该如何使用。

最新版本的蓝牙和Low Energy中的私密功能

蓝牙安全旨在为具有蓝牙功能的设备提供有关认证、完整性、保密性和隐私的标准协议,所有这些都使用加密。它自1998年以来一直在使用,已经有了几次迭代。

2010年,随着对短距离无线技术的功能需求的上升,蓝牙技术联盟开发了一个更新的蓝牙版本--蓝牙4.0。老几代蓝牙和蓝牙4.0之间最显著的区别是增加了BLE(蓝牙低功耗)。

请注意,BLE中的 "低功耗 "并不意味着它一定会使用更少的能量;它只是意味着它能很好地与低功耗设备(如无线耳机)配合,这些设备的电池容量很小。

由于大多数设备运行在蓝牙4.0及以上版本,我们将具体讨论这些较新版本的设计栈。此外,这个版本解决了前几代蓝牙的许多安全问题。

当前的蓝牙版本目前使用的BLE协议栈如下图所示:

 

我们对堆栈第四层的一个部分感兴趣,它被称为安全管理器Security Manager,负责处理有关认证、安全、保密和隐私的一切。安全管理器通过设备的配对和结合(pairing and bonding )来实现其协议。

BLE配对方法(Pairing methods)

配对是蓝牙安全管理器的一个重要组成部分。它验证你正在连接的设备是否是目标设备,然后生成一个加密密钥,供两个设备在整个会话中使用。

你的设备可以使用几种认证方法,以确保你连接到预定设备。这些方法包括:直接使用; 密钥另传; 输入密码; 数字对比。

- Just Works: 这是在两个设备间传递加密密钥的最快的方法,但安全性不够。

- OOB(Out of Band):使用其他认证方法(除了蓝牙)来发送加密密钥。一个例子包括通过NFC连接或使用你的设备的摄像头扫描对方设备显示屏上的QR码。

- Passkey:在一个设备上提示密码,需要在另一个设备上输入这个密码,才能通过认证。

- Numeric Comparison:  工作原理与Passkey相同,但设备会自动发送密码。用户只需要确认两个设备是否有相同的密码。

BLE加密密钥算法 / BLE Encryption Key Algorithms

现在,你的设备已经验证了连接设备的身份。然后他们将发送加密密钥,你的设备将在整个会话中使用这些密钥来加密和解密数据。

不同时期或版本的蓝牙规范中,安全管理器会使用不同的加密密钥算法来工作。最新版本的蓝牙(4.0及以上)使用的最常见的加密密钥算法如下:

- Symmetric-Key Ciphers / 对称密钥密文:这种类型的加密使用单一的密钥来解密哈希值或密文。

- Asymmetric-Key Ciphers / 非对称密钥密文:这种加密类型利用所谓的公钥和私钥。公钥用于加密数据,而私钥用于解密数据。

- Elliptical Curve Cryptography (ECC) / 椭圆曲线加密法:使用椭圆曲线方程来创建密钥,比对称或非对称密钥短得多,但同样安全。

- Advanced Encryption Standard (AES) / 高级加密标准:是一种基于数据块的对称加密,将128位数据作为一组数据块。

安全管理器的配对和绑定过程 / The Security Manager's Pairing and Bonding Process

安全管理器层旨在通过所谓的配对和绑定过程来处理蓝牙中的所有安全问题。在蓝牙连接中,总会有一个主设备和一个从设备(master and slave)。

主设备负责扫描那些发射广播信息的蓝牙设备。与此相反,从设备向外部发送广播信息的设备。

一个主从关系的例子是你的手机和一个无线耳机。你的手机是主设备,因为它扫描蓝牙设备,而你的无线耳机是从设备,因为它产生广播信号让你的手机能找到它。

配对过程包括安全管理器进行安全管理的三个阶段中的前两个。最开始,两个设备尝试进行建立连接的过程就属于配对过程。

- 初始配对过程中,主设备和从设备将共享每个设备能力信息以及它们所运行的蓝牙版本。能力信息需要包含的是,当前设备是否有屏幕、键盘、摄像头和NFC。

 

- 在让对方知道自己的能力后,从设备和主设备将决定使用何种安全协议和加密算法。

- 两个设备初始配对时使用的共享密钥被称为STK(Short-term key / 短期密钥)。顾名思义,STK将是主设备和从设备使用的加密密钥,直到会话结束。

- 当两台设备配对成功后,它们会使用STK对发送的每个数据包进行加密。而在数据加密后,任何试图监视你们会话的人因为没有STK而无法解密数据。

- STK的问题是,它只适用于同一次会话。每次会话,都需要再次配对,以便为生成一个新的STK。出于这个原因,开发出了一个额外的可选步骤,称为绑定(bonding)。

- 绑定步骤是蓝牙安全管理器的第三个阶段。在你的设备上会出现一个提示,询问你是否信任已配对的设备,并希望在看到设备广播时与之连接。而前两个阶段就是配对和生成STK密钥。

- 由于两个设备已经配对(通过STK有一个安全的连接),绑定过程将不需要进一步的安全检查。这个阶段要做的是生成一个LTK(Long-term key / 长期密钥)和一个IRK(Identify Resolve Key / 身份解析密钥)。然后,两个设备将使用这些密钥来解密数据,并在蓝牙开启时自动识别你的设备。

- LTK是一种类似于STK的加密密钥,设备使用它来加密和解密数据。不同的是,LTK是通过ECC而不是AES-120生成的,并且是长期使用的。

为了理解IRK,让我们简单地谈谈蓝牙MAC地址。所有具有蓝牙功能的设备都配备了一个网络接口控制器(Network Interface Controller / 网络接口控制器)。每个网络接口控制器都有一个独特的MAC地址(Media Access Control)。你不能改变这些MAC地址,因为给定的地址是硬编码在网络接口控制器的物理硬件中。

这个MAC地址也可以通过软件来修改,但如果希望绑定过的设备能够识别当前设备,那就不要随便修改MAC地址。考虑到这一点,为了能够使用可变的蓝牙地址,防止设备被别人追踪,但又能被可信任方发现,Bluetooth SIG增加了一个IRK系统,允许你的设备被绑定的设备识别,而对未知的蓝牙设备则无法识别。

蓝牙是一种复杂的技术组合,提供了广泛的设备兼容性、便利性和可靠性。应用广泛的蓝牙技术使得其安全成为一个不小的话题。

参考:

What Is Bluetooth Encryption and How Does It Work?

相关文章:

蓝牙 - 如何实现安全性

蓝牙技术在加密上做了很多工作,来保证你的数据安全。 这些年来,我们的许多电子设备都转向了使用无线技术进行连接。我们的鼠标、键盘、耳机和扬声器上不再有长长的纠缠的电线,而使用了简单方便的无线技术,科技进步改善了我们的生活…...

深入理解顺序io和随机io(全网最详细篇)

MySql系列整体栏目 内容链接地址【一】深入理解mysql索引本质https://blog.csdn.net/zhenghuishengq/article/details/121027025【二】深入理解mysql索引优化以及explain关键字https://blog.csdn.net/zhenghuishengq/article/details/124552080【三】深入理解mysql的索引分类&a…...

面试准备知识点与总结——(基础篇)

目录Java基础Java面向对象有哪些特征ArrayList和LinkedList有什么区别高并发的集合有哪些问题迭代器的fail-fast和fail-safeArrayList底层扩容机制HashMap面试合集解答设计模式单例设计模式哪些地方体现了单例模式Java基础 Java面向对象有哪些特征 Java面向对象有三大特征&am…...

Linux共享库,静态库与相关系统调用,工具的使用总结

tags: Linux C Syscall 写在前面 总结Unix/Linux操作系统的共享库/静态库部分, 以及一些系统调用. 参考Linux/UNIX系统编程手册41-42章. 测试程序均在Ubuntu下使用cc(gcc-9)运行成功. $ gcc -v Using built-in specs. COLLECT_GCCgcc COLLECT_LTO_WRAPPER/usr/lib/gcc/x86_64…...

「JVM 编译优化」javac 编译器源码解读

Java 的编译过程 前端编译: 编译器的前端,将 Java 文件转变成 Class 文件的过程;如 JDK 的 javac、Eclipse JDT 中的增量式编译器 ECJ;即使编译: JIT,Just In Time Compiler,在运行期将字节码转变成本地机器码的过程&…...

Leetcode DAY 34: K次取反后最大化的数组和 and 加油站 and 分发糖果

1005.K次取反后最大化的数组和 class Solution:def largestSumAfterKNegations(self, nums: List[int], k: int) -> int:nums sorted(nums, key abs, reverse True)for i in range(len(nums)):if nums[i] < 0:nums[i] -nums[i]k - 1else:continueif k 0:return sum(…...

2023美赛A题思路

在线解析 https://kdocs.cn/l/ccNGjN9sGugL​kdocs.cn/l/ccNGjN9sGugL A题思路&#xff1a;&#xff08;具体以题目解决问题顺序为主&#xff09; 这道题分析植被就行&#xff0c;主要涉及不同植被间的相互作用&#xff0c;有竞争有相互促进&#xff0c;我查了下“植物科学数…...

前端上传文件

前言 以 vue 举例&#xff0c;原生 html css js 现在应该很少有人去写了 一、绘制样式 绘制两个标签&#xff0c;一个 <div></div> &#xff0c;一个 <input type"file" />&#xff1b; 为 <div></div>添加 css 样式&#xff0c…...

后台管理系统中选项卡的动态渲染

动态渲染选项卡其中router-link是为了当点击选项卡时跳转到选项卡所在的列表选项卡需要动态渲染&#xff0c;其中active是当选中后激活选中的样式为图标添加点击删除事件在状态机配置tabMenu&#xff08;为了动态渲染&#xff09;需要在tabMenu添加&#xff1a;active、title、…...

网络层重点协议之IP协议(IPv4)

网络层的作用就是来路由的选择&#xff0c;规划传输的路径&#xff0c;其中网络层的重点协议就是IP协议。4位版本号版本号的取值只有4和64位首部长度描述了IP报头有多长&#xff0c;报头中有一个选项部分&#xff0c;是变长的&#xff0c;是可有可无的部分&#xff0c;所以IP报…...

CentOS Stream 8配置DNS

1&#xff1a;用CentOS搭建DNS的目的是想解析一台下载服务器&#xff0c;IP地址172.18.0.58&#xff0c;现在是用IP地址方的式访问&#xff0c;想搭建DNS服务器用域名的方式访问。 使用下面的命令查看一下当前系统的Bind版本。 yum info bind 版本是9.11.36.我的CentOS是最小…...

【roLabelImg】windows下旋转框标注软件安装、使用、rolabelimg打包成exe

主要参考&#xff1a; roLabelImg安装、使用、数据格式roLabelImg在Win10系统下打包成exe - 问雪的文章 - 知乎 一、安装 1.1 直接下载exe运行 劝大家直接去下别人编译好的吧&#xff0c;本来是训练模型标记的&#xff0c;结果搞了半天去了解这个软件了&#xff0c;哎~ 我…...

2023美赛F题:绿色经济

文章目录背景要求词汇表背景 国内生产总值&#xff08;GDP&#xff09;可以说是最知名且最常用的衡量一个国家经济健康的指标之一。它通常用于确定一个国家的购买力和贷款能力&#xff0c;为国家提出提高GDP的政策和项目提供了动力。GDP “衡量一个国家在一段特定时间内生产的…...

华为OD机试 - 剩余可用字符集 | 备考思路,刷题要点,答疑 【新解法】

最近更新的博客 【新解法】华为OD机试 - 关联子串 | 备考思路,刷题要点,答疑,od Base 提供【新解法】华为OD机试 - 停车场最大距离 | 备考思路,刷题要点,答疑,od Base 提供【新解法】华为OD机试 - 任务调度 | 备考思路,刷题要点,答疑,od Base 提供【新解法】华为OD机试…...

“笨办法”学Python 3 ——练习 40. 模块、类和对象

练习40 模块、类和对象 知识点&#xff1a; 40.1.0 模块就像字典 my_stuff[apple] #my_stuff是字典&#xff0c;访问字典apple键的值 import mystuff mystuff.apple() #mystuff是模块&#xff0c;模块访问函数apple() print(mystuff.tangerine) #模块访问变量tangerine说明P…...

自动驾驶:BEVDet

自动驾驶&#xff1a;BEVDetIntroductionMethodoloData AugmentationNetwork StructureScale-NMS实验Introduction 作者通过现有的算法&#xff08;LSS&#xff09;、独特的数据增强方案与新的NMS方案整合了一个BEV框架&#xff08;BEVDet&#xff09;。 如下图&#xff1a; …...

vue的组件通信

文章目录3. 组件通信3.1 父组件-->子组件3.3组件自定义事件&#xff08;子->父&#xff09;3.4.全部事件总线&#xff08;两代以上&#xff09;3.5消息的订阅与发布3. 组件通信 3.1 父组件–>子组件 <Student name"张三" :age"18"></St…...

Typescript的定义及使用优势

编程语言的类型&#xff1a; 动态类型语言 (Dynamically Typed Language&#xff09;静态类型语言 (Statically Typed Language&#xff09; 两种语言的含义及区别&#xff1a; 比如JS、python就是动态类型语言&#xff0c;什么是动态类型语言&#xff0c;通俗的讲&#xff0…...

正则验证:手机号码验证

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title></title> </head> <body> 手机号码<input type"text" id"phone"> <span…...

视频融合 flv流格式对接(上)

FLV 是FLASH VIDEO的简称&#xff0c;FLV流媒体格式是随着Flash MX的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快&#xff0c;使得网络观看视频文件成为可能&#xff0c;它的出现有效地解决了视频文件导入Flash后&#xff0c;使导出的SWF文件体积庞大&#xf…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!

本文介绍了一种名为AnomalyAny的创新框架&#xff0c;该方法利用Stable Diffusion的强大生成能力&#xff0c;仅需单个正常样本和文本描述&#xff0c;即可生成逼真且多样化的异常样本&#xff0c;有效解决了视觉异常检测中异常样本稀缺的难题&#xff0c;为工业质检、医疗影像…...