【Autosar SecOC 1.信息安全原理介绍】

这里写目录标题

    • 1 背景
    • 2 了解黑客攻击原理
    • 3 SecOC实现数据的真实性与完整性校验
      • 3.1 数据身份验证完成真实性验证
      • 3.2 防止重放攻击

在这里插入图片描述

1 背景

在今天的车载网络中,大部分数据传输是在没有任何特殊安全措施的情况下进行的。因此,一旦能够直接访问车辆的总线,任何人都可以读取总线上传输的原始数据,甚至在今天的车载网络中,大部分数据传输是在没有任何特殊安全措施的情况下进行的。因此,一旦能够直接访问车辆的总线,任何人都可以读取总线上传输的原始数据,甚至可以截获这些数据并且修改后重新发送到总线系统中。
在这里插入图片描述

为了解决上面的痛点,保证报文完整性真实性 Autosar标准定义了SecOC模块(Security onboard Communication)来去标准解决汽车发展中的信息安全

2 了解黑客攻击原理

从目前已知的攻击手段来看,远程控制一辆汽车的唯一障碍就是如何获取车辆总线的访问权。一旦能够直接访问车内网络,黑客就可以模拟一个合法的数据发送节点来操控整个汽车。使用了SecOC机制后,黑客除了获取总线访问权以外还需要知道发送节点的密钥才能模拟出合法的数据。通过合理的密钥分发机制可以保证密钥不会泄漏给汽车整车厂以外的其他任何人。因此SecOC可以有效地阻止黑客对汽车网络的攻击。(SecOC保证报文真实性的举例)

3 SecOC实现数据的真实性与完整性校验

在SecOC标准中,AUTOSAR主要基于两种手段来实现数据的真实性和完整性的校验:基于MAC的身份验证和基于Freshness的防重放攻击。

3.1 数据身份验证完成真实性验证

MAC(Message Authentication Code)是保障信息完整性和认证的密码学方法之一,其中常作为车载总线加密认证方案的为CMAC(Cipher–based Message Authentication Code)。MAC的作用不是防止有效数据被泄露,而是为了保护数据不会被攻击方篡改,即完成数据来源的认证。如需保护通信数据不被攻击方监听,则报文的有效数据还需要进行额外的加密。

在AUTOSAR中,需要加密保护的数据信息被称为AuthenticI-PDU。SecOC模块根据AuthenticI-PDU和密钥使用CMAC算法可以得到Authenticator(即MAC值)。Authenticator和AuthenticI-PDU再加上一些必要的报头即得到SecuredI-PDU,其数据结构如图1所示。发送节点在发送有效数据(AuthenticI-PDU)前,会根据上述方法得到对应的SecuredI-PDU,然后再将SecuredI-PDU发送到总线上。
在这里插入图片描述
CMAC一般用于对称加密,对称加密要求发送节点和接收节点都具有相同的密钥。整车厂可选择在车辆下线刷写程序时静态分配密钥,也可选择使用云端服务器动态地给车辆分配密钥。

在接收节点,SecOC模块使用同样的算法和密钥对收到的AuthenticI-PDU计算Authenticator。如果接收节点计算出的Authenticator和SecuredI-PDU中的Authenticator相同,则接收节点认为该数据来源于合法的发送节点。反之,则接收节点认为该PDU来自非法的发送节点,相关数据将会被直接丢弃。

另外,由于传统CAN报文每帧最多传输8个字节的数据,如果在传统CAN总线上使用SecOC,那么Authenticator和PDU Header通常会占用掉一半的数据场,这样会导致CAN报文的有效利用率过低。相比之下CANFD有长达64个字节的数据场长度,因此CANFD总线更适合使用SecOC通信。

3.2 防止重放攻击

