ISO4229安全访问规范分析,ISO4229安全访问漏洞分析

一、背景:
在汽车ecu软件中,如果需要依靠汽车总线(如can)刷新cpu里面的程序时,必须要通过安全访问,从而防止非法刷新操作危及车辆安全(例如,黑客攻击)。在车联网以前,车辆总线是一个自封闭的网络,黑客通过远程电脑控制汽车在物理上是不可能的,除非亲自在汽车里操作或者首先在汽车的obd接口上安装无线设备再远程操控。随着车联网时代的到来,越来越多的车辆会选择远程云端刷新程序,实现快捷修复程序bug,但这也为黑客远程攻击车辆程序提供了渠道。
二、iso4229安全访问规范分析:
对于传统汽车,虽然黑客远程攻击汽车软件的可能性很低,但是iso4229规范也多少考虑了恶意刷新软件的可能性。因此在安全访问方面还是考虑比较多的:
1.算法固化在ecu和上位机程序里,不通过总线传输。
2.每个seed只能使用一次,如果key计算错误。重新访问返回新的seed,防止黑客对一个seed玻璃破解。
3.连续2次安全访问尝试失败后启动读seed延时机制,比正常2ms响应一次的时间被延长5000倍,大大缩短黑客随机碰撞seed-key的次数。
三、iso4229安全访问漏洞分析:
1.seed-key是可重复使用的。虽然黑客可能获取不到seed-key的算法,但是可以获取到有限的seed-key的数对。这个在车辆开发阶段,整车厂或供应商测试时,每次刷新时有效的seed-key都在can网络上保留着。虽然测试人员也不知道算法,但不能防止有人监听网络报文提取每次安全访问seed-key的样本,为破解使用。
2. iso4229只规定seed生成方法是伪随机的,但是没有提出测试标准。有的软件工程师会用简单的seed生成算法,如图示,seed是cnt取样值的函数,seed=f(cnt取样值),最简单的函数就是seed=cnt取样值。
由于取样时刻是任意的(实际是os中取样任务周期的整数倍+os调度波动值,例如2ms*n+△t),取样出的cnt是随机的。随便测几下没问题,但是整体上统计就显示出规律性。如下图是对一个120mhz的16位定时器在一个2ms任务的统计结果。显然,1000ms内看起来是随机的,但是从2000ms开始就体现出宏观的规律性。
有的程序员会引入非线性计算(如下图seed=cnt * cnt+offset,或更复杂的)让统计结果看起来均匀分布。但是会使虚假seed数量增多(即有的seed永远取不到),减小了seed的样本空间,也就减少了黑客随机碰撞攻击的次数。
3. iso4229只要求解锁成功后seed就变成0但是没有限制解锁成功前可以获取seed的次数,很多整车厂的spec也没有该要求。这意味着ecu上电后只要上位机不请求解锁,就可以无限次的获取seed。这样黑客用上位机以固定周期(如2ms)一直取读seed,就可以获取seed的统计特性,从而破解出seed的生成算法。根据第1条风险,只要知道一个seed-key值,让ecu在期望的采样时刻做风险2的碰撞试验。通过有限次试验,就能获取期望的seed,安全访问就被攻破了。
根据上述分析,传统安全访问风险的根源在于seed可以重复出现。
四、车联网条件下iso4229安全访问的基本条件:
1. seed的产生依然是伪随机数,这个和传统车一样不可改变,因为给车上安装真随机数发生器成本太大。
2. seed的产生是不可重复的。
3.一个驾驶循环内seed的产生次数是有限(如3次)。且ecu上电后10秒内不返回seed,防止黑客连续获取seed做随机碰撞攻击。
五、seed的生成方案:
根据第四节描述,可以参考网上银行的otp动态口令,用hmac算法生成不可重复的seed。方案如下:
ecu上电后eeprom初始化完成,读出上次seed计算的次数n,然后用公式seed[i]=hmac(key,n+i)连续计算三个seed[0,1,2]存储在ram里。
此处key是一个任意固定值的参数。
ecu上电超过10s后,上位机有一次读seed请求,就返回一个seed[i],同时立即存储n=n+1到eeprom。一个驾驶循环上位机最多只能获取3个seed。
测试阶段限制n的范围为[0,nt),量产出厂时n的初始值写nt,保证测试阶段的seed在量产车里不会出现。
六、综合seed-key安全访问方案
上面方案只保证了seed的不可重复。如果只为了满足这一条,hmac算法中的参数key都没有用,完全可以初始化为0,这显然浪费了这个算法的价值。
如果把公式seed=hmac(key,n)中的key作为整车安全访问的秘钥,只要ecu里的key和上位机的key’完全一样,用相同的hmac算法对n做数字签名就可以获得一样的口令,从而安全访问通过。因为hmac是hash散列函数,不可能根据已知口令推算出key。在eeprom作用下,可以保证n连续增长不重复,从而不会产生重复的口令。虽然n是可预测的,但是黑客在不知道key的情况下,不可能对n做出正确的签名。
ecu里的key和hmac算法完全分离,只有在整车下线时由工厂在安全的网络环境下写入,与测试阶段的key完全不一样。这样key的保密性和访问过程的安全性就完全掌握在整车厂手里。
七,小结:
传统安全访问策略的缺点:
整车厂要自己设计算法或委托供应商提供算法,且算法都不一样,使得刷新工具的兼容性差。同时,软件开发阶段底层软件工程师要考虑不同客户项目的差异,这种低效率重复工作量比较大。
有的整车厂的安全访问策略都是自己制定的,出于保密又不能公开被认证机构检验,其安全性不一定可靠。
有的整车厂的安全访问策略算法与秘钥是一体的,算法升级困难。
一个厂家的同一车型或很多车型都共用一个算法,风险的范围很大。
基于hmac算法安全访问策略的优点:
由于采用otp技术,seed永不重复,使针对一个seed的暴力破解也无效。整车厂只要保管好自己的秘钥就可以保证安全。
由于算法是统一的,避免低效率重复性开发及测试安全访问算法,软件成本大大降低。
由于算法是统一的,刷新工具可以兼容所有采样hmac算法的车辆。
由于key可以灵活配置,就能实现一个秘钥配一台车,大大缩小风险范围。
如果不是在出厂时写入key, 而是在4s店售出时写入key,那么掌握软件刷新的权限就流车主自己手里,后续整车厂想升级程序就要问车主请求key,这种出让安全访问权限的技术可以成为一个吸引消费者的卖点。

亿智电子携手合作伙伴推动端侧AI产业的快速发展
半导体器件产生多少热量以及如何顺利散发热量
华为P10领衔,荣耀V9、OPPOr9s、一加3T、小米5s、vivoX9拍照手机盘点
爱特梅尔公司扩展CryptoAuthentication产品组合
今年春季苹果没有硬件,谁能想到华为这么皮!
ISO4229安全访问规范分析,ISO4229安全访问漏洞分析
基于AP3216C芯片的三合一整合型光感测器设计
digilent全尺寸SD卡槽模块简介
人工智能主持人的出现 给人类带来了巨大的恐惧
出行充电宝要选什么样的最好,可安全带上飞机的充电宝推荐
滤波电抗器工作原理
为什么USB4接口如此受大家的欢迎
新功能发布 | TSMaster如何实现checksum和rolling counter的本地化支持
疫情下的供应链产生危机 电动化的转型对于传统车企而言并不简单
博越Pro和博越的本质区别对比分析
MAX17633同步降压DC-DC转换器的功能特点介绍
英特尔、索尼和NTT将联手开发6G新技术
MediaTek 展示突破性的 5G NTN 双向卫星通信技术
一文看懂静电和漏电怎么区别
三星Galaxy Note LTE白色版将上市