鉴源实验室 | AUTOSAR E2E:车载通信的安全保障

作者 | 沈平 上海控安可信软件创新研究院汽车网络安全组

来源 | 鉴源实验室

社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区”

随着汽车行业逐步走向电气化、智能化,车载系统的软件和硬件复杂度不断上升。如何确保这些复杂系统中的数据通讯安全和可靠,已成为业界关注的焦点。E2E(End-to-End)通讯常常指的是一个信息从发送端到接收端的完整传输过程,保障通讯中数据的完整性与安全性。AUTOSAR (AUTomotive Open System ARchitecture) 是一个全球汽车工业的标准化项目,旨在为嵌入式汽车软件创造一个共同的标准。在AUTOSAR架构中,软件被分为三个主要层次:应用软件 (ASW, Application Software),基础软件 (BSW, Basic Software),以及运行时环境 (RTE, Runtime Environment)。E2E通常是在ASW层实现的,它确保应用级的数据通信在发送和接收时的完整性。图1所示为在AUTOSAR架构中E2E保护示例图。在图1中E2E能够减轻BSW层软硬件以及ECU之间网络通讯的故障。

图片

图1 通过E2E保护减轻故障的示例图

功能安全是关于硬件和软件系统在出现故障时仍然保持安全状态的能力。在车载系统中,例如ISO 26262标准定义了如何评估和确保汽车电子/电气系统的功能安全。当进行功能安全评估时,可以考虑E2E保护作为降低数据通信相关风险的一个措施。

E2E之所以能够保证一定程度的功能安全是因为E2E保护的目标是确保数据在传输过程中的完整性,避免由于噪声、干扰或软件错误导致的数据损坏或失真。它包括两大核心要素:

1. 通过计算和验证校验和或CRC(循环冗余校验),确保数据在传输过程中没有被篡改或损坏。如果一个关键系统(例如制动系统或转向系统)收到了损坏或篡改的数据,它可能会做出不正确的决策,从而导致功能失效甚至危险情况。E2E保护通过确保数据完整性来减少这种风险。

2. 通过顺序计数器(Counter)来确保消息按预期的顺序到达,能够检测丢失的消息或重复的消息。如果接收端的计数器值与预期不符,这可能是由于消息丢失或者重复。对于某些功能安全关键的应用,如自动驾驶或紧急刹车,如果系统收到的数据是间断的,可能会导致不适当或延迟的响应。

接下里将结合AUTOSAR官方文档中的E2E Profile 1例子,具体阐述E2E是如何工作的。

E2E Profile 1由以下四个组件构成:

  • CRC:循环冗余检查。Profile 1通常使用一个8位的CRC,采用CRC-8-SAE J1850-0x1D多项式计算。

  • Counter:计数器在每次消息发送时增加。对于Profile 1,这通常是一个4位的值,这意味着它的范围是从0到14。当达到最大值后,计数器会回绕到0。

  • Data ID:用来唯一标识数据元素或消息的标识符。对于Profile 1,这通常是16位的值,用来参与计算CRC,但不会进行实际的数据传输。

  • Timeout monitoring:超时监控是由E2E管理模块对counter的值计算得到。

需要注意的是E2E保护中的CRC不同于CAN或者FlexRay通讯协议的CRC校验。其中CAN或者FlexRay通讯协议的CRC是由通信控制器中的硬件支持提供,并不是由E2E管理模块生成的。E2E保护中的CRC是CAN或者FlexRay通讯协议中传输的数据段内容。另外Counter的值是0到14,值15是用来表示错误的。

在AUTOSAR 官方文档中E2E Profile 1对于CRC以及Counter是可以自定义其起始位置的,在本文中将CRC起始位置定义为bit 0且长度为8,Counter起始位置定义为bit 8,且长度为4。如图2所示。

图片

图2 E2E保护报文矩阵示意图

CRC的计算过程中,一般会对整个报文传输的数据进行校验。其中未使用的bit位用0xFF代替。根据图2报文矩阵定义,CRC的计算如图3计算示意图所示,在图3中CRC计算的结果填充在了报文的第一个Byte,Counter值填充在了报文第二个Byte的低位。

图片

图3 CRC计算示意图

