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

谈思实验室 2023-05-22 17:49

点击上方蓝字谈思实验室

获取更多汽车网络安全资讯


本篇主要讲解UDS刷写中了涉及的重要的基础概念。

  • 服务ID:后续UDS刷写中用到的服务ID

  • 会话定义:刷写中会话切换,不同阶段在不同的会话。

  • 27服务认证流程:刷写解锁,安全访问的基本流程。

  • 诊断连接方式:不同的连接方式,直接和通过网关连接。

  • 固件格式:刷写中使用到的固件的常见的格式以及简单的分析。

服务ID汇总

首先总体看一下刷写涉及的服务ID以及在刷写过程的用途。


诊断服务标识 

Service ID

诊断服务 

Diagnostic Service

在刷写过程中的用途
0x10诊断会话控制 DiagnosticSessionControl切换到拓展会话检查刷写条件、停止一些功能切换到编程会话执行刷写
0x11ECU复位 ECUReset用于刷写完成后重启服务,使新固件生效
0x27安全访问 SecurityAccess校验刷写者身份,采用seed-key
0x28通信控制 CommunicationControl关闭和启用一般通讯报文
0x29认证服务 Authentication Service基于PKI的身份认证
0x31例程控制 RoutineControl指定特定的例程,前置条件检查、检查编程依赖等
0x34请求下载 RequestDownload设置下载的参数(起始地址、长度)
0x36数据传输 TransferData固件传输
0x37请求结束传输 RequestTransferExit终止数据传输
0x3E测试设备在线 TesterPresent用于将会话保持在当前会话中
0x85控制故障码设置 ControlDTCSetting设置启停故障码存储功能

会话

诊断会话关联了一系列的诊断服务或诊断功能。只有当前激活的诊断会话支持的诊断服务才能被响应。ECU通常有两个以上的诊断会话,包括:一个默认会话(Default Session)和若干非默认会话(Non Default Session)。其中非默认会话又包括编程会话和扩展会话等。其他非默认会话由厂商自行定义。常见的ECU诊断会话定义如下:

诊断会话会话ID描述
默认会话0x01ECU启动后默认进入此会话。只提供基本的诊断服务。
编程会话0x02ECU更新应用程序或标定数据时进入此会话。支持与程序更新相关的诊断服务。如0x34、0x36、0x37等。
扩展会话0x03除支持默认会话下的诊断服务和功能外,还支持额外的诊断服务。
.........

诊断会话控制服务(0x10)是用于激活控制器各种不同的会话模式 。在固件刷写中会使用0x10服务在默认会话、编程会话、拓展会话来回切换。

会话保持(3E 00)

此服务用于向单(或多)个服务端指示客户端仍然与车辆连接,并且维持先前已激活的某些诊断服务和/或通信将保持活动状态。此服务用于将一个或多个服务端保留在默认会话之外的诊断会话中,通过周期性的发送 3E 实现。

整个刷写过程中, 刷写工具要周期性的发送链路保持请求, ECU 不需要响应请求信息。如果没有开启会话保持,几秒后ECU就会切回默认会话。

  • 刷写前需要保持在拓展会话下。

  • 刷写中需要保持在编程模式下。

27 服务-安全访问认证流程

安全访问服务的目的是为保密和排放、安全相关的一些服务和数据提供访问权限来保护数据。2E(通过DID写入数据)、2F(通过DID进行输入输出控制)、31服务(例程控制)、34服务(请求下载)、36服务(请求上传)、37服务(数据传输)等服务需要经过身份认证。身份认证利用了种子和密钥之间的关系。 服务的示例如下图所示:

  1. Request Seed:Tester 使用27服务,并携带需要解锁的安全等级 0X 发送给特定的 ECU。

  2. Request Seed Reply : 对应的ECU收到之后,生成4个字节的随机数 Seed,返回给 Teseter。

  3. Send Key: Tester 拿到Seed后,使用自定义实现的 Seed2Key 算法计算出Key,发送给ECU。Send Key 中的安全访问级别 0Y 为Request Seed的安全访问级别的值 +1。例如当请求种子为 27 01 时,发送秘钥则为 27 02(01+1)。

  4. Send Key Reply : ECU 将收到的 Key 和 自己拿 Seed 作为输入的 Seed2Key 计算出结果进行对比,然后返回验证的结果。

Seed2Key 算法

