电子电子架构——AUTOSAR信息安全机制有哪些(下)

news2024/11/24 22:58:44

电子电子架构——AUTOSAR信息安全机制有哪些(下)

我是穿拖鞋的汉子,魔都中坚持长期主义的工程师。

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:

人们会在生活中不断攻击你。他们的主要武器是向你灌输对自己的怀疑:你的价值、你的能力、你的潜力。他们往往会将此伪装成客观意见,但无一例外的是,他们想让你怀疑自己。

本文主要讲述如下内容,介绍电子电气架构中汽车以太网诊断路由汇总:

-> 4、Crypto Stack

-> 5、IAM

-> 6、KeyM

-> 7、IdsM

四、Crypto Stack

为了汽车软件提供统一的安全加密/ 解密接口,AUTOSAR 在4.3 版本推出Crypto Stack 模块。Crypto Stack 是AUTOSAR 架构体系中负责数据加密保护和密钥管理的模块,由Crypto Service Manager,Crypto Interface, Crypto Driver 三个部分组成,为应用程序和系统服务提供了标准化的密码服务接口。密码服务可以是哈希计算,非对称签名验证,对称加密等。其主要应用于ECU 通信加密、SecurityAccess 流程保护和KEY 的管理等使用场景。

CSM(Crypto Service Manager)是加密服务管理器,位于AUTOSAR 的SYS 模块最高层的服务层。服务层是基础软件的最高层,它的任务是为应用软件和基本软件模块提供基本服务,即为应用软件和基本软件模块提供最相关的功能。CSM 基于一个依赖于软件库或硬件模块的加密驱动程序来提供加密功能的服务,也可以使用多个加密驱动程序的混合设置。CSM 通过CryIf(Crypto Interface)访问不同的加密驱动程序。

CSM和邻近模块的关系

CSM 作为服务层,为SWC 或BSW 提供加密操作的接口。CSM 的主要任务是对服务进行调度和排序,并调用加密接口(CryIf)进行进一步操作。CryIf 将请求调度到加密驱动程序及其静态分配给该服务的加密驱动程序对象。CSM 使用基元(CsmPrimitives,已配置加密算法的实例)的静态配置来定义加密操作。然后将这样的基元分配给Job(Job 是配置过的CsmJob,指的是密钥、密码原语和参考信道),该配置决定进一步的属性,如优先级、异步或同步执行以及程序执行中应使用的密钥。需要注意的是,密钥总是位于加密驱动程序本身中,CSM 只使用对它的引用。

密钥和基元的分离允许加密操作和密钥管理API 分离。这使得应用程序可以专注于所需的加密操作,如MAC 计算和验证,而密钥管理器则在配置设置期间提供密钥。

CSM的API大致可以分为两类:直接AP(I 主要用于密钥管理)和基于Job的AP(I 主要用于加密操作)(见下图)直接API 与CryIf 和Crypto Driver 中的函数有直接对应关系,这些函数只能同步调用,CSM将把参数从应用程序直接传递给函数调用。基于Job 的API 使用一个Job 结构,即Crypto_JobType,它包含静态和动态参数以及对结构的引用,为执行该Job 的加密驱动程序提供所有必要的信息,使用Job 的每个服务都将使用此结构。服务的所有必要参数将由CSM 打包到结构的元素中,然后调用CryIf,然后调用配置好的Crypto Driver。

CSM、CryIf和Crypto的Job API和直接API调用树

Job 可以同步运行,也可以异步运行,这取决于静态配置。加密服务信息、加密算法族和模式的参数决定了加密驱动程序中要执行的确切的加密算法。

CryIf(Crypto Interface)是加密接口模块,位于BSW(Basic SoftWare)的抽象层。CryIf 模块提供了唯一的接口来管理不同的加密硬件和软件解决方案,如 HSM、SHE 或基于软件的 CDD。

AUTOSAR Layered View with Crypto-Interface

CryDrv 有如下两种实现方式:

1. Crypto(HW based):硬件加密模块的驱动程序,用于控制HSM(Hardware Security Module)或SHE(Security Hardware Extensions),和具体芯片有关。