在上述的通信机制中,Authenticator的计算依据只包含有效数据和密钥,因此只要有效数据相同,那么Authenticator一定是相同的。这意味着攻击方可以使用重放攻击干扰控制器的正常通信甚至控制车辆的行为。重放攻击指的是攻击者记录下合法数据源和接收节点之间的正常通信数据,并在必要时将记录下的数据重新发送给接收节点从而达到控制接收节点的一种攻击手段。此时接收节点无法检查报文是否来自合法的发送节点。

为了避免上述情况,在对AuthenticI-PDU加密过程中,SecOC规定Authenticator计算时还需要加入Freshness Value(新鲜度值),并在SecuredI-PDU中也需要包含FreshnessValue
在这里插入图片描述
Freshness Value是一个根据一定逻辑不断更新的数值,Freshness Value的更新方法多种多样,如使用报文计数器、整车各节点统一的时钟作为更新源等方式。若将Freshness Value值结合有效数据和密钥一同作为计算对象计算Authenticator,那么由于每次数据传输Freshness Value值的变化,Authenticator也将随之改变。攻击方在监听到报文后,无法将Authenticator与相应的有效数据匹配,若重复发送带有错误Freshness Value的报文,接收节点将对其丢弃,也就无法形成有效的重放攻击(接入总线后进行的“DoS攻击”不在讨论范围内)。加入Freshness Value的SecuredI-PDU如图2所示:

SecOC的难点实际上在于Freshness Value的生成 管理与验证,后面一篇文章将介绍实际项目中的几种实现方式

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

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

相关文章

基于SpringBoot的校园周边美食探索及分享平台【附源码+数据库+文档下载】

一、项目简介 本项目是一个基于 SpringBoot Vue 的校园周边美食探索与分享平台,专为在校大学生开发,集美食推荐、好友互动、收藏分享于一体。 通过平台,用户可以探索学校周边的美食店铺、发布美食鉴赏、添加好友进行交流分享。同时&#x…

无偿帮写毕业论文

以下教程教你如何利用相关网站和AI免费帮你写一个毕业论文。毕竟毕业论文只要过就行,脱产学习这么多年,终于熬出头了,完成毕设后有空就去多看看亲人好友,祝好! 一、找一个论文模板(最好是overleaf) 废话不多说&#…

15 个 Azure DevOps 场景化面试问题及解答

问题 1. 解释 Azure DevOps YAML 管道的典型结构。 您可以从管道的整体结构开始,从触发器开始。您也可以选择解释它可能包含的不同类型的阶段:构建、测试、扫描、部署等。 Azure DevOps YAML 管道结构示例 触发器指示管道运行。它可以是持续集成 (CI) 或…

Java 大视界 -- Java 大数据机器学习模型在元宇宙虚拟场景智能交互中的关键技术(239)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

本地不安装oracle,还想连oracle

1.首先要用navicat,或者toad打开连接数据库 2.安装oracle客户端,有时候OCI.dll需要看数据库版本,我们Oracle数据库是12C,可以用这个版本 3. 4.配置环境变量 变量名:NLS_LANG变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK …

LabVIEW车牌自动识别系统

在智能交通快速发展的时代,车牌自动识别系统成为提升交通管理效率的关键技术。本案例详细介绍了基于 LabVIEW 平台,搭配大恒品牌相机构建的车牌自动识别系统,该系统在多个场景中发挥着重要作用,为交通管理提供了高效、精准的解决方…

deque底层数据结构以及和queue的异同

文章目录 底层数据结构原理关键组成部分操作效率与其他容器的对比适用场景C STL中的实现细节总结 deque和queue的异同相同点不同点 deque(双端队列)是一种具有高效两端插入和删除操作的数据结构,常见于C标准库(STL)和其…

WordPress 网站上的 jpg、png 和 WebP 图片插件

核心功能 1. 转换 AVIF 并压缩 AVIF 将您 WordPress 网站上的 jpg、png 和 WebP 图片转换为 AVIF 格式,并根据您设置的压缩级别压缩 AVIF 图片。如果原始图片已经是 WordPress 6.5 以上支持的 AVIF 格式,则原始 AVIF 图片将仅被压缩。 2. 转换 WebP 并…

