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

【android bluetooth 协议分析 21】【ble 介绍 1】【什么是RPA】

通俗易懂地讲解一下 BLE(低功耗蓝牙)中的 Resolvable Private Address(RPA,可解析私有地址)


1. 一句话理解

RPA 是一种“临时的、隐私保护的蓝牙设备地址”,别人无法随便追踪你,但“授权的设备”可以识别你是谁。


2.为什么需要 RPA?

在 BLE 中,每个设备都要有一个地址,就像每台电脑有 IP 地址一样,用来标识自己。但如果设备一直用同一个固定地址,那就好比你到哪儿别人都能认出你 —— 容易被追踪

比如:

你带着蓝牙耳机逛街,如果耳机地址是固定的,商场的蓝牙探针就可以一直跟踪你在哪儿。

这显然侵犯隐私,于是 BLE 引入了 私有地址机制,其中最重要的一种就是 RPA


3. 什么是 RPA(Resolvable Private Address)?

RPA 是一种每隔一段时间(如15分钟)自动更换的临时地址,它是根据一个叫做 IRK(Identity Resolving Key) 的密钥生成的。

关键点:

特性描述
临时性过一段时间自动更换
可解析掌握 IRK 的设备可以识别这个地址是谁的
隐私保护其他设备即使看到地址,也无法知道你是谁
一次性识别授权设备只需知道你的 IRK,就能解析每次新的地址

4. RPA 的工作原理

我们用一个简化的流程图来表示:

