当前位置: 首页 > news >正文

空中下载技术(OTA)电控信息安全

随着汽车电子控制系统功能复杂度和数据颗粒度呈阶梯式增加,其发展速度逐渐超越网络安全防护方法、技术和标准的发展,现阶段汽车电子正面临巨大的网络信息安全风险,对功能安全的潜在影响也仍在探索和解决中,信息安全问题已经成为影响传统汽车全面向智能网联汽车发展过渡的关键点。

1 车联网环境下汽车电子安全现状

1.1 汽车电子信息安全现状

万物互联的汽车电子时代使得整车厂和供应商不得不开始考虑和重视电控系统信息安全,商用车队暴露在公共环境复杂工况下,无论从时间或是空间一旦被恶意攻击、破解,其损失也将是难以自辩。近年来汽车行业安全事件频繁出现在大众视线中,比如 2015 年 Jeep 自由光被破解,黑客重新刷入了带有病毒的固件,并通过向CAN 总线发送指令的方式控制车辆减速、制动甚至关闭发动机,2017 年腾讯科恩实验室通过 WIFI 破解特斯拉 Model X 车载系统,实现特斯拉多个 ECU 的任意远程协同操控。各类安全事件正是信息安全认知普及的指导教材,从系统层面教会了汽车电子行业信息安全的概念,正向推动企业采取保护网络物理系统免受未授权访问或攻击的防御措施,并合法合规建立有效的网络信息安全防护体系。

1.2 OTA概念

空中下载技术(OTA)通过移动通信的空中接口对车载 SIM 卡信息及应用进行远程管理和控制,不仅可以为产品提供数据服务, 同时能够提供新业务下载和更新服务。相较于传统 ECU 更新方式, 汽车行业 OTA 的衍生为远程刷写、诊断提供优越技术保障,实现了线上实时问题定位和数据上传、软件下载和迭代更新,显著减少产品召回几率,整车厂售后维护成本得益于此突破性降低。

2 安全威胁分析
在这里插入图片描述

在车联网广泛应用和复杂功能中,本文选取最典型的应用场景OTA 进行威胁研究和分析,攻击者为达到破解通讯协议截获重要数据资产的目的,使得信息资产将主要面对三类攻击方式:物理接口方式、近距离间接方式和远程无线方式,如图 1 攻击和威胁典型向量示意。直接物理接入攻击主要通过非法接入 CAN、车载诊断系统 (OBD) 等生态接口,近距离无线攻击主要利用蓝牙和无线信道非法监听、重放或伪造节点身份信息的方式,远程无线攻击主要通过 WIFI 和移动数字蜂窝网络端口实现非法侦听、重放攻击或伪造凭证等方式进行攻击破解。本章节按照整个异构网络数据链路中通讯节点划分,从车载终端、传输链路和云服务器三个重要层面进一步研究说明其中的威胁向量和攻击方式:

2.1 终端威胁

ECU 或 T-BOX 作为终端设备具备了丰富的网络安全攻击生态入口,同时面临软件、硬件两大方面威胁:

(1)基础元器件脆弱性:汽车电子中大量使用的传感器、处理芯片等本身就可能存在设计上的缺陷或者漏洞,诸如信号干扰、缓冲区溢出、缺乏安全算法库等,攻击者通过异常环境对芯片进行攻击,SPA/DPA 功耗攻击或者物理探测等手段实现暴力破解。

(2)非法访问入口:ECU 固件程序是常见的攻击目标,如果ECU 对接入设备没有任何访问授权安全机制加上 CAN 总线中的消息明文传输情况下,任何人都可以使用 OBD 诊断设备接入总线进行操作,那么固件程序可能被非授权分析或平行越权,造成信息泄露实现渗透攻击。

(3)升级包篡改攻击:ECU 接收 OTA 升级包下载或更新, 如果没有对升级包进行安全凭证校验或者凭证验证过程被绕过,攻击者可刷入被篡改过的系统固件,使系统不再处于受控范围内。

