0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

汽车电子设计 来源:lq 2019-02-25 10:28 次阅读

一、背景:

在汽车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,这种出让安全访问权限的技术可以成为一个吸引消费者的卖点。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 定时器
    +关注

    关注

    23

    文章

    3147

    浏览量

    112034
  • 汽车总线
    +关注

    关注

    10

    文章

    42

    浏览量

    15307
  • CAN网络
    +关注

    关注

    1

    文章

    42

    浏览量

    16776

原文标题:汽车软件刷新——当前安全访问策略的缺陷及改进方案

文章出处:【微信号:QCDZSJ,微信公众号:汽车电子设计】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    网络安全隐患的分析

    本文由知方论文网 https://bbs.elecfans.com 整理提供,知方论文网是一家专业正规的期刊推荐和论文代写网站。传统的安全防护方法是:对网络进行风险分析,制订相应的安全策略,采取
    发表于 10-25 10:21

    各位大神有没有LM4229的例程或中文资料发一份

    老师布置的任务,要驱动lm4229显示,但是没有详细资料,只有一份英文资料,不知道怎么初始化
    发表于 06-15 18:58

    安全浏览器竟然也被查出高危漏洞?开源安全问题不容忽视

    , apk, ipk, iso, bin, dll,dmg, pkg等多种二进制文件进行扫描,不仅能定位开源漏洞并提供CVE编号和修补方案,还能分析出所使用的开源组件清单,据说使用的是国际上律师事务所
    发表于 09-05 14:26

    漏洞真实影响分析,终结网络安全的“狼来了”困境

    资产实际情况的漏洞真实影响分析功能,帮助用户从海量漏洞中找到真实有风险的漏洞,为用户的漏洞修复优先级决策提供支持,协助
    发表于 12-25 15:18

    你的数据安全么?Hadoop再曝安全漏洞| 黑客利用Hadoop Yarn资源管理系统未授权访问漏洞进行攻击

    系统配置不当,导致可以未经授权进行访问,从而被攻击者恶意利用。攻击者无需认证即可通过REST API部署任务来执行任意指令,最终完全控制服务器。利用方式还原及趋势判断1、通过对比分析,阿里云安全专家观察到
    发表于 05-08 16:52

    ISO 26262功能安全标准:重要的汽车安全完整性等级(ASIL)更新

    和其供应商需要考虑的关键开发。如所有的标准一样,特别是那些与汽车行业相关的,变化的速度是迅速的。标准必须演进以保持相关性,以及(在ISO 26262方面)确保通过一系列技术实现安全工作,这些技术甚至
    发表于 10-23 08:59

    ISO 26262功能安全标准体系解读

    和报废Part 8:支持过程Part 9:基于ASIL和安全分析Part 10:ISO 26262导则Part 11:半导体应用指南Part 1是定义标准中使用的术语的词汇表。Part 2中的功能
    发表于 07-22 18:10

    ACR1256U-R9读写器如何实现密钥存储区安全访问控制

    `ACR1256U-R9读写器如何实现密钥存储区安全访问控制ACR1256U-R9读写器支持USB通讯方式,易于与电脑连接,支持ISO 14443类型A和类型B,MF和Felica,是公交交通,门禁
    发表于 08-03 11:33

    符合ISO 26262的功能安全平台工具

    汽车电子电气系统的功能安全随着智能驾驶、新能源等新兴技术的发展而愈发受到重视。在国际功能安全标准ISO 26262的落地过程中遇到了很多的棘手问题:如何正确而有效地实施HARA以得到合适的安全
    发表于 12-29 07:17

    安全风险分析-Arm A配置文件的Arm固件框架

    本文档描述并模拟了影响Arm A配置文件规范安全风险分析-Arm固件框架的威胁。在典型产品生命周期的不同阶段,如需求、设计、编码、测试和发布阶段,消除缺陷的成本会迅速增加。此外,修复体系结构
    发表于 08-09 07:26

    功能安全ISO26262简介

    功能安全ISO26262简介
    发表于 12-31 10:15 57次下载

    LTC4229 理想二极管和热插拔控制器

    电子发烧友网为你提供ADI(ti)LTC4229相关产品参数、数据手册,更有LTC4229的引脚图、接线图、封装手册、中文资料、英文资料,LTC4229真值表,LTC4229管脚等资料
    发表于 02-22 14:44
    LTC<b class='flag-5'>4229</b> 理想二极管和热插拔控制器

    SLG7NT4229V 数据表

    SLG7NT4229V 数据表
    发表于 03-17 20:07 0次下载
    SLG7NT<b class='flag-5'>4229</b>V 数据表

    【文章转载】基于ISO 21434的汽车网络安全实践

    。为了有效实施ISO21434标准,本文介绍了遵循ISO21434的系统级安全工程实践方法,并通过实例进行分析。汽车网络安全风险汽车网络领域
    的头像 发表于 04-23 09:33 619次阅读
    【文章转载】基于<b class='flag-5'>ISO</b> 21434的汽车网络<b class='flag-5'>安全</b>实践

    SLG7NT4229V 数据表

    SLG7NT4229V 数据表
    发表于 07-07 18:58 0次下载
    SLG7NT<b class='flag-5'>4229</b>V 数据表