【AUTOSAR】【信息安全】CSM

news2024/11/13 11:01:14

目录

一、概述

二、依赖模块

三、功能描述

3.1 基本体系结构

3.2 通用行为

3.2.1 正常操作

3.2.2 设计说明

3.3 错误分类

3.3.1 开发错误

3.3.2 运行时错误

四、API接口

4.1 通用接口

4.2 加密接口

4.3 秘钥接口

4.4 Job接口

4.5 回调接口

4.6 调度接口


一、概述

        该规范规定了软件模块加密服务管理器(CSM)的功能、API和配置。

        CSM应提供同步或异步服务,以实现对所有软件模块的基本加密功能的唯一访问。CSM应提供一个抽象层,为更高级软件层提供标准化接口以访问这些功能。

        软件模块所需的功能可能与其他软件模块所需的功能不同。因此,应该有可能为每个软件模块分别配置和初始化CSM提供的服务。该配置还包括选择CSM服务的同步或异步处理。

二、依赖模块

【规范】CSM应能够访问根据加密接口规范实现的加密接口(CRYIF)。

【规范】CSM模块应使用CRYIF与底层加密驱动程序(加密驱动程序)的接口来计算加密服务的结果。

三、功能描述

3.1 基本体系结构

        下图描述了CSM模块AUTOSAR分层软件体系结构。基于AUTOSAR分层软件架构的CSM模块架构的描述将有助于理解以下章节中CSM模块的接口和功能的规范。

        CSM是一种提供加密功能的服务,它基于依赖于软件库或硬件模块的加密驱动程序。此外,使用多个加密驱动程序的混合设置也是可能的。CSM通过CRYIF访问不同的加密驱动程序。

        CSM作为一个服务层,为加密操作提供了SW-C或BSW的接口。CSM的主要任务是调度服务和优先级,并调用加密接口(CryIf)进行进一步操作。CryIf将请求调度到静态分配给此服务的加密驱动程序及其加密驱动程序对象。

        CSM、CryIf和Crypto的的API有两类,分为基于作业的API和直接API。如下图所示:

 

3.2 通用行为

【规范】Job 是已配置的加密原语的实例。

【规范】对于每个作业,CSM每次只需处理一个实例。

【规范】CSM模块应允许并行处理不同的作业。

【规范】如果请求CSM模块的服务,并且相应的作业处于“ACTIVE”状态,则作业请求应调用CryIf_ProcessJob()并传递返回值。

【规范】如果请求了CSM模块的服务,且CSM作业需要排队,且队列已满,则应使用返回值CRYPTO_E_BUSY拒绝该作业请求。

【规范】如果配置了异步接口,CSM模块应提供一个主功能Csm_MainFunction(),它被循环地称为通过状态机控制作业的处理。

3.2.1 正常操作

【规范】为了统一单个调用函数和加密服务的流媒体方法,有一个模式参数,它决定了操作模式。此服务操作是一个标志字段,指示操作模式“START”、“UPDATE”或“FINISH”。它明确地声明应执行什么操作。这些操作模式可以混合使用,并同时执行多个操作。

        下图表显示了此设计的一个作业的状态机:

 

【规范】CSM加密服务应支持用一次呼叫处理多个操作模式的输入。

【规范】如果设置了CRYPTO_OPERATIONMODE_START和CRYPTO_OPERATIONMODE_FINISH位,而没有设置Csm_Csm_() 函数将返回E_NOT_OK。

(1)同步作业处理

【规范】当使用同步接口时,接口功能应立即借助底层的加密堆栈模块来计算结果。

【规范】如果发出了同步作业,且优先级大于队列中可用的最高优先级,则CSM将禁用处理队列中的新作业,直到当前处理的作业完成后,主函数的下一次调用完成。

【规范】如果发出了一个同步作业,且该优先级小于队列中可用的最高优先级,则CSM应返回CRYPTO_E_BUSY。

(2)异步作业处理

【规范】如果使用异步接口,接口功能只能将必要的信息移交给底层加密堆栈模块。

【规范】当请求的加密服务通过从作业原语配置调用的回调函数被处理时,应通知CSM的用户。

3.2.2 设计说明

CSM提供两种服务:

  • 加密服务本身
  • 密钥管理。

(1)CSM模块启动

Csm_Init()请求不负责触发底层CRYIF的初始化。假定底层的CRYIF将由任何适当的实体初始化。

(2)加密服务

【规范】CSM crypto services shall provide a Csm_() API。

【规范】该应用程序应能够使用操作模式CRYPTO_OPERATIONMODE_START调用Csm_() 来初始化加密计算。

