车联网安全基础知识之UDS刷写安全IOTsec

使用CANoe等工具刷写时,开发环境后台帮助我们完成了很多工作,平常大家很少注意这背后到底发生了什么。下面就来看看整个刷写流程。

刷写过程定义了刷写前、刷写中、刷写后三个阶段,负责将正确的刷写文件(S19或者HEX)下载到ECU中。

默认状态下ECU在01默认会话中,使用UDS会话切换(1003)进入拓展会话。

整车厂通常会定义一些控制器刷写的前提条件,比如车速要低于3km/h等,这一步就可以检查刷写前提条件是否满足。不同的OEM/Tier1可能有不同的检查条件。常见的前置条件如下,

具体实现上,使用31服务执行检查编程条件的例程routine,如条件不满足(比如车速过高等),则退出刷写。

刷写过程中,控制器功能不正常,可能不能收发总线消息,这种情况下,需要避免在这个过程中触发故障码存储。使用85诊断故障码设置服务设置故障码设置类型为OFF(02)关闭DTC的存储。

刷写过程中,因为传输的数据较多,因此停用通讯报文的发送可以降低总线负载。

使用28服务关闭与诊断无关的报文,将节约出来的通信资源用于刷写软件,提升刷写速度。

刷写中首先进行身份认证,而后可以写入指纹,然后执行刷写擦除内存,向指定地址下载固件,并检查写入是否正确。

刷写过程必须要在编程会话中才可以进行。使用会话控制服务1002切换到programmingsession。

27安全访问服务保证是有权限的人员或者设备才能够进行刷写,安全访问服务子功能请求种子向ECU请求安全认证种子。

诊断设备收到种子后,将种子作为输入,使用双方已知的算法,计算得到Key。然后使用子功能发送秘钥将计算得到的秘钥发送给ECU。ECU使用相同的算法计算出秘钥并与收到的值进行对比,相同则认证通过。

在向ECU的内存区域下载数据之前,需要先擦除内存区域已有数据。

采用31例程控制服务FF00擦除内存,根据控制器地址空间分配和芯片擦除能力,单次擦除所有或多次分段擦除。

3101FF00擦除起始地址擦除长度

向ECU传输软件之前需要指定写入的地址和数据的大小。

刷写设备使用34请求下载服务向ECU指定刷写起始地址和刷写数据的大小,请求下载($34)服务指定的内存从起始到结束应该是连续的。如果不是连续的,刷写设备应该为每个要刷写的数据块发送一个单独的请求。

34数据格式标识符地址和长度格式标识内存地址内存大小

软件下载服务,将数据下载到上一步指定的内存中。

刷写设备使用36传输数据服务向ECU内存区域中传输刷写的数据,一个数据块通常需要多条传输数据服务传输。

36数据块顺序计数器数据

37服务退出当前连续内存区域的刷写,将在肯定响应中携带校验和,校验最近的一条请求下载请求服务指定的内存区域。

返回的校验和与刷写设备计算的校验和进行比较,如果不相同,将重新使用36数据传输服务下载数据,多次校验不通过,刷写将会中断。

检验刷写的数据的可靠性,在软件/数据刷写完毕时,刷写设备通过例行程序服务来验证刷写到内存区域的每块数据是否成功。

使用31例程控制服务FF01确认刷入的软件和ECU的硬件,基础软件是匹配的。

整个刷写完成后,刷写设备要求ECU硬件复位,ECU进入应用程序。

11复位服务重启ECU,使刷写的新软件生效。

刷写后的步骤与刷写前的步骤是对应的,启用刷写前禁用的通信等。

此时网络恢复到正常的模式,ECU以默认的波特率进行正常的通信,并能进行故障码的检测和存储。刷写结束后要求各ECU恢复非诊断消息的发送及接收。

默认状态下ECU在01默认会话中,使用UDS会话切换(1003)进入拓展会话。在拓展会话中,启用非诊断通信、清除刷写阶段产生的故障码、各ECU恢复故障码的检测。