安全访问中最重要的就是Seed2Key算法,算法通常是一些比较简单的移位算法,例如下列的算法。

 #defineSECURITYCONSTANT   0x464c4147
 
 WORD seedToKey (WORD wSeedDWORD constData)
 {
 DWORD wLastSeed ;
 WORD wLastKey;
 wLastSeed= wSeed;
 wLastSeed = (wLastSeed>>5| (wLastSeed<<23);
 wLastSeed *= 7;
 wLastSeed ^= SECURITYCONSTANT;
 wLastKey = (WORD)wLastSeed;
 return wLastKey;
 }

seed2key 接受2个输入参数 种子安全常量,种子由 ECU 随机产生;安全常量内置在ECU和诊断仪中,在某种意义上来说安全常量就是密码。采用同一算法的不同用途的 ECU,通常使用不相同的安全常量。

诊断连接方式

诊断设备与ECU连接有两种方式,如下图。

  1. 诊断设备连接网关,由网关将消息转发给ECU;

  2. 诊断设备与ECU直连。

固件格式

S-record、Intel Hex、BIN、VBF 是汽车中MCU固件常用的格式,下面简单介绍一下这几种格式。了解数据格式有助于固件分析、刷写安全测试等。

S-record

S-record 是摩托罗拉设计的一种常于MCU内存、EPROM、EEPROM 写入的文档格式,S-record 将二进制数据以ASCII字符表示。常用文件后缀名有 SRECORD、SREC、S19、mot。文件格式如下图。

  • Header Record 文件头信息,其中记录有模块名称、版本号等;

  • Data Record 数据记录,有 S1、S2、S3 三种类型;

  • Count Record(可选) 包含了先前传输的S1、S2、S3记录的计数;

  • Termination Record,结束记录,有 S7、S8、S9 三种类型。

S0 Record(头记录):记录类型是“S0”。地址场没有被用,用零(0x0000)填充。数据场中的信息使用HEX转换成字符串是:JKE_X1_APP_SOC.s19。此行表示程序的开始,不需烧入内存,用来表述文件的相关信息,可能包含文件名、版本号等。

S3 Record(数据记录):记录类型是“S3” 。地址场由4个字节地址,数据场由可载入的数据组成。

S7 Record(结束记录):记录类型是“S7”。地址场由4字节的地址,包含了开始执行地址。没有数据场。此行表示程序的结束,不需烧入内存。

注: S-Record 中记录有固件的起始地址,逆向分析时直接从中获取,然后设置为起始地址即可。

Intel HEX

在嵌入式MCU程序开发中,经常编译链接后生成的 HEX 就是采用的 Intel Hex 格式。也是一种将二进制文件转换成了ASCII码形式存储的文本文件。

BIN

二进制文件,只有固件数据,没有起始地址、描述信息等。

自定义格式

车企自定义格式如,VBF(Volvo Binary File)。VBF 使用在 volvo、mazda、Ford、吉利等品牌的汽车中。

文件头记录有文件的VBF版本号、软件版本信息、ECU物理地址、数据起始地址等。

分析工具

srecord

命令行工具 srecord

 sudo apt-get install srecord

查看S-record文件信息

 fans@fans:~$ srec_info JKE_X1_APP_SOC.s19
 Format: Motorola S-Record
 Header: "JKE_X1_APP_SOC.s19"
 Execution Start Address: 00FC0000
 Data:   01000000 - 01089C5F
         01180000 - 011800FF
        0127FB80 - 0127FBDF
        0127FF80 - 0127FFFF

文件转换

  • S-record 转 hex

     srec_cat JKE_X1_APP_SOC.s19 -Motorola -o JKE_X1_APP_SOC.hex -Intel
  • Intel hex 转 S-record

     srec_cat JKE_X1_APP_SOC.hex -Intel -o JKE_X1_APP_SOC.s19 -Motorola
  • S-record 转 bin

     srec_cat JKE_X1_APP_SOC.s19 -Motorola -o JKE_X1_APP_SOC.bin -bin
HexView

S-record、Intel Hex、BIN 文件之间的转换可以采用 Vector 的图形化文件编辑软件 HexView。

专用工具

主机厂或供应商自己开发的专用软件,如VBF文件查看工具 VBF Tool.

脚本

根据文件格式定义,编写脚本解析、提供固件,部分可以在 Github 上找。

 # wget https://raw.githubusercontent.com/consp/vbfdecode/master/vbfdecode.py
 # python vbfdecode.py -b firmware.vbf
 Offset: 0x359, Location: 0x18000, Size: 0xB256C, Data Offset: 0x361
 VBF v2.1
 Description: Software part: 1234 type: APP
 Network: 0x00000000
 Data Format Identifier: 0x00000000
 ECU address: 0x000007C6
 Frame_format:
 Erase frames:
 Data blobs:
 0x00018000     0x000B256C       e301
 
 Saving:
    18000.bin




码上报名

AES 2023 第四届中国国际汽车以太网峰会,6月8-9日,上海


更多文章

智能网联汽车信息安全综述

华为蔡建永:智能网联汽车的数字安全和功能安全挑战与思考

汽车数据合规要点

车载以太网技术发展与测试方法

车载以太网防火墙设计

SOA:整车架构下一代的升级方向

软件如何「吞噬」汽车?

汽车信息安全 TARA 分析方法实例简介

汽车FOTA信息安全规范及方法研究

联合国WP.29车辆网络安全法规正式发布

滴滴下架,我却看到数据安全的曙光

从特斯拉被约谈到车辆远程升级(OTA)技术的合规

如何通过CAN破解汽

会员权益: (点击可进入)谈思实验室VIP会员


END

微信入群

谈思实验室专注智能汽车信息安全、预期功能安全、自动驾驶、以太网等汽车创新技术,为汽车行业提供最优质的学习交流服务,并依托强大的产业及专家资源,致力于打造汽车产业一流高效的商务平台。

 

每年谈思实验室举办数十场线上线下品牌活动,拥有数十个智能汽车创新技术的精品专题社群,覆盖BMW、Daimler、PSA、Audi、Volvo、Nissan、广汽、一汽、上汽、蔚来等近百家国内国际领先的汽车厂商专家,已经服务上万名智能汽车行业上下游产业链从业者。专属社群有:信息安全功能安全自动驾驶TARA渗透测试SOTIFWP.29以太网物联网安全等,现专题社群仍然开放,入满即止。


扫描二维码添加微信,根据提示,可以进入有意向的专题交流群,享受最新资讯及与业内专家互动机会。


谈思实验室,为汽车科技赋能,推动产业创新发展!

谈思实验室 深入专注智能汽车网络安全与数据安全技术,专属汽车网络安全圈的头部学习交流平台和社区。平台定期会通过线上线下等形式进行一手干货内容输出,并依托丰富产业及专家资源,深化上下游供需对接,逐步壮大我国汽车安全文化及产业生态圈。
评论 (0)
  • Matter协议是一个由Amazon Alexa、Apple HomeKit、Google Home和Samsung SmartThings等全球科技巨头与CSA联盟共同制定的开放性标准,它就像一份“共生契约”,能让原本相互独立的家居生态在应用层上握手共存,同时它并非另起炉灶,而是以IP(互联网协议)为基础框架,将不同通信协议下的家居设备统一到同一套“语义规则”之下。作为应用层上的互通标准,Matter协议正在重新定义智能家居行业的运行逻辑,它不仅能向下屏蔽家居设备制造商的生态和系统,让设备、平
    华普微HOPERF 2025-05-08 11:40 509浏览
  •         信创产业含义的“信息技术应用创新”一词,最早公开信息见于2019年3月26日,在江苏南京召开的信息技术应用创新研讨会。本次大会主办单位为江苏省工业和信息化厅和中国电子工业标准化技术协会安全可靠工作委员会。        2019年5月16日,美国将华为列入实体清单,在未获得美国商务部许可的情况下,美国企业将无法向华为供应产品。       2019年6
    天涯书生 2025-05-11 10:41 26浏览
  • UNISOC Miracle Gaming奇迹手游引擎亮点:• 高帧稳帧:支持《王者荣耀》等主流手游90帧高画质模式,连续丢帧率最高降低85%;• 丝滑操控:游戏冷启动速度提升50%,《和平精英》开镜开枪操作延迟降低80%;• 极速网络:专属游戏网络引擎,使《王者荣耀》平均延迟降低80%;• 智感语音:与腾讯GVoice联合,弱网环境仍能保持清晰通话;• 超高画质:游戏画质增强、超级HDR画质、游戏超分技术,优化游戏视效。全球手游市场规模日益壮大,游戏玩家对极致体验的追求愈发苛刻。紫光展锐全新U
    紫光展锐 2025-05-07 17:07 437浏览
  • 二位半 5线数码管的驱动方法这个2位半的7段数码管只用5个管脚驱动。如果用常规的7段+共阳/阴则需要用10个管脚。如果把每个段看成独立的灯。5个管脚来点亮,任选其中一个作为COM端时,另外4条线可以单独各控制一个灯。所以实际上最多能驱动5*4 = 20个段。但是这里会有一个小问题。如果想点亮B1,可以让第3条线(P3)置高,P4 置低,其它阳极连P3的灯对应阴极P2 P1都应置高,此时会发现C1也会点亮。实际操作时,可以把COM端线P3设置为PP输出,其它线为OD输出。就可以单独控制了。实际的驱
    southcreek 2025-05-07 15:06 741浏览
  • 温度传感器的工作原理依据其类型可分为以下几种主要形式:一、热电阻温度传感器利用金属或半导体材料的电阻值随温度变化的特性实现测温:l ‌金属热电阻‌(如铂电阻 Pt100、Pt1000):高温下电阻值呈线性增长,稳定性高,适用于工业精密测温。l ‌热敏电阻‌(NTC/PTC):NTC 热敏电阻阻值随温度升高而下降,PTC 则相反;灵敏度高但线性范围较窄,常用于电子设备温控。二、热电偶传感器基于‌塞贝克效应‌(Seebeck effect):两种不同
    锦正茂科技 2025-05-09 13:31 368浏览
  • 后摄像头是长这个样子,如下图。5孔(D-,D+,5V,12V,GND),说的是连接线的个数,如下图。4LED,+12V驱动4颗LED灯珠,给摄像头补光用的,如下图。打开后盖,发现里面有透明白胶(防水)和白色硬胶(固定),用合适的工具,清理其中的胶状物。BOT层,AN3860,Panasonic Semiconductor (松下电器)制造的,Cylinder Motor Driver IC for Video Camera,如下图。TOP层,感光芯片和广角聚焦镜头组合,如下图。感光芯片,看着是玻
    liweicheng 2025-05-07 23:55 655浏览
  • 文/郭楚妤编辑/cc孙聪颖‍相较于一众措辞谨慎、毫无掌舵者个人风格的上市公司财报,利亚德的财报显得尤为另类。利亚德光电集团成立于1995年,是一家以LED显示、液晶显示产品设计、生产、销售及服务为主业的高新技术企业。自2016年年报起,无论业绩优劣,董事长李军每年都会在财报末尾附上一首七言打油诗,抒发其对公司当年业绩的感悟。从“三年翻番顺大势”“智能显示我第一”“披荆斩棘幸从容”等词句中,不难窥见李军的雄心壮志。2012年,利亚德(300296.SZ)在深交所创业板上市。成立以来,该公司在细分领
    华尔街科技眼 2025-05-07 19:25 547浏览
  • 飞凌嵌入式作为龙芯合作伙伴,隆重推出FET-2K0300i-S全国产自主可控工业级核心板!FET-2K0300i-S核心板基于龙芯2K0300i工业级处理器开发设计,集成1个64位LA264处理器,主频1GHz,提供高效的计算能力;支持硬件ECC;2K0300i还具备丰富的连接接口USB、SDIO、UART、SPI、CAN-FD、Ethernet、ADC等一应俱全,龙芯2K0300i支持四路CAN-FD接口,具备良好的可靠性、实时性和灵活性,可满足用户多路CAN需求。除性价比超高的国产处理器外,
    飞凌嵌入式 2025-05-07 11:54 120浏览
  • 随着智能驾驶时代到来,汽车正转变为移动计算平台。车载AI技术对存储器提出新挑战:既要高性能,又需低功耗和车规级可靠性。贞光科技代理的紫光国芯车规级LPDDR4存储器,以其卓越性能成为国产芯片产业链中的关键一环,为智能汽车提供坚实的"记忆力"支持。作为官方授权代理商,贞光科技通过专业技术团队和完善供应链,让这款国产存储器更好地服务国内汽车厂商。本文将探讨车载AI算力需求现状及贞光科技如何通过紫光国芯LPDDR4产品满足市场需求。 车载AI算力需求激增的背景与挑战智能驾驶推动算力需求爆发式
    贞光科技 2025-05-07 16:54 253浏览
  • 在印度与巴基斯坦的军事对峙情境下,歼10C的出色表现如同一颗投入平静湖面的巨石,激起层层涟漪,深刻印证了“质量大于数量”这一铁律。军事领域,技术优势就是决定胜负的关键钥匙。歼10C凭借先进的航电系统、强大的武器挂载能力以及卓越的机动性能,在战场上大放异彩。它能够精准捕捉目标,迅速发动攻击,以一敌多却毫不逊色。与之形成鲜明对比的是,单纯依靠数量堆砌的军事力量,在面对先进技术装备时,往往显得力不从心。这一现象绝非局限于军事范畴,在当今社会的各个领域,“质量大于数量”都已成为不可逆转的趋势。在科技行业
    curton 2025-05-11 19:09 104浏览
  • 硅二极管温度传感器是一种基于硅半导体材料特性的测温装置,其核心原理是利用硅二极管的电学参数(如正向压降或电阻)随温度变化的特性实现温度检测。以下是其工作原理、技术特点及典型应用:一、工作原理1、‌PN结温度特性‌硅二极管由PN结构成,当温度变化时,其正向电压 VF与温度呈线性负相关关系。例如,温度每升高1℃,VF约下降2 mV。2、‌电压—温度关系‌通过jing确测量正向电压的微小变化,可推算出环境温度值。部分型号(如SI410)在宽温域内(如1.4 K至475 K)仍能保持高线性度。
    锦正茂科技 2025-05-09 13:52 382浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