E2E protect Library 相关安全需求的讨论
1. E2E protect 相关简介
E2E protect主要目的是保障安全相关的数据在运行的时候,避免受到通讯链路内故障影响,主要分以下几点:
a) 防篡改:检测数据在传输过程中是否意外或恶意修改
b) 防丢失:识别数据是否丢失或重复(如CAN报文丢帧)
c)防失效性错误:验证数据是否在有效时间窗口内到达(Freshness管理)
故障来源:
a) Random HW fault (cropped register of CAN transceiver)
b)Interference( due to EMC)
c)systematic faults within the software implementing the VFB communication (RTE, IOC, COM and network stacks)
如上图所示,详细举例了E2E故障HW和SW部分的Fault resource,以及信号通讯链故障。
2. E2E 作用链路
发送方向:
SWC
→ Rte_Write_Speed(100)
→ RTE
→ COM模块
(打包为I-PDU信号) → PduR
→ 通信栈
发送方向:
通信栈 → PduR
→ COM模块
(解包I-PDU) → RTE
→ Rte_Read_Speed()
→ SWC
Data Element的E2E保护机制
a) Sender:SWC→RTE
- SWC通过Rte_Write_xxx() 写入 Data Element
- RTE调用E2Elibrary
1)生成E2E头(含CRC、Counter等)
2)将Data Element 和 E2E 头打包为受保护的I-PDR信息
b) Receiver:RTE→SWC
- RTE从COM模块接收受保护的I-PDU信号
- RTE调用E2E库验证
1)检查CRC、Counter是否有效
2)若验证失败,传递默认值或触发错误处理
Signal group level的E2E保护机制
a) Sender: I-PDUs→PduR(添加E2E头) 
- SWC生成数据
SWC通过RTE接口写入数据(如Rte_Write_XXX()
)
RTE将数据封装为I-PDU(若配置了E2E保护,RTE会调用E2E库) - E2E保护注入
E2ELibrary计算保护(CRC、Counter、DataID等),并插入到I-PDU的头部或尾部 - PduR路由
PduR将受保护的I-PDU路由至底层模块(如CAN Interface或以太网栈)
PduR不修改E2E头,仅负责透传
b) Receiver: PduR → I-PDU(验证E2E头)

- 底层模块接收
CAN驱动或以太网栈接收原始数据帧,传递给PduR - PduR路由至COM层
PduR根据配置将I-PDU路由到对应的COM模块 - E2E验证
COM模块调用E2ELibrary验证CRC、Counter等
3. E2E_Protect Resulting behaviror & configuration Parameters
如上图所示是E2E_PxxCheck() function进行E2E校验过程,在Cycle 9时,计数器的值不在可信,因为NoNewOrRepeatedData超过了MaxNoNewOrRepetiedData,因此在 Cycle 9 中记录“unexpected behavior of the counter\",从Cycle 10-11 开始\"counter continuity check\".
通常底层软件进行E2E校验会有以下结果
E2E_P01STATUS_OK
E2E_P01STATUS_NONEWDATA
E2E_P01STATUS_WRONGCRC
E2E_P01STATUS_SYNC
E2E_P01STATUS_INTIAL
E2E_P01STATUS_REPEATED
E2E_P01STATUS_OKSOMELOST
E2E_P01STATUS_WRONGSEQUENCE