2. Crypto(SW based):基于软件的CDDs(Complex Device Drivers) 实现的加密算法, 如AES-128 等算法。

基于以上两种不同的实现方式,CryIf 模块提供了唯一的接口来管理不同的加密硬件和软件解决方案。因此,基于 CryIf 维护的映射方案,CSM 模块可以使用多个底层的Crypto HW 以及 Crypto SW 解决方案。此外,CryIf 还确保了对加密服务的并发访问,从而能够同时处理多个加密任务。

与CP AUTOSAR 不同,AUTOSAR 自适应平台支持用于通用加密操作和安全密钥管理的API。该API 支持在运行时动态生成密钥和加密作业,以及对数据流进行操作。API 实现可以引用一个中央单元(加密服务管理器)来实现平台级任务,例如跨应用程序一致地进行访问控制和证书存储。该实现还可以使用加密服务管理器来协调功能到加密驱动程序的卸载,例如硬件安全模块(HSM)。为了在潜在的应用程序受损的情况下支持密钥的安全远程管理,Crypto Stack 集成了密钥管理体系结构,其中密钥和相关数据以端到端的保护形式进行管理。密钥可以基于现有的供应密钥以受信任的方式引入系统,也可以通过本地密钥生成以不受信任的方式引入系统。

五、IAM

车内信息娱乐应用程序由于与外界互联网相连,因此被入侵的风险很高,像这类应用程序在设计时一定是不被允许使用车身控制相关服务的。例如信息娱乐系统被外界攻击,然后被远程控制去使用制动服务,为了保障安全,必须要阻止这种信息娱乐应用程序对制动服务访问的任何尝试。

日益增长的信息安全需求驱动了身份和访问管理(IAM)的概念,因为AUTOSAR Adaptive 平台需要和应用程序建立健壮和良好定义的信任关系。IAM 为Adaptive 应用程序引入了特权分离,并针对攻击时的特权升级提供了保护。另外,在部署期间,IAM 能够使集成者提前验证Adaptive 应用程序要求的资源访问权限。IAM 为来自适应应用程序对服务接口,Adaptive 平台基础功能簇和相关模型资源的的请求提供了访问控制框架。

IAM 框架为AUTOSAR Adaptive 平台堆栈和Adaptive 应用程序的开发人员提供了一种机制,这种机制用于对每个应用程序的意图进行建模,根据访问请求提供访问控制决策,并执行控制访问。IAM 侧重于提供方法来限制Adaptive 应用程序对Adaptive 平台基础接口、服务接口与功能集群相关的明确资源接口( 例如KeySlots) 的访问。特别对系统资源( 如CPU 或RAM) 的强制配额不包括在IAM 中。

在运行期间,IAM 的进程对Adptive 应用程序是透明的,除非请求被拒绝并发出通知。远程Adaptive平台提供的服务实例请求由IAM 覆盖的,传入请求的PDPs 必须由Adaptive 应用程序实现。

该框架旨在运行期间执行对AUTOSAR 资源的访问控制。假设Adaptive 应用程序将在启动时进行身份验证,并且现有受保护的运行时环境确保Adaptive 应用程序被正确隔离,并且防止它们的特权升级( 例如绕过访问控制)。

考虑一个简单的应用场景,对于访问权限的描述,通常可以用一个访问权限矩阵来表示:

访问权限矩阵

访问权限矩阵显示的是访问主体和访问客体之间的访问权限。所谓访问主体,是指一个想要获得其他服务访问权限的对象,通常是指系统中的一个进程;所谓访问客体,是指应当授权被访问的对象,通常它可以是指系统中的一个进程也可以是系统中的其他资源。

访问权限相关的信息需要以清单文件的形式部署在系统中。对于这份清单文件,有两种组成形式:

第一种,针对每一个服务和应用,从访问权限主体的角度,列举每个访问主体的访问意图,也就是每个访问主体拥有的其他服务或应用程序(访问客体)的访问权限;

