智能网联汽车有哪些信息安全场景

目录

1.车内安全通信

2.车云安全通信

3.安全启动

4.车载应用程序保护

5.入侵检测防御与日志管理系统

 


       在聊完车载信息安全需求之后,势必要去看看​应用场景有哪些。根据之前的开发经验简单聊一下我知道的,还有很多没有讲,比如说车云之间具体如何进行信息安全防护,SOC上不同操作系统的虚拟化安全边界等等,所以这里抛砖引玉,聊聊之前​做过的一些内容。

1.车内安全通信

       目前整车的网络通信仍然以CAN/CANFD和车载以太网通信为主,通信架构如下:

       CAN/CANFD在设计之初就没有考虑其安全设计,通信交互主要靠ID Filter,报文有效性主要靠checksum和rollingcounter,没有身份认证和通信加密机制;黑客可以很轻松地通过OBD口或者T-Box伪装CAN 报文,对车辆进行控制,造成人身财产安全损失。

        基于此,AUTOSAR提出了SecOC通信,其整体框架如下:

        以安全PDU接收为例,CAN FD报文通过If层经由PduR路由到SecOC模块,SecOC调用CSM服务对数据进行AES-CMAC校验,校验成功通知SecOC -> PduR ->Com。

        SecOC MAC值的生成和验证原理如下:

        原始PDU经过SecOC模块的处理后,形成完整的安全PDU,其组成如下:

        原始PDU数据+截取的新鲜度值(图上CNT)+截取的MAC值。

        引入新鲜度值Freshness以防止重放攻击,引入MAC值以保证身份认证,总线的安全PDU仍采用明文传输。

        车内的车载以太网OSI参考模型如下:

传输层:在TCP/UDP级别上的以太网通信使用TLS来建立安全传输:

网络层:使用IPsec,保护任意参与IP网络的双方链接,如下图所示:

链路层:MKA机制实现在MAC层的数据加密、完整性真实性检查、重放保护以及密钥管理,MKA涵盖了IEEE802.1AE-2018和IEEE-802.1X-2020两个协议规范,前者定义了以太帧的数据封装、认证和加密的数据格式;后者定义了密钥管理和交换的协议。

如下所示:


2.车云安全通信

车云通信包括近端通信、远程通信和云端通信三类,如下图所示:

  • 近端通信:是指蓝牙、NFC等移动设备与车辆进行通信,针对蓝牙的入侵手段有:漏洞攻击、劫持、窃听等方式;针对NFC入侵手段有复制车辆钥匙等。常见保护方式为使用PIN码认证;

  • 远程、云端通信:常见入侵手段包括:伪基站、伪装中断、数据篡改\窃听\重放等,常见手段为加固车端硬件防火墙和云端访问控制,对OTA下发升级固件进行加固、加密认证等方式;采用TLS和证书管理,实现车端、云端的身份双向认证、通信数据加密、完整性保护等。


3.安全启动

        安全启动主要是通过建立信任链,保证每个程序在加载运行前均通过数据完整性真实性验证。同样的,安全启动分为MCU启动和SOC两种。

  • MCU安全启动

        以英飞凌TC3xx安全启动为例,芯片厂在兼顾启动速度和身份认证的情况下,提供了三种启动方式:顺序启动、并行启动、混合启动。

        Tricore首先启动触发HSM CPU进行启动,并在跳转至用户代码之前选择是否等待HSM对APP、Data和OS等程序的校验结果,从而实现了顺序、并行等启动方式。

  • SOC安全启动

        以Intel 某SOC的安全启动为例:

        BootROM作为信任根是整个系统最先启动,初始化完成后用于后续验证镜像文件的公钥,并对其进行自检。确认公钥的合法性后,BootRom 使用公钥对 Bootloader验签。验签完成并确认 Bootloader 完整性后,将BootLoader加载至RAM运行;Bootloader进一步对OS或者APP进行验签,从而实现安全启动。

        SOC除了安全启动,还存在可信启动;可信启动依赖安全启动的验签,主要是用于验证当前固件版本信息是否授信;在可信启动的过程中,通常将使用度量的概念,将度量值保存至TPM的PCR中,由平台裁决当前固件的版本信息是否在白名单内,以此达到版本管理的作用。


4.车载应用程序保护

        车内应用程序敏感信息包括程序代码本身、车主个人信息、汽车里程数据、VIN码、车型控制码、加密\解密密钥等。

        对于MCU来说,通过芯片内部独立安全岛(即HSM)建立Secure Domain和Non-Secure Domain进行保护:

  • Secure Domain建立存储区,存储敏感信息

  • 对程序本身进行真实性完整性验证,

  • 使用OTP或者受保护Flash的方式对上述数据进行保护。

