电子电子架构——AUTOSAR信息安全机制有哪些?(上)

电子电子架构——AUTOSAR信息安全机制有哪些(上)

我是穿拖鞋的汉子,魔都中坚持长期主义的工程师。

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:

人们会在生活中不断攻击你。他们的主要武器是向你灌输对自己的怀疑:你的价值、你的能力、你的潜力。他们往往会将此伪装成客观意见,但无一例外的是,他们想让你怀疑自己。

本文主要讲述如下内容,介绍电子电气架构中汽车以太网诊断路由汇总:

-> 1、SecOC应用

-> 2、TLS医用

-> 3、IPsec应用

随着汽车网联化和智能化不断发展,汽车不再孤立存在,越来越多地融入到互联网中。在这同时,汽车也慢慢成为潜在的网络攻击目标,汽车的网络安全已成为汽车安全的基础,受到越来越多的关注和重视。

AUTOSAR作为目前全球范围普遍认可的汽车嵌入式软件架构,已经集成的相关信息安全模块对实现信息安全需求有着充分的支持,例如保护车内通信或保护机密数据。由于CP AUTOSAR 和AP AUTOSAR 的体系结构不同,目前信息安全模块的相关技术实现也存在差异。

本文对于信息安全模块做一个简单梳理汇总:

一、SecOC应用

在车载网络中,车载CAN总线作为常用的通讯总线,其大部分数据是以明文方式广播发送且无认证接收,这种方案具有低成本、高性能的优势。在以往车辆作为独立个体,没有远程控制风险的年头是可以存在的。但是随着汽车网联化、智能化的业务需要,数据安全性越来越被重视。

传统的针对报文添加Rolling Counter 和Checksum信息的方法,实现的安全性十分有限,也容易被逆向破解,进而可以伪造报文控制车辆。

因此SecOC应运而生,其是在AUTOSAR软件包中添加的信息安全组件,主要增加了加解密运算、密钥管理、新鲜值管理和分发等一系列的功能和新要求。

该模块的主要作用是为总线上传输的数据提供身份验证,它可以有效地检测出数据回放、欺骗以及篡改等攻击。

上图消息认证和新鲜度验证流程

在SecOC模块标准中,AUTOSAR主要基于MAC的身份验证和Freshness的防重放攻击,来实现数据的真实性和完整性校验。首先Message Authentication Code是保障信息完整性和认证的密码学方法之一,其中CMAC(Cipher based MAC)一般用于对称加密,整车厂可在车辆下线刷写程序时静态分配密钥,也可选择使用云端服务器动态地给车辆分配密钥)是车载总线加密认证常用方案。MAC 的作用不是防止有效数据被泄露,而是为了保护数据不会被攻击方篡改,即完成数据来源的认证。如需保护通信数据不被攻击方监听,则报文的有效数据还需要进行额外的加密。

为了降低重复攻击的风险,则需要在Secured I-PDU中加入新鲜度值,Freshness Value是一个根据一定逻辑不断更新的数值,Freshness Value 的更新方法多种多样,AUTOSAR 标准将基于计数器或基于时间的新鲜度值作为典型选项。

在CP AUTOSAR 平台,SecOC 模块依赖于PduR的API和功能,提供了PDU Router所需的上下两层API(upper and lower layer API)功能。依赖于由CSM 模块在AUTOSAR 中提供的加密算法。SecOC模块需要API 函数来生成和验证加密签名(Cryptographic Signatures)或消息验证码(Message Authentication Codes)。为RTE 提供具有管理功能的API 作为服务接口进行调用。

SecOC 通信协议特性同样适用于AP AUTOSAR 平台标准中,其主要目标是实现与CP AUTOSAR平台SecOC 功能互操作性,尤其适用于使用 UDP 多播的消息场景(SecOC 是目前唯一支持的协议)和与CP AUTOSAR 之间基于信号的网络绑定的安全通信场景。

AP AUTOSAR通信管理中的SecOC

为了实现与CP AUTOSAR 平台的互操作性,SecOC同样应用于Adaptive CM中。认证信息包括认证器(例如,消息认证码)和可选的新鲜度值。为了保持与CP AUTOSAR 平台的互操作性并提供可选的新鲜度值管理功能,AP AUTOSAR CM 将依赖于可插入的新鲜度值管理库。该库将提供新鲜度值管理相关的API,包含CP AUTOSAR 平台关于Freshness Management 客户端、服务端接口的副本以及调用定义的相关功能。