E2E保护的工作原理,作为发送端需要对每一条消息增加顺序计数器的值,使用Data ID、Counter以及传输数据计算CRC,将Counter和CRC添加到消息中并发送。作为接收方使用接收到的Data和Counter计算CRC,检查计算出的CRC是否与接收到的CRC匹配,检查Counter值以确定消息的连续性。如果在接收端CRC不匹配,这意味着数据可能已经被损坏。根据系统的需求,可以选择触发一个错误报告或者采取其他的错误处理措施。如果Counter值不是预期的(例如,如果它比上一条消息的值小),这可能意味着消息是过时的或者已经被重复。同样,可以根据具体情境进行处理,如丢弃数据或者触发一个警告。对于Counter校验机制如图4所示。

图片

图4 counter校验机制

在图4中,会根据配置的参数对counter进行校验,配置项包括允许最大的丢帧的数量,允许重复的计数器的数量等。通过对计数器的校验,会导致8种E2E状态:

  • E2E_P01STATUS_OK:Counter计数器正确并且CRC校验正确。

  • E2E_P01STATUS_NONEWDATA:一个报文周期内未接收到该E2E报文。

  • E2E_P01STATUS_WRONGCRC:CRC校验失败。

  • E2E_P01STATUS_SYNC:在收到期望之外的Counter后,收到了一个正确的CRC与合理的Counter。

  • E2E_P01STATUS_INITIAL:初始化阶段。

  • E2E_P01STATUS_REPEATED:收到的Counter是重复的。

  • E2E_P01STATUS_OKSOMELOST:接收到的E2E报文连续两帧之间的Counter差值大于1但小于MaxDeltaCounterInit。

  • E2E_P01STATUS_WRONGSEQUENCE:接收到的E2E报文连续两帧之间的Counter差值大于MaxDeltaCounterInit。

以上,本文对E2E保护机制的核心概念以及实现原理进行了简单的阐述。如果想对E2E保护机制在AUTOSAR中如何进行配置,需要进一步阅读AUTOSAR官方文档。

参考文献:

AUTOSAR.(2022).E2E Protocol Specification. AUTOSAR Standard Working Specification.

AUTOSAR.(2022).pecification of SW-C End-to End Communication Protection Library. AUTOSAR Standard Working Specification.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在线设计数据库表用Itbuilder,极简易用真香!!!

“如果您想要一个具有快速搜索运行的高性能数据库,那么数据库设计是必不可少的,花时间设计数据库将帮助您避免效率低下和高冗余等问题”。 在线数据库设计软件itbuilder,界面清爽漂亮,功能简洁,没有多余设置很容易上手…

DevOps持续集成-Jenkins(4)

文章目录 DevOpsDevOps概述Jenkins流水线任务入门⭐Jenkins流水线任务的Hello World体验⭐Jenkins流水线语法例子Jenkins流水线语法生成器⭐ Jenkins实战4:构建pipeline(流水线)的Jenkins项目⭐项目架构图Jenkins实战4的初步流水线模板&#…

直播预告 | YashanDB 2023年度发布会正式定档11月2日,邀您共同见证国产数据库发展实践!

11月2日,YashanDB 2023年度发布会将于云端直播开启,发布会以 「惟实励新」 为主题,邀请企业用户、合作伙伴、广大开发者共同见证全新产品与解决方案。届时发布会将在墨天轮社区同步进行,欢迎大家报名! 惟实求真。Yasha…

redis中的io多线程(线程池)

文章目录 redis多线程模型redis为什么引入I/O多线程I/O多线程模型 源码解析测试设置连接建立数据传输线程调度开启io线程startThreadedIO关闭io线程stopThreadedIO redis多线程模型 redis为什么引入I/O多线程 Redis 的性能瓶颈在网络 IO 的处理上。Redis 是网络 IO 密集型&am…

《ATTCK视角下的红蓝对抗实战指南》一本书构建完整攻防知识体系

一. 网络安全现状趋势分析 根据中国互联网络信息中心(CNNIC)发布的第51次《中国互联网络发展状况统计报告》,截至2022年12月,我国网民规模为10.67亿,互联网普及率达75.6%。我国有潜力建设全球规模最大、应用渗透最强的…

雪糕冰淇淋经营配送小程序商城效果如何

雪糕冰淇淋是很多年轻人喜欢的食品之一,市面上的雪糕品牌类型众多,销售模式主要为厂家批发、经销商零售等,由于雪糕冰淇淋的易化性,很多用户会选择就近购买,但制作技术升级和长途冷藏技术下,网购成为另一种…

建模仿真软件 Comsol Multiphysics mac中文版软件介绍

