什么是 E2E 保护 ?

安全在每个领域都是一个永恒的话题,汽车也不例外,而随着最近几年汽车电动化、智能化和网联化的发展,汽车安全也越来越受到用户及开发人员的重视,安全的要素也是多方面的,例如用户可能关心在使用车机系统时的隐私安全、打开ACC等辅助驾驶功能时的人身安全等;站在攻城狮的角度则会关注和考虑整车E/E架构、硬件以及软件等方面的可靠和安全,

比如硬件的EMC和随机故障、软件功能设计及控制器内部和外部的通讯安全等等。

每个安全要素作为系统目标的重要组成部分只为保证整车的可靠性和安全性,从而保护用户的人身安全。

Image

对单个控制器的而言,其功能设计要求的实现不仅涉及自身内部功能模块的数据交互,还涉及与其他控制器之间进行数据的传输和通讯,而如何保证数据传输的正确性从而避免非期望的输出和控制呢?针对该问题,方式也有很多

例如我们CAN通讯的Checksum和RollingCounter校验就是一种相对比较简单和粗糙的安全保护措施,这次简单聊下AutoSAR中的E2E保护。

E2E介绍

E2E(End-to-End)保护是一种端对端保护机制。

举个例子:控制器中某个安全关键性功能模块的输出计算依赖于内部某个非安全性的模块或其他安全等级要求不高的硬件通过总线传输过来的数据,因安全相关数据可能因通讯故障而丢失或篡改,那么如何保证数据交换的正确性呢?

此时就可借助E2E保护。从上面的例子,我们可大体知道,数据传输的链路主要存在如下三种:

  • 不同控制器之间的数据传输

  • 控制器内部ASW与ASW之间的数据传输

  • 控制器内部ASW与BSW之间的数据传输

E2E保护既可用于控制器内部功能模块之间的数据保护,也可用于不同控制器之间的数据保护。

Image

在整个链路里面,会存在硬件和软件相关的两种故障源,典型的软件相关故障源有如下几种:

  • S1: 因RTE带来的错误

  • S2: 因COM自动和手工代码引入的错误

  • S3 :网络堆栈错误

  • S4: 跨核通讯IOC或者OS的错误

硬件相关的故障源则有:

  • H1:通信网络故障

  • H2:电磁兼容性导致通信网络的接口故障

  • H3:微控制器故障,例如上下文切换时寄存器失效等

通过采用 E2E 通信保护机制可以在运行时,实时检测到通信链中出现的错误,E2E 库提供了相关的保护验证机制来保证与功能安全相关的通信。  

Image

AutoSAR标准里,采用E2E保护的算法是在E2Elibrary中实现的,调用者要负责该库使用的正确性,AutoSAR  E2E可将通过RTE发送的安全相关数据元素加上保护控制流,并校验从RTE接收到的安全相关数据元素是否正确,若存在问题还需报出错误供负责接收的SWC做相应处理。

三种实现方式

在 AutoSAR标准中,E2E 保护的实现有三种不同方式:

  • E2E Transformer:这是一种在AutoSAR 4.2.1中首次被提出的全新且标准化的 E2E 实现方式,并这种实现方式下,RTE 会调用 E2E  Transformer 的 API,E2E  Transformer 的 API 进一步调用E2E  Lib 提供的函数库,实现 E2E的保护和校验。所有的函数调用全部封装在 RTE 内部实现,这是标准要求最终实现的目标。

Image

  • E2E Protection Wrapper(E2EPW):这种在 RTE 之上进行了一次封装,E2EPW负责调用 E2E  Lib 提供的函数库,实现 E2E 的保护和校验,并通过RTE 的 API 进行发送和接收。这是一种较为通用的方式,可适用于不同层次软件组件之间的通信,小到同一个核上的 SWC 之间的通信,大到跨 ECU SWC 之间的通信都是适用的。

Image

基于E2EPW方式-SWC之间

Image

基于E2EPW方式-ECU之间

  •  COM E2E Callout的 E2E 保护和校验是在基础软件层做的,主要负责ECU之间的通讯。在这种实现方式下检验的单元是以 PDU 的形式存在的,某一个 PDU 发送或者接收时,会触发该 PDU 的 Callout 函数,在 Callout 函数内部实现 E2E 的保护和校验,例如对于发送方示例如下:

Image

什么是 E2E 保护 ? (qq.com)

### AUTOSAR E2E Protection 配置教程 #### 信号组 (Signal Group) 的 E2E 保护配置 为了实现AUTOSAR中的端到端(E2E)保护机制,特别是针对传输层(TX)上的信号组(Signal Group),需要遵循一系列特定的配置步骤。这些步骤不仅涉及基础设置还涵盖了更复杂的参数调整以确保数据的安全性和完整性。 对于基于Profile 2的E2E保护配置,主要关注的是如何通过`E2EPW`组件来定义和应用必要的属性给待保护的数据单元。这通常涉及到创建并关联一个或多个`PduR_E2e_ProtocolConfigSet`实例至相应的通信路径中去[^1]。 具体来说: - **定义E2E Profile**: 根据需求选择合适的profile版本(如Profile 2), 并指定其特性集, 如使用的校验算法(CRC)类型、序列计数器长度等。 - **配置Transformer Chain**: 设置由一组变换器组成的链路,负责处理消息前后的编码/解码工作以及附加必要的验证信息。此过程可能包括但不限于添加CRC计算节点、管理序列号更新逻辑等功能模块[^3]. ```xml <TRANSFORMER_CHAIN> <!-- Example of a transformer chain configuration --> </TRANSFORMER_CHAIN> ``` - **映射至具体的信号群组**: 将上述构建好的保护策略应用于实际要被防护的消息结构内——即所谓的“信号群”。这意味着每一个参与交互的对象都需要明确定义它所期望接收或是发出经过特殊处理过的payload格式. ```c++ // C++ code snippet showing how to map the protection settings onto signal groups. void configureProtectionForSignalGroup(const SignalGroup& group); ``` 以上操作均需严格依照官方文档指导完成,并且建议开发者在整个开发周期里持续跟踪最新的标准变动情况以便及时作出相应修改。 #### 实际应用场景下的注意事项 当考虑将E2E保护措施集成进现有系统架构时,除了技术层面的因素外还需要综合考量其他方面的影响因素。例如性能开销评估就显得尤为重要;因为额外加入的安全特性可能会带来一定的资源消耗增加,所以在设计初期就应该对此有所预见并采取适当优化手段加以缓解[^2]。 此外,考虑到不同ECU之间可能存在差异化的硬件平台支持程度不一致等问题,则更加凸显了前期规划的重要性。因此,在实施任何变更之前务必进行全面测试验证,从而保证最终解决方案既能满足预期的功能要求又能保持良好的兼容性表现。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值