AUTOSAR的E2E通信安全

2023-05-16

AUTOSAR标准的安全通信为支持功能安全,AUTOSAR标准结合ISO 26262功能安全标准,在基础软件层从安全执行、安全通信以及安全内建测试三个方面做出了规范,并规范

AUTOSAR标准的安全通信

为支持功能安全,AUTOSAR标准结合ISO 26262功能安全标准,在基础软件层从安全执行、安全通信以及安全内建测试三个方面做出了规范,并规范了使用方法,本文主要介绍其安全通信部分。

1.安全通信组成部分

为了支持安全通信,AUTOSAR提供了三种机制,数据顺序控制、PDU复制和K/N的投票机制以及端到端的保护机制。其中数据顺序控制在COM中实现;PDU复制和N分之K(简称K/N)的投票机制涉及到COM和PduR模块;端到端的保护机制借助于端到端保护库(E2E库)来实现。

1.1 COM模块

COM模块为应用程序提供基于信号的数据服务接口,并根据信号自身预定义的发送类型来发送报文。本模块还提供了附加的服务接口可用于检测是否成功发送报文、成功接收报文以及报文是否超时等。对于多个通信通道的ECU,本模块还提供了一个用于不同通信总线之间的信号路由即信号网关的功能。

同时,为了支持安全通信,本模块提供了两种机制,数据顺序控制和K/N的投票机制来增强通信的安全。

1.2 PduR模块

PduR模块主要提供两类服务:

承上启下衔接上层和下层:发送时派发从高层模块的PDU到低层模块,并支持上层到下层的1对多映射即多播机制;接收时派发从底层模块如If或者TP接收的PDU给高层模块(COM,PduR)。

通信网络中的网关功能:网关功能有两种:从一个接口层到另外一个相同或者不同总线类型的接口层;从一个TP到另外一个相同或者不同总线类型的TP层。其中,路由协议基于一个静态的路由表和PDU ID的概念。

1.3 E2E保护库

E2E是一个端到端的通信保护库,只依赖于循环校验(简称CRC)库。为确保软件的开放分层,应当考虑如下的通信故障检测:

1) 点对点通信的丢帧。

2) 无意义的重复发送相同的消息。

3) 发送过程中的消息丢失。

4) 接收到伪装正确源地址的消息。

5) 接收到的消息序号和发送的消息序号不一致。

6) 消息在传输过程中损坏。

7) 未在指定的时间内接收到消息。

8) 防止数据总线被错误节点过度请求服务。

9) 一个故障节点的损坏导致整个总线的故障。

E2E支持的通信故障源包括:

1)软件故障

例如COM通信协议栈和RTE的软件模块,因为系统性质本身可能包含隐藏的错误。系统故障可能发生在规范、设计、制造、操作、维护的任何阶段的系统生命周期。他们出现的情况总是相同的(如触发源的条件)。软件故障可能会导致中断通信,接收溢出,发送空消息等。为防止软件故障的产生,应当采取适当的程序监控或E2E技术措施进行检查和处理是必要的。

2)硬件随机故障

硬件随机故障通常源自硬件电气过载,退化,老化或受外部条件(例如环境压力)影响。一个硬件随机故障不能完全避免,但其概率可以通过适当的技术措施(例如诊断)评估。

3)外部环境因素

这些因素包括电磁干扰(EMI),静电放电(ESD),空气湿度,腐蚀,温度,机械应力(如震动)等等。

2.安全通信关键技术

本章分别介绍SmartSAR Core在AUTOSAR的安全通信实现中,采用的三个关键技术,分别是数据顺序控制机制、PDU复制和K/N的投标机制、端对端的保护机制。

2.1 数据顺序控制机制

AUTOSAR COM模块基于PDU计数器提供了数据顺序控制机制,乱序的PDU,比如重复的或者在丢失的PDU之后接收到的PDU就能被检测出来并丢弃。这种机制需要发送端和接收端配合使用。

1)发送端

