返回博客

数字钥匙从 BLE 到 UWB:为什么「测距」才是安全的核心

现在很多新车的钥匙,早就不是一把钥匙了。它可能是你手机里的一个卡片,靠近车门自动解锁,坐进去按一下就走。方便是真方便,但作为一个天天跟汽车电子打交道的人,我更关心另一个问题:

车凭什么相信「你就是你」,又凭什么相信「你真的就在车旁边」?

这件事的技术名字叫数字钥匙。它的十年演进,其实就是一场围绕「距离」的攻防战——从蓝牙到 UWB,变的不只是速度,而是车到底有没有能力,知道钥匙离它有多远。

一、三代钥匙,信任根基换过两次

  • 第一代是遥控钥匙(RKE):按一下,钥匙发指令,车执行。防重放靠滚动码——每次按下的码都不一样,录下来的旧指令用不了第二次。
  • 第二代是无钥匙进入与启动(PEPS):钥匙放口袋,你拉门把手,车感应到它在附近就解锁。这里发生了质变——你不再发指令,是车在主动判断你在不在附近。
  • 第三代是手机数字钥匙:钥匙进了手机安全芯片,靠 BLE / UWB / NFC 对话,还能分享给别人、到期自动失效。

这条线上有条暗线:信任的根基,从「你知道什么」慢慢变成了「你在哪里」。而「位置」一旦可以被伪造,整个安全模型就会塌——这正是中继攻击盯上的地方。

二、蓝牙的算盘:用信号强度猜距离

蓝牙数字钥匙测距靠 RSSI(接收信号强度):信号随距离衰减,离得近信号就强,量一下强度就能反推距离。

问题是这个「大概」非常不靠谱:身体挡住、金属反射、手机握在手心还是插裤兜,都会让读数漂移,误差经常到米级。车只能知道钥匙「在附近」,说不清是一米还是三米。

更要命的是第二层缺陷:信号强度可以被转发放大。蓝牙协议只关心「能不能通信 + 信号够不够强」,它没有能力判断这个信号是钥匙直接发的,还是别人转手搬过来的。

三、中继攻击:不破解,只「接线」

中继攻击可怕在于:攻击者不需要破解钥匙,甚至不需要碰它。

两个人各拿一台中继设备:一个靠近车主把信号截下来,另一个站在车边原样还原给车,两台设备之间用私有链路连着——钥匙和车之间,凭空多出一条「延长线」。

对车来说这条链路完全透明:格式没错、通信能建立、强度也够。于是车判定「钥匙就在门口」,解锁、迎宾、甚至允许启动。而钥匙其实在几百米外的车主口袋里。

问题不在加密算法不够强,而在这套技术从头到尾没有真正测量过距离。

四、UWB:把距离从「估算」变成「测量」

UWB 不靠信号强弱猜距离,而是用一颗「秒表」量时间。它发射纳秒级极窄脉冲,时间分辨率极高,测距用的是最朴素的 ToF(飞行时间):

距离 = 光速 c × 飞行时间 t

车和钥匙互发几轮脉冲,各自记录收发时刻,算出往返时间。因为光速是常数、时间是物理量,这个距离是测出来的,不是猜出来的——厘米级,抗多径,抗遮挡。

那它为什么能在物理层封住中继攻击?转发信号可以,转发时间不行。中继链路再快,信号也要先跑到中继设备、再过一段私有链路,中间必定多花时间。UWB 测出的飞行时间因此变大,车算出的距离比真实值长,立刻对不上——鉴权失败,门不开。

打个不太严谨但直观的比方:蓝牙像站在黑暗里听对方喊得多大声来猜距离,中间有人替他复述一遍,你就被骗了;UWB 像掐着秒表量回声多久回来——你可以帮人传话,但没办法让回声提前回来。

(口径说明:UWB 测距在射频侧常遵循 IEEE 802.15.4z 一类要求,上层互操作与安全测距细节常参考 FiRa 等产业联盟规范,各家实现不同。记住结论就够:UWB 让距离从可被伪造的信号强度,变成了可验证的物理事实。)

五、规范怎么把安全「分层」

数字钥匙领域常被提及的是 CCC(Car Connectivity Consortium) 数字钥匙规范。据公开资料,它大体按分层组织:

  • 应用层:钥匙生命周期——配对下发、分享临时钥匙、撤销删除
  • 认证层:解决「你是谁」——证书链互相验签,确认钥匙是真的且没被吊销
  • 传输层 / 物理层:BLE 负责发现唤醒,UWB 负责精确测距,NFC 兜底

为什么要分层?因为安全从来不是单一算法能兜住的。算法可以做得无懈可击,但只要物理层允许别人把信道「接长」,上层再严密也白搭。UWB 的价值恰恰在这里:它在最底层把距离变成一条可验证的事实,让上层认证有了可靠输入。

六、落到整车 EEA:一次「靠近即解锁」背后谁在干活

你在车门前站定的那一秒,背后至少三方在配合:

  • 手机侧:钥匙存在安全芯片,由钱包类应用托管,通过 BLE / UWB / NFC 对外通信
  • 云端侧:发钥匙、分享、吊销,管理账户与证书——整个信任体系的「发证机关」
  • 车端:数字钥匙模块做 BLE/UWB/NFC 锚点,负责测距与鉴权;结果经网关转发 BCM,落到门锁、迎宾、启动

这条链路里有两条底线,是我觉得最值得从业者盯紧的:

底线一:密钥存在哪。 私钥和证书不能躺普通存储,通常要进 SE 或 TEE,同时配合安全启动——从开机第一行代码起就验证可信。这是「钥匙本身别丢」的问题。

底线二:失效了怎么兜。 再好的方案也要考虑最坏情况:手机没电了、信号被强干扰了怎么办?工程上的答案通常是降级——NFC 刷 B 柱、机械钥匙开门、车内其他凭证启动。高级功能可以降级,但车必须还能进、还能走。

附:项目评审自查清单

  1. 距离判定用的是信号强度,还是真实飞行时间?
  2. 密钥是否落在 SE/TEE,安全启动是否闭环?
  3. 钥匙分享与撤销的链路,是否真的能即时生效?
  4. 手机没电、信号干扰、锚点失效,是否有可用的降级路径?
  5. 车端到执行器(网关、BCM)之间,报文是否做了白名单与源校验?

最后

从蓝牙到 UWB,数字钥匙的演进表面上是「精度更高了」,本质上是车的信任根基换了一次底座——从「信号够强,想必就在附近」,换成了「量过时间,距离确实对得上」。

我喜欢这个转变的地方在于:它不是在算法层面跟攻击者比谁更聪明,而是把「距离」重新交还给物理定律去裁决。攻击者能转发信号、能复刻协议,却没办法让光跑得更快一点。

说到底,安全的核心从来不是「我们加密得多好」,而是「我们到底能确认什么」。

📍 定位中…
--° -- ↻
体感 --°💧 --%💨 --
加载中…
🔊