4.1 设备端生成 RPA 的流程:

  1. 设备保存了自己的 IRK(身份解析密钥)

  2. 定时生成一个新的随机数(prand

  3. 使用 IRK + prand 生成加密 hash

  4. 把 hash 和 prand 组合起来,构成新的 RPA 地址

💡 所以 RPA 是这样的结构:

| hash(24bit) | prand(24bit) |

4.2 识别端(比如手机)如何解析 RPA?

  1. 手机事先存储了设备的 IRK

  2. 手机收到广播包中的地址(RPA)

  3. 手机尝试用已知的 IRK 来计算 hash,看是否和收到的地址的 hash 部分匹配

  4. 如果匹配成功 ➜ 确认这个地址是某个设备的

这样就可以在保护隐私的前提下,让授权设备识别你。


5. 实际应用场景举例

5.1 蓝牙耳机配对

你配对过一次耳机后,手机保存了耳机的 IRK。之后耳机即使换地址了,手机也能识别它是谁,自动连接。

5.2 防追踪

路人、商场探针设备等,虽然能看到你的蓝牙地址,但因为他们不知道 IRK,无法识别你是谁,也无法长期跟踪你


6. RPA 和其他地址对比

地址类型是否可变是否可识别用途
Public Address官方注册的固定地址
Random Static私有设备使用,但固定
RPA✅(授权设备)保密且可以被信任设备识别
NRPA (非可解析)完全匿名,只用于广播连接等场景

7. 常见问题

7.1 谁生成 IRK?

IRK 是在设备配对的时候,由系统生成和共享的。

7.2 多久换一次 RPA?

通常是 15 分钟左右,但也可以根据系统设定来更频繁地更换。

7.3 RPA 会影响连接吗?

不会。只要对方设备有你的 IRK,就能识别你、连接你。

7.4 RPA 机制是否只有 BLE 有?经典蓝牙有吗?

1. 经典蓝牙 没有 RPA 机制!

这是一个 BLE(Bluetooth Low Energy)专属的隐私保护机制。


2. 经典蓝牙 vs BLE 地址机制对比
特性经典蓝牙BLE
支持 RPA❌ 不支持✅ 支持
地址类型通常是固定的 BD_ADDR(48 位)Public / Static / RPA / NRPA
是否可匿名广播❌ 无✅ 可通过 NRPA 匿名广播
是否有隐私机制很弱强,RPA 是核心

3. 为什么经典蓝牙没有 RPA?

经典蓝牙设计较早,主要用于高带宽连接(如音频),当时对隐私性考虑较少。RPA 是 BLE 在后期专门为隐私场景设计的,比如:

  • 健康设备(你不想让陌生人知道你血糖仪的地址)

  • 位置服务(防止商场用蓝牙追踪你)

  • 广播设备(如信标,匿名发送广告)


8. 总结

问题答案
IRK 是怎么来的?在 BLE 配对并绑定时,由设备生成并通过“身份信息交换”阶段互相传递。
RPA 是只有 BLE 才有吗?✅ 是的,经典蓝牙不支持 RPA。
RPA 的目的?保密地址、防止追踪,但又能让授权设备识别身份。
特性RPA
隐私保护✅ 防止被追踪
可识别性✅ 授权设备可识别
自动变换✅ 定期更新地址
用于哪些设备✅ 支持 BLE 隐私的设备(耳机、手表等)

相关文章:

【android bluetooth 协议分析 21】【ble 介绍 1】【什么是RPA】

通俗易懂地讲解一下 BLE(低功耗蓝牙)中的 Resolvable Private Address(RPA,可解析私有地址)。 1. 一句话理解 RPA 是一种“临时的、隐私保护的蓝牙设备地址”,别人无法随便追踪你,但“授权的设…...

狂神SQL学习笔记九:MyISAM 和 lnnoDB 区别

show create database school –查看创建数据库的语句 show create table student – 查看student数据表的定义语句 desc student –显示表的结构 MYISAMINNODB事务支持不支持支持数据行锁定不支持支持行锁定外键不支持支持全文索引支持不支持表空间的大小较小较大&#x…...

深度学习--神经网络的构造

在当今数字化时代,深度学习已然成为人工智能领域中最为耀眼的明星。而神经网络作为深度学习的核心架构,其构造方式决定了模型的性能与应用效果。本文将深入探讨深度学习神经网络的构造,带您领略这一前沿技术的奥秘。​ 一、神经网络基础概念…...

Jenkins 代理自动化-dotnet程序

两种方式 容器部署 本地部署 容器部署 可自动实现,服务器重启,容器自动运行 主要将dockerfile 写好 本地部署 1.服务器重启自动运行代理 参考下面的链接,只是把程序换成 java程序,提前确认好需要的jdk版本 Ubuntu20.04 设置开机…...

【区块链+ 人才服务】“CERX Network”——基于 FISCO BCOS 的研学资源交换网络 | FISCO BCOS 应用案例

CERX Network (Consortium-based Education Resource Exchanging Network) 是定位于面向高校科学研究与教学 的分布式研学资产交换网络, 构建一个用于数据、 算法模型、 论文和课程的研学资源价值流转平台。项目以 FISCO BCOS 联盟链为底层平…...

中间件--ClickHouse-6--SQL基础(类似Mysql,存在差异)

ClickHouse语言类似Mysql,如果熟悉Mysql,那么学习ClickHouse的语言还是比较容易上手的。 1、建表语法(CREATE TABLE) (1)、表引擎(Engine) MySQL: 默认使用 InnoDB 引…...

[MSPM0开发]MSPM0G3507番外一:关于使用外部高速晶振HFXT后程序可能不运行的问题

一、问题描述 如下图所示,MSPM0G3507时钟树配置为使用外部HFXT(外部高速晶振)作为HSCLK时钟源。 配置结果MCLK 40MHz。 另外配置PB22为输出模式,控制外部LED亮灭。 在main.c中主要代码如下: 主要完成延时并翻转LED控…...

2025年计算机领域重大技术突破与行业动态综述

——前沿技术重塑未来,开发者如何把握机遇? 2025年第一季度,全球计算机领域迎来多项里程碑式进展,从量子计算到人工智能,从芯片设计到网络安全,技术革新与产业融合持续加速。本文梳理近三个月内最具影响力…...

我的机器学习之路(初稿)

文章目录 一、机器学习定义二、核心三要素三、算法类型详解1. 监督学习(带标签数据)2. 无监督学习(无标签数据)3. 强化学习(决策优化)(我之后主攻的方向) 四、典型应用场景五、学习路线图六、常见误区警示七…...

交易模式革新:Eagle Trader APP上线,助力自营交易考试效率提升

近年来,金融行业随着投资者需求的日益多样化,衍生出了众多不同的交易方式。例如,为了帮助新手小白建立交易基础,诞生了各类跟单社区;而与此同时,一种备受瞩目的交易方式 —— 自营交易模式,正吸…...

emotn ui桌面tv版官网-emotn ui桌面使用教程

在智能电视和盒子的使用中,出色的桌面系统能大幅提升体验,Emotn UI桌面TV版便是其中的佼佼者。 访问Emotn UI桌面TV版官网,首页简洁清晰,“产品介绍”“下载中心”等板块一目了然。官网对其功能优势详细阐述,在“下载中…...

Django之modelform使用

Django新增修改数据功能优化 目录 1.新增数据功能优化 2.修改数据功能优化 在我们做数据优化处理之前, 我们先回顾下传统的写法, 是如何实现增加修改的。 我们需要在templates里面新建前端的页面, 需要有新增还要删除, 比如说员工数据的新增, 那需要有很多个输入框, 那html…...

Hadoop:大数据时代的基石

在当今数字化浪潮中,数据量呈爆炸式增长,企业和组织面临着前所未有的数据处理挑战。从社交媒体的海量信息到物联网设备的实时数据,如何高效地存储、管理和分析这些数据成为了一个关键问题。Apache Hadoop 作为大数据处理领域的核心框架&#…...

定制开发还是源码搭建?如何快速上线同城外卖跑腿APP?

在“万物皆可同城配送”的时代,同城外卖跑腿APP成为众多创业者和本地服务商的热门选择。无论是打造本地生活服务平台,还是拓展快送业务,拥有一款功能完善、体验流畅的外卖跑腿APP,已经成为进入市场的标配。 然而,对于…...

How AI could empower any business - Andrew Ng

How AI could empower any business - Andrew Ng References 人工智能如何为任何业务提供支持 empower /ɪmˈpaʊə(r)/ vt. 授权;给 (某人) ...的权力;使控制局势;增加 (某人的) 自主权When I think about the rise of AI, I’m reminded …...

SpringBoot-基础特性

1.SpringApplication 1.1.自定义banner 类路径添加banner.txt或设置spring.banner.location就可以定制 banner 1.2.自定义 SpringApplication import org.springframework.boot.Banner; import org.springframework.boot.SpringApplication; import org.springframework.bo…...

系统环境变量有什么实际作用,为什么要配置它

系统环境变量有什么实际作用,为什么要配置它 系统环境变量具有以下重要实际作用: 指定程序路径:操作系统通过环境变量来知晓可执行文件、库文件等的存储位置例如,当你在命令提示符或终端中输入一个命令时,系统会根据环境变量PATH中指定的路径去查找对应的可执行文件。如果…...

C++ | STL之list详解:双向链表的灵活操作与高效实践

引言 std::list 是C STL中基于双向链表实现的顺序容器,擅长高效插入和删除操作,尤其适用于频繁修改中间元素的场景。与std::vector不同,std::list的内存非连续,但提供了稳定的迭代器和灵活的元素管理。本文将全面解析std::list的…...

Spring Cloud 服务间调用深度解析

前言 在构建微服务架构时,服务间的高效通信是至关重要的。Spring Cloud 提供了一套完整的解决方案来实现服务间的调用、负载均衡、服务发现等功能。本文将深入探讨 Spring Cloud 中服务之间的调用机制,并通过源码片段和 Mermaid 图表帮助读者更好地理解…...

什么是时间复杂度和空间复杂度?

什么是时间复杂度和空间复杂度? 时间复杂度:衡量代码运行时间随输入规模增大而增长的速度。简单来说,就是“代码跑多快”。 空间复杂度:衡量代码运行时额外占用的内存空间随输入规模增大而增长的速度。简单来说,就是“代码用多少内存”。 我们通常用 大 O 表示法(Big O N…...

算法思想之分治-快排

欢迎拜访:雾里看山-CSDN博客 本篇主题:算法思想之分治-快排 发布时间:2025.4.15 隶属专栏:算法 目录 算法介绍核心步骤优化策略 例题颜色分类题目链接题目描述算法思路代码实现 排序数组题目链接题目描述算法思路代码实现 数组中的…...

25.4.15学习总结

问题: 邮箱验证码通过公钥加密后发到前端,在前端用私钥解密验证可行吗? 结论: 在前端使用私钥解密通过公钥加密的邮箱验证码在技术上是可行的,但存在严重的安全风险,不建议采用。 问题分析 非对称加密的…...

小程序获取用户总结(全)

获取方式 目前小程序获取用户一共有3中(自己接触到的),但由于这个API一直在改,所以不确定后期是否有变动,还是要多关注官方公告。 方式一 使用wx.getUserInfo 实例: wxml 文件<button open-type="getUserInfo" bindgetuserinfo="onGetUserInfo&quo…...

如何成为一名嵌入式软件工程师?

如何成为一名嵌入式软件工程师&#xff1f; 01明确岗位的角色与定位 嵌入式软件工程师主要负责开发运行在特定硬件平台上的软件&#xff0c;这些软件通常与硬件紧密集成&#xff0c;以实现特定的功能。 不仅需要精通编程语言&#xff08;如C/C、Java等&#xff09;和软件开发工…...

机器人发展未来两年会有突破吗?

未来两年,机器人技术将在芯片、编码器、材料、加工工艺和AI等核心领域迎来系统性突破,推动行业从专用化向通用化转型。以下从技术路径、产业动态和商业化前景三个维度展开分析,结合权威数据与技术趋势,构建机器人技术演进的全景框架。 一、芯片技术:3nm制程与存算一体架构…...

【grafana原生告警中心配置飞书机器人告警】

在grafana中的connect point中使用webhook的方式推送到飞书&#xff0c;始终无法触发告警&#xff0c;原因是grafana推送的格式飞书不识别&#xff0c;现有两种方式 1.使用中转服务 使用flask搭建一个服务&#xff0c;grafana告警先通过webhook发送到web服务中&#xff0c;格…...

HTTP HTTPS RSA

推荐阅读 小林coding HTTP篇 文章目录 HTTP 80HTTP 响应码1xx&#xff1a;信息性状态码&#xff08;Informational&#xff09;2xx&#xff1a;成功状态码&#xff08;Success&#xff09;3xx&#xff1a;重定向状态码&#xff08;Redirection&#xff09;4xx&#xff1a;客户端…...

【机器学习】如何正确下载sklearn包

TOC 直接pip install sklearn时&#xff0c;报错 sklearn的包&#xff0c;实际上叫scikit-learn pip install scikit-learn发现成功了&#xff1a; 总结 下载sklearn包的语句&#xff1a;pip install scikit-learn 完成。...

【Python进阶】断言(assert)的十大核心应用场景解析

目录 前言&#xff1a;技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块技术选型对比 二、实战演示环境配置要求核心代码实现&#xff08;10个案例&#xff09;案例1&#xff1a;参数合法性检查案例2&#xff1a;不变…...

关于汽车辅助驾驶不同等级、技术对比、传感器差异及未来发展方向的详细分析

以下是关于汽车辅助驾驶不同等级、技术对比、传感器差异及未来发展方向的详细分析&#xff1a; 一、汽车辅助驾驶等级详解 根据SAE&#xff08;国际自动机工程师学会&#xff09;的标准&#xff0c;自动驾驶分为 L0到L5 六个等级&#xff1a; 1. L0&#xff08;无自动化&…...

STM32 HAL库之WDG示例代码

独立看门狗&#xff08;IWDG&#xff09; 初始化独立看门狗&#xff0c;在main.c中的 MX_IWDG_Init();&#xff0c;也就是iwdg.c中的初始化代码 void MX_IWDG_Init(void) {/* USER CODE BEGIN IWDG_Init 0 *//* USER CODE END IWDG_Init 0 *//* USER CODE BEGIN IWDG_Init 1 …...

【差分隐私相关概念】瑞丽差分隐私(RDP)命题10

命题10证明中的最后一个不等号成立&#xff0c;关键在于将事件 A A A上的积分与Rnyi散度 D α ( P ∥ Q ) D_\alpha(P \parallel Q) Dα​(P∥Q)的定义联系起来&#xff0c;并通过积分放缩得到上界。具体推导如下&#xff1a; Rnyi散度的定义&#xff1a; D α ( P ∥ Q ) 1 …...

Android 开发 如何生成系统签名

在源码中拿到安全文件 文件路径 lagvm/LINUX/android/build/target/product/security如下两个文件 platform.pk8 platform.x509.pem 使用Android studio生成一个jks Android studio 顶部 buildGenerate Signed Bundle or APKapkcrate new记住 记住alias 和password linux下…...

(EtherCAT 转 EtherNet/IP)EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关

型号 协议转换通信网关 EtherCAT 转 EtherNet/IP MS-GW12 概述 MS-GW12 是 EtherCAT 和 EtherNet/IP 协议转换网关&#xff0c;为用户提供两种不同通讯协议的 PLC 进行数据交互的解决方案&#xff0c;可以轻松容易将 EtherNet/IP 网络接入 EtherCAT 网络中&#xff0c;方便…...

适合stm32 前端adc使用的放大器芯片

在 STM32 前端 ADC 应用中&#xff0c;合适的放大器芯片需具备低噪声、高精度、低失调电压等特性。以下为你推荐几款常用的放大器芯片&#xff1a; 低功耗、高精度型 OPA2333 特点&#xff1a;这是一款微功耗、零漂移运算放大器&#xff0c;失调电压极低&#xff0c;仅为 2.5…...

《Ethical Implications of ChatGPT in Higher Education: A Scoping Review》全文翻译

《Ethical Implications of ChatGPT in Higher Education: A Scoping Review》 ChatGPT在高等教育中的伦理影响&#xff1a;一项范围界定性综述 摘要 本范围界定性综述探讨了在高等教育中使用ChatGPT所引发的伦理挑战。通过回顾近期发表的英文、中文和日文的学术文章&#x…...

day26 学习笔记

文章目录 前言一、边缘填充1.边界复制2.边界反射3.边界常数4.边界包裹5.代码示例 二、透视变换三、颜色加法 前言 通过今天的学习&#xff0c;我掌握了OpenCV中有关边缘填充&#xff0c;透视变换以及颜色加法的相关概念和操作 一、边缘填充 当我们对图像进行仿射变换后往往会发…...

LVGL Animation Image(Animimg)控件详解

一、Animation Image&#xff08;Animimg&#xff09;控件详解 1. 概述 功能&#xff1a;Animimg 是 LVGL 中用于显示动画图像的控件。特点&#xff1a;支持从多个静态图像创建动画效果。 2. 创建和初始化 创建方法&#xff1a;lv_obj_t * lv_animimg_create(lv_obj_t * pa…...

【unity游戏开发入门到精通——UGUI】GraphicRaycaster图形射线投射器组件

注意&#xff1a;考虑到UGUI的内容比较多&#xff0c;我将UGUI的内容分开&#xff0c;并全部整合放在【unity游戏开发——UGUI】专栏里&#xff0c;感兴趣的小伙伴可以前往逐一查看学习。 文章目录 前言Graphic Raycaster参数1、Ignore Reversed Graphics&#xff1a;是否忽略反…...

WPF GDI 画 晶圆Mapping图

效果图 UI代码 <Window x:Class="WpfWaferMapping.Window3"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expre…...

AI核心概念之“提示(Prompt)” - 来自DeepSeek

1. 表层理解&#xff1a;Prompt 是用户输入的文本指令 直观表现&#xff1a; 对于普通用户&#xff0c;Prompt 是输入到对话框的文本&#xff08;例如 ChatGPT 中的问题&#xff1a;“写一首关于秋天的诗”&#xff09;&#xff0c;点击发送后&#xff0c;模型返回结果。 常见…...

Golang|Kafka在秒杀场景中的应用

我们的程序在面对 kill -9 这样的指令的时候会直接退出&#xff0c;不能保证数据持久化到mysql完后再退出而且我们现在的并发量仍然不够&#xff0c;只能加机器&#xff0c;多机器并发写mysql可能导致mysql扛不住&#xff0c;mysql写的并发量不能根据我们机器的数量的增长而增长…...

【前端基础】--- HTML

个人主页  :  9ilk    专栏  :  前端基础 文章目录 &#x1f3e0; 初识HTML&#x1f3e0; HTML结构认识HTML标签HTML文件基本结构标签层次结构快速生成代码框架 &#x1f3e0; HTML常见标签注释标签标题标签 h1-h6段落标签 p换行标签 br格式化标签图片标签 img超链接标签…...

各证券公司QMT的本地VSCode开发环境配置指南

各证券公司QMT变种的本地开发环境配置指南 各大证券公司的量化交易平台&#xff08;如兴业证券的SMT-Q&#xff09;基本都是基于QMT开发的变种系统&#xff0c;它们的底层架构相似&#xff0c;但在接口和功能上可能有所差异。下面介绍如何使用本地Python、Anaconda和VSCode搭建…...

注意力机制的改进

Transformer架构中的注意力机制优化是提升模型效率和扩展处理长序列能力的关键。以下从多个维度详细解析注意力机制的优化方法&#xff1a; arXIv论文链接 1. 稀疏注意力&#xff08;Sparse Attention&#xff09; 通过限制每个位置仅关注特定区域&#xff0c;减少计算量&am…...

Golang|select

文章目录 多路监听超时控制 多路监听 如果selcet外面没有for循环&#xff0c;则只会监听一次&#xff0c;要实现一直监听的话要加for循环但是如果要设置退出条件的话&#xff0c;break语句只会退出这个select而不会退出for循环 select也可以有default&#xff0c;用于不用等cha…...

网络安全与信息安全的区别​及共通

在数字化时代&#xff0c;网络安全与信息安全已成为保障个人、企业乃至国家正常运转的重要防线。尽管二者紧密相关且常被混为一谈&#xff0c;但实则存在显著差异。当然&#xff0c;它们也有一些相同点&#xff0c;比如都以保障数字环境下的安全为核心目标&#xff0c;均需要通…...

【刷题2025】知识点梳理

1.常用操作 二进制异或 ans = a ^ b 向上取整 math.ceil(a/b) 向下取整 math.floor(a/b) 每次取最低字节:一个字节八位 while a > 0:aSum += a & 0xff # 累加最低字节的大小a >>= 8 # 一个字节八位, a右移八位, 将最低字节移除 正则匹配 # 编译正则表达式…...

# 从零开发小红书风格Flutter应用:图片上传功能实现踩坑记录

从零开发小红书风格Flutter应用&#xff1a;图片上传功能实现踩坑记录 作为第一次开发完整Flutter应用的经历&#xff0c;我在实现类似小红书的图片上传功能时遇到了不少挑战。本文将完整记录整个开发过程&#xff0c;包括技术选型、实现细节和遇到的问题。 技术栈选择 前端…...

Android studio配置Flutter遇到的问题总结

1、Android studio 安装cmdline-tools后 &#xff0c;cmd里运行flutter doctor,依旧报错 如何处理&#xff1a; 先执行&#xff1a; flutter config --android-sdk "E:\sdk\Sdk&#xff08;SDK路径&#xff09;" 再执行&#xff1a;flutter doctor --android-licen…...