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

目录

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方案的需求时,顺便整合了下车-管-端的需求分析,虽然我们用不到这么多需求。这里分享给大家。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[AndroidStudio]_[初级]_[修改虚拟设备镜像文件的存放位置]

场景 在使用Android Studio的虚拟设备运行App时,需要创建很大镜像文件。这些镜像文件一般都在系统盘,导致系统盘占用增大。怎么把这些镜像的存放路径设置在其他盘? 说明 虚拟设备的和它的镜像默认是放在用户目录\.android\avd位置。如果是在…

python-全自动二维码识别

纯笔记,可以做到全屏识别二维码,自动识别,复制链接,生成简单的二维码,将识别到的内容转为txt import pyautogui from PIL import Image from pyzbar.pyzbar import decode import tkinter as tk from tkinter import …

javaee实验:搭建maven+spring boot开发环境,开发“Hello,Spring Boot”应用

目录 mavenspringboot实验目的实验内容环境的搭建 在开发中,maven和spring都是非常常用、非常重要的管理工具和框架,今天就在这里使用idea进行环境的搭建和创建第一个spring程序 maven 1.1maven是一个跨平台的项目管理工具(主要管理jar包&am…

如何实现Word文档中的书签双向定位

工作中,经常需要拟定合同,一般都有固定的模板,在特定的位置填写内容。通过zOffice编辑合同文件时,可以在模板需要填写的位置预设书签,配合zOffice SDK使用,利用zOffice书签双向定位的特性,更方便…

王道p18 第12题假设 A中的 n个元素保存在一个一维数组中,请设计一个尽可能高效的算法,找出A的主元素。若存在主元素,则输出该元素:否则输出-1

视频讲解在:👇 p18 第12题 c语言实现王道数据结构课后习题_哔哩哔哩_bilibili 从前向后扫描数组元素,标记出一个可能成为主元素的元素 Num。然后重新计数,确认 Num 是否是主元素。 我们可分为以下两步: 1.选取候选的主元素。依…

CocosCreator使用物理引擎和回调

在2d中开启碰撞需要在项目设置–功能裁剪–2D物理系统【选择 基于Box2D的2D物理系统】 如果想要两个物体碰撞,则需要添加刚体和碰撞【!!重点】 设置刚体类型 可以设为四种, Static 静态刚体,零质量,零速度…

【JAVA】:万字长篇带你了解JAVA并发编程-并发设计模式【五】

目录 【JAVA】:万字长篇带你了解JAVA并发编程-并发设计模式【五】模式分类Immutability模式【不可变模式】Copy-on-Write 模式Thread Local Storage 模式线程池中使用 Guarded Suspension模式扩展 Guarded Suspension 模式 Balking模式Thread-Per-MessageWorker Thr…

【C语言 | 符号】C语言中符号易出错的地方

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

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

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

[NLP] 使用Llama.cpp和LangChain在CPU上使用大模型

一 准备工作 下面是构建这个应用程序时将使用的软件工具: 1.Llama-cpp-python 下载llama-cpp, llama-cpp-python [NLP] Llama2模型运行在Mac机器-CSDN博客 2、LangChain LangChain是一个提供了一组广泛的集成和数据连接器,允许我们链接和编排不同的模块。可以常…

华大基因推出产前筛查产品NIFTY®,助力防控显性单基因病

随着高通量测序技术在临床应用的迅速进步,从常见的染色体非整倍体扩展到性染色体和拷贝数变异,全球范围内已经开始将无创产前检测(Non-invasive Prenatal Testing,NIPT)的应用范围逐步扩大。近日,华大基因重…

【Mybatis小白从0到90%精讲】15: Mybatis配置打印SQL日志

文章目录 前言配置日志实现前言 日志(Log)是每个程序都不可或缺的一部分,它可以帮助开发人员诊断和调试问题。Mybatis,作为一款备受赞誉的ORM框架,自然也提供了强大的日志功能。 它不仅提供了内置的标准实现,还支持集成各种主流的日志框架,让我们可以轻松地查看最终执行…

休眠和睡眠有哪些区别?如何让电脑一键休眠?

电脑中有休眠和睡眠,那么它们有什么区别呢?下面我们就通过本文来了解一下。 休眠和睡眠的区别 电脑在睡眠状态时,会切断内存之外的设备电源,电脑会进入睡眠状态,当再次唤醒电脑后,不会影响睡眠前保存好的工…

柱状图:带误差棒

误差棒可以表示样本标准差,也可以表示样本标准误。 导入库: import pandas as pd 自定义用来绘制带误差棒(样本标准差或样本标准误)的柱状图: def col(y, x, face, df, errprbarstd) : print(ggplot(df.groupby([x…

搭建WAMP网站教程(Windows+Apache+MySQL+PHP)

之前为了学习网络安全,从搭建网站学起,对网站运行有个初步的了解。 今天翻到了之前的笔记,顺手发到csdn上了。 搭建网站步骤 一、Apache 安装Apache,下载Apache之后把Apache解压,此处解压到C:\目录下 2.然后要记得安…

Notepad++中删除连续的任意n行

使用Notepad里的行标记功能,可以删除指定的任意n行。 案例1,删除sample2.dat里的第201行到第10000行。方法如下: (1) 用户NotePad打开sample2.dat,右击201行 —》“开始/结束”/开始 图(1) 选择行的起点:201 (2) 接…

Git 的基本操作 ——命令行

Git 的工作流程 详解如下: 本地仓库:是在开发人员自己电脑上的Git仓库,存放我们的代码(.git 隐藏文件夹就是我们的本地仓库) 远程仓库:是在远程服务器上的Git仓库,存放代码(可以是github.com或者gitee.com 上的仓库,或者自己该公司的服务器…

【动手学深度学习】课程笔记 05-07 线性代数、矩阵计算和自动求导

05 线性代数 1. 基础知识补充 向量相关 矩阵相关 简单来说,范数是用来衡量矩阵(张量)大小的值,范数的值有不同的规定。 2. 代码实现 仅记录一些我比较陌生的知识。 张量的克隆 A torch.arange(20, dtypetorch.float32).resh…

10个免费3D模型网站

作为一名独立游戏开发者,自己创建图形、配乐、动画和更多东西是相当具有挑战性的。 创建资产所需的成本和时间有时是许多游戏开发商无法承受的。 这就是他们选择在互联网上搜索免费内容的原因。现在,在浩瀚的内容海洋中获得如此免费的东西有点困难。 本文…

阿里云安全恶意程序检测(速通三)

阿里云安全恶意程序检测 特征工程进阶与方案优化pivot特征构建pivot特征pivot特征构建时间pivot特征构建细节特点 业务理解和结果分析结合模型理解业务多分类问题预测结果分析 特征工程进阶基于LightGBM模型验证模型结果分析模型测试 优化技巧与解决方案升级内存管理控制加速数…