(4)弱防御运行环境:恶意代码逆向攻击、渗透、访问受保护资源,运行环境被注入非预期执行命令,从而终端设备被非法控制。

2.2 传输威胁

车辆通讯协议传输层普遍存在消息不认证、数据无防篡改或是错误检测机制复杂度过低的潜在风险,在这种情况下传统 ECU 融合 OTA 接入无线网络后,使得汽车电子暴露在攻击威胁中的可能性和面临威胁向量的范围扩大。整体来看总线传输协议受到的安全威胁具有相似性,本章节从未经授权的中间人攻击和重放攻击两类进行归纳分析:

中间人攻击利用恶意数据节点注入,可能在未授权情况下使控制系统执行非预期命令或数据访问,造成通讯节点反馈或执行敏感动作,产生安全漏洞。针对传输数据完整性问题,传统通讯标准协议虽然预留数据域用于循环冗余检查(CRC),但随着密码学更多复杂算法的演进,CRC 算法结果被篡改的可操作性变得简单,尤其是在总线明文会话中,数据真实完整性防御机制和机密性保护机制存在不足,执行成功攻击所需的专业知识要求、对系统的熟悉程度以及突破机会窗口等威胁因素等级极低,也就是说仿冒、篡改或特权提升的攻击成功可能性非常高。

重放攻击通常利用 CAN, FlexRay 等现有技术采用明文广播发送的机理,攻击者窃听总线重要指令进行回放,或者利用网关将 64 位同步帧计数器的高 32 位字节每次增加 1 作敏感事件的撞库破解方式,通过对一定样本数量的历史明文数据帧进行逆向工程、模糊测试等捕获通信矩阵,进一步破解应用层通信协议。在这种攻击情况下,由于总线上缺失数据时效性保护机制和机密性安全机制, 通讯节点无法自主判断有效模式而盲目正响应,攻击成功可能性依然居高不下。

2.3 云端威胁

云平台,或者数据服务器在整个 OTA 应用场景中负责大数据安全管理和安全事件管理,车队访问控制变得非常繁杂 , 传统单一安全域中的访问控制模型和机制无法解决多域环境中可能出现的安全威胁。同时由于平台开放性,攻击者与普通入网用户权限一致,导致车联网服务平台比传统服务平台面临更多的攻击面,例如文件注入、漏洞扫描攻击、协议破解等,威胁影响范围更广泛。如表1所示。

在这里插入图片描述

3 信息安全防护架构

基于 OTA 用户场景和网络分段的角度,针对电控系统面临的安全威胁和风险,将网络安全的防御分为 4 个层次和 3 个阶段,分别是ECU、中央网关、TBOX 和云平台服务器四个层次,升级包发布、升级包传输、终端升级三个阶段进行防御,构建分层次的汽车电子网络安全纵深防御体系架构。如图 2 所示。
在这里插入图片描述

3.1 终端防护机制

图片

终端设备需要考虑防止升级包被逆向分析风险、建立可信安全执行环境,如图 3 固件安全防护策略:

(1)集成安全组件。建立完善的安全防护机制通常采用软件与硬件相结合的解决方案,集成安全组件,包括但不局限于硬件专用安全芯片或是加密软件库,其最终目的是为上层应用提供基础密码运算能力和密码服务,将安全防护固化到硬件基础元器件层面中。

(2)分域隔离,也就是将系统存储空间基于 Trust Zone 理念划分为安全信任区域和非安全区域,将数据资产按照重要程度、脆弱性和攻击威胁产生的负面影响分区存储,从物理层面上将系统资源隔离,建立一个可信的安全管理系统环境。

