Autosar信息安全入门系列01-SecOC基础介绍

news2024/9/24 9:25:21

本文框架

  • 1. 概述
  • 2. SecOC基本概念
    • 2.1 SecOC是什么?
    • 2.2 新鲜度值与MAC值
    • 2.3 SecOC报文格式
  • 3. SecOC报文发送及接收逻辑
    • 3.1 SecOC报文的发送
    • 3.2 SecOC报文的接收

1. 概述

本文为Autosar通信入门系列介绍,如您对AutosarMCAL配置,通信,诊断等实战有更高需求,可以参见AutoSar 实战进阶系列专栏,快速链接:AutoSar实战进阶系列导读

本篇我们一起看下SecOC,全文大纲如下:
在这里插入图片描述

2. SecOC基本概念

2.1 SecOC是什么?

在车载网络中,大部分的数据都是以明文方式广播发送且无认证接收,例如应用最广的CAN通讯设计之初是没有考虑过信息安全问题,其明文传输、报文广播传输、极少网络分段等特性,让进入整车网络的黑客可以轻松伪造报文对车辆进行控制,为了提升CAN网络的安全性,BOSCH在AUTOSAR标准中补充了SecOC标准,为传统CAN通讯引入了通讯认证机制。

SecOC在其全称是Security Onboard Communication,即板端加密通讯,是AUTOSAR标准中关于ECU间通讯安全提出的标准,在Autosar架构中的位置如下图,其中PduR负责将传入和传出的安全相关I-PDU路由到SecOC模块,SecOC模块对路由来的I-PDU进行添加或处理安全相关信息后,将结果再传播回PduR,再由PduR进一步路由I-PDU。
在这里插入图片描述
在SecOC标准中,AUTOSAR主要基于两种手段来实现数据的真实性和完整性的校验
基于MAC的身份验证和基于Freshness的放重放攻击。

2.2 新鲜度值与MAC值

新鲜度值(Freshness Value):传达了信息的实时性,可由时间戳校验和帧计数器校验两种模式生成。
时间戳检验的挑战在于多个ECU间需要进行时间同步,以消除各ECU振荡器自身产生的偏差。目前,只有TTCAN和更先进的Flexray总线支持这种机制,因此帧计数器模式被选用。新鲜度值的主要作用是防止重放攻击。
新鲜度值的组成如下图所示:由同步计数器,重置计数器,消息计数器及重置标志位组成。
在这里插入图片描述

MAC(Message Authentication Code):是保障信息完整性和认证的密码学方法之一。
CMAC(Cipher–based Message Authentication Code)通常用于对称加密。整车厂可以选择在车辆下线刷写程序时静态分配密钥,或者使用云端服务器动态地给车辆分配密钥。例如,对于一个具体的I-PDU,其需要认证的数据和完整的新鲜度值会与Data ID进行拼接,然后进行加密运算以得到实际的MAC。

2.3 SecOC报文格式

如下图,SecOC报文格式如下由三部分组成:PDU+新鲜度值+MAC值。其中新鲜度是截取低字节,MAC值是截取高字节部分拼接而成。
在这里插入图片描述

3. SecOC报文发送及接收逻辑

在这里插入图片描述

3.1 SecOC报文的发送

SecOC通过CMAC算法生成相关的MAC值,并截取有效MAC数据及新鲜值数据填充到报文PDU中,对外完成发送。

3.2 SecOC报文的接收

SecOC提取接收报文PDU中包含的截取的MAC信息,通过本地CMAC算法和PDU以及新鲜值数据,生成本地MAC信息,与接收的MAC信息比对,如果正确则路由到上层且更新本地的该报文的新鲜度值,如果错误则会拿接收的MAC信息与默认码比对,如果默认码比对也不正确则该PDU数据无效。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue中的日历组件 Calendar 实现 考勤打卡记录