SecOC 的核心思想在于通信认证,但是不涉及报文加密。虽然伪造报文的难度已经大大提升了,但是在通信过程中采用明文传输,依旧有一定的风险;认证信息的强度和信息长度相关,通信认证方案会加大报文负载(传统CAN 报文的负载只用8-64 个字节),从而导致负载率提升,通信实时性下降,可能使得正常功能受到影响,应考虑信息安全强度与通信实时性的相互平衡;MAC 技术应考虑对称密钥的管理和共享的问题,目前大部分MCU 是没有安全功能的,对称密钥也是明文保存在系统或者内存中。共享该密钥时采用明文通信,这是非常不安全的。但MCU 的计算能力和存储空间是有限的,采用了安全机制以后,必然占用很大的资源消耗,应充分考虑系统的稳定性,以保障业务与安全机制能够正常运行;SecOC 用于保证安全通信,必然涉及密钥(key)的管理,应考虑灌装、更新和维护该key, 同时还需考虑换件后key 的一致性。

二、TLS

TLS(Transport Layer Security)作为传输层的中坚力量,可以支撑上层的SOME/IP、MQTT 和HTTP 等协议。不但可以用于V2X的安全通讯,也可以用于车内通讯节点之间的安全通讯。当然像T-BOX等可以与车外节点通讯的节点来说,其安全性要求更高,可以应用更加完整的广义TLS,既安全,又灵活。而车内之间一般IP地址、端口、服务接口等都固定,安全性要求也不如T-BOX 高,则可以应用广义TLS中的预共享密钥(TLS_PSK)等套件,既高效,又稳定。

TLS 属于工作在传输层的协议,它介于传输层底层协议和上层应用协议之间。而以太网的传输层主要有两大底层协议:TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)。二者各有特点,互为补充。不管在传统互联网上,还是车载以太网上,两者都是常见的传输层底层协议。不同的传输层底层协议实际上对应着不同的传输层安全保护协议,采用TCP 传输的,就用TLS 保护。采用UDP 传输的,就用DTLS 保护。DTLS 的全称是Datagram Transport Layer Security,比TLS 多出来的“D” ,指的就是UDP 中的“D” 。TLS 和DTLS 各有不同的版本,目前主流支持的还是1.2 和1.3版本。

AUTOSAR 标准基于Ethernet 架构同时提供了ISO DoIP的解决方案。DoIP 全称是Diagnostic Over IP,顾名思义就是基于IP 的诊断。DoIP 具有处理大量数据、节省重编程时间、方便接入IT 设施、标准通信灵活使用等优势。普通的DoIP 是基于TCP 进行诊断通信,在ISO 13400-2 2019 版本中定义了安全的DoIP 会话,即基于TLS 进行诊断通信。

DoIP server协议栈会根据DoIP client 实体的请求,确定使用TCP 还是TLS 进行诊断信息的传输。TLS 允许在Client DoIP 实体和Server DoIP 实体之间建立经过身份认证和加密的通信通道,Client DoIP实体身份的验证可以在诊断应用层中实现,例如ISO 14229 中定义的0x29 服务。

TLS 技术仍有自身的技术局限性。大部分控制器都是采用了MCU,计算能力和存储空间都是有限的,采用了安全机制,例如加解密算法、消息摘要算法、签名验签算法等,必然占用很大的资源消耗,应考虑在不影响正常功能的情况下安全策略能够正常实施。SSL/TLS 采用安全认证的方式来识别对方身份,需要提前灌装安全证书,如果控制器进行换件,应保证证书的一致性,让新的控制器能够进行身份的合法验证,从而正常通信。在实际应用场景中,大部分控制器可能没有安全存储环境(SE 或者HSM 等),应考虑保证证书和私钥的安全存储。在采用TLS 进行安全认证通信中,必然会降低通信的效率,应考虑通信的实时性。安全技术应用的同时会带来一些资源消耗,产生一定的局限性。应当在满足汽车信息安全相关法规标准的原则下,技术手段在不影响控制器正常运行的前提下,进行方案选型完成集成部署,如果内部安全通信技术手段消耗过多的控制器资源并影响了正常业务运行,应适当降低安全等级,必须同时兼顾控制器运行和内部安全通信。

随着汽车网联化的发展,以太网通讯已经在车内通讯及车联网普及,TLS 和DTLS 也更多地出现在汽车行业的视野里。AUTOSAR 在CP 和AP 中也加入了TLS 和DTLS 的规范。从AUTOSAR CP 4.4 标准开始就明确了支持1.2 和1.3 版本,优先选择1.3 版本。AP R21-11 中只描述了1.2 版本,但相信将来版本也会加上1.3 版本。

三、IPsec

IPsec(Internet Protocol Security)是网络安全协议,运行在OSI 模型的第三层(Internet Protocol,IP 层),在VPN(Virtual Private Network)应用很广泛。IPsec 在IP 层对报文提供数据机密性、数据完整性、数据来源认证、防重放等安全服务,定义了如何在IP 数据包中增加字段来保证IP 包的完整性、私有性和真实性,以及如何加密数据包。

IPsec协议及组件功能

