找回密码
立即注册
搜索
发回帖 发新帖

4878

积分

0

好友

620

主题
发表于 昨天 21:19 | 查看: 5| 回复: 0

导语:2015 年 DEF CON 23 现场,Samy Kamkar 当众演示了一个 32 美元的小盒子——RollJam。它藏在车底下就能让车主第一次按钥匙没反应、第二次照常开锁,等车主把车开走,攻击者手里还攥着一组"未来才能用"的滚动码。车厂引以为傲的 Keeloq 和 Hisec 加密芯片,在这套干扰-记录-回放组合拳下集体失守。


一、从固定码到滚动码:为何这套防御会失败

车钥匙遥控经历过两个发展阶段。第一代是固定码(fixed code),钥匙每次按下都发送同一个密码,攻击者拿个收音机在停车场蹲一下午就能把码全部收走。2000 年前后,Keeloq 芯片的滚动码(rolling code)成为主流:钥匙和车辆之间共享一个伪随机序列计数器,每次按下计数器加一,并通过密钥加密后传输。车载接收机收到信号后比对计数器,一旦发现序列对不上就直接丢弃。

这套设计原本想彻底掐死重放攻击。攻击者就算截到了第一组码,车主按下第二组之后,第一组也已经作废。但 RollJam 击穿了这套机制的一个隐含假设——车主遇到第一次按不开门,会自然而然地按第二次。

二、RollJam 四步劫持流程

RollJam四步劫持流程图:干扰、记录、回放与远程开锁

RollJam 的攻击过程可以拆成四步,全程都在车主毫无察觉的状态下完成:

第一步,干扰。 RollJam 上电后用两片 CC1101 射频芯片持续发射 315 MHz 和 433 MHz 两个 ISM(工业、科学、医疗)公用频段的噪声,覆盖绝大多数车钥匙和车库门遥控器使用的频率。车主第一次按下钥匙时,车端接收器被噪声完全淹没,压根没收到信号——表现就是"咦,怎么没反应"。

第二步,记录。 RollJam 的第三片 CC1101(更窄带、更灵敏)专门用于接收车钥匙信号,将第一组滚动码原封不动地记录下来。这把钥匙以为自己已经发出去了,其实信号只送到了 RollJam 手里。

第三步,干扰加回放。 车主等了几秒没反应,自然会再按一次。RollJam 这次一边继续干扰,一边把刚才存下的第一组码原样转发给车端,车门正常解锁。车主只觉得按慢了一拍。与此同时,第二组新码被悄悄收进了存储。

第四步,回收加远程开锁。 攻击者找机会取回 RollJam,按下小按钮,把藏好的那组"未来才能用"的滚动码发给车辆,车门应声而开。这组码仍然有效,是因为车主从第二组之后就没再碰过钥匙,车端计数器还没来得及将它标为作废。

Kamkar 在 DEF CON 演讲里把原理浓缩成一句话:"你按下第一次没反应,按下第二次门开了。你觉得没事开车回家了。但我现在有第二组码,我能开你的车。"

三、硬件清单:32 美元能买什么

RollJam 的硬件方案在 Make: 杂志的拆解文章中写得相当清楚,总成本不到 50 美元:

  • Teensy 3.1 微控制器:主控,承担拦截、回放、存储的全部逻辑
  • 两片 CC1101 射频收发模块:一片发射干扰噪声,一片监听信号
  • 第三片 CC1101:更窄带滤波,专门用于接收车钥匙信号
  • 电池供电:能够藏在车底连续运行数天
  • 物理按钮一个:用于触发"回放"模式

代码方面,Kamkar 在 DEF CON 之后把完整 Arduino 风格的源代码放到了 GitHub(eliddell1/RollJam、CR11CS/RollJam-315MHz-433MHz 等社区复刻版一直在持续更新)。攻击者不需要懂射频工程,把代码烧进 Teensy、接好三片 CC1101 就能直接使用。

整套方案最精巧的地方在于:所有逻辑都是被动应答式的,完全不需要事先掌握目标车辆的任何密钥信息,只是把"下一次按下的码"先收下来,等合适的时机再发出去。

四、验证车型与底层芯片

Kamkar 公开了实测清单,几乎覆盖了当时北美和欧洲市场的主力车型:

  • 汽车:Nissan、Ford、Toyota、Lotus、Volkswagen、Chrysler、Cadillac
  • 报警器:Cobra、Viper
  • 车库门:Genie、Liftmaster
  • 受害规模:Kamkar 估计达数百万辆