【规范】应用程序应能够任意调用操作模式CRYPTO_OPERATIONMODE_UPDATE的 Csm_(),但至少一次,以将输入数据提供作业的加密原语。

【规范】应用程序应能够使用操作模式CRYPTO_OPERATIONMODE_FINISH调用Csm_()来完成加密计算。

【规范】只有 HASH, MACGENERATE, MACVERIFY, ENCRYPT, DECRYPT, AEAD_ENCRYPT, AEAD_DECRYPT, SIGNATUREGENERATE, SIGNATUREVERIFY等服务操作才能支持API规定的启动、更新和完成操作模式。对于所有其他的服务操作,CSM应将操作模式设置为CRYPTO_OPERATIONMODE_SINGLECALL,即使API没有提供一个操作模式。

【规范】如果CSM向加密接口发出服务CRYPTO_MACGENERATE,CRYPTO_MACVERIFY,CRYPTO_ENCRYPT,CRYPTO_DECRYPT,CRYPTO_AEADENCRYPT,CRYPTO_AEADDECRYPT,CRYPTO_RANDOMGENERATE,CRYPTO_SIGNATUREGENERATE或CRYPTO_SIGNATUREVERIFY,它需要确保Crypto_JobType引用的jobPrimitiveInfo->cryIfKeyId。

队列实现

        CSM可能有多个队列,其中作业根据其优先级排列,以处理多个加密请求。从CSM队列通过CryIf到加密驱动程序对象的路径称为通道。CSM的每个队列都被映射到一个通道,以访问加密驱动程序对象的加密原语。队列的大小可可配置。

        加密驱动程序对象表示独立的加密“设备”(硬件或软件,例如AES加速器)的实例。在HSM上可能有一个快速AES和CMAC计算的通道,该通道以加密驱动程序中的本地AES计算服务结束。但也有可能,加密驱动程序对象是一种软件,例如用于RSA计算,用户可以加密、解密、签名或验证数据。

【规范】应该可以在CSM中配置的CsmQueues中对CSM作业进行排队。

【规范】CsmQueues应根据所配置的作业的优先级对作业进行排序。

【规范】只有在保证作业结构数据一致性的情况下,才能添加服务操作。当将具有相同jobID的服务添加到队列时(例如,在进行对Csm_SignatureVerify()和Csm_SaveContextJob()的后续调用时),应特别考虑到这一点。如果不能保证,则服务运行将随E_BUSY返回。

【规范】如果可以将具有相同JobID的服务添加到队列中,则这些服务的执行顺序应与传入服务操作请求的顺序对应(“先入先出”)。

        队列功能实现状态如下:

 

(3)密钥管理

【规范】属于密钥管理的服务应仅提供Csm_() 功能。

【规范】一个秘钥由一个或多个秘钥元素组成。

秘钥元素的例子有秘钥材料本身、初始化向量、随机数生成的种子,或SHE标准的证明。

【规范】密钥,即具有由配置给出的符号名称与相应的密钥id。加密堆栈API使用CSM模块中的以下关键元素索引定义:

 

【规范】对于包含加密密钥材料的每个密钥元素,所提供的密钥的格式应在用于数据交换的配置中指定,例如,对于Csm_KeyElementGet()或Csm_KeyElementSet()。特定加密驱动程序支持的密钥格式是加密驱动程序附带的预配置信息的一部分。

(4)重定向加密作业的输入和/或输出

【规范】一个作业的输入和/或输出数据可以被重定向到一个秘钥元素,秘钥及其秘钥元素被重定向到的输入和输出值应在编译时进行静态配置,在运行时不得更改。

【规范】如果作业的输入或输出值被重定向到秘钥元素,并且相应的输入或输出长度值没有设置为0,则不处理作业,返回E_NOT_OK。

【规范】如果作业元素不使用输入或输出重定向,则 jobRedirectionInfoRe f应设置为NULL_PTR。如果使用重定向元件,则 jobRedirectionInfoRef 应指向Crypto_JobRedirectionInfoType的结构。

(5)作业上下文接口

【规范】在调用Csm_SaveContextJob()或Csm_RestoreContextJob()时,CSM应检查相关作业当前是否处于活动状态。如果是这样,则应按规定继续进行操作。否则(作业处于IDLE状态),该功能应立即随E_NOT_OK返回。

【规范】在调用Csm_SaveContextJob()或Csm_RestoreContextJob()时,CSM应检查相关作业当前是否正在积极处理数据,这意味着CSM已向司机安排了与该作业相关的操作,并正在等待响应。在这种情况下,该功能应立即随E_NOT_OK一起返回。

