• 383查看
  • 0回复

[Autosar] AUTOSAR MCAL分析(3):Crypto Driver

[复制链接]


该用户从未签到

发表于 17-4-2024 21:34:52 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


目录

1. Crypto Driver概述

2. 认识Crypto Driver Object

2.1 NXP对CDO的实现

2.2 Vector对CDO的实现

2.3 小结

3. Key的概念

4. Job的同\异处理方式

5. 总结


1. Crypto Driver概述

Crypto Driver处在加密栈中的最底层,负责抽象芯片硬件密码功能或者基于软件封装的密码功能等,层级结构如下图所示:
AUTOSAR MCAL分析(3):Crypto Driverw1.jpg
在分析该Driver之前,有几个术语是需要掌握的:

    Crypto Driver:指定密码硬件\软件的驱动程序;Crypto Driver Object:一个Driver包含一个或者多个Crypto Driver Object(CDO),CDO用于提供不同的Crypto Primitive(加密原语);Crypto Primitive:密码学中原语是一种抽象的说法来描述加密系统的基本功能和操作;在AUTOSAR中,是指在CDO中配置的具体密码算法,例如一个对称CDO中配置了一个MAC生成的原语,该原语对应具体算法为AES128,模式为CMAC;Job:对应CSM中的job,有兴趣可以看看之前的文章AUTOSAR CryptoStack--CSM Job夹带了哪些私货至于Key、KeyType、KeyElement放到后面举例说明,这里先不讲,免得大家迷糊了。
Crypto Driver具体有什么作用呢?从大功能上可以分为两类:密码服务(Cryptographic Primitives)和密钥管理(KeyManagement)。进一步,上述功能可以细分如下表所示:
AUTOSAR MCAL分析(3):Crypto Driverw2.jpg
那么这些服务具体是以什么方式实现的呢?我们进一步来看。2. 认识Crypto Driver Object

Crypto Driver Object(CDO)是Crypto模块中最重要的部件。
因为从CP AUTOSAR代码实现角度来看,一个工程一个Driver最好维护;如果有多个Crypto Driver实例,源码文件命名和API命名就得进行区分,遵循以下规则Crypto_<vi>_<ai>。事实上,大家看Vector或者NXP的相关驱动,通常只有Crypto_<vi>,如:Crypto_30_vHSM \ Crypto_43_HSE,意味着大家心照不宣地均使用了1个Driver,那要实现多个密码服务该怎么办呢?CDO此时站了出来。
1个CryptoDriver包含1个或者多个CDO,一个CDO可以支持多个加密原语,在设计中AUTOSAR提出1个CryptoDriver如果有n个CDO,那么就可以支持n个job的并行操作。因此,不同软件供应商对于CDO的软件实现方式上出现了差异。2.1 NXP对CDO的实现

NXP对于CDO的实现是根据密码算法分类,最大可提供2个CDO,分别是symmetric
cryptographic primitives和asymmetric primitives。如下图所示:
AUTOSAR MCAL分析(3):Crypto Driverw3.jpg
在每个CDO下面可以配置限定范围内的密码原语,如下图:
AUTOSAR MCAL分析(3):Crypto Driverw4.jpg
如果我不小心将非对原语关联到对称CDO里,EB也会提示错误,如下:
AUTOSAR MCAL分析(3):Crypto Driverw5.jpg
这种实现方式易于理解,并且配置容易上手。2.2 Vector对CDO的实现

V家的实现方式相对复杂,但是设计初衷是非常棒的,它从安全启动、硬件支持的密码功能、软件自研密码库、密钥管理和用户自定义算法几个维度出发,分别设计了对应的CDO。这种设计理念就能够较为全面覆盖密码算法场景,并且不完全依赖芯片本身,如下图所示:
AUTOSAR MCAL分析(3):Crypto Driverw6.jpg

这种代码框架里,Hal负责调用芯片本身支持的密码硬件加速功能;SwLib负责软件密码自研库,主要是弥补芯片不能cover的密码服务、密钥存储方面;SecureBoot是负责安全启动对Host代码校验;Custom则是用户等自研算法等。2.3 小结

虽然各家对CDO的实现不太一致,但是从理解上是大体相近的。CDO就是用于提供不同加密原语,所以在做工程配置时要搞清楚当前工程CDO的实际角色。3. Key的概念

在完成CDO配置后,其实还差一个最重要的东西,那就是Key;因为要做对称、非对称密码算法,密钥是必须的。在Crypto Driver这一层级,提出了Key、KeyType、Key Element的概念,具体解释如下:
AUTOSAR MCAL分析(3):Crypto Driverw7.jpg

这三者关联关系为Key->KeyType->Key Element;如下图:
AUTOSAR MCAL分析(3):Crypto Driverw8.jpg