WIRED 记者就这份测试清单逐家联系车厂,回复相当耐人寻味:Liftmaster 和 Volkswagen 拒绝评论,Viper 说"正在了解细节",只有 Cadillac 的发言人 David Caldwell 公开表态——他承认这套方法"网络安全专家都清楚",但强调只对早期车型有效,最新款凯迪拉克已经换成了新的加密体系。

Kamkar 补了一刀:问题根源不在车厂,而在两家芯片供应商——Microchip 的 Keeloq 与德州仪器(TI)的 Hisec。这两家几乎垄断了北美车钥匙和车库门遥控芯片市场。只要车厂不更换新一代 Dual Keeloq 芯片,基于 Keeloq 的车辆就一直暴露在 RollJam 的攻击范围内。

五、修复:为什么十年过去了还没根治

这个漏洞从 2014 年 Spencer Whyte 首次公开(当时还需要外接笔记本)到 2015 年 Kamkar 做出独立小盒子,按理说十年时间足够所有车厂通过 OTA(空中远程升级)或召回换芯片完成修复。但现实是:

  • 大量车辆出厂时根本没有 OTA 能力,车厂想要修复就只能启动上百万辆规模的召回
  • Keeloq 芯片虽然推出了 Dual 版本做短时窗过期机制,但老车不换芯片就享受不到这层保护
  • 车库门场景更是无人问津,Genie 和 Liftmaster 的存量设备数以亿计

车厂后来在加密芯片上加入了一个"码簿范围限制"作为临时修复,让接收器只接受计数器落在合理窗口内的码。但这挡不住 RollJam 在车主第二次按键时的同步转发。


六、红队启示:这种漏洞的典型生命周期

RollJam 这类攻击向红队完整展示了一个漏洞从发现到失效的演变曲线:

  1. 研究阶段(2014 之前):原理早已公开,但没有人做成独立硬件
  2. 工程化阶段(2014 Whyte):需要外接笔记本,不方便携带
  3. 小型化阶段(2015 Kamkar):32 美元独立设备,任何人都能复刻
  4. 复刻阶段(2015 至今):GitHub 上涌现几十个分支,硬件供应链成熟
  5. 根治阶段(至今未到):OTA 覆盖不到老车,芯片换代周期十年起步

攻击者成本曲线一路下降,防御者修复成本却越来越高。进入"复刻阶段"之后,单点修补的意义基本消失,只有全行业换芯片才能真正根治。这正是十年过去了,车钥匙仍然是渗透测试高价值目标的原因。


七、思考题

  1. 滚动码的"码簿范围限制"为什么挡不住 RollJam 的同步转发?
  2. 如果 RollJam 攻击失败(车主只按了一次就走了),攻击者手里还有可用码吗?
  3. Keeloq 和 Hisec 为什么 2015 年后才被新车逐步淘汰?车厂的更新周期为何这么长?
  4. 假设你是某车厂的安全团队,2015 年拿到 RollJam 完整 write-up,3 个月、1 年、3 年的修复路线分别是什么?

素材出处

  1. makezine.com 2015-08-11《Anatomy of the RollJam Wireless Car Hack》Caleb Kraft 撰
  2. WIRED 2015-08-06《This Hacker's Tiny Device Unlocks Cars And Opens Garages》Andy Greenberg 撰
  3. Slate 2015-08-07《RollJam hacker device defeats rolling codes security for cars, garages》
  4. Forbes 2015-08-07《RollJam: This $50 'Universal Remote' Unlocks All Kinds Of Car Doors》Thomas Brewster 撰
  5. Samy Kamkar《Drive It Like You Hacked It》DEF CON 23 演讲,2015-08-08
  6. Spencer Whyte 2014-03 公开 RollJam 原始方法(依赖笔记本)
  7. GitHub:eliddell1/RollJam、CR11CS/RollJam-315MHz-433MHz 社区复刻仓库
  8. Wikipedia:Keeloq 加密芯片条目,Hisec 与 Dual Keeloq 演进



上一篇:GraphQL 漏洞挖掘第一讲:从内省查询到 IDOR 全攻击面
下一篇:开源iPhone-use:Codex通过USB操控真实iPhone的安装指引与架构解析
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-10-13 00:06 , Processed in 0.074042 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表