网络安全:关于SecOC及测试开发实践简介

2021-02-09 19:57:24·  来源:北汇信息  作者:蒋露  
 
03、新鲜度值管理
在SecOC中,给出了多种新鲜度值管理方案:
❀ 基于counter的递增,即包含了原有方案的机制
❀ 基于全局时间戳,源于时间戳的唯一性
❀ 基于同步的复合counter

这里我们主要谈一下第三种方案。在此方案中,完整的新鲜度值包括同步计数器(Trip Counter)、重置计数器(Reset Counter)、重置标志值(Reset Flag)和消息计数器(Message Counter)。其中消息计数器又分为高值和低值,而真正在报文中发送的值只包含消息计数器的低值和重置标志值。

网络安全:关于SecOC及测试开发实践简介4
图4 新鲜度值结构

新鲜度值的更新如下所示,完整的新鲜度值为0x10000040F,实际发送的新鲜度值为0xF。而由于重置标志值为1 bit,消息计数器虽然以步长1递增,实际发送到总线上的新鲜度值则是以2的步长递增。

网络安全:关于SecOC及测试开发实践简介5
图5 新鲜度值示例

从上述内容可以看出,新鲜度值存在2个重要的基准:同步计数器和重置计数器,这2个计数器需要接收方和发送方保持一致。SecOC在新鲜度值管理上提出了主从模式的框架,由主节点向接收方和发送方分发同步计数器和重置计数器,从而达到同步的目的。

网络安全:关于SecOC及测试开发实践简介6
图6 主从模式的新鲜度值管理

网络安全:关于SecOC及测试开发实践简介7
图7 新鲜度值的分发示例

04、MAC生成
MAC是对受保护数据的身份认证。其中涉及的加密算法多种多样,每个算法还可以有多个配置。这里我们以SecOC提供的一个方案Profile 1进行说明,其使用CMAC/AES-128的算法,截取8 bit的新鲜度值和24 bit的MAC,配置信息如下所示。

网络安全:关于SecOC及测试开发实践简介8
图8 Profile 1配置

除此配置外,MAC生成还需要128 bit的密钥(这里预先定义了0x0102030405060708090A0B0C0D0E0F10)、16 bit的Data ID(这里预先定义了33)、完整的新鲜度值和需要认证的数据。Data ID是用来标识I-PDU的数据,可以给密钥管理机制提供支持。以demo中时间戳为8.300203的I-PDU进行说明,需要认证的数据为0xE8030000000000FF,完整的新鲜度值为0x100000405,实际进行加密运算的数据为Data ID、待认证数据和完整新鲜度值的拼接,计算后的实际MAC为0x498330e818f3fbb068759ff3b72d015f,截取24 bit后发送的MAC为0x498330。

网络安全:关于SecOC及测试开发实践简介9
图9 MAC发送示例

这里使用的加密为对称加密,以更快地进行I-PDU的交换。通常的做法还包括利用非对称加密的方式来传递对称加密的密钥,以此完成密钥的定期更新。通过对Data ID、I-PDU和密钥的映射,以及密钥的更新和分发,可以做到一个非常完整的密钥管理方案。

05、SecOC测试开发
从上面可以看出,SecOC的机制是比较复杂的,按照过往的项目经验,需要测试验证的内容包括新鲜度值管理、MAC认证、密钥分发等。

为了保证ECU的运行环境,并监测ECU自身的行为,我们需要仿真其外部条件,包括同步报文、ECU接收的SecOC报文等。为了实现此仿真环境,可以使用CANoe提供的Security模块。

在CANoe的Security Configuration中,对SecOC方案的进行选择与配置,并将其与控制器的端口形成映射。

网络安全:关于SecOC及测试开发实践简介10
图10 Security Configuration配置

在ARXML中,可直接配置相关的信息,包括Data ID、新鲜度值的长度等。通过这种方式,可以对每个I-PDU进行不同Data ID的配置从而形成I-PDU和Data ID的映射。

网络安全:关于SecOC及测试开发实践简介11
图11 ARXML相关配置
分享到:
 
反对 0 举报 0 收藏 0 评论 0
  • 汽车测试网V课堂

    汽车测试网V课堂

  • 微信公众号

    微信公众号

  • 汽车测试网手机站

    汽车测试网手机站

0相关评论
沪ICP备11026917号-25