在发送端,对于配置了计数器的PDU,在COM初始化时或者PDU组以TRUE的方式启动时设置计数器为0。以后,在每次发送PDU之前,都会递增这个计数器。如果调用PduR的向下发送服务返回失败,则执行减一操作,也就是对于一个PDU每成功发送一次,则对这个它的顺序控制计数器执行加一操作。

2)接收端

在接收端,对于配置了计数器的PDU,在COM初始化时或者PDU组以TRUE的方式启动时设置计数器为0。以后,无论顺序计数器的值怎样,都应接受到来PDU。一旦接受一个包含顺序计数器的PDU,COM模块应设置下一个期待的值为接收到的计数器的下一个值。

如果一个顺序计数器是4位的,它有从0到15这16个可能值。如果一个接收到一个PDU,并且接收到的计数器是15,则下一个期待的值应为0。不论接收到的值是否和实际期待的值相等,新的期待的值都应被更新。

接收到一个包含顺序计数器的PDU时,COM应先设置下一个期待的值,然后丢弃这个PDU,当且仅当这个PDU符合以下条件:

收到的PDU的顺序计数器小于期待的PDU计数器,或者接收到的PDU顺序计数器大于期待的PDU计数器和一个配置的容错阈值的和。

如果发生顺序计数器不匹配,COM可以调用这个PDU的一个回调函数来通知用户。

PDU顺序计数器是4位,配置的容错阈值为1,则匹配情况如下表 1所示。

表 1 顺序计数器为4位,容错阈值为1的样例表

2.2 PDU复制和K/N的投票机制

安全相关的PDU可能需要在下层被复制来防止数据的损坏或丢失。在AUTOSAR中,PDU的复制在PduR中以多播的形式来实现。复制的PDU的比较和投票机制在COM中实现。由于复制的PDU没有校验或者签证以供比较使用,就需要在接收方存储并比较整个PDU。

1)发送端

在发送端,只需要在PduR中为对应的PDU配置多播路径即可。但是,必须要确保复制的PDU配置有顺序计数器,为了在接收端基于顺序计数器来进行投票。

对于K/N的投票机制,应确保复制N份PDU发送出去。

2)接收端

在接收端,负责对接收到的复制的PDU进行投票,并只向RTE传递成功发送的一直的PDU的消息。复制的PDU要配置有顺序计数器。然而,建议配置容错阈值为0,避免情况太复杂。

对于K/N的投票机制,至少接收到相同的K份数据才保证数据是可靠的,才能提交这个PDU的消息给RTE。

2.3 端到端的保护机制

端到端的保护需要发送端和接收端的配合使用才能检查出错误。

发送端的流程如图 1所示。首先,PDU的发送方初始化配置结构体和状态结构体;然后用最新的信号的值更新PDU;取得PDU的数据;根据这些参数调用E2E_PXXProtect,执行E2E的逻辑,加入CRC校验信息,加入数据计数器信息,最后把数据一起发送到总线上。其中CRC校验信息可用来检查一位到两位错等硬件错误,数据计数器信息可以辅助检查到顺序出错等问题。


图 1 E2E的发送方

接收端的流程如图 2所示。首先,PDU的接收方初始化配置结构体和状态结构体;然后接收PDU;取得PDU的数据;根据这些参数调用E2E_PXXCheck,执行E2E的逻辑,检查CRC校验信息,检查数据计数器信息,如果都没有错误才把收到的PDU中的数据提交给应用。其中CRC校验信息可用来检查一位到两位错等硬件错误,数据计数器信息可以辅助检查到顺序出错等问题。



