蓝牙车钥匙被「中继攻击」打穿的故事,安全研究者演示过不止一次:两个盒子把钥匙信号原样放大转发,车就以为钥匙在身边——物理上钥匙可能远在数十米外。
UWB 数字钥匙的解法不是「更强的加密」,而是换判据:从信号强度换成飞行时间。强度可以放大,时间不行。
这篇从 CCC Digital Key 的三层 stack 讲起,拆开 STS 静态/动态的防护差异、成本结构为什么才是普及推手,以及实测联调里三个真实的坑。文末给选型的人一份五问清单。
先给结论1. UWB 数字钥匙的安全感不来自「UWB 很先进」,来自一个物理事实:它测的是飞行时间,不是信号强度——强度可以放大,时间不行。 2. 一套 CCC Digital Key 是三层 stack:BLE 负责发现和会话、UWB 负责厘米级测距、NFC 负责没电兜底。少任何一层,就多一个明确的失效模式。 3. 安全是配出来的,不是芯片自带:静态 STS 和动态 STS 对重放/中继攻击的防护差着一整个等级;实测联调里,绝大多数「测不通」最后都归到配置差异上。
一、引子:中继攻击是怎么把蓝牙钥匙打穿的
被动无钥匙进入(蓝牙钥匙)刚普及那几年,安全研究者反复演示过同一种攻击:中继攻击。
原理朴素得近乎无聊:车主钥匙还在包里,攻击者 A 在车附近放一个盒子,攻击者 B 跟着车主,两个盒子把钥匙和车之间的信号原样放大转发。车收到的信号「够强」,于是判定钥匙就在旁边——解锁、启动。物理上钥匙可能远在数十米外,链路却被「拉长」到了攻击者手里。
问题的根子在于判据:蓝牙钥匙靠信号强度(RSSI)判断远近,而强度是最容易被操纵的量。
2026 年,这个方向的升级明显在加速,三个信号:
- 2026 年 9 月 30 日,FCC 发布拟议规则,要更新沿用二十多年的 UWB 监管框架,CCC 公开表态支持——监管现代化是数字钥匙规模化部署的前提;
- 2026 年 8 月,NXP 宣布其车规 UWB 单芯片(Trimension 系列)进入宝马 2026 年车型,同一颗芯片同时做数字钥匙与舱内儿童存在检测;
- 2026 年 2 月,Aliro 1.0 标准发布,把跨品牌数字钥匙带进智能锁;9 月已有支持 UWB + Aliro 的锁具上市。
技术没变,场景在铺开。这篇文章就把这套东西拆开看。
二、三层 stack:每层只干一件事
CCC Digital Key(车连接联盟的数字钥匙规范)把一次「用手机开车门」拆成了三层,每层有明确的最小职责:
图1:手机与车之间由 BLE、UWB、NFC 三层各司其职——BLE 负责「找到你」,UWB 负责「确认你在哪」,NFC 负责「万一都不行」。
BLE:发现、会话建立、参数交换。功耗低、可以常开,负责把两边的会话参数协商好(这些参数走带外通道交换)。但它只能判到「米级附近」——精度上不了台面。
UWB:精确测距,安全核心。厘米级,判据是飞行时间。这是整套方案的安全根,后面单独讲。
NFC:兜底凭证。手机没电了,贴一下车门照样能开。可靠,但必须贴身——它是「最后一道」,不是主力。
为什么必须是三层,不能合并成一层?因为每层各自解决一个不同约束:BLE 省电但粗、UWB 准但要先建会话、NFC 可靠但得贴身。少任何一层,就多一个明确的失效模式——没 BLE,每次开门都要先掏手机点两下;没 NFC,手机没电就被关在车外;没 UWB,就退回蓝牙钥匙的中继攻击困局。
顺带一个容易被忽略的点:CCC 这套规范里,UWB 只负责测距,不测角。要做「车找人在哪」这类需要方位的功能,得另想办法。
三、UWB 凭什么防住中继攻击
图2:左——蓝牙钥匙靠 RSSI 判断远近,中继盒把链路拉长即可欺骗;右——UWB 测飞行时间,链路拉长导致时间变长,车辆判定钥匙不在身边,拒绝解锁。
第 1 篇算过一笔账:UWB 信号带宽在 500MHz 量级,对应约 1ns 的时间分辨率,乘上光速就是30cm 量级的距离误差上限。数字钥匙要的是「钥匙在车边 1 米内才解锁」这种判断,UWB 的误差预算绰绰有余。
关键在于中继攻击在这个判据下直接失效。攻击者把链路拉长,无线电波的传播时间就实实在在地变长了——d = c·ToF/2,时间造不了假。想骗过一个 10cm 量级的判定窗口,转发时延就得压到亚纳秒,这已经不是「加个盒子」能搞定的事。
这就是标题里那个问题的答案:强度可以放大,时间不行。
但「测距准」只是拿到了安全的一个必要条件,另一个必要条件在密钥那一层。
四、STS:安全是配出来的,不是芯片自带
UWB 的测距帧里带一段加扰时间戳序列(STS),它的作用之一是防重放——把每一轮的测距帧变成「一次性」的,录下来重发没有。STS 有两种模式,差别很大:
| 模式 | 工作机制 | 对重放/中继攻击 |
|---|---|---|
| 静态 STS | 每轮复用同一段序列,实现简化 | 易受重放/中继攻击 |
| 动态 STS | 序列按索引逐时隙滚动,每轮不同 | 缓解 |
公开文档里有一张更细的威胁矩阵,三种攻击方式对两种 STS 的防护结果大致是:
| 攻击方式 | 静态 STS | 动态 STS |
|---|---|---|
| 空中被动监听 | 缓解 | 缓解 |
| 信号放大 | 缓解 | 缓解 |
| 重放 / 中继攻击 | 易受 | 缓解 |
安全等级还有一档可调:从「不加密不认证」到「加密 + 认证 + 128 位消息认证码」分多级,fiRa 协议里常见的是「认证 + 64 位 MIC」这一档。选哪档,是产品定义阶段的决定,不是固件默认值。
这里有个实测踩出来的教训:联调客户车钥匙时,备份脚本里的 STS 配置(预置明文密钥模式)和标准配置(动态 STS)不是一回事,跳窝开关(连续跳 vs 关闭)、PSDU 速率(6.81M vs 850K)也对不上。脚本能跑通,不代表跑的是标准配置——能跑和跑对,是两回事。
五、一颗芯片的生意:成本结构才是普及的推手
回到工程视角:为什么车企愿意为 UWB 数字钥匙买单?
NXP 那颗进宝马的单芯片是个很好的样本:它把「安全测距」和「短距雷达」合到了一颗芯片上。数字钥匙用测距,舱内儿童存在检测用雷达回波——后者正在进入欧洲和中国的 NCAP 评价体系,是法规驱动的刚需。一颗芯片摊两个功能,成本账才合得上。这正是第 2 篇讲的逻辑:技术可行性只决定「能不能做」,成本结构决定「会不会普及」。
认证侧的进展同向:CCC 的数字钥匙认证产品 2025 年达到了 115 个(2025 年 3 月认证范围扩展之后明显放量);FiRa Core 3.0 已把 CCC Digital Key 的 UWB 特性纳入认证,2026 年 3 月出现了首家通过 FiRa Core 4.0 认证的芯片。
国内这边,数字车钥匙也有了自己的行业标准——T-CAAMTB 223.4-2024《数字车钥匙系统》第 4 部分就是 UWB 系统。标准先行,通常意味着量产落地跟着来。
市场预测同向:UWB 芯片组市场规模预计从 2026 年约 25 亿美元增长到 2032 年约 47 亿美元;数字车钥匙市场 2025 年约 27 亿美元,2032 年预计超 125 亿(年复合约 25%,第三方研究机构口径,仅看量级)。需求端的结构很清楚:手机侧 UWB 保有量扩大 + 车钥匙升级,是两轮独立的驱动。
六、工程视角:实测联调里的三个坑
前面都是公开层面能查到的。下面三个坑是我自己踩过的,按踩的深浅排序。
坑一(影响不大,但很典型):标准默认的 960ms 间隔,低功耗调度下有细微影响。
CCC 规范的测距间隔是 96ms 的整数倍,标准默认取 960ms。我在联调环境实测过:按默认值跑,测距会时不时失败——指令发下去没有结果。把间隔从 960ms 调到 96ms,成功率明显提高。但要诚实说:这不是量级级的差异,是细节级的,不值得为它改架构,但值得知道它为什么发生。
机制上说清三件事,含混在一起就会夸大:
- 单轮测距值的误差,不随间隔放大。DS-TWR 一轮内部有三次交换,两端时钟偏差在这一轮内就被抵掉(见第 1 篇)——不是「间隔越长、每轮偏得越多」。
- 慢时钟的漂移有固件兜底,不会无界累积。低功耗场景下设备大部分时间在睡,靠片上低功耗时钟(32k 量级)维持调度、计算唤醒时刻。这种时钟精度有限(几十 ppm 量级),但固件会周期性拿快时钟(124.8M 量级)把它校准回来——「睡久了就一路漂下去」并不会发生,这是这件事「还好」的原因。
- 间隔真正动的是校准之间的残余。校准之后的漂移仍随时间线性增长:按 20ppm 估,960ms 距上次锚定最远时能漂出约 20µs,96ms 只有约 2µs——而 UWB 前导捕获的窗口正是微秒量级。间隔越短,唤醒时刻离上次锚定越近,漂出捕获窗口、这一轮同步失败的概率越低。调到 96ms,等于把锚定密度提高十倍——成功率有改善,但改善的是边际概率,不是根因。
这背后还是那个天平:间隔越短,同步越稳,但空口和功耗的账越大。标准默认值取的是「及格线」,现场值要按现场重算。
坑二:状态显示「成功」,距离却是负的。
实测中遇到过一种现象:测距状态一切正常,上报的距离却是负数。第一反应是算法错了,最后定位到的是天线时延没标定——第 2 篇讲过,芯片时间戳和电磁波离开天线口之间差一个固定时延,不标就会系统性偏掉;偏过头,距离就「减」成了负的。
负距离不是 bug,是标定缺失的直接信号。标定不是仪式,是每次测量的前提。
坑三:备份脚本 ≠ 标准配置,差异点要逐项对。
这一条最费时间。联调时拿出的「以前能跑的备份脚本」和标准配置,差在 STS 模式、跳窝开关、PSDU 速率上;再加上一些场景性约束:密钥轮转开关两端要一致、响应方时隙索引每个节点必须不同(重复了结果就乱套)、一对多场景要逐个配索引。任何一项对不上,现象都是「测不通」。
教训:车钥匙是配置密集型工程。「先跑起来再对齐」在这个场景里行不通——配置错了,跑起来的也是个错的。
七、收敛:如果你要选型,问这五句
| # | 该问的问题 | 对应本文 |
|---|---|---|
| 1 | 认证清单是什么——CCC Digital Key / FiRa 认证做到哪个版本、覆盖哪些特性? | 第五节 |
| 2 | STS 用静态还是动态?密钥怎么 provisioning?重放/中继攻击的防护做到哪一级? | 第四节 |
| 3 | 失效链路是什么——手机没电时 NFC 兜底有没有、体验如何? | 第二节 |
| 4 | 整机形态下的天线时延标定,数据能不能看?(回接第 2 篇:负距离就是没标定的信号) | 第六节 |
| 5 | 目标市场的法规核对过吗——FCC 框架正在改,中国有 T-CAAMTB 标准 | 第一节 |
给工程师的三句话:时钟同步的账按现场重算;标定先行,负距离就是警报;配置逐项对标准,别信备份脚本。
收尾
所以「手机当车钥匙安不安全」这个问题,答案不在发布会上,在三个地方:物理层测的是时间还是强度、协议层 STS 配的是静态还是动态、工程层配置有没有逐项对标准。
蓝牙钥匙是被中继攻击打穿的;UWB 数字钥匙能不能立住,取决于上面三件事有没有做对。
不谈参数,只看跑出来的数。