使用28通信控制服务启用在刷写前停止收发的一般通讯报文。

恢复故障码检测,使用85诊断故障码设置服务设置故障码设置类型为ON(01)恢复DTC的存储。

从拓展会话切换回默认会话。

刷写中最主要的安全维修就是安全访问被突破,而后就能获取ECU中的软件/数据以及刷入篡改的固件。

安全访问算法一般采用对称加密算法,通常还是简单的移位算法,算法强度较低。

故障注入:算法大部分主机厂自己设计实现的,算法本身的安全性很少验证。使用故障注入等方式存在被绕过认证的可能。

泄露:主机厂/供应商代码、企标等在互联网上泄露。

易被逆向:seed2key一般以so文件存在,对固件、诊断仪中的库文件逆向得到安全访问算法。

配置问题:Key的有效长度过短,CVE-2017-14937安全气囊安全访问(SA)Key为2个字节,第一个字节恒为0x01,那么气囊点火算法只有256个可能的密钥对。

除了算法本身以外,最重要的就是安全常量。安全常量通常为4个字节。

安全常量硬编码:安全常量硬编码在so库中,逆向安全访问算法得到安全常量。

默认:使用默认的安全常量,在渗透测试中曾多次遇到,0xc541a9是最常见的安全常量。

使用相同常量:使用同一种算法的ECU依赖于不同的安全常量来保障安全性。不会因为一个模块算法和常量被分析出来之后,直接影响到另外一个模块上。此外,同一车型同一类型ECU的常量通常相同,很少有实现一机一密的。

1staticuint32UDS_GenerateSeed(void)2{3uint32u32LocalSeedValue;45u32LocalSeedValue=STM0_TIM0.U;6u32LocalSeedValue^=UDS_ku32LocLevel01;7u32LocalSeedValue=(u32LocalSeedValue<<7)|(u32LocalSeedValue>>24);89returnu32LocalSeedValue;10}种子随机性:种子随机性较弱,多次请求出现相同种子的情况。

固定种子:每次获取到的种子相同,这使得爆破出Key成为了可能。

种子恢复:ECU复位后种子相同,每认证一次后复位一次,能够有效降低爆破的数量级。

由于CAN广播传输的特性,任何节点都能接收到发送的消息。当下载固件时,如果固件没有加密传输(在请求下载中指定为不加密),持续监听总线,当执行ECU升级时,能够监听获取到固件。

经过认证后,通过篡改固件或发送伪造消息启用需要额外付费的功能。

使用非对称算法:使用29服务替代27服务,29服务支持非对称算法,安全性能够得到很大的提升。即使算法泄露,也不会造成影响。

安全常量采用安全存储:自行实现的对称加密算法安全常量通常硬编码在so库中,容易被逆向出。安全常量应采用安全存储。

算法逻辑安全:ECU复位后,产生的种子每次都一样,应避免采用类似缺陷的算法;敏感功能都受到安全访问保护。

安全配置:Key的有效长度能够有效防御暴力破解等;刷写前置条件健全,在特定条件下方能执行刷写流程。

安全启动:应用安全启动,当安全访问被突破后,拒绝启动刷入经过篡改的固件。

安全传输:固件采用加密传输,请求下载数据传输标识指明为加密传输,并对应使用加密固件。

监测:检测潜在的攻击,及时阻断。

还原:检测到被篡改,通过备份、云端等信息恢复。

ISO14229Unifieddiagnosticservices(UDS)—Part1

XXXXECU刷新规范

汽车安全

Bootloder开发方案(基于UDS)

基于UDS的ECU软件刷写流程

UDS诊断服务基础篇之27

CANoe中使用CAPL刷写流程详解(Trace图解)

【VCU】详解S19文件(S-record)

SREC(fileformat)-Wikipedia

IntelHEXfileformat

IntelHEX-Wikipedia

us-18-Milburn-There-Will-Be-Glitches-Extracting-And-Analyzing-Automotive-Firmware-Efficiently