Docker Volumes

Docker Volumes 是 Docker 提供的一种机制,用于持久化存储容器数据。与容器的生命周期不同,Volumes 可以独立存在,即使容器被删除,数据仍然保留。以下是关于 Docker Volumes 的详细说明: 1. 为什么需要 Volumes&#…

西电 | 2025年拟录取研究生个人档案录取通知书邮寄通知

各位考生: 我校2025年硕士研究生录取工作已结束,根据相关工作管理规定,现将个人档案转调及录取通知书邮寄信息确认等有关事宜通知如下: 一、个人档案转调 (邮寄档案请务必使用EMS) 1.全日制考生 录取类…

ExcelJS库的使用

ExcelJS 安装 npm install exceljs新的功能! Merged fix: styles rendering in case when “numFmt” is present in conditional formatting rules (resolves #1814) #1815. Many thanks to andreykrupskii for this contribution!Merged inlineStr cell type support #15…

时空注意力机制深度解析:理论、技术与应用全景

时空注意力机制作为深度学习领域的关键技术,通过捕捉数据在时间和空间维度上的依赖关系,显著提升了时序数据处理和时空建模能力。本文从理论起源、数学建模、网络架构、工程实现到行业应用,系统拆解时空注意力机制的核心原理,涵盖…

wxWidgets 3.2.8 发布,修复了GTK下,wxStaticText显示文本异常的问题

详细如下: 3.2.8 是稳定的 3.2 系列中的最新维护版本,现已在 GitHub 上提供,您可以从中下载带有 所选 Windows 的库源和文档以及二进制文件 编译器,例如 Microsoft Visual C、MinGW-w64 和 TDM-GCC。您还可以阅读更新的文档 版本&…

网页Web端无人机直播RTSP视频流,无需服务器转码,延迟300毫秒

随着无人机技术的飞速发展,全球无人机直播应用市场也快速扩张,从农业植保巡检到应急救援指挥,从大型活动直播到智慧城市安防,实时视频传输已成为刚需。预计到2025年,全球将有超过1000万架商用无人机搭载直播功能&#…

思维链框架:LLMChain,OpenAI,PromptTemplate

什么是思维链,怎么实现 目录 什么是思维链,怎么实现思维链(Chain of Thought)在代码中的实现方式1. 手动构建思维链提示2. 少样本思维链提示3. 自动思维链生成4. 思维链与工具使用结合5. 使用现有思维链框架:LLMChain,OpenAI,PromptTemplate思维链实现的关键要点思维链(C…

杰理强制烧录拨码开关

5.3. 工具拨码开关说明 — JL Project Documentation

智能手表关键技术评估报告

📘 智能手表关键技术评估报告 产品名称:Aurora Watch S1 智能手表 编写日期:2025年5月6日 版本号:v1.0 编写人:XXX(技术负责人) 一、报告目的 本报告旨在对智能手表核心技术模块进行全面评估,识别项目研发过程中可能存在的技术风险、供应链瓶颈和开发难点,并为架构…

基于RT-Thread驱动EEPROM_AD24C02

基于RT-Thread驱动EEPROM_AD24C02 前言一、硬件设计二、软件设计三、测试1、eeprom_test()测试2、基础操作字节实验3、多字节读写 前言 存储容量2048位,内部组织256x8(2K),即256个字节的存储单元&#xff…

五、Hive表类型、分区及数据加载

在 Hive 中高效构建、管理和查询数据仓库,核心在于精准运用表类型(内部/外部)与分区策略(静态/动态/多重)。这不仅决定数据的生命周期归属,更是优化海量数据查询性能的关键手段。 一、表的身份权责&#x…

C++色彩博弈的史诗:红黑树

文章目录 1.红黑树的概念2.红黑树的结构3.红黑树的插入4.红黑树的删除5.红黑树与AVL树的比较6.红黑树的验证希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力! 红黑树是一种自平衡二叉查找树,每个节点都带有颜色属性,颜色或为…