智能网联汽车基础软件信息安全需求分析

目录

1.安全启动

2.安全升级

3.安全存储

4.安全通信

5.安全调试

6.安全诊断

7.小结


1.安全启动

  • 对于MCU,安全启动主要是以安全岛BootROM为信任根,在MCU启动后,用户程序运行前,硬件加密模块采用逐级校验、并行校验或者混合校验的方式,对Flash中的用户关键程序进行数据完整性和真实性进行校验,确认程序没有被篡改。
  • 对于SOC,安全启动主要是同样以安全岛BootROM为信任根,通常采用逐级校验的方式对manifest中定义的image镜像文件进行校验。常见顺序为BootROM -> SecureBL-> Application。BootROM用于验签和解压SecureBL程序,确保SecureBL是可信软件后将其加载到RAM中进行运行;SeucreBL负责对存放在Flash中的App进行解密、数据完整性和真实性的验证,确保没有被篡改后,从Flash拷贝至RAM中运行,或者直接在Flash运行。

2.安全升级

        随着汽车智能网联的迅猛发展,汽车升级技术引入OTA(Over-the-Air Technology)的方式。

通常意义下,汽车OTA分为SOTA和FOTA两种:

  • SOTA:Software over the Air,即对车载IVI运行在Linux、IOS或Android系统上的应用软件升级,例如对导航地图信息的升级、音乐播放软件的升级等;
  • FOTA:Firmware over the Air,即对整车偏控制类的ECU进行固件升级,通常包括制动系统、动力系统等。

OTA升级的抽象模型如下:

        T-Box(或者带有T-Box功能的座舱域)接收到来自云端的升级包后,对升级包进行验签解密,完成数据包的拆分,同时作为OTA Master对车内所有ECU进行差分升级。

        除OTA之外,线下4S店或工厂通过OBD对特定ECU进行升级的方式也需要进行数据的真实性和完整性的校验。

        综上,为保证上述两种升级包的发布来源有效、数据完整不被篡改、升级内容不被恶意截获,一方面需要为升级包进行签名,保证数据来源可靠,数据完整没有被篡改;另一方面还需要对升级包进行加(OBD方式除外),传输数据过程通过密文传输,从而降低软件更新时数据暴露的风险。

3.安全存储

        安全存储通常是有两种方式实现。

  • Flash某些Sector通过设置访问权限,从而防止非法访问或篡改;
  • OTP:eFuse,只能被烧写一次。

4.安全通信

        安全通信分为车内网络通讯和车云网络通讯。

  • 车内网络通讯,目前常见的是CAN通信,以明文的方式在整车内部进行交互,攻击者可随意伪造报文对车辆控制器特别是动力、制动系统进行控制。因此,需要在关键报文上做PDU级别的身份验证机制,以防止数据被篡改或是被重放攻击。常见的是对CAN使用SecOC模块,对以太帧使用MACsec模块等。

  • 车云网络通讯安全主要是TLS(Transport Layer Security)/SLS(Secure Socket Layer)进行保护。​​​

5.安全调试

        安全调试通常是指产品下线后对MCU进行片上debug,一般使用基于挑战\响应的身份验证机制来限制调试器访问。只有授权的调试设备(具有正确响应的设备)才能访问调试端口

        在生产或者下线阶段,必须要禁用或者锁定相关的调试接口,禁用意味着无法与硬件调试接口建立连接,锁定意味着硬件调试接口受到保护,只能根据安全调试解锁来访问。

        以某中央网关芯片的安全调试为例,其挑战-响应机制如下:

6.安全诊断

        车载诊断时,读取特定内存位置、执行特定例程、下载数据等服务时需要进行身份认证;下载数据服务即上述提到的基于UDS安全升级,需要对数据或者程序进行身份认证。读取特定内存位置的服务也需要进行身份认证,以防数据通过OBD口泄露。

        安全诊断就是是通过某种认证算法来确认Client的身份,并决定Client端是否被允许访问。可以通过对随机数种子生成的非对称签名进行验证或者通过基于对称加密算法的消息校验码来验证其身份。

        ISO 14229-2020版本就提出了0x29服务(Authentication Service),如下:

     具体步骤如下:

  1. 客户端(通常是诊断仪)发送证书至服务器,证书中一般包含客户端的公钥
  2. 服务器接着确认证书的有效性,验证客户端是否合法;若不合法则停止认证流程,返回否定响应,合法则继续认证流程
  3. 服务器继续对证书发起挑战,请求客户端对所发证书的所有权证明,通常挑战中包含认证所需随机数
  4. 客户端接收到挑战信息后使用私钥对接收到的随机数进行计算得到签名,放入响应消息中发给服务器
  5. 服务器使用客户端的公钥解密并验证应答消息中的签名信息,与挑战消息比较,向客户端回复认证结果

        对于支持安全诊断通信的客户端和服务器,在认证过程中同步使用Diffie-Hellman算法生成密钥。

7.小结

        本文主要是在梳理当前项目security方案的需求时,顺便整合了下车-管-端的需求分析,虽然我们用不到这么多需求。这里分享给大家。

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

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

相关文章

uniapp使用vue3和ts开发小程序自定义tab栏,实现自定义凸出tabbar效果

要实现自定义的tabbar效果,可以使用自定义tab覆盖主tab来实现,当程序启动或者从后台显示在前台时隐藏自带的tab来实现。自定义一个tab组件,然后在里面实现自定义的逻辑。 组件中所使用的组件api可以看:Tabbar 底部导航栏 | uView…

从0到1的Springcloud Alibaba项目,一篇入门!!!

1、新建项目 我们用maven管理项目 第一步:选择maven 第二步:项目命名,项目路径 第三步:进入项目,把src文件夹删掉(不删也没事,主要是用不到这个文件夹) 2、引入项目依赖 在父项目…

【广州华锐互动】智能楼宇3D数字化展示,实现对建筑物的实时监控和管理

随着科技的不断发展,人们对于生活品质的要求也在不断提高。在这个信息爆炸的时代,如何将复杂的数据以直观、生动的方式呈现给用户,已经成为了一个重要的课题。智能楼宇3D数字化展示作为一种新型的建筑科技,正逐渐成为行业的新宠&a…

【图像分类】【深度学习】【Pytorch版本】VggNet模型算法详解

【图像分类】【深度学习】【Pytorch版本】VggNet模型算法详解 文章目录 【图像分类】【深度学习】【Pytorch版本】VggNet模型算法详解前言VggNet讲解感受野感受野的计算公式3x3的卷积核的使用VggNet模型结构 VGGnet Pytorch代码完整代码总结 前言 Vgg(Visual Geometry Group)是…

养老院展示服务预约小程序的作用是什么

养老院无论在哪个城市都有很高需求度,不少银发人群会因为种种原因而前往,而养老院近些年来各种服务也比较完善,增加了客户信任度及接受度,但对院方来说,也存在着一些痛点: 1、品牌传播服务呈现难 养老院也…

网络运维Day01

文章目录 环境准备OSI七层参考模型什么是协议?协议数据单元(PDU)设备与层的对应关系什么是IP地址?IP地址分类IP的网络位和主机位IP地址默认网络位与主机位子网掩码默认子网掩码查看IP地址安装CISCO汉化CISCO(可选操作) CISCO之PC机器验证通信 CISCSO之交…

PMI-ACP(103:57- 103)

57/103 高绩效敏捷团队的特征 参与式指导有效的决策开放和清晰的沟通价值多样性相互信任管理冲突清楚目标明确定义角色 和 职责协调关系积极的氛围 58/103 创建授权团队 敏捷强调 具备授权和积极性 的自我管理团队,他们需要对项目成果充分负责,授权是…

软考 -- 计算机学习(3)

文章目录 一、软件测试基础1.1 基本概念1.2 软件测试模型1.3 软件测试的分类 二、基于规格说明的测试技术(黑盒)2.1 重要的测试方法1. 等价类划分法2. 边界值法3. 判定表法4. 因果图法 2.2 其他测试方法 三、基于结构的测试技术(白盒)3.1 静态测试3.2 动态测试 一、软件测试基础…

配置阿里云镜像加速器 -docker