(3)安全启动。基于可信运行环境的启动流程是保障固件安全的根本,对引导程序或固件等进行有效性验证是终端设备必须确立和实施的步骤。参考 SHE 标准安全启动机制,利用硬件加密模块 (HSM) 实现静态消息认证码(MAC)检查启动代码的一部分地址内容,只要引导程序和一些应用程序代码(包括加密库)真实性和完整性验证通过,允许主程序启动并帮助 HSM 检查代码的其余部分。在这种复合检查顺序下,一旦验证完成所有代码内容,应用程序可以释放其正常启动过程。

(4)安全更新。为了防止升级包在传输路径被篡改或仿冒, 刷写更新前应确保经过双向数字签名认证,终端需要安装根证书、客户证书以及服务器端证书,验证通过方可进行下一步操作。另一方面,只有在升级包来源被合法使用时,解密为明文。

(5)安全存储。重要数据应加密存储,保证存储机密性。同时,例如用户私钥、鉴权码或文件镜像等重要敏感数据的安全存储必须是非授权用户无法访问的,明确访问权限的区分。目前部分研究成果定义特权访问概念,管理核心系统资源的最高优先级仲裁者,将分散的访问权限进行集中管理,并对访问事件进行全程实时记录和审计。

(6)安全备份。回滚机制在发现节点升级失效后执行回滚,使节点恢复到稳定版本,保证车辆功能正常运行,同时要求镜像文件安全存储,防止恶意回滚操作。

3.2 传输防护机制

数据广播过程中也同样需要部署防护策略防止第三方信道监听和中间伪造,保障数据完整性、时效性以及数据源合法性。OTA 用户场景下大致可将数据传输分为两种,车内网络和车云网络。

从车内网络分析,CAN 总线作为目前应用最广泛的通讯协议在J1939 数据链路层标准定义中已经有一定程度的信息安全的考虑,接收与发送双方按照既定格式进行 CRC 和报文鲜度计数值校验用于验证信号传输路径完整性。然而传统 CRC 校验机制已经不能满足信息安全复杂度和实时性的安全需求,目前主流技术多数考虑基于密码学进行完整性和合法源检验的报文加密和认证机制。

加密机制考虑系统资源和运算效率通常优先选择对称加密算法,例如 AES,将明文数据经过加密后进行密文传输。认证机制如表 2 通常有两类方案,第一类是在 CAN 总线协议数据域中嵌入MAC 来表示认证信息。根据 MAC 密码学原理,不同长度数据内容都会加密计算压缩为固定长度消息摘要值,从而可以选择性适配总线数据域。这种计算方式受限于报文协议的固定数据帧长度,需要使用第二条报文传输鉴权码或者将鉴权码拆分存储报文 CRC 数据域。第二类方案是由系统架构中网关节点仲裁其他访问点的身份合法性,实时监控是否存在未授权的报文,采取高优先级错误帧来限制非法传输。

认证机制不同总线适配方案除外,MAC 的计算方式也可以利用伽罗瓦域乘法运算 (GMAC) 计算摘要值从而引入更多的瞬态变量来增强报文链路的实时可信性和数据鲜度保障,替换常见的分组加密消息认证码 (CMAC) 计算方式,为通讯完整性校验增强实时性监控和检测。如公式,相同明文块数据 DataInput、长度 Inputlength 和密钥 key 用户场景下,GMAC 算法在动态计算方面更加灵活,单调鲜度计数值或随机数都可以用作初始向量 IV,附加信息域 AD1和 AD2 可以由用户自定义关键私有信息,不同形参相同明文块也会有动态加密结果,从而使得针对 CAN 总线的重放攻击、通讯协议被破解成功可能性变低:

MAC=AES_CMAC(key,DataInput,InputLength)或MAC=AES_GMAC(key, IV, AD1, AD2, DataInput, Inputlength)

同理,车云网络基于无线传输协议也应遵循加密和认证原则,保证传输通道密文,防止其他恶意节点直接监听截获明文信息从而破解和篡改。

3.3 云端防护机制

