Autosar CyberSecurity之CSM, CryIf,Crypto Driver学习笔记,由浅入深详细,理论讲解软件配置

首先,先放一张CSM CryIf, Crypto Driver的Autosar架构图,这张图是精华,后面我们会详细讲解。
在这里插入图片描述
由浅入深,这篇文章中,我会讲到:

  1. 为什么会存在 CSM, CryIf,Crpto Driver (Why)

  2. CSM, CryIf,Crpto Driver每层都做了什么(What)

  3. Vector DaVinci configuration(达芬奇)工具怎么实现这三层的配置(How)

一. 为什么会存在 CSM, CryIf,Crpto Driver (Why)

涉及到这个话题就不得不简单的讲一下我们Autosar的架构啦:

Autosar :Automotive open system Architecture的简称

简单解释就是:将汽车电子控制单元 (ECU) 的软件底层做了一个标准的封装。使得大家都能共用一套底层软件,只需要修改其中的一些参数,就可以匹配不同的应用层软件。

再直白一点就是,软硬隔离
在这里插入图片描述
Autosar主要分为3个层级:

应用软件(APPL):主要就是用来存放我们自己的代码的地方

实时运行环境(RTE):提供应用层所需的资源,同时将应用层和底层隔离

基础软件层(BSW):将硬件做封装,一直封装到一个标准的操作系统的状态,以便上层可以标准化调用系统服务

在这里插入图片描述
我们今天要提及到的CSM, CryIf,Crpto Driver就是位于Autosar的基础软件层。

基础软件层包括:

  • 硬件抽象层(MCAL):将芯片的寄存器操作都封装成一个Autosar规定的统一的库API.软件工具EB可以通过界面配置MCAL功能(Crpto Driver位于这一层)
  • ECU抽象层:如果说MCAL只是封装了芯片,那么ECU抽象层就是将所有的硬件都进行了封装。(CryIf位于这一层)
  • 服务层:包含操作系统(OS)。OS将使用ECU抽象层的API,再对上层暴露出服务接口,其实就是嵌入式实时操作系统(RTOS)所做的工作(CSM位于这一层)
  • 复杂驱动:CDD(complex device driver)主要是将Autosar未定义的一些功能封装起来,给应用层提供接口来调用这些功能
    在这里插入图片描述

讲到这里,我们已经可以非常清晰的了解到,为什么会存在 CSM, CryIf,Crpto Driver了,是为了将硬件HSM的接口做一个封装,以便上层服务可以标准化调用,而不受HSM的不同的影响。

二. CSM, CryIf,Crpto Driver每层都做了什么(What)

举个栗子来讲解会比较通俗易懂,用我放的第一张图:
在这里插入图片描述
在这个例子中,

HSM有两个加密驱动对象Crypto Driver Objec:HW-AES和HW-RSA

它们每个都有自己的通道。每个通道连接到一个CSM队列和一个Crypto Driver Object队列。

在这种情况下,两个Crypto Driver Object都在分别处理一个加密作业:AES-high和RSA

而其中一个Crypto Driver Object的队列包含另一个作业(AES-low)。如果HSM的HW-AES已经完成了AES-high的任务,则将AES-low的任务作为下一个任务处理。

假设应用程序的新作业调用RSA:

如果RSA的Crypto Driver Object不繁忙,则立即处理该任务。

如果RSA的Crypto Driver Object很忙,但是Crypto Driver Object的队列未满,则该作业将按优先级顺序列在该队列中。一旦Crypto Driver Object空闲,将执行Crypto Driver Object队列中具有最高优先级的作业。

如果RSA的Crypto Driver Object很忙,并且Crypto Driver Object的队列已满,则该作业将按照优先级顺序存储在CSM队列中。·

如果RSA的Crypto Driver Object忙,且Crypto Driver Object队列和CSM队列都已满,CSM会拒绝请求。

如果RSA的Crypto Driver Object是活动的,则作业已经在加密驱动程序中启动,正在等待更多的数据来处理或完成命令。
在这里插入图片描述

三. Vector DaVinci configuration(达芬奇)工具怎么实现这三层的配置(How)

先简单讲一下Autosar实现的工具链:

Matlab:主要是用Simulink做代码生成的,就是我们的应用层软件需要Matlab来开发
Davinci Developer:主要用来设计APPL的程序架构
Davinci Configurator pro:主要用来配置BSW和自动生成RTE的
EB Tresos:主要用来配置MCAL的,可以兼容英飞凌和恩智浦的芯片
在这里插入图片描述
我们这边配置的CSM, CryIf,Crpto Driver都在BSW里面,所以只要用到Davinci Configurator工具

Crypto模块配置

Crypto模块需要如下container,如果不存在就需要右键Crypto添加这些Container.
在这里插入图片描述
1、CryptoPrimitives配置用到的算法
我这边举了一个CAMC Verify的例子
在这里插入图片描述
2、配置CryptoDriverObjects
我这边只添加一个Object: HSM_Crypto
在这里插入图片描述
3、配置CryptoGeneral
在这里插入图片描述
4、配置CryptoKeyElements
在这里插入图片描述
5、配置CryptoKeyTypes
在这里插入图片描述
6、配置CryptoKeys
在这里插入图片描述

CryIf模块配置

CryIf模块需要如下container: CryIfChannels, CryIfCryptoModules, CryIfKeys, CryIfGeneral.
在这里插入图片描述
1、配置CryIfChannels
在这里插入图片描述
Driver Objects Ref就是Crypto模块配置中配置好的

2、配置CryIfCryptoModules
在这里插入图片描述
3、 CryIfKeys配置
在这里插入图片描述
4、CryIfGeneral配置
在这里插入图片描述

Csm模块配置

Csm模块需要如下Container: CsmPrimitives, CsmCallbacks, CsmGeneral, CsmJobs, CsmKeys, CsmQueues.
在这里插入图片描述
1、CsmPrimitives配置
在这里插入图片描述
2、CsmCallbacks配置

根据需要配置,这边只是举个例子
在这里插入图片描述
3、CsmGeneral配置
在这里插入图片描述
4、CsmJobs配置
在这里插入图片描述
5、CsmKeys配置
在这里插入图片描述
6、CsmQueues配置
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值