图2 E2E的接收方

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AUTOSAR的E2E通信安全 的相关文章

  • 来来来!我告诉你 AUTOSAR架构深度解析从入门到放弃

    如何快速学习AUTOSAR 关于AUTOSAR的背景和架构信息 xff0c 这里就不详细展开了 大家可以参看 xff1a AUTOSAR的分层架构 一文了解 今天我们重点讲讲如何快速学习AUTOSAR架构的方法 如何获取规范文档 xff1f
  • Adaptive AutoSAR 标准介绍

    关于自适应AutoSAR 平台 自适应autosar 平台实现了adaptive applications的运营环境 它提供了两种接口 xff0c 一种是service 一种是API 平台功能分成两部分 xff1a service部分和ad
  • Adaptive AUTOSAR——Cryptography (VRTE3.0 R21-11)

    Cryptography模块是用于自适应汽车软件架构的密码学模块 xff0c 主要用于实现各种安全功能 xff0c 包括加密 解密 签名和验证 等操作 它的主要作用包括 xff1a 安全通信 xff1a 使用各种算法对数据进行加密和解密 x
  • AUTOSAR——AUTOSAR基础

    一 AUTOSAR AUTOSAR全称为 AUTomotive Open System ARchitecture xff0c 译为 汽车开放系统体系结构 二 AUTOSAR核心思想 1 xff09 提倡 在标准上合作 xff0c 在实现上竞
  • AUTOSAR ComM模块介绍

    AUTOSAR ComM模块介绍 Autosar ComM概述 Autosar ComM 全称是 Autosar Communication Manager 顾名思义就是用来管理通讯的 ComM 模块位于 BSW 中 Systme Serv
  • Autosar CAN通讯——CANSM

    关于CANSM参考 xff1a https zhuanlan zhihu com p 126073070
  • 【AUTOSAR】【信息安全】CSM

    目录 一 概述 二 依赖模块 三 功能描述 3 1 基本体系结构 3 2 通用行为 3 2 1 正常操作 3 2 2 设计说明 3 3 错误分类 3 3 1 开发错误 3 3 2 运行时错误 四 API接口 4 1 通用接口 4 2 加密接
  • Autosar 软件中间件

    我们都知道手机 xff0c 电脑啥的在应用之下 xff0c 硬件之上 xff0c 还有一个东西叫操作系统 xff0c 车辆里也有类似的东西 操作系统 xff0c 中间件 xff0c 应用软件 各司其职分工不同 操作系统 我负责对硬件 xff
  • Adaptive AUTOSAR----Adaptive studio

    Adaptive studio Adaptive Studio 是包含在 RTA VRTE SK 中的 AUTOSAR 编辑器 Adaptive studio 通过高级抽象支持所有 adaptives autosar arxml 元素的配置
  • AP AUTOSAR——Network Management

    16 Network Management 16 1 What is Network Management 网络管理是Adaptive Platform Services中的一个功能集群 作为AP AUTOSAR平台的服务 xff0c 网络
  • AP AUTOSAR——Security Management

    11 Security Management 11 1 What is Security Management 安全管理是自适应平台体系结构中的一个功能集群 作为一个功能集群 xff0c 安全管理由多个模块组成 xff0c 这些模块向在Ad
  • 浅谈AP autosar 之 runtime 基础

    AP Autosar Architecture overview AP autosar在SOC 中的位置 xff0c 起到的作用 下面图可以看出 xff0c AP autosar封装了操作系统的接口 xff0c 封装了功能安全 xff0c
  • Adaptive AUTOSAR——Execution Management(VRTE 3.0 R21-11)

    ChatGPT回答 xff1a Adaptive AUTOSAR Execution Management 模块是用于管理软件执行的模块 xff0c 其主要功能包括 xff1a 任务调度 xff1a 支持对任务进行调度和执行 xff0c 以
  • AUTOSAR E2E & SecOC Comparison

    AUTOSAR E2E amp SecOC Comparison 前面已经介绍过了E2E 和 SecOC CMAC 了 xff0c 既然2者都可以进行数据完整性保护 xff0c 那么2者有什么区别呢 下面基于我的经验所总结 欢迎补充 xff
  • AutoSar之微控制器抽象层MCAL

    微控制器抽象层位于AUTOSAR BSW的最底层 xff0c 包含内部驱动 xff0c 可直接访问微控制器和外设芯片 从具体应用来看 xff0c MCAL主要包括微控制器驱动 存储器驱动 通信驱动和输入输出驱动四个部分 xff0c 各部分又
  • 【AUTOSAR】【信息安全】SecOC

    目录 一 概述 二 约束和假设 三 依赖模块 四 功能描述 4 1 安全解决方案的规范 4 1 1 安全解决方案的基本实体 4 1 2 安全的I PDU构建 4 1 3 安全的I PDU验证 4 2 与PduR的关系 4 3 初始化 4 4
  • AutoSAR系列讲解(实践篇)7.7-实验:配置SWC&RTE(下)

    AutoSAR系列讲解 实践篇 7 7 实验 配置SWC RTE 下 实验 配置SWC RTE 下 三 步骤二 配置Runnable及其Tasks映射 1 添加及配置Runnable 2 打开Cfg并同步工程 3 导入DBC文件 4 创建T
  • 【AUTOSAR】CCP协议的代码分析与解读(四)----CCP协议数据下载和上传

    数据下载 DNLOAD DNLOAD指令负责将CRO中的数据下载到ECU中 起始地址为先前设定的MTA0 下载完毕后MTA0指针自增 自增的字数为下载的字节数 DNLOAD命令的CRO数据场结构 如下所示 位 置 类 型 描 述 0 字节
  • 协议数据单元PDU和服务数据单元SDU

    关注汽车工程师谈技术 一起学习技术 目录 1 协议数据单元PDU和服务数据单元SDU 2 AutoSAR中PDU和SDU的应用 3 总结 返回总目录 协议数据单元PDU 大家在AutoSAR开发过程中 特别是通信和诊断开发中 应该会经常碰到
  • Autosar软件架构

    软件架构 应用层通过 Simulink模型实现 模型的代码生成使用统一配置脚本 底层软件模块满足AUTOSAR 4 2 1标准要求 其软件架构如下图所示 软件架构 2 2 2 Com通信模块配置 BCU通过唤醒信号控制相应CAN消息的通信使

