VBF格式文件详解---VBF格式解析

VBF(Versatile Binary Format)是一种二进制文件格式,是软件释放的一种格式,与HEX,S19文件类似,只是一种文件格式。
其主要由三部分组成:Version,Header 和 Data。

Version NumberTextvbf_version=2.6|
HeaderTextASCII
Data Block 1Start address4 bytes,binary
Length4 bytes,binary
Datan bytes,binary
Checksum2 bytes,binary
Data Block 2Start address4 bytes,binary
Length4 bytes,binary
Datan bytes,binary
Checksum2 bytes,binary
Data Block nStart address4 bytes,binary
Length4 bytes,binary
Datan bytes,binary
Checksum2 bytes,binary
  1. Data段

先说Data段,Data段是由多个Block组成的,Block中的Data就是有效数据,是需要被刷到Flash里面。这么多个Block中有一个Block是VBT(Verification Block Table),VBT里面存放的是其他Block的Hash数据。
VBT的Data:
0000
format identifier(SHA-256)
0002 data block的个数
00060000 start address
00000013 length
D78ECD62C62C…2262 Hash
00060100 start address
0001EF00 length
E6027B3F959F…4188 Hash

  1. Header段
    再说Header段,Header段的格式是ascii,所以用notepad打开也可以看到。Headr段里面定义了VBF的属性。一些关键的属性:
    2.1 sw_part_number
    零件号
    2.2 sw_version
    版本号
    2.3 sw_part_type
    表示此VBF包的类型,SBL,EXE,或者是DATA等
    2.4 ecu_address
    ECU的物理目标地址,在诊断调查表里面会写明,一般由4个数字组成,后两个数字与诊断ID后两个数字一样。
    2.5 erase
    VBF中每个Block需要擦出的Flash起始地址和长度。
    2.6 call
    VBF的类型是SBL时,是必填的,就是SBL的起始地址。
    2.7 verification_block_start
    VBT的起始地址
    2.8 verification_block_root_hash
    root hash是很重要的,计算的是未压缩的VBT信息的Hash值。
    Root hash = SHA-256 (VBT startAddress || VBT length || VBT data)
    2.9 sw_signature_dev
    后缀dev的意思是,这个值是此VBF加研发签后生成的签名值,研发签名值= RSA(root hash + dev private key)。Tier1在转换VBF的时候,使用研发私钥给VBF加签,研发私钥由OEM给出,研发私钥对应的解签用的研发公钥也是由OEM给出,研发公钥固化在MCU内部。在刷写MCU时,刷写流程中的Check Memory会附带研发签名值的明文,MCU收到签名值后,结合研发公钥 和 已经刷到Flash的数据一起,验证刷写文件的完整性和合法性。
    Tier1将加了研发签的VBF释放给OEM后,OEM会再加一个生产签 sw_signature,也就是说一个VBF文件会有两个签名值,即一个研发签名值,一个生产签名值。生产签名值=RSA(root hash + private key),其中生产私钥只有OEM自己知道。在整车下线时,对应的生产公钥会通过DID写入,MCU在收到生产公钥后,将生产公钥存到受保护的区域(例如HSM的数据区等)替换掉研发公钥。在Check Memory时,MCU不再使用研发公钥验签,而使用生产公钥验证传入的签名值。这样就可以保证在整车下线后,Tier1或者其他不知道生产公私钥的相关方不能私自更新软件。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值