一般来讲,对于SOC来说,需在REE建立多层安全防护:

  • Kernel使用对象访问控制、MMU技术,

  • 中间件采用应用签名认证、权限管理或是沙盒等

  • 除此之外,采用ARM TrustZone建立TEE,为REE提供安全服务。


5.入侵检测防御与日志管理系统

        入侵检测与防御系统主要是负责收集信息安全相关数据、文件系统完整性检测、报文流量监测、防火墙以及信息安全日志等。

        结合CP的入侵检测及AP的入侵检测、防火墙、日志管理,总结出架构如下:

CP中的IdsM负责Eth和CAN帧的流量检测,AP侧的防火墙和IDS事件可通过SPI、核间通信告知日志管理系统收集和分析安全事件日志。

日志系统中的log和trace的完整性、机密性和完整性就显得尤为重要。

  • 因此需要采用访问控制机制,管理日志写入权限;
  • 采用加密的形式保证log的机密性,
  • 日志传输到云端需要采用加密和签名的保证保证其数据的完整性和真实性。

往期回顾:

汽车标定合集

AUTOSAR专项

汽车信息安全合集

英飞凌TC3xx分析

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

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

相关文章

【QT】 Qt自定义ui控件

在使用Qt的ui设计时,Qt为我们提供了标准的窗口控件,但是在很多复杂工程中,标准窗口控件并不能满足所有的需求,这时就需要我们自定义控件。我们自定义的类既可以作为独立的窗口显示,又可以作为一个控件显示。 我们要实现…

MySQL 8.0 Clone 备份恢复演练

文章目录 前言1. 恢复目标2. 环境说明3. 克隆数据4. 恢复全量数据5. 注册增量日志6. 应用增量日志 后记 前言 上一篇文章中,我们介绍了使用 Clone 插件进行备份,相关的恢复流程将在本篇文章介绍。 MySQL 8.0 Clone Plugin 详解 恢复增量数据的方法&…

同创永益与国泰君安证券签署全面战略合作协议

10月24日,“生态赋能 智绘未来”国泰君安2023年金融科技文化节主题论坛召开,同创永益董事长朱柯、副总裁朱晓岚受邀出席活动,并与国泰君安总裁王松、首席信息官俞枫共同签署战略合作协议。双方将围绕产业研究、技术创新、人才培养等多方面方面…

Microsoft Dynamics 365 CE 扩展定制 - 7. 安全

在本章中,我们将介绍以下内容: 构建累积安全角色配置业务单元层次结构基于分层位置配置访问配置和分配字段级安全组建团队并共享设置访问团队对静止数据进行加密以满足FIPS 140-2标准管理Dynamics 365在线SQLTDE加密密钥简介 Dynamics 365是一个强大的平台,具有超过10年的良…

02-PostgreSQL的基本使用

一、数据库操作 ①: 登录到数据库 psql -U postgres -d postgres -h 127.0.0.1②:查看所有数据库 \l③: 创建数据库 # 创建一个名为 mydb 的数据库 create database mydb;④:切换数据库 # \c 数据库名 \c mydb⑤:删除数据库 # 删除前 先确保数据库没有被连接 drop databa…

黑色星期五推广策略:TikTok海外网红营销加速品牌增长

在数字化时代,TikTok已经成为了一个具有巨大潜力的社交媒体平台,它不仅让用户分享短视频,还为品牌提供了一个独特的宣传渠道。尤其是在黑色星期五这个全球购物盛宴的时刻,品牌有机会通过TikTok网红营销来提升销售额。本文Nox聚星将…

Linux学习笔记--高级

Shell概述 1,shell概述 是一个c语言编写的脚本语言,是linux和用户的桥梁,用户输入命令交给shell处理。shell,将相应的操作传递给内核(kernel),内核把处理的结果输出给用户 1.1Shell解释器有哪…

CSS 下拉菜单、提示工具、图片廊、计数器

一、CSS 下拉菜单&#xff1a; CSS下拉菜单用于创建一个鼠标移动上去后显示下拉菜单的效果。示例&#xff1a; <style> .dropdown { position: relative; display: inline-block; } .dropdown-content { display: none; position: absolute; background-color: #f9f…

shopee、亚马逊卖家如何安全给自己店铺测评?稳定测评环境是关键