日历组件 Calendar 可以自定义在页面添加内容。 实现效果图 1.由于Calendar没有右上角月份切换的API事件,可以给组件源码添加自定义添加一个事件 2.也可以通过自带的input事件来获取日历 3.vue页面完整代码 注释:this.$m(this.beginTime).format(…

linux C语言socket函数recv

recv 函数是在 Linux C 语言网络编程中用于从已连接的套接字接收数据的函数。它通常与 TCP 连接一起使用,但也可以用于 UDP(尽管对于 UDP,更常使用 recvfrom,因为它还可以接收发送方的地址信息)。 函数原型 recv 函数…

【漏洞复现】Hikvision SPON IP网络对讲广播系统命令执行漏洞(CVE-2023-6895)

文章目录 前言声明一、系统简介二、漏洞描述三、影响版本四、漏洞复现五、修复建议 前言 Hikvision Intercom Broadcasting System是中国海康威视(Hikvision)公司的一个对讲广播系统。 声明 请勿利用文章内的相关技术从事非法测试,由于传播…

在 wsl-ubuntu 里通过 docker 启动 gpu-jupyter

在 wsl-ubuntu 里通过 docker 启动 gpu-jupyter 0. 背景1. 安装 docker-ce2. 安装 NVIDIA Container Toolkit3. 使用 nvidia-ctk 命令配置容器运行4. 通过 docker 运行 nvidia-smi5. 运行 gpu-jupyter6. 访问 gpu-jupyter7. 测试 gpu-jupyter 是否可以访问 cuda 0. 背景 今天突…

每日OJ题_算法_滑动窗口⑤_力扣904水果成篮

目录 力扣904. 水果成篮 解析及代码1(使用容器) 解析及代码2(开数组) 力扣904. 水果成篮 904. 水果成篮 - 力扣(LeetCode) 难度 中等 你正在探访一家农场,农场从左到右种植了一排果树。这…

stable-diffusion-webui 安装与运行

大家好,我是水滴~~ 本文主要介绍在各种显卡环境中,如何安装和运行 stable-diffusion-webui,包括:在 NVIDIA 显卡环境上安装、在 AMD 显卡环境上安装、在集显或小于 4G 显卡环境上安装。 文章目录 在 NVIDIA 显卡环境上安装下载配…

如何在业务代码中优雅使用责任链模式

责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。 在这种模式中,通常每个接收者都包含对另一个接收者…

LLM:RoPE位置编码

论文:https://arxiv.org/pdf/2104.09864.pdf 代码:https://github.com/ZhuiyiTechnology/roformer 发表:2021 绝对位置编码:其常规做法是将位置信息直接加入到输入中(在x中注入绝对位置信息)。即在计算 q…

mysql原理--锁

1.解决并发事务带来问题的两种基本方式 上一章唠叨了事务并发执行时可能带来的各种问题,并发事务访问相同记录的情况大致可以划分为3种: (1). 读-读 情况:即并发事务相继读取相同的记录。 读取操作本身不会对记录有一毛钱影响,并不…

爬虫笔记(一):实战登录古诗文网站

需求:登录古诗文网站,账号+密码+图形验证码 第一:自己注册一个账号+密码哈 第二:图形验证码,需要一个打码平台(充钱,超能力power!)或…

“GPC爬虫池有用吗?

作为光算科技的独有技术,在深入研究谷歌爬虫推出的一种吸引谷歌爬虫的手段 要知道GPC爬虫池是否有用,就要知道谷歌爬虫这一概念,谷歌作为一个搜索引擎,里面有成百上千亿个网站,对于里面的网站内容,自然不可…

网络爬虫采集工具

在当今数字化的时代,获取海量数据对于企业、学术界和个人都至关重要。网络爬虫成为一种强大的工具,能够从互联网上抓取并提取所需的信息。本文将专心分享关于网络爬虫采集数据的全面指南,深入探讨其原理、应用场景以及使用过程中可能遇到的挑…

php array_diff 比较两个数组bug避坑 深入了解

今天实用array_diff出现的异常问题,预想的结果应该是返回 "integral_initiate">"0",实际没有 先看测试代码: $a ["user_name">"测","see_num">0,"integral_initiate&quo…

leetCode-42.接雨水

📑前言 本文主要是【算法】——算法模拟的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一句&#xff…

Go语言基础快速上手

1、Go语言关键字 2、Go数据类型 3、特殊的操作 3.1、iota关键字 Go中没有明确意思上的enum(枚举)定义,不过可以借用iota标识符实现一组自增常亮值来实现枚举类型。 const (a iota // 0b // 1c 100 // 100d // 100 (与上一…

H - Least Common Multiple H - 最小公倍数

题目 The least common multiple (LCM) of a set of positive integers is the smallest positive integer which is divisible by all the numbers in the set. For example, the LCM of 5, 7 and 15 is 105. 一组正整数的最小公倍数 (LCM) 是最小的正整…

rabbitmq的介绍、使用、案例

1.介绍 rabbitmq简单来说就是个消息中间件,可以让不同的应用程序之间进行异步的通信,通过消息传递来实现解耦和分布式处理。 消息队列:允许将消息发到队列,然后进行取出、处理等操作,使得生产者和消费者之间能够解耦&…

使用 Kali Linux Hydra 工具进行攻击测试和警报生成

一、Hydra 工具和 Kali Linux 简介 在网络安全领域中,渗透测试是评估系统密码强度的重要组成部分。Hydra 是一款由黑客组织“The Hackers Choice”开发的开源登录破解工具,支持50多种协议。本教程将探索如何将 Hydra 与 Kali Linux 结合使用&#xff0c…

快快销ShopMatrix 分销商城多端uniapp可编译5端 - 升级申请(可自定义申请表单)

在企业或组织中,升级申请通常涉及到员工职位、权限、设备或者其他资源的提升或更新。创建一个可自定义的升级申请表单可以帮助更高效地收集和处理这类申请信息。以下是一个基本的步骤: 确定表单字段: 申请人信息:姓名、部门、职位…

【Spring Boot 3】【Redis】基本数据类型操作

【Spring Boot 3】【Redis】基本数据类型操作 背景介绍开发环境开发步骤及源码工程目录结构 背景 软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工…