车联网安全之滚动码系统研究
字数 1778 2025-08-29 08:30:18
车联网安全之滚动码系统研究教学文档
一、研究背景与汽车钥匙系统发展
1.1 无钥匙进入系统发展历程
从无线遥控无钥匙进入(RKE)系统开始,到被动式进入系统(PEK)和被动进入/被动启动(PEPS),再到被动式安全进入系统(PASE),无钥匙进入系统在过去40年经历了显著发展:
- 技术演进:从ASK、FSK调制到蓝牙低功耗(BLE)系统的编码跳频扩频,再到超宽带(UWB)调制
- 安全演进:从简单的无编码数字技术到编码数字技术、滚动编码和高级加密标准(AES)的实施
1.2 遥控钥匙(RKE)系统
工作原理:
- 发送信号:用户按下按钮,遥控器发送RF信号(含特定识别码)
- 接收信号:车辆接收器接收并解析RF信号
- 验证信号:识别码匹配则发送信号到ECU
- 执行指令:ECU执行解锁/锁定等操作
技术特点:
- 使用315MHz或433MHz频段的RF信号
- 采用滚动码技术防止信号拦截和复制
- 单向验证机制(钥匙→车辆)
1.3 被动进入系统(PKE)
工作原理:
- 车辆周期性发送LF信号(1-3米范围)
- 钥匙接收LF信号并响应发送HF信号
- 车辆验证HF信号中的识别码
- 识别码匹配则自动解锁
技术特点:
- 使用125kHz LF信号和315/433MHz HF信号
- 双向认证和加密技术
- 车辆主动发起验证
1.4 被动进入和启动系统(PEPS)
工作原理:
- 进入车辆:同PKE机制
- 启动车辆:车内LF信号确认钥匙位置,验证后允许启动
技术特点:
- 结合PKE所有技术
- 多天线阵列实现精确定位
- 集成NFC和蓝牙功能
- 蓝牙提供更高安全性(跳频机制、测距定位)
- 测距精度:RSSI方法(1-5米),AoA方法(约0.5米)
二、滚动码机制详解
2.1 滚动码基本原理
- 每个钥匙fob信号传输都是唯一的(随每次按键变化)
- 通过16位宽计数器实现唯一性
- 钥匙和车辆计数器同步机制:
- 正常情况:双方计数器同步增加
- 重放攻击:接收器会丢弃旧计数器信号(Cv > Ck)
2.2 同步机制分类
单一窗口(Single Window)
- 条件:计数器差值Cdiff = Ck - Cv < 16
- 特点:
- 一次按键即可同步
- 车辆立即更新计数器
- 丢弃所有未接收到的代码
重新同步/双窗口(Resync/Dual Window)
- 条件:16 < Cdiff < 2^15
- 特点:
- 需要两次按键操作完成同步
- 第一次信号被暂存,验证第二次信号计数器值是否+1
- 提供更高安全性防止重放攻击
2.3 未来代码机制
- 车辆维护一组"未来代码"集合
- 当钥匙fob计数器领先时:
- 接收到的代码若匹配未来代码集合,则重新同步
- 使之前未使用的代码失效
- 安全漏洞:攻击者获取未使用的未来代码可在车主再次使用前重放
三、滚动码攻击技术
3.1 RollJam攻击
攻击流程:
- 时刻捕捉信号
- 干扰车辆与钥匙的正常通信
- 引诱车主第二次发送解锁信号(因第一次被干扰)
- 重放第一次捕获的信号
原理:
- 拦截并阻止一个滚动码后,合法用户会发送下一个
- 接收设备未意识到有滚动码被阻塞并存储
- 被拦截的滚动码仍被视为有效
缺点:
- 对阻塞装置放置要求高
- 必须及时使用收集的信号(否则会随更新失效)
3.2 RollBack攻击
攻击流程:
- 时刻捕捉信号
- 干扰车辆与钥匙的正常通信
- 引诱车主第二次发送解锁信号
原理:
- 利用滚动码系统的回滚机制
- 当多个连续已发送的滚动码被重新发送时,系统认为出错并回滚
- 无需立即重放,可在任意时间使用
优势:
- 不受时间限制(不像RollJam需立即使用)
- 对阻塞装置要求相对较低
四、防御措施与安全建议
-
系统设计改进:
- 限制回滚机制的使用
- 实现更严格的同步验证
- 增加额外的身份验证因素
-
用户防护:
- 使用法拉第袋存放钥匙
- 注意异常解锁行为
- 定期更换钥匙电池(避免因低电量导致信号弱)
-
技术升级:
- 采用PEPS替代传统RKE系统
- 部署UWB技术提高定位精度
- 实施更强的加密算法
五、实验与CTF应用
硬件需求:
- ESP32 + CC1101模块×2
- SDR设备(如RTL-SDR或EvilcrowRF)
攻击模拟:
- 可实现RollJam和RollBack攻击原理演示
- 可用于设计车联网安全CTF题目
教学价值:
- 帮助理解滚动码系统工作原理
- 演示实际攻击场景
- 培养安全防御思维