第二种,针对每一个服务和应用,从被访问的客体角度,列举出它支持被哪些其他服务和应用(访问主体)访问。对于访问主体,通常情况下它可访问的客体清单文件是不会随着时间推移而改变;但是对于一个访问客体,它的被访问清单会随着部署了新的应用而更新。

六、KeyM

在一个加密功能中,密钥和证书的功能比重很大。首先,密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。许多加密算法需要使用到密钥,因此,就需要KeyM 模块来管理密钥,而KeyM 对于密钥的管理主要体现在更新和生成密钥方面。而证书以加密或解密的形式保障了用户网络交流中的信息和数据的完整性和安全性。KeyM 模块可以实现证书链的配置保存与验证,这使得网络中的信息和数据的安全性更高。

AUTOSAR KeyM 模块由两个子模块组成:密钥子模块和证书子模块。密钥子模块用于初始化、更新和维护的密钥材料;证书子模块允许定义和配置证书,以便在生产时存储它们,并进一步用于多种用途。

AUTOSAR layered view with KEYM

密钥子模块提供了一个API 和配置项,用于引入或更新预定义的加密密钥材料。它充当一个关键客户端,解释从一个关键服务器提供的数据,并创建相应的关键材料,这些密钥被提供给加密服务管理器。成功安装密钥材料后,应用程序就能够进行加密操作。

证书子模块提供了对证书进行操作的API 和配置。允许配置证书链,在配置中将证书的属性和关系设置好,上层应用通过 API 将证书数据传给KeyM 后,证书子模块将根据配置内容及HSM 按照标准结构解析的证书存储配置的位置(NVM、CSM 或 RAM)。此外,证书子模块允许BSW 模块和SWC 在AUTOSAR 软件架构的中心点上更有效地使用证书进行操作。此类操作的示例包括验证完整的证书链或从运行时提供并验证的证书中检索元素。所需的加密操作(如验证证书签名)仍然由加密服务管理器中定义的相关加密作业执行。

与CP AUTOSAR 不同,AP AUTOSAR 平台的更新和配置、通信、持久性或诊断等服务,也需要加密服务作为其功能的一部分。因为架构差异的原因,AP AUTOSAR 平台会将需要用户自定义、差异性的功能在应用层去实现,所以应用程序可以定义所需的密钥插槽、加密提供程序和证书。当需要关键材料时,必须由自适应应用程序(例如OEM key manager)配置,平台应指定槽型机器的关键槽。为了管理关键材料,一个专用的自适应应用程序(密钥管理器)可以指定相同的密钥插槽(即相同的参数和插槽型机器)。

七、IdsM

车辆中的许多新功能建立在车载和后台服务之上,需要面对保护车辆免受网络攻击的挑战。为车辆的E/E 架构配置了安全机制,更新签名软件、安全启动和安全车载通信系统正在逐步建立。目前,IDS 作为一种额外的安全机制正在引起OEM 和供应商的关注。

入侵检测系统管理器(IdsM)是一个基础软件模块(适用于Classic AUTOSAR)或平台服务(适用于Adaptive AUTOSAR),用于收集和集中聚合可能由车辆软件、通信或电子系统受到恶意攻击而导致的安全事件。软件组件IdsM 提供了接收板载安全事件SEv 通知的标准化接口。SEv 可以通过BSW (Basic Software Modules)和SW-C (application Software Components)实现的安全传感器上报。此外,可以用可选的上下文数据(如事件类型和可疑数据)报告SEv,这些数据对于在后端执行的安全取证来说是有用的信息。

除了收集,IdsM 还可以根据可配置的规则对SEv 进行筛选。IdsM 将上报的SEv 过滤并转换为合格的机载安全事件(QSEv),IdsM 进一步处理QSEv,用于存储或转发。根据总体安全概念的不同,QSEv可以通过安全事件内存(Sem)在本地持久化,也可以传播到已配置的接收器,或者两者兼有。可用的接收器是诊断事件管理器(Dem)模块和IDS 报告器模块(IdsR),它们可以将QSEv 数据传递给后端中的安全操作中心(SOC)。