云平台作为大数据量处理和事件管理服务器其性能和安全需求,包含主机安全、网络安全、数据安全和应用安全,都应考虑在企业建立信息安全体系范畴内。云计算安全架构中,可信根、可信链路和上层可信服务,以及动态安全管理的概念为云服务平台中数据安全保护措施提供了分析思路。

基于 OTA 场景下,云端对于车载终端重要安全服务之一是支持对重要事件的日志记录和管理审计功能,日志文件至少包含事件主体、事件发生的时间、事件是否成功、权限设置等要素,因此云端服务器应具有保证日志文件安全性的措施,防止非授权访问。第二类安全服务显而易见是升级包任务下发、密钥证书管理、数据加密和数字签名服务等,可参考公钥基础设施(PKI 体系),解决实体之间的信任问题。第三类安全服务,传统 IT 防护也理应归纳在信息安全体系考虑范围内。

相关文章:

空中下载技术(OTA)电控信息安全

随着汽车电子控制系统功能复杂度和数据颗粒度呈阶梯式增加,其发展速度逐渐超越网络安全防护方法、技术和标准的发展,现阶段汽车电子正面临巨大的网络信息安全风险,对功能安全的潜在影响也仍在探索和解决中,信息安全问题已经成为影…...

数据库sql语句(count(*)和count(字段))

例题: 创建如下两张表 分别命名为books和persons (1)按照书名,姓名的顺序列出字里包含‘德’字的人物的姓名,书名和字。 select name 姓名,bookname 书名,style 字 from books,persons where style like %德% and bo…...

短视频矩阵源码系统

短视频矩阵源码系统开发要则: 1. 需求分析:对短视频平台的需求进行全面分析,确立系统开发目标和方向。 2. 技术选型:选用最适合的技术开发短视频矩阵系统,如前端框架、数据库、服务器等。 3. 系统设计:按…...

检测数据类型

//typeof() 对于基本数据类型没问题,遇到引用数据类型不管用 console.log(typeof 666) //number console.log(typeof [1,2,3]) //object //instanceof() 只能判断引用数据类型,不能判断基本数据类型 console.log( [] instanceof Array) //true …...

【2023春招】4399 web后台-Java后端开发

目录 一、JVM1.类加载过程2.static和final变量的初始化时机 二、依赖1.Spring Boot 自动装配2.使用依赖过程中遇到问题如何排查3.引入的某个依赖不符合预期,如何处理 三、数据库:1.InnoDB 和 MyISAM 索引的区别2.字符串类型字段,WHERE 数字&a…...

干货分享:PCB防静电设计的必要性

平时通过走路穿衣等日常活动带来的摩擦,会产生不同幅值的静电电压,但其能量很小不会对人体产生伤害,不过对于电子元器件来说,这种静电能量却是不能忽视的。 在干燥的环境下,人体静电(ESD)的电压…...

电脑压缩包文件不见了怎么办?2种办法轻松找回电脑丢失文件!

一般情况下,为了节省磁盘空间或者传送文件时能够更快点,我们都会选择把文件进行压缩,这样会更加方便。 但时间一长,由于各种各样的原因,比如: 清理积累下来的压缩包时不小心把需要的压缩文件删除了&#x…...

如何申请gpt4.0-如何接入ChatGPT4

如何接入ChatGPT4 ChatGPT-4是OpenAI公司推出的最新自然语言处理技术,采用深度学习算法,旨在提供更加高效、准确的人工智能语言处理能力。如果您想要接入ChatGPT-4,您可以按照以下步骤: 注册OpenAI账号并申请API密钥:…...

设计模式-备忘录模式

备忘录模式 文章目录 备忘录模式什么是备忘录模式为什么要用备忘录模式如何使用备忘录模式总结 什么是备忘录模式 在不违背封装原则的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便之后恢复对象为先前的状态。   在我看来…...

阿里、京东等大厂年薪50w的测试都是什么水平?

