1、AUTOSAR_E2E概述
E2E,全称End to End,中文即端到端的通信保护,是一种针对安全相关数据,为防止通信链路中可能存在的故障(HW/SW), 在 通信节点 之间 执行的 一种数据保护协议/机制。其适用于多种网络结构:CAN、 CANFD、FlexRay、Ethernet等。
基本实现方式是在要保护的数据区添加额外的E2E Header。发送端负责添加E2E Header,接收端会对Header进行校验检查,保证数据的完整性。
参考 AUTOSAR_PRS_E2EProtocol Specification R20-11 ,规定了不同的E2E Profiles,如1,2,4,5,6,7,8,11,22等
Profile | 保护机制 | 发送描述 | 最大保护数据长度 |
Profile01 | Counter(4bit)、Data ID(16bit)、 CRC8、Timeout monitoring | Data ID由Data ID Mode决定是否发送 ,Counter和CRC需要发送 | 30bytes |
Profile02 | Counter(4bit)、Data ID List(8bit)、 CRC8 | Data ID 不会发送,仅用作 CRC计算,Counter和CRC需要发送 | 256bytes |
Profile04 | Counter(16bit)、Data ID(32bit)、CRC32、Length(16bit) | Counter、Data ID、CRC、Length均会发送 | 4096bytes |
Profile05 | Counter(8bit)、Data ID(16bit) 、CRC16 | Data ID 不会发送,仅用作 CRC计算,Counter和CRC需要发送 | 4096bytes |
Profile06 | Counter(8bit)、Data ID(16bit)、CRC16、Length(16bit) | Data ID 不会发送,仅用作 CRC 计算,Counter,CRC和Length需要发送 | 4096bytes |
Profile07 | Counter(32bit)、Data ID(32bit)、CRC64、Length(32bit) | Counter、Data ID、CRC、Length均会发送 | 未知 |
Profile11 | Counter(4bit)、Data ID(16bit or 12bit)、CRC8 | Counter、Data ID、CRC均会发送 | 30bytes |
Profile12 | Counter(4bit)、Data ID List(16*8bit)、CRC8 | Data ID 不会发送,仅用作 CRC计算,Counter和CRC需要发送 | 未知 |
以E2E Profile 4为例,规范中定义了Profile 4 包含的控制字段Length、Counter、CRC、DataID,以及Header的数据结构
2、E2E Profile 4 Header的数据结构
Length : 16位,为了支持可变长度引入此字段。
Length = user data + E2E Header(CRC + Counter + Length + DataID)
Counter :16位, 取值 0 ~ 0xFFFF。发送端每发送一帧报文,计数+1,ECU1将计数值发给ECU2,ECU2对收到的counter进行比较,确认是否及时接收。
DataID :32位,必须是全局唯一的,用户定义。是ECU1和ECU2之间提前定好的特殊字段,AutoSAR profile1中对E2E_P01DataIDMode定义几种模式:BOTH、ALT、LOW、NIBBLE,Data ID用于报文checksum,但是特别注意的是这一段DID并不作为报文传输数据的一部分放在总线上,仅仅作为报文密钥,这就好比特务接头,开始聊正文之前,总要私下先确认好暗号,以证明“我接收的指令确实是期待的发送方所发送的”。
CRC :32位,循环冗余校验,是一种根据网络数据包或文件等数据简短固定位数校核码的快速算法,主要用来检测或校验数据传输或保存后,可能出现的错误,利用除法及余数的原理。
在 E2E Profile 4, CRC计算包含 整个 E2E Header(CRC字段除外) 和 user data(RS_E2E_08531),使用 CRC32 0x1F4ACFB13多项式
整个Header字段被编码为:
(1)大端:(最重要的字节在前面) - 由Profile规定,PS:高字节在前,低字节在后
(2)LSB(字节内的最低有效位)先传输 - 由TCP/IP总线强制
3、 Profile 4 工作机制图示
4、 Profile 4 CRC的计算
CRC计算基于 E2E Header(CRC字段除外) 和 user data
关于CRC计算,CRC可以理解为多项式做除法后的余数,按照除数的不同可以分类为CRC-8,CRC-16,CRC-32等,看了一下大概好几十种。
4、 Profile 4 CRC的计算
CRC计算基于 E2E Header(CRC字段除外) 和 user data
关于CRC计算,CRC可以理解为多项式做除法后的余数,按照除数的不同可以分类为CRC-8,CRC-16,CRC-32等,看了一下大概好几十种。
5、 P04 配置
//========================server==================================================
"e2e" :
{
"e2e_enabled" : "true",
"protected" :
[
{
"service_id" : "0x1111",
"event_id" : "0x3333",
"profile" : "P04",
"variant" : "protector",
"crc_offset" : "64",//最小位64,防止覆盖someip报头
"data_id" : "0x2d"
}
]
},
//=========================client===================================================
"e2e" :
{
"e2e_enabled" : "true",
"protected" :
[
{
"service_id" : "0x1111",
"event_id" : "0x3333",
"profile" : "P04",
"variant" : "checker",
"crc_offset" : "64",
"data_id" : "0x2d"
}
]
},
6、总结
vsomeip E2E保护 - 知乎1. 背景E2E保护是autosar标准中定义的,主要是为了保护通信安全(功能安全相关)。因此在原有的通信协议上增加了对应E2E的保护头部分。相关E2E会修改整体的通信协议的payload部分,因此如果需要支持E2E保护,那么…https://zhuanlan.zhihu.com/p/475460396vsomeip之E2E_someip e2e-CSDN博客文章浏览阅读2.7k次,点赞2次,收藏20次。1、AUTOSAR_E2EE2E的概念是在运行时对与安全相关的数据交互进行保护,以防止通信链路故障的影响。基本实现方式是在要保护的数据区添加额外的E2E Header。发送端负责添加E2E Header,接收端会对Header进行校验检查,保证数据的完整性。参考 AUTOSAR_PRS_E2EProtocol Specification R20-11 ,规定了不同的E2E Profiles,如1,2,4,5,6,7,8,11,22等以E2E Profile 4为例,规范中定义了Profile_someip e2ehttps://blog.csdn.net/wofeile880_jian/article/details/125014730