在车辆内的每个安全相关或机器中,IdsM 模块或服务的实例会收集和过滤安全事件(可选地包括附加数据),以便将它们存储在本地安全事件内存(Sem)和/ 或通过车辆网络将它们转发到中央入侵检测系统报告器(IdsR)。例如,该IdsR 可能位于远程信息处理单元内,使其能够通过蜂窝网络向OEM 的安全操作中心(SOC)发送安全报告和相关数据。然后,安全事件管理(SIEM)分析这些信息,并在必要时用于制定和决定适当的防御或缓解措施以应对攻击。

AUTOSAR 标准指出BSW 模块、CDD 和SWC 都可以充当安全传感器,安全传感器将安全事件(SEv)报告给IdsM,AUTOSAR 标准化可以由AUTOSAR BSW 报告的安全事件类型的子集。每个BSW 的规格里列出了自己产生的安全事件类型,这些事件由相应模块报告,业务组件也可以报告在AUTOSAR 中未标准化的自定义安全事件类型,可以使用安全性摘要(SecXT)指定由特定ECU 报告的安全性事件类型的属性。AUTOSAR 入侵检测系统管理器是通用的、提供灵活的配置。它独立于底层通信系统,在上述限制和假设条件下可以应用于任何汽车领域。

搁笔分享完毕!

愿你我相信时间的力量

做一个长期主义者!

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

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

相关文章

使用FastChat部署Baichuan2

1. 引言 近来,大型语言模型的市场需求呈现出蓬勃发展的态势。然而,仅仅掌握模型的数据准备和训练是不够的,模型的部署方法也变得至关重要。在这篇文章中,我们将以Baichuan2为例,利用FastChat进行模型部署的实战操作。…

IDEA 中 Maven 报错 Cannot resolve xxx【终于解决了】

问题 pom中已经添加相关依赖,maven刷新也没有用,依旧是疯狂报错 解决办法 不断的查询资料,总结一下试过的办法。 解决办法一:清除缓存 File -> Invalidate Caches/Restart -> Invalidate And Restart 试了之后也就报错 …

C# EPPlus 访问 Excel表格

EPPlus是什么? 一个访问Excel表格的库,调用相当简单 怎么访问? 表格可以简单理解成一个二维数组我希望访问表格像二维数组一样简单我希望消耗不算太大 封装一个类 下载DLL以及这个文件:《下载传送门->》 注意需要导入EP…

uniapp iOS离线打包——上传到App Store

uniapp iOS离线打包,如何打包上传到App Store? 文章目录 uniapp iOS离线打包,如何打包上传到App Store?打包上传 App Store App iOS 离线打包 上一篇分享部分工程配置 打包上传 App Store 选中项目工程:点击 工具栏 P…

虚幻4学习笔记(14)界面切换、局域网联机

虚幻4学习笔记 创建游戏加入游戏搜索服务器加入服务器刷新服务器 B站UP谌嘉诚课程:https://www.bilibili.com/video/BV164411Y732 创建游戏 新建三个UI界面 FindServer、JoinServer、MainMenu 打开MainMenu 打开FindServer 添加Scroll Box滚动框 添加Circular T…

【计算机网络】——应用层

// 图片取自王道 仅做交流学习 一、基本概念 应用层概述 协议是 网络层次模型 中多台主机之间 同层之间进行通信的规则。是一个水平概念 垂直空间上,向下屏蔽下层细节,向上提供服务接入,多台主机之间同层之间形成一条逻辑信道。 应用层的…

关于Pandas数据分析

pandas的数据加载与预处理 数据清洗:洗掉脏数据 整理分析:字不如表 数据展现:表不如图 环境搭建 pythonjupyter anaconda Jupyter Notebook Jupyter Notebook可以在网页页面中直接编写代码和运行代码, 代码的运行结果也会直接在代码块下显示…

zabbix学习2--zabbix6.x高可用

文章目录 1. server高可用-默认HA2. 访问高可用 1. server高可用-默认HA 1.部署zabbix单节点后,配置添加HANodeName和NodeAddress即为HA架构 2.zabbix1故障后切换zabbix2使用 3.浏览器访问主机1,使用主机1php前端连接mysql后zabbix2提供后台服务--------…