随机推荐

  • 如何从普通员工成为一个领导者

    how to become a company leader from one employee 要想成为一个领导或者领导 xff08 影响别人 xff09 首先需要基本的领导基本功 这里分享一些我的心得体会 自我反省 xff1a 要不断自
  • 读书笔记1

    第七期主题词 xff1a 告别 1 我们最终都要远行 xff0c 最终都要与稚嫩的自己告别 xff0c 告别是通向成长的苦行之路 海子 2 我和谁都不争 xff0c 和谁争我都不屑 xff0c 我的双手烤着生命之火取暖 xff0c 火萎了
  • 武志红《为何爱会伤人》

    最近读武志红 为何爱会伤人 xff0c 让我们从另一个角度去理解爱情 xff0c 本书从全新的视角解读爱情 xff0c 提出从 认识自己内心 的角度来看待爱情 xff0c 什么是迷恋 xff1f 什么是一见钟情 xff1f 如何获得真爱等问
  • 关于如何去寻找自己的另一半和我的爱情观

    用这个题目 xff0c 我自己都没想到 xff0c 因为目前我还是单身 xff0c 虽然谈过几次恋爱 xff0c 但最后都成了白月光 下面我给出了自己的反思 xff0c 也找了我的领导谈心 xff0c 也看了一些书 xff0c 想找到为什么
  • 一篇文章完全讲解C语言指针

    指针对于C来说太重要 然而 xff0c 想要全面理解指针 xff0c 除了要对C语言有熟练的掌握外 xff0c 还要有计算机硬件以及操作系统等方方面面的基本知识 所以本文尽可能的通过一篇文章完全讲解指针 为什么需要指针 xff1f 指针解决
  • MySQL定时备份

    MySQL定时备份实例 xff1a 每周一晚上3 00 xff0c 备份数据库服务器上webdb库的所有数据到系统的 mysqlbak目录中 xff0c 使用系统日期做备份文件名 xff01 span class token operato
  • 一篇文章完全讲解C语言指针

    https mp weixin qq com s biz 61 MzU3NDU5NDczMw 61 61 amp mid 61 2247504309 amp idx 61 5 amp sn 61 5421ee86fb1be92b43d99f
  • 读懂Adaptive Autosar架构-基础应用篇

    对于Adaptive AUTOSAR xff0c 咱们经常会看到这句话 xff1a Write once Adopt everywhere 但实际上理想很丰满 xff0c 现实很骨感 毕竟Classic Platform xff08 后面简
  • 软件架构的定义

    一 软件架构的定义 我们先讨论一下什么是软件架构 xff1f 对于软件架构并没有一个标准的定义 xff0c 但是你和软件工程师谈到架构的时候 xff0c 他们会知道这些都会是架构的内容 是不是要分层 xff0c 如何处理事件 xff0c 如
  • 一文了解V2X技术栈及其产业链

    C V2X会给未来出行交通带来怎样的改变 xff1f 会在哪些场景下发挥作用 xff1f 这条产业链里面的公司又是哪些 xff1f 大厂们在V2X上的投入又是如何呢 xff1f 本文可以给你一个答案 1 为什么需要V2X 随着C V2X及5
  • 精力管理分享

    你是否长时间工作却没有时间休息 是否总是感到压力很大 xff0c 时间不够用 xff1f 是否经常觉得很疲惫 xff0c 怎么调整都找不到状态 xff1f 然而 xff0c 不论是工作还是生活 xff0c 我们每个人都需要进行自我能量的调节
  • 目标管理

    业务能力很突出 xff0c 管理能力跟不上 xff0c 怎么办 xff1f 这节课帮你补全管理必修模块 xff0c 掌握全面的管理视角 学了很多管理手段 xff0c 总是用不上怎么办 xff1f 用工具统一管理语言 xff0c 拿来就能用
  • 深入浅出理解SOME/IP

    详解SOME IP协议文档 1 知乎 知乎 xff0c 中文互联网高质量的问答社区和创作者聚集的原创内容平台 xff0c 于 2011 年 1 月正式上线 xff0c 以 让人们更好地分享知识 经验和见解 xff0c 找到自己的解答 为品牌
  • SOME/IP-SD 深入浅出

    文章中 xff0c 我们了解了一条完整的SOME IP报文应该长什么样子 xff0c 但这显然是不够的 xff0c 至少还有以下这几个问题并没有得到明确的解决 xff1a Client如何发现服务 当服务不可用时 xff0c 如何通知Cli
  • Segmentation Fault错误原因总结

    一 什么是 Segmentation fault in Linux 所谓的段错误就是指访问的内存超过了系统所给这个程序的内存空间 xff0c 通常这个值是由gdtr来保存的 xff0c 他是一个48位的寄存器 xff0c 其中的32位是保存
  • 漫谈QNX(架构/进程,线程,同步,进程间通信IPC)

    1 架构 说起Blackberry的QNX操作系统 想必大家都听说过 xff0c 但到底为什么QNX能如此有名 xff1f 难道微软的Windows和Linux都不能与之抗衡 xff1f 美国NASA的太空接驳飞船也使用QNX操作系统 QN
  • Linux系统安装后需要做什么?

    安装完linux系统之后需要做的事情 以centos7为例 xff1a 1 用root用户登录 2 tab键补全安装包 yum span class token operator span y install bash span class
  • ETAS Adaptive AUTOSAR 自适应平台示例视频教程

    ETAS AP AUTOSAR自适应平台示例视频教程 本系列文章旨在提供一个详细的操作指南 xff0c 以构建ETAS AP AUTOSAR自适应平台的示例 实践练习的目标是加强AUTOSAR自适应平台中的理论概念 xff0c 并更好地理解
  • 什么是微内核,看这一篇就够了

    微内核是将服务转移到进程上的一种内核模式 宏内核是一种传统的内核结构 xff0c 它将进程管理 xff0c 内存管理等各项服务功能都放到内核中去 xff0c 通常用在通用式的内核上 xff0c 如unix xff0c linux等 两个系统
  • AUTOSAR的E2E通信安全

    AUTOSAR标准的安全通信为支持功能安全 xff0c AUTOSAR标准结合ISO 26262功能安全标准 xff0c 在基础软件层从安全执行 安全通信以及安全内建测试三个方面做出了规范 xff0c 并规范 AUTOSAR标准的安全通信