一、一个中继盒,30米距离,10秒开走一辆车
2025年8月,英国某保险公司公布了一组数据:2024年全年,通过中继攻击(Relay Attack)盗窃的车辆较前一年增加了37%,平均每起盗窃用时不到60秒。攻击者只需要两个几百元的中继设备:一个人在车主家门口捕捉钥匙信号,另一个人在车门旁接收转发——车机以为钥匙就在身边,解锁、启动一气呵成。
这不是BLE/NFC数字钥匙的新问题。真正令人担忧的是:很多车型已经升级了UWB(超宽带)数字钥匙——这项技术本应是中继攻击的终结者,因为UWB通过ToF(Time of Flight,飞行时间)测距可以精确判断钥匙的真实距离。但实测发现:部分车型的UWB实现只把UWB测距当作"辅助参考",并未绑定到安全决策逻辑中——攻击者绕过UWB,降级攻击BLE,车机照样开门。
更讽刺的是:CCC(Car Connectivity Consortium,车联网联盟)的Digital Key 3.0规范已经明确要求UWB测距结果作为安全决策的强制输入。但规范发布到量产落地之间,还有大量"实现细节"在消耗安全水位。
二、数字钥匙的"三重防护"与"三重突破"
2.1 主流数字钥匙技术栈
CCC Digital Key规范经历了三代演进:
| 版本 | 通信技术 | 安全锚点 | 定位精度 | 主要威胁 |
|---|---|---|---|---|
| DK 1.0 | NFC | SE (Secure Element) | 厘米级(接触) | 物理窃取 |
| DK 2.0 | NFC + BLE | SE + 应用层加密 | 米级 | BLE中继攻击 |
| DK 3.0 | NFC + BLE + UWB | SE + UWB ToF测距 | 10cm级 | 降级攻击 + UWB测距欺骗 |
DK 3.0的核心理念是三层防御:
- NFC:作为终极备用通道(手机没电也能用),通信距离<10cm,天然防远程中继
- BLE:负责设备发现和连接建立,通信距离10-30米,中继攻击的主要入口
- UWB:负责精确测距和活体检测,通过ToF计算钥匙真实距离
2.2 攻击者如何突破三层防线
攻击手法1:BLE中继攻击(经典,但仍有效)
攻击链路:
车主手机(在家) ←→ 中继设备A ←→ 中继设备B ←→ 车辆
(BLE) (4G/WiFi) (BLE)
中继设备的延迟通常<10ms,BLE协议本身不做距离检测,车机无法区分信号来自1米还是30米。
攻击手法2:UWB测距欺骗
理论上UWB的ToF测距无法被中继——因为无线电波的飞行时间与物理距离强相关,中继会引入额外延迟。但实际攻击中,攻击者可以通过信号放大重放或PHY层时序操纵来欺骗测距结果。2024年Black Hat上就有研究者演示了对特定UWB芯片的Cicada攻击,成功将测量距离从实际的15米缩短到虚假的2米。
攻击手法3:降级到BLE
这是目前量产车型最常见的漏洞。车机在UWB测距失败时的降级策略不当——比如UWB模块初始化超时、手机电量过低关闭UWB——车机直接回退到仅BLE验证。攻击者可以主动干扰UWB频段(6-8.5GHz),迫使系统降级。
三、CCC DK 3.0的安全架构要点
3.1 密钥分层体系
CCC数字钥匙的密钥管理分为四个层次:

┌────────────────────────────────────┐
│ L4: 车主账号密钥 (Owner Key) │ ← 绑定OEM账户
├────────────────────────────────────┤
│ L3: 车辆密钥 (Vehicle Key) │ ← 每车唯一,存储在SE
├────────────────────────────────────┤
│ L2: 朋友密钥 (Friend Key) │ ← 分享给家人/代驾,可撤销
├────────────────────────────────────┤
│ L1: 会话密钥 (Session Key) │ ← 每次解锁临时生成
└────────────────────────────────────┘
关键设计:朋友密钥可以由车主通过OEM App随时创建和撤销,不需要物理接触车辆。这种"可撤销的临时授权"是CCC规范的核心创新之一。
3.2 UWB安全测距的关键参数