【规范】在调用Csm_RestoreContextJob()或Csm_SaveContextJob()时,CSM应检查作业是否引用原始数据、加密、加密、解密、生成、验证、签名生成或签名验证。如果是这样,则应按规定继续进行操作。否则,当CSM_E_SERVICE_TYPE检测结果正确时,不得进行操作,并向DET报告CSM_E_SERVICE_TYPE。

3.3 错误分类

3.3.1 开发错误

 

3.3.2 运行时错误

 

四、API接口

4.1 通用接口

  • Csm_Init
  • Csm_GetVersionInfo

4.2 加密接口

  • Csm_Hash
  • Csm_MacGenerate
  • Csm_MacVerify
  • Csm_Encrypt
  • Csm_Decrypt
  • Csm_AEADEncrypt
  • Csm_AEADDecrypt
  • Csm_SignatureGenerate
  • Csm_SignatureVerify
  • Csm_RandomGenerate

4.3 秘钥接口

  • Csm_KeyElementSet
  • Csm_KeySetValid
  • Csm_KeySetInvalid
  • Csm_KeyGetStatus
  • Csm_KeyElementGet
  • Csm_KeyElementCopy
  • Csm_KeyCopy
  • Csm_KeyElementCopyPartial
  • Csm_RandomSeed
  • Csm_KeyGenerate
  • Csm_KeyDerive
  • Csm_KeyExchangeCalcPubVal
  • Csm_KeyExchangeCalcSecret

4.4 Job接口

  • Csm_JobKeySetValid
  • Csm_JobKeySetInvalid
  • Csm_JobRandomSeed
  • Csm_JobKeyGenerate
  • Csm_JobKeyDerive
  • Csm_JobKeyExchangeCalcPubVal
  • Csm_JobKeyExchangeCalcSecret
  • Csm_SaveContextJob
  • Csm_RestoreContextJob
  • Csm_CancelJob

4.5 回调接口

  • Csm_CallbackNotification

4.6 调度接口

  • Csm_MainFunction

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/462888.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

配置中心基本原理

配置中心是如何实现推送的? 背景 传统的静态配置方式想要修改某个配置时,必须重新启动一次应用,如果是数据库连接串的变更,那可能还容易接受一些,但如果变更的是一些运行时实时感知的配置,如某个功能项的…

ROS学习第四十一节——SLAM建图

https://download.csdn.net/download/qq_45685327/87721374 准备工作 请先安装相关的ROS功能包: 安装 gmapping 包(用于构建地图):sudo apt install ros-melodic-gmapping 安装地图服务包(用于保存与读取地图):sudo apt install ros-melodic-map-server 安装 navigation 包…

Java -- 多线程

多线程 并发 在同一时刻,有多个指令在单个CPU上交替执行 CPU在多个线程之间交替执行 并行 在同一时刻,有多个指令在多个CPU上同时执行 多线程的实现方式 继承Thread类的方法进行实现实现Runnable接口的方式进行实现利用Callable接口和Future接口方…

数据库基础篇 《17.触发器》

数据库基础篇 《17.触发器》 在实际开发中,我们经常会遇到这样的情况:有 2 个或者多个相互关联的表,如商品信息和库存信息分别存放在 2 个不同的数据表中,我们在添加一条新商品记录的时候,为了保证数据的完整性&#…

【刷题之路】LeetCode 203. 移除链表元素

【刷题之路】LeetCode 203. 移除链表元素 一、题目描述二、解题1、方法1——在原链表上动刀子1.1、思路分析1.2、代码实现 2、方法2——使用额外的链表2.1、思路分析2.2、代码实现 一、题目描述 原题连接: 203. 移除链表元素 题目描述: 给你一个链表的…

跨数据中心下的 Kafka 高可用架构分析

导语 本文介绍了 Kafka 跨数据中心的两种部署方式,简要分析两种方式下的不同架构以及优缺点,对这些架构可能碰到的问题也提供了一些解决思路;同时也说明了 Kafka 跨数据中心部署的社区解决方案和商业化解决方案。 背景 Kafka 作为世界上最…

laravel5.6.* + vue2 创建后台

本地已经安装好了composer 1.新建 Laravel5.6.*项目 composer create-project --prefer-dist laravel/laravel laravel5vue2demo 5.6.* 2. cd laravel5vue2demo 3. npm install /routes/web.php 路由文件中, 修改 Route::get(/, function () {return view(index); });新建…

第三方jar包引入项目,发布到本地和远程仓库