IPsec 提供了两种安全机制:认证和加密。认证机制使IP 通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭篡改。加密机制通过对数据进行加密运算来保证数据的机密性,以防数据在传输过程中被窃听。

IPsec 的安全体系由验证头协议(Authentication Header,AH)、安全封装协议(Encapsulating Security Payload ,ESP)及安全联盟(Security Association,SA)三部分组成。AH 是认证头协议(IP 协议号为51),主要提供的功能有数据源验证、数据完整性校验和防报文重放功能,可选择的散列算法有MD5(Message Digest ),SHA1(Secure Hash Algorithm)等。ESP 是报文安全封装协议(IP 协议号为50),ESP 将需要保护的用户数据进行加密后再封装到IP 包中,验证数据的完整性、真实性和私有性。可选择的加密算法有DES,3DES,AES 等。SA(Security Association)是IPsec 的基础,也是IPsec的本质,IPsec 对数据流提供的安全服务通过SA 来实现,它包括协议、算法、密钥等内容。IPsec 有隧道(tunnel)和传输(transport)两种运行模式,运行模式和安全体系中的AH 及ESP 组合形成4 种情况:隧道模式+AH、隧道模式+ESP、传输模式+AH 以及传输模式+ESP。

AUTOSAR CP R19-11 标准在TCP/IP 模块加入IPsec 相关功能介绍,并对功能实现进行了条件约束,目前只支持IPsec 运输运行模式,隧道运行模式、IPv6 和多点传播都暂不支持。并规定了其他模块可执行的操作内容,KeyM 模块可为IPsec 子模块提供证书处理,CSM 允许执行IPsec 子模块所使用的加密作业和密钥操作。

AUTOSAR AP 中IPsec 协议实施的目标是在车载IP 网络中提供安全的通信通道。在 AUTOSAR 自适应平台中实施IPsec 将为网络节点之间的通信提供保密性、完整性或两者兼备的选项。IPsec 作为标准网络安全协议提供了安全通信的手段,同时支持多供应商堆栈互操作性。自适应平台没有为电子控制单元指定任何操作系统,因此是IPsec 功能最好的实践方式。

搁笔分享完毕!

愿你我相信时间的力量

做一个长期主义者!

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

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

相关文章

Mysql 子查询,最值查询

1.leetcode-184:查找部门内最高的薪水 首先是一个子查询,找出一个部门里最高的那个工资 随后查找最终需要的值,并且部门编号以及薪水应该包含在这个子查询中 最终答案: # Write your MySQL query statement below SELECT Depar…

爬虫获取一个网站内所有子页面的内容

上一篇介绍了如何爬取一个页面内的所有指定内容,本篇讲的是爬去这个网站下所有子页面的所有指定的内容。 可能有人会说需要的内容复制粘贴,或者直接f12获取需要的文件下载地址一个一个下载就行了,但是如下图十几个一级几十个二级一百多个疾病…

网工内推 | 网络工程师,软考证书优先,六险一金,包吃

01 科力信息 招聘岗位:网络工程师 职责描述: 1、负责蚌埠项目的设备安装及调试; 2、对边界网络运行中的监控、故障排除、问题处理。 任职要求: 1、2年及以上网络相关工作经验,有交通管理网络运维经验优先&#xff1b…

重新认识Java中的死锁问题