各位做测试的朋友,但凡经历过几次面试,那么你一定曾被问到过以下问题: 1、在Linux环境下,怎么执行web自动化测试? 2、Shell如何,Docker熟悉吗? 3、全链路的压测实操过吗,如何推进与开…...

Java PECS(Producer Extends Consumer Super)原则

在看 Alibaba 开发手册时遇到 PECS 原则,刚开始阅读时感觉比较绕,也搜索了一些博文参考,个人觉得 Stackoverflow 的这篇文章比较实用 —— What is PECS (Producer Extends Consumer Super)? 后面结合 JDK 源码梳理了下 // java/util/List…...

Learn RabbitMQ with SpringBoot

文章目录 What is RabbitMQ?RabbitMQ Core conceptRabbitMQ ArchitectureInstall and setup RabbitMQ using DockerExplore RabbitMQ using management UICreate and setup Springboot3 project in intellijSpringboot and RabbitMQ Basic MessageConnection between Springbo…...

定时器 POSIX Timer定时器和setitimer定时器

POSIX 可移植 POSIX:可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX 。 POSIX Timer C API 总结POSIX系统的C标准库: 函数描述clock_settime()通过指定Value设置clock的分辨率clock_gettime()…...

DeSD:用于3D医学图像分割的深度自蒸馏自监督学习

文章目录 DeSD: Self-Supervised Learning with Deep Self-Distillation for 3D Medical Image Segmentation摘要本文方法Deep Self-DistillationDownstream Transfer Learning 实验结果 DeSD: Self-Supervised Learning with Deep Self-Distillation for 3D Medical Image Seg…...

MySQL数据库——MySQL创建触发器(CREATE TRIGGER)

触发器是与 MySQL 数据表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。 基本语法 在 MySQL 5.7 中,可以使用 CREATE TRIGGER 语句创建触发器。 语法格…...

Java实现网上人才招聘系统【附源码】

网上人才招聘系统 1、概述 3 2、系统分析 4 2.1、问题定义 4 2.2、可行性研究 4 2.2.1、可行性需求分析 4 2.2.2、数据流分析 5 2.2.3、数据字典 6 2.2.4、程序流程图 6 2.2.4、开发进度计划 6 2.3、需求分析 7 2.3.1、功能需求分析 7 2.3.2、数据需求分析 10 2.3.3、性能需求…...

jmeter接口测试项目实战详解,零基础也能学,源码框架都给你

目录 1.什么是jmeter? 2.jmeter能做什么? 3.jmeter环境搭建 3.1前提: 3.2jmeter下载: 3.3jmeter环境搭建: 3.3.1mac当中jmeter环境搭建: 3.4jmeter基本配置 3.4.1.切换语言 3.4.2.安装插件 4.jmet…...

MySQL中去重 distinct 和 group by 是如何去重的

1:测试数据 CREATE TABLE student (stu_no VARCHAR(40) NOT NULL,name VARCHAR(100) NOT NULL );insert into student values(1,name1); insert into student values(2,name2); insert into student values(3,name1); insert into student values(4,name2); i…...

在职读研是理想还是情怀?你想要的都将在社科大能源管理硕士项目实现

在职读研是理想还是情怀呢,每个读研人的想法不同,原因也有所不同。但选择在职继续攻读硕士学位的群体也有着共同点,他们都是想拥有高学历,拥有高目标的一群人。探寻新的起点和终点是他们想所要追求的。不管读研的初心是什么&#…...

携手共建数字钢铁,Hightopo亮相第三届钢铁展洽会

4 月 26 日备受期待的第三届钢铁展洽会在日照盛大召开。图扑软件作为智慧钢铁行业领先的 2D 和 3D 图形界面可视化解决方案提供商,受邀参与此次展会。 图扑软件携智慧钢铁三维可视化监控体系亮相“钢铁展洽会”,向众多钢铁企业展示了一系列图扑 HT 数字…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统

Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...