大家都知道通过测评可以提升产品的转化率&#xff0c;提升产品的销量&#xff0c;那么做跨境平台的卖家如何安全的给自己店铺测评呢&#xff1f; 无论是亚马逊、拼多多Temu、shopee、Lazada、wish、速卖通、敦煌网、Wayfair、雅虎、eBay、Newegg、乐天、美客多、阿里国际、沃尔…

研发管理用什么软件?

研发管理用什么软件 研发管理用的软件有&#xff1a;1、JIRA&#xff1b;2、Confluence&#xff1b;3、彩虹PDM软件。彩虹PDM软件 是由南宁市二零二五科技有限公司 自主研发&#xff0c;为用户提供“产品全生命周期管理解决方案”。产品结构管理、BOD管理、零部件管理、工艺管理…

时间序列预测:深度学习、机器学习、融合模型、创新模型实战案例(附代码+数据集+原理介绍)

本文介绍->给大家推荐一下我的时间序列预测专栏&#xff0c;本专栏平均质量分98分&#xff0c;而且本专栏目前免费阅读&#xff0c;其中涉及机器学习、深度学习、融合模型、个人创新模型、数据分析等一系列有关时间序列的专栏&#xff0c;其中的实战的案例不仅有简单的模型类…

宝塔部署QQ机器人,提示OpenSSL 1.0.2k-fips 26 Jan 2017

1、报错预览 Traceback (most recent call last):File "/www/wwwroot/python/bot-one/main.py", line 5, in <module>import requestsFile "/www/wwwroot/python/bot-one/343ae0eb0d491a10a1a00c0621b03ed0_venv/lib/python3.9/site-packages/requests/_…

BP神经网络的数据分类——语音特征信号分类

大家好&#xff0c;我是带我去滑雪&#xff01; BP神经网络&#xff0c;也称为反向传播神经网络&#xff0c;是一种常用于分类和回归任务的人工神经网络&#xff08;ANN&#xff09;类型。它是一种前馈神经网络&#xff0c;通常包括输入层、一个或多个隐藏层和输出层。BP神经网…

VSCode设置中文语言界面(VScode设置其他语言界面)

一、下载中文插件 二、修改配置 1、使用快捷键 CtrlShiftP 显示出搜索框 2、然后输入 configure display language 3、点击 (中文简体) 需要修改的语言配置 三、重启 四、可能出现的问题 1、如果configure display language已经是中文配置&#xff0c;界面仍是英文 解决&a…

C盘清理指南(四)——垃圾清理工具

往期目录集合&#xff1a; C盘清理指南&#xff08;一&#xff09; 内存小的本质原因https://blog.csdn.net/jsl123x/article/details/134273657?spm1001.2014.3001.5501C盘清理指南&#xff08;二&#xff09;——盘符划分操作https://blog.csdn.net/jsl123x/article/detail…

快速了解什么是跳跃表(skip list)

什么是跳跃表&#xff08;skip list&#xff09; 跳跃表&#xff08;Skip List&#xff09;是一种概率性的数据结构&#xff0c;它通过在多层链表的基础上添加“快速通道”来提高搜索效率。跳跃表的效率可以与平衡树相媲美&#xff0c;即在平均和最坏的情况下&#xff0c;查找…

Xcode15更新内容

参考博客&#xff1a; 【WWDC 2023】Xcode 15 更新内容 文章目录 1. xcode15起&#xff0c;项目内创建的图片可以使用点语法访问2.2. UIKit项目也可以使用预览功能3. Xcode新增标签功能4.Log分类 1. xcode15起&#xff0c;项目内创建的图片可以使用点语法访问 2.2. UIKit项目也…

Linux C语言(8)

1、指针 1.1 概念 指针就是地址指针是一种数据类型&#xff0c;是一种保存地址的数据类型int是一种数据类型&#xff0c;是一种保存整数的数据类型 1 2 3 4float是一种数据类型&#xff0c;是一种保存浮点数的数据类型 3.14 1.2 什么是地址 内存分配的最小单位是字节&#xf…

【Leetcode】【数据结构】【C语言】判断两个链表是否相交并返回交点地址

struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {struct ListNode *tailAheadA;struct ListNode *tailBheadB;int count10;int count20;//分别找尾节点&#xff0c;并顺便统计节点数量&#xff1a;while(tailA){tailAtailA->next;c…

flutter开发报错The instance member ‘widget‘ can‘t be accessed in an initializer

文章目录 问题描述问题原因解决方法 问题描述 The instance member ‘widget’ can’t be accessed in an initializer. 问题原因 “The instance member ‘widget’ can’t be accessed in an initializer” 错误是因为在初始化器列表中&#xff08;constructor initializer…