一、定义 多个进程因抢夺系统资源而产生相互等待的现象。 二、场景模拟 package com.gui.practise.thread.deadlock;public class DeadLock {private final Object resource1 new Object();//资源 1 private final Object resource2 new Object();//资源 2 public v…

前端架构师之路03_移动端规范兼容处理

1 移动端页面制作规范 1.1 计量单位的使用 CSS 的计量单位选择 px:固定的像素值em:相对父级元素的 font-size 设置来作为当前元素 1em 所代表的像素值,如父节点的 font-size:10px,当前节点的 font-size:1.2em,则当前节…

什么才是物联网领域最好的开发语言?

什么才是物联网领域最好的开发语言? 最好!运行最快?开发最高效?最容易学习? 各有特点! 采用C/C语言,运行最快,一般采用厂家提供的底层驱动支持包BSP,所有MCU都支持。如…

2009-2018年各省涉农贷款数据(wind)

2009-2018年各省涉农贷款数据(wind) 1、时间::209-2018年 2、范围:31省 3、来源:wind 4、指标:涉农贷款 指标解释 :在涉农贷款的分类上,按照城乡地域将涉农贷款分为农村贷款和城…

Django的设计模式及模板层

Django的设计模式及模板层 设计模式MVC和MVT MVC 代表 Model-View-Controller(模型-视图-控制器)模式。 M 模型层(Model),主要用于对数据库层的封装 V 视图层(View),用于向用户展示结果 (WHAT HOW) C 控制(Controller,用于处理请求、获取数据、返回结果(重要) 作…

记录使用iText7查找PDF内容关键字坐标,加盖电子签名、印章

一、前言 项目以前签字都是由C端那边进行合成操作,最近项目要求把那块功能,由后端进行实现,其中包含坐标、关键字、任意位置进行签字操作,坐标是最容易实现的,曾经也写过类似的功能在(添加图片印章到PDF&a…

Spring学习笔记3 Spring对IOC的实现

Spring学习笔记2 Spring的入门程序_biubiubiu0706的博客-CSDN博客 控制反转是一种思想 控制反转是为了降低程序耦合度,提高程序扩展力,达到OCP(开闭原则)原则,达到DIP(依赖倒置原则)原则 控制反转,反转的是什么? 1.将对象的创建权力交出去,交给第三方容器负责 2.对象与对象…

【Vue3 源码解析】nextTick

nextTick 是 Vue 3 中用于异步执行回调函数的函数&#xff0c;它会将回调函数延迟到下一个微任务队列中执行。其中&#xff0c;Vue 更新 DOM 是异步的。下面是对 nextTick 函数的详细解释&#xff1a; export function nextTick<T void, R void>(this: T,fn?: (this:…

【C#】Redis在net core下使用教程

系列文章 文章目录 系列文章前言一、Redis 简介1.1 Redis 优势1.2 Redis与其他key-value存储有什么不同&#xff1f; 二、Redis安装步骤2.1 下载链接2.2 安装测试 三、Redis修改帐户密码四、Redis写成Windows服务五、.net core - 使用CSRedisCore操作redis 前言 官方教程&…

25814-2010 三聚氯氰 阅读笔记

声明 本文是学习GB-T 25814-2010 三聚氯氰. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了三聚氯氰的要求、采样、试验方法、检验规则以及标志、标签、包装、运输、贮存、安全、 安全技术说明书。 本标准适用于三聚氯氰的产品…

ARM/X86工控机在轨道交通交通管理系统的应用(4)

交通管理系统 信迈XM-3000系列专为道路监控应用而设计。随着城市化的发展&#xff0c;道路车辆数目与日俱增&#xff0c;而道路监控对于时刻保障城市的安全是非常必要的。由于性能强大并支持宽温度工作&#xff0c;XM-3000系列成为交通管理系统应用的理想选择。 系统架构 交通…

服务网关Gateway_微服务中的应用

没有服务网关 问题&#xff1a; 地址太多安全性管理问题 为什么要使用服务网关 网关是微服务架构中不可或缺的部分。使用网关后&#xff0c;客户端和微服务之间的网络结构如下。 注意&#xff1a; 网关统一向外部系统&#xff08;如访问者、服务&#xff09;提供REST API。在Sp…

常用螺栓标准、规格、用途汇总表

螺栓 1 常用螺栓标准、用途 常用螺栓标准、规格、用途见表1。 表1 常用螺栓标准、规格、用途汇总表 注&#xff1a;1.冷镦工艺生产的小六角头螺栓具有材料利用率高、生产效率高、机械性能高等优点,但由于头部尺寸较小, 不宜用于多次装拆、被联接件强度较低和易锈蚀等场合。 2.…

印章篆刻小程序商城的作用是什么

印章的需求度也有很高市场需求&#xff0c;处理办公印章外&#xff0c;还有艺术类的&#xff0c;而对爱好者来说&#xff0c;需要找到一家靠谱的品牌制作&#xff0c;包括材料、样式、内容等都有较高要求&#xff0c;线上可以接触到更多雕刻商家。 而对品牌来说&#xff0c;需…

Chrome获取RequestId

Chrome获取RequestId 参考&#xff1a;https://help.aliyun.com/zh/redis/how-do-i-obtain-the-id-of-a-request 在浏览器页面按下F12键&#xff0c;打开开发者工具页面&#xff1b; 在开发者工具页面&#xff0c;单击Network(网络)&#xff1b; 在playload(载荷)窗口中找到目…

Java-day18(网络编程)

网络编程 1.概述 Java提供跨平台的网络类库&#xff0c;可以实现无痛的网络连接&#xff0c;程序员面对的是一个统一的网络编程环境 网络编程的目的&#xff1a;直接或间接地通过网络协议与其他计算机进行通信 网络编程的两个主要问题&#xff1a; 1.如何准确定位网络上一台…

Blender 之创建一个简单的笔筒

文章目录 成品图实现步骤 你是不是想创建一个笔筒捏&#xff1f; follow me! 成品图 实现步骤 先添加一个柱体 选中柱体&#xff0c;然后按tab 进入编辑模式 切换到面模式 &#xff08;可以按主键盘的 3 键&#xff09; 分别选中上下面&#xff0c;鼠标右键&#xff0c;选…