要让UWB真正发挥作用,以下三个参数必须有严格阈值:
| 参数 | 含义 | 推荐阈值 | 攻击降级风险 |
|---|---|---|---|
| ToF距离 | 飞行时间换算距离 | ≤2米(解锁)/ ≤0.5米(启动) | 测距欺骗 |
| 信号到达角 AoA | 钥匙相对车辆的方向 | ±15度 | 定向天线欺骗 |
| STS(扰频时间戳) | 加密时间戳防重放 | 强制验证 | 重放攻击 |
最容易踩的坑:很多OEM只检查ToF距离,忽略了AoA和STS。攻击者使用定向天线从另一方向发送UWB信号,ToF距离通过但实际钥匙在反方向——这是物理上的"盲区"。
四、四个真实踩坑场景
坑1:BLE配对绑定在手机重启后丢失
某车型的数字钥匙在iPhone重启后,BLE配对信息丢失,需要用户重新掏出手机NFC贴车门才能恢复。产品经理认为这是"体验问题",安全团队指出:如果每次重启手机都须NFC恢复配对,那假设用户在地下车库手机重启——BLE和UWB都无法工作,NFC需要靠近车门感应区——如果攻击者在这个过程中盗取了车辆的离线解锁Token呢?
修复:BLE配对的恢复不应依赖单一通道。应该在SE中持久化配对密钥,手机重启后自动通过SE恢复。
坑2:朋友钥匙的撤销存在"时间窗口"
某车主把数字钥匙分享给代驾后,在App上点击"撤销"。App显示撤销成功,但代驾的手机断网状态下仍可解锁车辆——因为车辆的SE中缓存的朋友钥匙吊销列表(CRL)更新时间是24小时。
根因:朋友钥匙的撤销依赖车辆联网更新CRL,而车辆并非时刻在线。
修复:朋友钥匙设置短有效期(默认24小时或单次使用)+ 联机强制验证双重机制。同时引入Grace Period(宽限期)的时间限制——如果车辆超过X小时未联网,拒绝所有朋友钥匙的离线验证。
坑3:UWB测距的"蓝牙锚点"被欺骗
UWB的测距需要先在BLE上完成时间同步(锚点建立),然后切换到UWB进行精密测距。如果攻击者在BLE锚点建立阶段注入伪造的时间戳,后续UWB的ToF计算的基础就错了。
根因:BLE锚点的时间戳没有经过加密签名保护。
修复:BLE锚点的同步消息应使用车辆SE中的预共享密钥签名,接收端验证签名后再建立时间基准。
五、落地建议

1. UWB不能只是"增强体验"
如果UWB测距失败,不应降级到仅BLE验证。正确的策略是:UWB失败 → 要求NFC接触验证 → 降级BLE仅用于"迎宾灯光"等非安全功能。
2. 朋友钥匙的撤销链路需要多通道保障
不能仅依赖车辆联网更新。建议引入SMS推送 + App后台静默同步 + 下次连接时服务器强制握手三道防线。
3. 密钥生命周期管理统一化
数字钥匙涉及SE、手机安全区(如iOS Secure Enclave)、云端车主账户、车辆BLE/UWB模块等多方参与。密钥管理层面,可基于支持CCC规范的KMS方案(如安当KMS)统一编排车主密钥、朋友密钥、会话密钥的生成、分发和撤销流程,避免各端密钥同步不一致导致的授权残留。
六、总结
数字钥匙的安全水位,本质上不取决于最强的那层防护(UWB),而取决于最弱的那层(BLE降级策略)。CCC DK 3.0规范给出了正确的架构方向,但从规范到量产,中间隔着大量实现细节——UWB测距的结果是否真正参与安全决策、BLE锚点是否经过签名保护、朋友钥匙的撤销是否能实时生效,这些问题才是决定一辆车是否会被30米外开走的关键。
互动问题:你觉得数字钥匙的"便利性"和"安全性"之间存在不可调和的矛盾吗?什么样的设计可以同时兼顾两者?评论区聊聊你的想法。