在开发过程中,往往会遇到对接其他公司的系统。然后对接公司会提供API对接方式,就是给一个jar包。我们只需要把jar包引入到项目中直接用即可。本地引用jar的话可以有两种方式。第一种就是本地包引用,如下将包放下工程下,然后maven指…

【五一劳动节来了】

今年“五一”,4月29日至5月3日放假调休,共5天。 如果你在5月4日到5月6日请假3天,加上5月7日周日,就可以形成9天的假期。 一,五一劳动节的由来⭐ 国际劳动节又称“五一国际劳动节”“国际示威游行日”(英语…

抢先看,甘特图工具DHTMLX gantt 灯箱编辑器通过套件 UI 小部件进行了扩展

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的大部分开发需求,具备完善的甘特图图表库,功能强大,价格便宜,提供丰富而灵活的JavaScript API接口,与各种服务器端技术&am…

【STL十四】函数对象(function object)_仿函数(functor)——lambda表达式

【STL十四】函数对象(function object)_仿函数(functor)——lambda表达式 一、函数对象(function object)二、函数对象优点三、分类四、头文件五、用户定义函数对象demo六、std::内建函数对象1、 算术运算函…

YARN 远程代码执行(RCE)安全漏洞问题分析与解决方案

YARN 远程代码执行(RCE)安全漏洞问题分析与解决方案 1 YARN RCE 漏洞问题问题现象 某客户使用Tenable.sc扫描安全漏洞后反馈,YARN 存在Remote code execution (RCE) 安全漏洞问题,攻击者可在未经过身份验证的情况下通过该漏洞在…

【21】核心易中期刊推荐——人工智能 | 遥感图像识别

🚀🚀🚀NEW!!!核心易中期刊推荐栏目来啦 ~ 📚🍀 核心期刊在国内的应用范围非常广,核心期刊发表论文是国内很多作者晋升的硬性要求,并且在国内属于顶尖论文发表,具有很高的学术价值。在中文核心目录体系中,权威代表有CSSCI、CSCD和北大核心。其中,中文期刊的数…

psql在建表时,分为常规、外部、分区,三者有什么区别?如何从建表语句中区分?

在 PostgreSQL 中,常规表、外部表和分区表都可以通过 CREATE TABLE 语句进行创建,它们的创建语法略有不同,通过创建语句可以很明显地区分它们的类型。 以下是常规表、外部表和分区表的创建语法及示例: 1. 常规表 常规表是最常见…

Spring核心与设计思想、创建与使用

文章目录 一、Spring是什么二、为什么要学习框架三、IoC和DI(一)IoC1. 认识IoC2. Spring的核心功能 (二)DI 四、Spring项目的创建(一)使用 Maven 方式创建一个 Spring 项目 五、Spring项目的使用&#xff0…

少年与阿童木:一场软件竞技赛背后的智能未来

1961年,手冢治虫创办了虫制作株式会社,带领团队开始尝试将此前的漫画作品进行动画化。1963年的元旦,他们的首部作品一经播出就引发轰动,这部动画的名字叫做——《铁臂阿童木》。 一晃数十年,阿童木已经成为了几代人对A…

2023年6月DAMA-CDGA/CDGP数据治理工程师认证报名及费用

目前6月DAMA-CDGA/CDGP数据治理认证考试开放报名地区有:北京、上海、广州、深圳、长沙、呼和浩特。目前南京、济南、西安、杭州等地区还在接近开考人数中,打算6月考试的朋友们可以抓紧时间报名啦!!! 5月初,…

大数据 | 实验二:文档倒排索引算法实现

文章目录 📚实验目的📚实验平台📚实验内容🐇在本地编写程序和调试🥕代码框架思路🥕代码实现 🐇在集群上提交作业并执行🥕在集群上提交作业并执行,同本地执行相比即需修改…

蓝牙耳机怎么挑选?鹏鹏数码盘点2023口碑蓝牙耳机排行榜

大家好,欢迎来到鹏鹏数码频道。 上次测评发布后网友们评论不知道蓝牙耳机怎么挑选,为此我购入了市面上主流品牌的蓝牙耳机共计三十款, 经过两周的地狱式测评,总结了口碑蓝牙耳机排行榜,看看表现最好的是哪几款蓝牙耳机…

Linux操作系统命令大全

Linux是一种操作系统 Operating System 简称 OS ,是软件的一部分,它是硬件基础上的第一层软件,是硬件和其它软件沟通的桥梁。 操作系统会控制其他程序运行,管理系统资源,提供最基本的计算功能,如管理及配置…