在Driver这一层级,Key只是一个索引,它的使用场景有KeyType决定,如下:

AUTOSAR MCAL分析(3):Crypto Driverw9.jpg
KeyType包含了一系列的KeyElement:
AUTOSAR MCAL分析(3):Crypto Driverw10.jpg

因此在密钥管理体系KeyElement是最重要的,定义了Key的属性:
AUTOSAR MCAL分析(3):Crypto Driverw11.jpg

不过大家在看Vector代码时需要注意,关于密钥属性配置是在单独的vHSM工程里。4.Job的同\异处理方式

在CSM里面定义了Job的处理方式有同步(Synchronous)和异步(Asynchronous),简单理解就是

    同步需要主机等待HSM返回结果,异步是将job发给HSM后,去处理其他任务,HSM可以通过中断通知处理结果,Host也可以周期去轮询处理结果。
5.总结

上文我们简介了CryptoDriver的几个关键概念,该驱动主要实现了同步和异步加密原语的通用接口,支持密钥存储、密钥配置和密钥管理等功能。实际上,在加密栈的软件实现上,每家的想法都不一样,在产品交付上也分白盒和黑盒。白盒对于理解加密栈来说非常有帮助,但是一旦绑定了,就很难再适应其他家了;黑盒对用户来说用起来很简单,提需求,调用API即可。



往期回顾:

1.汽车标定精选
汽车标定技术--标定概念详解
汽车标定技术--Bypass的前世今生
万字长文:汽车标定技术--XCP概述

2.AUTOSAR精选
AUTOSAR CryptoStack--CSM Job夹带了哪些私货
AUTOSAR 诊断栈分析(一)
AUTOSAR OS概述(一)

3.汽车网络安全精选
汽车信息安全--MCU启动常用密码算法
汽车网络安全方案需求分析
汽车信息安全--常见车规MCU安全启动方案
车载信息安全场景概述

4.汽车功能安全精选

5.汽车虚拟化精选

    汽车ECU虚拟化技术初探(一)

    汽车ECU虚拟化技术(二)--U2A虚拟化功能

6.杂七杂八

    Flash模拟EEPROM原理浅析

    征途漫漫:汽车MCU的国产替代往事

    车规MCU应用场景及国产替代进展


该用户从未签到

发表于 12-3-2025 10:08:00 | 显示全部楼层
针对您提供的帖子内容,作为汽车工程师,关于AUTOSAR MCAL中的Crypto Driver分析回复如下:

针对所给的目录结构和内容,我将简要回复每一部分的内容概述:

一、Crypto Driver概述:它是加密栈中的底层模块,负责抽象和访问硬件或软件的加密功能。在汽车应用中,主要处理与安全和通信相关的加密任务。此部分涉及关键术语和概念的定义。

二、认识Crypto Driver Object(CDO):CDO是加密驱动的核心对象,用于管理和控制加密资源的访问和操作。多个供应商如NXP和Vector可能有不同的实现方式,但其核心功能和接口定义应保持一致。对于具体供应商的实现差异进行简述并进行小结是重要的,这将帮助进行供应商适配和开发调试。该部分会对涉及的特性和方法进行深入的分析。可以详述Crypto Driver的特性与其具体的实际应用情况相结合进行探讨和分析其特性及应用实例以便深入了解并研究学习提升对该技术的认知和使用水平 。 三、Key的概念:Key是加密过程中的关键数据,用于加密和解密操作。其管理、存储和使用方式直接影响系统的安全性。四、Job的同异处理方式:涉及加密任务的调度和执行方式,包括并发处理与优先级管理等。五、总结:对整个Crypto Driver的分析进行汇总,强调其在AUTOSAR MCAL中的位置和作用,以及实际应用中的关键问题和挑战。通过分析此部分可以为进一步的开发和设计提供基础资料和研究方向在熟悉各个部分的同时可以对存在的问题进行汇总和梳理思考针对具体的问题进行深入分析和提出可行的解决方案来提升性能并确保安全性以应用于更广泛的场景 进行分析并提供参考方案建议今后的研发改进方向来助力实现更多目标解决问题 的能力与质量这为我们在实际的汽车设计和制造中提供了有力的技术支持也让我们更好地理解和掌握这一技术提高了工作效率和质量水平总的来说深入研究Crypto Driver在汽车行业的应用将推动汽车安全性和性能的提升从而为汽车行业带来更大的价值潜力希望以上回复符合您的要求如果需要更详细的分析或特定部分的讨论请进一步说明我将尽力提供帮助希望以上回复对你有所帮助如需更多信息请进一步询问以获取更详细的解答谢谢合作与交流期待您的进一步指导。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 19-8-2025 02:21 , Processed in 0.361470 second(s), 35 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.