1.百度aliyun 2.找到镜像服务ACR 3.搞一个个人版&#xff0c;身份验证一下就行了很简单 4.找到镜像加速器Centos 5.执行下面4条命令&#xff1a;4条命令直接从上面操作文档中粘贴&#xff0c;不容易出错 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<…

Win10 + VS017 编译SQLite3.12.2源码

参考&#xff1a; [1] WIN10 VS2019下编译GDAL3.0PROJ6SQLite_gdal 3 win10编译-CSDN博客 [2] 如何编译SQLite-How To Compile SQLite-CSDN博客 如何生成静态库&#xff1a; 参考&#xff1a; WIN10 VS2019下编译GDAL3.0PROJ6SQLite_gdal 3 win10编译-CSDN博客 如何生成exe:…

电动车展示预约小程序的作用如何

电动车可以说是现在出行常见的方法&#xff0c;覆盖年龄广几乎是每家必备&#xff0c;也有不小大小品牌和经销商&#xff0c;市场需求较高&#xff0c;但在实际经营中&#xff0c;对经销商来时也面临着一些痛点&#xff1a; 1、品牌传播产品展示难 不同品牌竞争很大&#xff…

Spark 基础知识点

Spark 基础 本文来自 B站 黑马程序员 - Spark教程 &#xff1a;原地址 什么是Spark 什么是Spark 1.1 定义&#xff1a;Apache Spark是用于大规模数据&#xff08;large-scala data&#xff09;处理的统一&#xff08;unified&#xff09;分析引擎 Spark最早源于一篇论文 Re…

viple入门(五)

&#xff08;1&#xff09;自定义活动 自定义活动&#xff0c;用来创建新的组件、服务、函数或者其他代码模块&#xff0c;使用最多的是创建函数。 函数是对一个功能的封装&#xff0c;在调用的时候执行&#xff0c;没有调用的时候则不执行。函数可能有参数&#xff0c;可能没…

信号发送与处理-上

问题 按下 Ctrl C 后&#xff0c;命令行中的前台进程会被终止。为什么&#xff1f;&#xff1f;&#xff1f; 什么是信号&#xff1f; 信号是一种 "软件中断"&#xff0c;用来处理异步事件 内核发送信号到某个进程&#xff0c;通知进程事件的发送事件可能来自硬件…

基于 golang 从零到一实现时间轮算法 (三)

引言 本文参考小徐先生的相关博客整理&#xff0c;项目地址为&#xff1a; https://github.com/xiaoxuxiansheng/timewheel/blob/main/redis_time_wheel.go。主要是完善流程以及记录个人学习笔记。 分布式版实现 本章我们讨论一下&#xff0c;如何基于 redis 实现分布式版本的…

RuntimeError: Distributed package doesn‘t have NCCL built in

因为windows不支持NCCL backend 已解决 import os os.environ["PL_TORCH_DISTRIBUTED_BACKEND"] "gloo"

TextMate v2.0.23(文本编辑器)

Mac上好用的文本编辑器是哪个&#xff1f;TextMate 2 mac版是Macos上一款文本编辑器&#xff0c;支持大量编程语言并作为开源开发。该软件与“BBEdit”并成为苹果电脑上的EMACS和vim&#xff0c;对于程序员来说非常的适合&#xff0c;可以定制许多贴心的功能。为专业脚本编写者…

基于ruoyi框架项目-部署到服务器上

基于ruoyi框架项目-部署到服务器上 文章目录 基于ruoyi框架项目-部署到服务器上1.前端vue编译&#xff0c;后的dist下内容打包&#xff08;前后端分离版本需要&#xff09;2.后端打包成jar包&#xff08;如果是thymeleaf仅需打包jar&#xff09;3.上传到服务器目录下4. docker部…

2023北京1024城市开发者聚会总结

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

2011年408计网

第33题 TCP/IP 参考模型的网络层提供的是&#xff08;&#xff09;A. 无连接不可靠的数据报服务B. 无连接可靠的数据报服务C. 有连接不可靠的虚电路服务D. 有连接可靠的虚电路服务 本题考查TCP/IP 参考模型的网络层 若网络层提供的是虚电路服务&#xff0c;则必须建立网络层的…