Linux:进程的本质和fork初识

文章目录 回顾进程查看进程的方式fork 回顾进程 前面对进程进行了一些初步的认知,比如进程可执行程序内核数据结构PCB,再比如可以通过ps命令搭配管道寻找进程,通过/proc系统文件夹查看进程的信息,这些都是前面对进程建立起来的一…

【数据结构】list.h 常用函数实现详解

目录 一、概述二、基础函数✨2.1 INIT_LIST_HEAD✨2.2 list_empty 三、添加结点的函数✨3.1 __list_add✨3.2 list_add✨3.3 list_add_tail 四、删除结点的函数✨4.1 __list_del✨4.2 list_del 五、获取结构体指针、遍历链表✨5.1 list_entry✨5.2 list_for_each✨5.3 list_for…

如何让异步序列(AsyncSequence)优雅的感知被取消(Cancel)

概览 自  从 Swift 5.5 推出新的 async/await 并发模型以来,异步队列(AsyncSequence)就成为其中不可或缺的重要一员。 不同于普通的序列,异步序列有着特殊的“惰性”和并发性,若序列中的元素还未准备好&#xff0c…

BGP选路的十一条原则(第八课)

华为官网:有详细的BGP11条选路原则介绍 NetEngine AR 产品文档 (huawei.com) 第一 BGP 属性 第二 BGP 十一条选路原则 实操部分

5个小功能掌握正则表达式的使用

点击下方关注我,然后右上角点击...“设为星标”,就能第一时间收到更新推送啦~~~ 这篇文章通过实现5个小功能,来讲述在Java中如何使用正则。 Java中如何使用正则 Java中正则相关类位于java.util.regex包下,主要使用2个类&#xff0…

【Maven入门篇】(1)详细讲解Maven的安装报错解决

🎊专栏【Maven入门篇】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【The truth that you leave】 🥰欢迎并且感谢大家指出我的问题 文章目录 🌺Maven介绍⭐作用⭐官网 🎄maven安…

mysql 5.7 修改密码

为了提高安全性 mysql5.7中user表的password字段已被取消,取而代之的事 authentication_string 字段,当然我们更改用户密码也不可以用原来的修改user表来实现了。下面简绍几种mysql5.7下修改root密码的方法(其他用户也大同小异)。…

整洁架构能有多整洁?

前段时间,我将一个中大型后端项目顺利地从Spring Boot 2.5 迁移到了Spring Boot 3,整个过程仅花了一天左右时间,在小酌庆祝之余,我开始思考此次迁移之所以能够顺利进行的原因,此时一个概念立即闪现脑海——整洁架构。 …

ARM Cortex-M内核中系统堆栈

文章目录 有无OS的栈结构区别:裸机的任务栈结构带FreeRTOS操作系统的任务栈 ARM的寄存器有哪些特殊寄存器有哪些 关于FreeRTOS中的SP寄存器栈操作【压栈与弹栈的操作】一般函数嵌套调用时sp指针的变化Cortex-M内核的MSP与PSP作用 有无OS的栈结构区别: 裸…

雷达设备问题(从另一个角度看待区间合并 + 贪心思路 + 未发现关键的错误样例)

雷达设备问题 文章目录 雷达设备问题前言题目描述题目分析代码详解错误案例分析:思路代码: 前言 对于区间合并问题,我们一般会将区间按照左端点或者是右端点进行排序,至于其中的选择要依据题目的分析,这里给大家用贪心…

Nginx 设置禁用 OPTIONS 请求

1、修改 nginx 配置 在 nginx.conf 配置文件中,增加如下内容: if ($request_method ~* OPTIONS) {return 403; }效果如下: 2、重启 nginx 服务 systemctl restart nginx或者 service nginx restart3、功能验证 使用如下命令&#xff…

【Java毕设项目】基于SpringBoot+Vue教务管理系统的开发与实现

博主主页:一季春秋博主简介:专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发,远程调试部署、代码讲解、文档指导、ppt制作等技术指导。主要内容:毕业设计(Java项目、小程序、安卓等)、简历模板、学习资料、…