COMSOL Multiphysics mac是一款全球通用的基于高级数值方法和模拟物理场问题的通用软件,拥有、网格划分、研究和优化、求解器、可视化和后处理、仿真 App等相关功能,轻松实现各个环节的流畅进行,它能够解释耦合或多物理现象。 附加产品扩展了…

基于Java的电动车实名挂牌系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding) 代码参考数据库参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&am…

NLog详解

目录 1.简介 2.项目中使用NLog 2.1 快速使用NLog 2.2 通过配置文件使用NLog 3.NLog配置参数详解 3.1 全局配置 3.2 根元素 3.2.1 targets 3.2.1.1 layout 3.2.2 rules 3.2.3 extensions 3.2.4 include 3.2.5 variable 4.附录 1.简介 NLog是一个基于.NET平台编写…

minio + linux + docker + spring boot实现文件上传与下载

minio docker spring boot实现文件上传与下载 1.在linux上安装并启动docker2.在docker中拉取minio并启动3.Spring Boot 整合 minio4.测试 minio 文件上传、下载及图片预览等功能 1.在linux上安装并启动docker 检查linux内核,必须是3.10以上 uname ‐r安装docker…

基于aop 代理 Sentinel Nacos配置控制包装类实现原理

基于aop & 代理 & Sentinel & Nacos配置控制包装类实现原理 Hi,我是阿昌,今天记录下看sentinel源码结合业务实现的思路基于aop & 代理 & Sentinel & Nacos配置控制包装类实现原理;下面并不会手把手的记录方案的实现…

绿野仙踪不仅是童话,还是便宜又好用的产品测试法!

以 ChatGPT 为代表的大语言模型爆火后,推动了对话类人工智能产品的高速发展,我们已经看到了如智能助理、问答系统、自动写作等多种类型的个性化对话类 AI 服务。 AI 能力的提升让人们对智能 AI 产品的期望越来越高,相关产品的用户体验也因此变…

基于springboot实现校友社交平台管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现校友社交平台管理系统演示 摘要 校友社交系统提供给用户一个校友社交信息管理的网站,最新的校友社交信息让用户及时了解校友社交动向,完成校友社交的同时,还能通过论坛中心进行互动更方便。本系统采用了B/S体系的结构,使用了java技…

PPT文档图片设计素材资源下载站模板源码/织梦内核(带用户中心+VIP充值系统+安装教程)

源码简介: PPT文档图片设计素材资源下载站模板源码,作为织梦内核素材资源下载站源码,它自带了用户中心和VIP充值系统,也有安装教程。 织梦最新内核开发的模板,该模板属于素材下载、文档下载、图库下载、PPT下载、办公…

疯狂java 三-六章

第三章 数据类型和运算符 Java语言是强类型语言,意思是每个变量和每个表达式都有一个在编译时就确定的类型,所有的变量都必须显式声明类型 标识符就是类,变量、方法命名的符号 标识符不能包含空格 标识符只能包含美元符($),不…

python自动化测试平台开发:自动化测试平台简介

一.测试平台简介 为什么需要测试平台 已有的开源测试平台不能满足需要,不要轻易造轮子 需要公司级别的定制 需要整合公司内部的多套平台 例子:DevOps平台、精准化测试平台、质量监控平台等等 常见的测试平台开发模式 大一统模式(适合简单的…

基于springboot实现校友社交平台管理系统项目【项目源码+论文说明】

基于springboot实现校友社交平台管理系统演示 摘要 校友社交系统提供给用户一个校友社交信息管理的网站,最新的校友社交信息让用户及时了解校友社交动向,完成校友社交的同时,还能通过论坛中心进行互动更方便。本系统采用了B/S体系的结构,使用了java技…

STM32-程序占用内存大小计算

STM32中程序占用内存容量 Keil MDK下Code, RO-data,RW-data,ZI-data这几个段: Code存储程序代码。 RO-data存储const常量和指令。 RW-data存储初始化值不为0的全局变量。 ZI-data存储未初始化的全局变量或初始化值为0的全局变量。 占用的FlashCode RO Data RW Data; 运行消…

如何为你的地图数据设置地图样式?

地图样式设置是GIS系统中非常重要的功能模块,水经微图Web版本最近对符号样式功能模块进行了升级。 你可以通过以下网址直接打开访问: https://map.wemapgis.com 现在我们为大家分享一下水经微图Web版中,如何为你标注的地图数据设置地图样式…

微信小程序——后台交互

目录 后台准备 pom.xml 配置数据源 整合mtbatis 前后端交互 method1 method2 后台准备 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org…