汽车防盗器开放协议栈的安全分析
1. 引言
传统上,像汽车防盗器这样的嵌入式安全系统依赖于专有算法和协议,其规范是保密的。这种方式虽会增加攻击者了解系统细节的难度,但非公开规范限制了安全机制接受专家审查的机会。例如,针对伦敦公共交通的MIFARE牡蛎卡和远程控制系统中使用的KeeLoq算法的攻击,就凸显了这种安全理念的风险。
相比之下,像高级加密标准(AES)竞赛和安全哈希算法 - 3(SHA - 3)竞赛等开放评估工作,因其能产生可靠的解决方案而被广泛认可。如今,出现了如开源防盗器协议栈这样的嵌入式系统开放安全规范,这是一个积极的趋势。
汽车防盗器系统需要安全令牌(通常是钥匙扣)才能启动汽车。若令牌不在,汽车的发动机控制单元(ECU)会中断点火、启动电机电路或燃油泵等关键部件。汽车和钥匙扣之间通常通过RFID进行通信,汽车配备RFID阅读器,钥匙扣包含RFID标签。早期模型使用静态代码,现代防盗器则采用滚动代码或加密技术防止钥匙扣被复制,它们之间的通信涉及一个协议栈,该协议栈定义了帧大小、数据格式、错误检测和数据转换等。
我们的分析发现,攻击者在通信范围内使用廉价的标准阅读器,就能跟踪汽车钥匙、锁定其EEPROM部分区域,甚至永久破坏其防盗功能。监听钥匙和汽车之间的真实认证协议运行后,攻击者还能读写钥匙的内存。此外,我们还探讨了中继攻击和会话劫持等问题。
2. 防盗器协议栈描述
用于汽车防盗器应用的开放安全协议栈由物理层、逻辑层、协议层和AES加密层组成。
- 物理层 :处理调制类型、数据编码和比特定时。
- 逻辑层 :