THE END
1.汽车网络安全ECU会遭受黑客怎样的攻击?汽车网络安全 -- ECU会遭受黑客怎样的攻击? 本文探讨了黑客攻击汽车ECU的目的,包括控制权限、数据篡改和拒绝服务,并介绍了ECU的资产类型。黑客常通过通信接口进行攻击,如远程、中程和近程。漏洞管理涉及收集、识别、分析和处置。文章强调了风险评估和处置决策在确保ECU安全中的重要性。https://blog.csdn.net/djkeyzx/article/details/137880685
2.汽车网络安全之ECU攻击汽车网络安全之ECU攻击 点击上方蓝字谈思实验室 获取更多汽车网络安全资讯 01 概述 从汽车电子电器架构的角度来看,汽车就是由ECU(点)和总线(线)构成的一个结构体(对于无线传感,车内部很少用,把网关、T-BOX等也统称为ECU)。对汽车进行攻击,其实际就是针对不同的ECU进行攻击。ECU的攻击向量有哪些,如何攻击一个https://www.eet-china.com/mp/a317096.html
3.www.shkp.org.cn/content科普中国 https://www.shkp.org.cn/content_putuo.html?type=lc&id=240763&tag=1016
4.专题·智能网联汽车安全车联网网络安全风险和应对思考以色列安全企业 Upstream Security发布的《2021 全球汽车网络安全报告》显示,在 10 家 Tier-1 供应商和整车企业研发的 40 余个 ECU 中,发现存在超过 300 个安全隐患;汽车相关的 CVE 漏洞数已超过 110 个,涉及 51 家整车企业。 (二)车联网平台服务面临的攻击威胁加剧http://www.chinaaet.com/article/3000137565
5.车载网络架构与车载网络攻击概述汽车电子网络安全问题正在成为车载网络系统的主要关注点。数以百万计的汽车面临各种安全风险,如 2015 年 MILLER 等 使用Wi-Fi开放端口侵入 Jeep Cherokee 的车载网络系统,并通过重新编程ECU 的固件成功控制了该车的核心功能 (如禁用制动和停止发动机),导致140万辆汽车被 召回。相关汽车攻击案例引发了对汽车网络安全的广泛研究https://www.elecfans.com/qichedianzi/1921485.html
6.汽车E/E架构的网络安全分析IDS/IPS可以在基于主机和网络域中进行区分,也就是说可以针对单个ECU,也可以针对某个网络域。它们可以作为单独的硬件组件实现,也可以在现有主机上的软件中实现。 另外IPS可能会对安全相关功能产生负面影响,其有可能出现误检,例如,在碰撞之前检测到大量的制动信号,这可能被 IPS 解释为攻击。就未来的机器学习IPS算法而言https://www.51cto.com/article/704527.html
7.汽车前沿技术确保商用车CAN总线网络安全通过CAN-ID块列表,确保其他节点未使用本地主机的合法CAN-ID。J1939协议为ECU指定了唯一的源地址 (SA)(由网络设计人员分配),可以通过安全CAN收发器将其屏蔽,启用基于CAN-ID的通过列表和阻止列表的通信安全,同时主机厂判断可否满足网络安全要求。 为了避开安全CAN欺骗保护,黑客还会尝试通过中间人进行攻击,通过控制数据字http://www.baictap.com/nd.jsp?id=450
8.汽车互联时代,关于安全的攻防战去年,Twitter公司软件安全工程师查理·米勒(CharlieMiller)和IOActive安全公司智能安全总监克里斯·瓦拉赛克(ChrisValasek)表示,在获得美国政府许可的情况下,对经由网络入侵攻击汽车进行了数月的研究;未来将发布长达100页的白皮书,其中详细阐述攻击丰田普锐斯和福特翼虎关键系统的方法。 http://www.cheyun.com/content/2180
9.《信息安全技术汽车电子系统网络安全指南》.pdf《信息安全技术汽车电子系统网络安全指南》.pdf,GB/T XXXXX—XXXX 信息安全技术 汽车电子系统网络安全指南 1 范围 本标准给出了汽车电子系统网络安全过程框架,以及在此框架下的汽车电子系统网络安全管理、生 命周期各阶段安全活动和辅助支持过程等方面的要求。 本标准适用https://max.book118.com/html/2023/0624/6134011242005151.shtm
10.羡慕苹果专属的Carplay?车载互联MirrorLink国产机也能用DVBCN车联网快速发展的同时,很多重大问题逐步凸显,其中安全问题成为制约全球车联网快速发展的重要因素。目前车联网安全现状不容忽视,汽车攻击手段升级,正日益威胁人民的生命和财产安全,安全现状如下: 1、安全事件已突显 黑客攻击手段升级,车联网面临着日趋复杂的安全问题,多家汽车厂商曾遭遇攻击,主流媒体也有相关事件报道。 http://www.dvbcn.com/p/49347.html
11.产业结构调整指导目录(2019年本)1农药、兽药等优质安全环保农业投入品及绿色食品生产允许使用的 食品添加剂开发 11、内陆流域性大湖资源增殖保护工程 12、远洋渔业、人工鱼礁、渔政渔港工程 13、牛羊胚胎(体内)及精液工厂化生产 14、农业生物技术开发与应用 15、耕地保养管理与土、肥、水速测技术开发与应用 https://www.cnjx.gov.cn/News/show/1241848.html
12.鲁棒性分析范文8篇(全文)随着复杂网络的小世界效应及无标度性的发现, 复杂网络的鲁棒性也越来越受到关注[1,2,3,4,5,6,7,8,9,10,11]。鲁棒性用来表示系统在被干扰情况下保持其功能或性质的能力即在遭受外界干扰或破坏时, 鲁棒性反映出网络结构本身对于破坏的抵御能力。互联网的鲁棒性可以通过网络在攻击下的行为来表现。攻击大致分为https://www.99xueshu.com/w/ikeyn7k7hns7.html
13.汽车网关当今汽车互联网关的性能和安全性在设计汽车中央网关应用时,两个最大的成功因素是性能和安全性。 作为内部和外部通信的中心枢纽,当今的互联网关必须提供比以前更高的处理能力和数据吞吐量。同时,互联网关在保护车辆免受网络攻击以及实现汽车共享、空中软件更新 (SOTA) 和预测性维护等新型物联网服务方面发挥着不可或缺的作用。 https://www.infineon.com/cms/cn/product/applications/automotive/body/gateway.html
14.安全漏洞频发,汽车信息安全路在何方?随着互联网、人工智能、无线网络和云计算、大数据等技术的应用,今天的汽车的智能化、联网化程度越来越高,汽车已经变成名副其实的万物互联时代的智能终端设备。但是,由于汽车中使用的计算和联网系统沿袭了既有的计算和联网架构,所以继承了这些系统天然的安全缺陷。随着汽车中ECU和连接的增加,将大大增加黑客对汽车的攻击面https://www.esmchina.com/news/201710301437.html
15.维克多推出汽车网络安全解决方案下图是保护系统免遭人的伤害,这个人就是黑客,需要避免网络入侵操纵系统。现在再单独提功能安全,已经没有什么意义了。即便安全方面达到的等级再高,一旦黑客入侵了,他就可以操控汽车破坏任何东西,这就不能再称之为安全。 图片来源:维克多 回到今天的主题,信息安全大概有四个目标: http://design.eccn.com/design_2022120510060044.htm
16.车载CAN总线的安全防护技术分析CRAIG[6]提出了一种针对CAN总线攻击和防御的检测技术;章意等[7]提出一种基于板端加密通讯(Security Onboard Comm- unication,)的车载网络安全模型,实现ECU及网络消息的加密和认证,测试表明其可使网络更加安全和高效;罗峰等[8]建立了基于可变速率控制器局域网(Controller Area Network with Flexible Data-rate, CANhttps://www.dongchedi.com/article/7270758323358745123