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

AUTOSAR汽车电子嵌入式编程精讲300篇-基于加密算法的车载CAN总线安全通信

目录

前言

研究现状

系统架构研究

异常检测研究

认证与加密研究

相关技术

2.1车联网

2.2车载网络及总线

2.2.1 CAN总线基础

2.2.2 CAN总线网络安全漏洞

2.2.3 CAN总线信息安全需求

2.3密码算法

2.3.1 AES算法

2.3.2 XTEA算法

CAN网络建模与仿真

3.1 CAN网络建模

3.1.1 CAN网络架构

3.1.2符号说明

3.2仿真工具

3.2.1 CANoe

3.2.2 CAPL语言

3.2.3仿真实例

基于AES加密的CAN总线安全通信

4.1安全CAN总线设计思路


本文篇幅较长,分为上下两篇,下篇详见基于加密算法的车载CAN总线安全通信(续)

前言

随着科学技术的不断更新和社会文明的不断进步,汽车已经走入寻常百姓家, 成为当代社会必不可少的交通工具。伴随着互联网技术的飞速发展,汽车也不再 是一个简单的交通工具,已经逐渐发展成为一个集出行、通信、娱乐等功能于一 身的综合智能体,进而推动了车联网产业的蓬勃发展。
车联网是在传统汽车的框架上安装了传感器、执行器、控制器等分布式和集 中式控制器,使汽车具备环境感知、协同控制、优化执行等功能,并通过网络技 术实现与车外环境的信息共享,给驾驶带来方便的同时也终将成为可以替代人操 作的新一代汽车[1-3]。目前全球车联网产业进入信息化、智能化引领的快速发展阶 段,全球70%以上的新组装车辆都已配备互联网接口,预计到2020年将增至3 亿辆左右,到2025年则将突破10亿辆[4]。在我国,国务院2015年发布的《中国 制造2025》明确了将智能汽车作为重点发展方向之一。由工信部、发改委和科技 部2017年印发的《汽车产业中长期发展规划》将智能网联汽车作为汽车产业的战 略目标之一[5]。2019年工信部印发的《车联网(智能网联汽车)产业发展行动计
划》,提出了按阶段保持高质量发展的目标。汽车厂商、零部件厂商及信息科技 公司也积极开展相关技术的研发和产业布局,抢滩车联网领域。未来,融合大数 据、云计算等创新技术的车联网市场将推动汽车产业高速发展。
与传统汽车相比,车联网环境下的汽车是一个庞大而复杂的网络系统。为了
实现汽车智能化、网络化,车辆内部的电子控制单元(ECU)大幅增加,豪华汽车 ECU数量达到一百多个,并分割为CAN、LIN、MOST等不同的网络架构,承担 ECU之间的信息交互。汽车也从传统的机械式结构变为电子电气结构,通过各种
接口实现车与车、车与设施、车与服务器之间的信息交互,使得原本封闭的网络 变得开放起来[6]。在极大地方便人们生活的同时,汽车的通信接口也带来巨大的 安全隐患。现有车载CAN总线,在设计和应用过程中并没有考虑信息安全问题,
黑客很容易利用汽车的外部接口窃取车辆信息,并通过这些接口随意操控汽车。
早在2010年就有攻击者通过破解汽车内部信息系统,伪造汽车胎压传感器信 号,干扰了轮胎压力监测系统[7]。2015年,著名白帽黑客Miller和Valasek远程攻 击了一辆行驶中的Jeep切诺基,控制了动力和制动系统,并强制关闭了引擎,迫 使克莱斯勒公司紧急召回140万辆汽车[8]。2016年,腾讯科恩实验室成功实现了 远程无接触式破解Tesla S系列电动汽车,实现了诸如驻车状态下开门、行驶状态下偏航等操作。2017年,腾讯科恩实验室再次实现了远程无接触式破解Tesla[9]。
类似实验还有很多,这些实例将车联网信息安全问题推到了前沿,引起了世人的 关注。
通过分析汽车被攻击的案例可以发现,车联网技术的发展使得汽车内部的电 子控制单元和电子设备大量增加,与外界的交互越来越多。来自外界的安全威胁 通过这些车载电子设备直达车载总线。然而,现有总线既没有设置安全边界又没 有设计安全策略,严重缺乏信息安全防护手段,使得总线变得异常脆弱。
综上所述,车联网背景下汽车信息安全面临的威胁,归根结底是车载总线面 临的信息安全挑战,车载总线信息安全是未来汽车信息安全最关键的问题之一。 所以,车载总线信息安全问题的研究具有十分重要的理论价值和实践意义。本文
通过对CAN总线安全协议进行补充,以加密数据和计数器的方式,确保车载CAN 总线通信过程的数据机密性、消息正确性和数据新鲜性,以达到车载CAN总线安
全通信的目的。

研究现状


随着车联网及相关技术的快速发展,车载网络变得规模越来越庞大、结构越 来越复杂,面临的安全问题也越来越严峻,车载信息安全问题引起了世界的关注, 如何保证安全是未来汽车发展最关键的因素。为此,各国学者和科研人员开展了 相关研究和设计,旨在抵御针对车载网络的恶意攻击、降低安全威胁,提供一个 安全的汽车环境。

系统架构研究


EVITA(E-safety Vehicle Intrusion proTected Application)是欧盟2008—2011年 研究V2X应用场景的网络安全项目,旨在设计和验证一种车载网络安全通信架构
及相应协议,以保证车内网络通信安全,保护敏感数据在传输时免受损害,框架
安全性依赖于HSM(Hardware Security Module,硬件安全模块),并分为high、 medium、light三个等级,根据不同安全级别需求提供不同的硬件安全接口[10,11]。 为应对V2X通信中的安全威胁,欧盟在2011—2015年又启动了 PRESERVE(PREparing SEcuRe VEhicle-to-X Communication Systems),为V2X通 信提供接近于实际应用的安全和隐私保护措施[12]。
OVERSEE(Open Vehicular Secure Platform)项目制定了一个开放式的实时车载
信息平台,提供了一个被保护的标准化的汽车内部运行环境。主要支持汽车辅助 功能的应用程序,对他们之间进行隔离,以保证汽车功能和汽车安全不会因应用 程序的运行而受到损害[13,14]。AUTOSAR(AUTomotive Open System ARchitecture)致力于为汽车电子控制单
元定义层次化的基础软件架构,旨在为汽车电气/电子构架开发一套开放的行业标
准,以模块化、可扩展、可转换、可重用为目标,由宝马集团(BMW)、博世公司 (Bosch)、大陆集团(Continental)、戴姆勒-克莱斯勒公司(DaimlerChrysler)、西门子 威迪欧汽车电子公司(Siemens VDO)以及大众公司(Volkswagen)于2003年7月建立 的联盟,已经被国内外厂商广泛应用,成为ECU在基础软件方面的架构标准[15,16]。
国内的研究相对比较晚。2016年9月,由中国信息安全认证中心、国家网络
与信息系统安全产品质量监督检验中心、东软集团、长安汽车、奇瑞汽车等联合
发起成立了车载信息安全产业联盟(ACIA),并对外发布了《车载信息安全技术要 求白皮书》,旨在推动车载信息安全技术标准发展。2019年10月10日,我国首
个车载信息安全技术国家标准《信息安全技术车载网络设备信息安全技术要求》
正式启动,共有65家科研院所、高校和企业参与编写。

异常检测研究


入侵检测对检测精度和响应时间有着较高的要求。Lu[17]建议对ECU存储系 统进行加密以保护ECU代码,提出了马尔科夫决策过程(MDP)模型。Laraon[18]使 用协议级的安全规则检测非法ECU行为,提出了一种CAN总线网络攻击检测方 法。Muter[19]提出了一种结构化的车载网络异常检测方法,利用一组异常检测传感 器检查帧ID、数据负载、消息频率等以防止误报。Song等[20]提出的针对车载网 络的轻量级入侵检测方法,可以检测攻击且不发生误报。吴贻淮[21]结合神经网络 提出了车载CAN网络的入侵检测方法。彭晶[22]提出了基于信息熵的总线异常检
测方法。

认证与加密研究


Goza等[23-25]对基于CAN总线的认证设计了EPSB、Libra-CAN等协议,并利
用飞思卡尔单片机验证了协议的可用性,这些协议属于轻型广播认证协议,适用
于节点数量较少情况。同属轻型广播认证协议的还有Perring等[26,27]提出的TESLA 协议以及改进版本uTESLA协议。李聪聪[28]设计了针对女巫攻击的轻量级无证书 公钥认证方法。吴尚则[29]提出了基于挑战/应答模式的动态身份认证方法。
Nilsson等[30]提出了使用MAC进行认证的通信方法,将KASUMI加密算法生 成的64bitMAC分成4个等长的16bit块放在CAN消息的CRC场中并发送。该方 法发送完成需要8个CAN周期,一旦MAC计算失败,部分消息将无法识别。
针对攻击者可以利用蓝牙等无线设备向车载CAN总线发送攻击消息,Woo 等[31]提出了改进的AES-32轻量级加密方法,并对比了不同数量ECU的运行时间。 Yoshikawa等[32]针对CAN总线网络易受木马攻击提出了使用PRESENT的轻量级加密方法,同时在防重放攻击方面给出了定义。刘毅[33]提出了基于DES加密和 BKDR-Hash校验的安全通信方法,划分了点火阶段和通信阶段的安全保障。朱立 民[34]提出基于AES-CCM算法的安全CAN总线协议来保障总线安全。
现有CAN安全协议工作,多是从轻量级算法或轻量级协议考虑,且没有考虑
系统混合关键性,整个系统遵守同一安全级别、使用同一加密算法。为了满足汽 车电子系统不同关键性功能安全需求、节省系统资源,本文综合运用高等级加密 算法和轻量级加密算法,为不同关键性功能提供不同级别的安全保障,节约系统
资源,分等级保障CAN总线安全。

相关技术


本章介绍了车联网技术的一些基本概念及国内外发展情况。对现行的车载总
线做了总述,主要对CAN总线协议及其特点等进行了介绍,针对CAN总线特点 进行了安全威胁分析,进而提出了CAN总线的信息安全需求。还介绍了几种有代
表性的对称加密算法。

2.1车联网


车联网技术是在交通基础设备日益完善和车辆管理难度不断加大的背景下, 在物联网基础上建立起来的概念,是传统汽车工业与移动互联网技术的融合,可
以看作是一种经过特殊优化的移动自组网络。车联网利用GPS、RFID、无线通信、 传感网络等技术的融合,通过信息处理,实现车与X(人、道路、环境等)的无
线通讯和信息共享,进而实现对车辆的调控、改善交通状况,同时还可以为用户
提供安全、娱乐等综合性服务[35]。如图2-1所示,车联网系统是以汽车为中心节
点,通过现代信息手段把汽车接入网络中,实现车与车、车与道路、车与环境等 的互联感知。

伴随着科学技术的迅猛发展,汽车保有量持续增长,交通安全、出行效率等问 题日益突出。车联网研究最重要的意义之一在于缓解道路交通拥堵、提高道路运 输效率、提升道路交通能力。但是,安全隐患成为制约车联网技术发展的重要因 素,车联网存在的安全问题有些是传统网络中已经存在的,而有些则是专门针对无 线传感网络在车联网这一特定应用中出现的。因为车联网是以数据为中心的网络,以数据为目标的攻击行为在车联网中表现出强大的破坏性。为此,对于车联网安全 问题的分析和安全方案的实施变得更加复杂,在坚持技术继承的同时还要结合车 联网特点进行应用创新[36]。
车联网融合了智能汽车和智能交通等现代科学技术,是发达国家研究的热点。
日本在20世纪60年代就开始了相关研究,欧美国家在2000年左右启动了多个车 联网项目。为了实现不同厂家汽车之间的相互沟通,欧洲6家汽车制造商在2007 年成立了Car-2-Car通信联盟,旨在建立开放的欧洲通信系统标准。日本VICS车 机装载率在2009年已达到90%。2010年,美国交通部发布的《智能交通系统战 略研究计划:2010-2014》包括了美国车联网技术发展的详细规划和部署。我国交 通运输部在2010年7月首次提出车联网建设,并把汽车移动物联网(车联网)列 为国家重大专项(第三专项)的重要项目。2017以来,国家颁布了多项方案,将 发展车联网提升到了国家创新战略层面。随着5G技术的兴起,汽车产业全面数 字化转型和互联网化应用有了新的发展方向[37]。

2.2车载网络及总线


汽车内部CAN、LIN、MOST等车载总线,以及ECU、网关、诊断工具等一
起构成了一个庞大而复杂的车载网络,网络上连接了与车辆安全、控制、应用等
功能相关的大量ECU。一般的车载总线网络架构如图2-2所示。

车载总线是车载网络中底层的车用设备或车用仪表互联的通信网络。目前,
有CAN总线、LIN总线、FlexRay总线和MOST总线四种主流的车载总线,是当
今车载总线的代表,在车载网络中分担着不同的角色,相互之间存在巨大的差异,
如表2-1所示。

不同车载总线在物理连接、总线协议、拓扑结构、访问控制等方面都有着显
著的区别,在各自领域发挥着独特的作用。LIN总线作为CAN总线的辅助,以其
低廉的价格和易于实施在车内低速和非实时通信中取得了成功。在一些高端车型
上部署的MOST网络是汽车媒体系统通讯网络的新星。FlexRay提升了控制系统
的安全性和容错能力,虽然在汽车动力系统相关安全需求方面提供了优秀的解决
方案,但是并没有成为一个像CAN总线那样的通用车载网络标准。CAN总线是
汽车控制系统总线的主导,是目前使用最广泛的车载总线网络技术,作为汽车控
制系统总线的行业标准仍将持续相当长的一段时间。因此,CAN总线信息安全是
本文的研究重点。

2.2.1 CAN总线基础


CAN(Controller Area Network,控制器局域网)是一种串行通讯协议,由德 国Bosch公司开发,它解决了现代汽车中众多电控模块之间数据交换的问题,有 效的降低了车载网络布线的成本和复杂性。其通信接口中集成了CAN协议的物理
层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等工作。CAN总线属于工业现场总线的范畴,用于实 现汽车内部控制系统与各检测和执行机构间的数据通信。CAN总线的数据通信具
有突出的可靠性、实时性和灵活性,并被广泛地应用于工业自动化、船舶、医疗 设备、工业设备等方面,是目前国际上应用最广泛的开放式现场总线之一[38-40]。
(1)电气特性
通过两根信号线(CAN_H和CAN_L)的差分电压表示隐性(逻辑1)和显性 (逻辑0)。总线在空闲时的电压是2.5V,当有数据传输时CAN_H为3.5V、CAN_L 为1.5V。显性位具有优先发送权,即当同时传送显性和隐性两个值时,总线的结
果为显性。
(2)拓扑结构
采用线性拓扑结构,支持最多110个节点连接到通信线路中,每个节点都可 以根据需要立即在总线上传输消息,网络的最大长度40m。
(3)报文格式
CAN总线协议通信帧分为数据帧、远程帧、错误帧、过载帧和帧间隔五种类 型。数据帧用于发送节点向接收节点传送数据,是本文研究的重点。CAN报文由 1bit的帧起始位(SOF)、7bit的帧结束位(EOF)以及仲裁场、控制场、数据场、CRC 场和应答场七部分组成。数据帧根据仲裁场标识符(ID)长度不同,分为标准帧 (CAN2.0A)和扩展帧(CAN2.0B),扩展帧支持与标准帧兼容。

CAN扩展帧有一个29位的标识符,分为Base ID和Extended ID两部分。ID 用于设置消息优先级,识别符扩展位(IDE)用于确定使用18bit扩展ID。其他部分
与标准帧相同。
(4)媒体访问控制
基于CAN-ID仲裁传输的非破坏性的竞争机制,采用CSMA/CA(载波监听/ 冲突避免)通信协议。当多个节点同时在CAN总线上传输消息时,仲裁后首先发
送具有最高优先级的消息,低优先级的消息传输被延迟,直到高优先级消息被发 送出去。

2.2.2 CAN总线网络安全漏洞


CAN总线是目前使用最广泛的车载总线网络技术,以灵活性、实时性和可靠 性成为汽车控制系统总线的行业标准。CAN总线在设计之初,汽车电子系统是一
个封闭环境,并未考虑信息安全问题。随着汽车信息技术的发展和车联网概念的 兴起,越来越多与外部连接的访问接口被打开,汽车不再是一个封闭的网络系统,
这些接口中可能包含直接或者间接连接到汽车内部CAN总线的控制单元[41]。除
了基本的电控、媒体系统,还有如自动启停、泊车、自适应巡航等智能化的高级 辅助驾驶系统,以及与手机等智能设备连接的信息娱乐系统,这些系统都可以获
取车载CAN总线网络数据。通过与汽车外部有信息交互的电控单元,使得攻击者 可以接入CAN总线,直接渗透到汽车内部的车载CAN总线网络,获得总线的访
问权,进而攻击整个车载网络体系,威胁车辆及人员安全。总的来说,车联网环
境下的车载CAN总线面临的安全威胁主要有以下几方面:
(1)广播发送机制。CAN网络协议规范是基于广播机制,这是CAN总线最大 的特点。当总线上任意一个ECU发送消息时,总线上所有的ECU都会接收到该
消息,而且还有可能通过网关转发到其他子网。所以攻击者很容易就可以监听到 总线上传输的数据进行逆向工程,或者通过向总线发送恶意报文进而控制车辆。
(2)缺乏安全保护机制。目前CAN协议中仅有CRC场提供传输过程的错误校
验,却缺乏必要的安全防护。因为总线上消息的传输都是明文形式,并没有相应 的加密措施来保证消息传输的机密性,所以攻击者可以轻易获取到总线上的真实 数据,进行分析破解进而控制车辆。
(3)无数据认证机制。目前在CAN协议中并没有规定身份验证域,这意味着 任一ECU都可以不加区别的将消息发送至CAN总线。总线上其他ECU只要接收 到消息就会进行数据处理,并执行相应的命令。ECU本身并不知道消息由谁发送,
也无法判定当前消息的正确性。
(4)没有防重放攻击机制。因为CAN协议本身存在的安全问题,攻击者可以 控制任意ECU。即使在不知道CAN总线消息真实内容和意义的情况下,也可以通过记录车辆正常运行时的消息序列,并在任意时刻重新回放到网络中,重放消 息会影响车辆状态以达到攻击者控制车辆的目的。

2.2.3 CAN总线信息安全需求


针对汽车系统的攻击,无论是内部攻击还是外部攻击,攻击对象都是车载
CAN总线,因此总线协议要提供足够的安全保障,安全防护机制要满足一定的安
全防护需求。概括起来主要有如下几点:
(1)数据机密性。数据机密性的保障可以防止车辆遭受窃取攻击。在CAN总
线网络中,消息以广播形式在总线上传输,帧数据也是以明文形式填写到数据荷 载中,没有使用任何加密手段。
(2)消息正确性。接收方要保证接收到的消息来自正确的发送方,而不是来自 于攻击节点的伪造消息。CAN总线节点间通信的消息正确性对车辆功能正常运行
非常重要。
(3)身份真实性。车载CAN总线以唯一确定的ID进行消息的接收和发送,任
一节点都可以伪造其他的节点给系统中执行重要功能的节点发送消息,接收方收 到的就是发送方所声明的身份。
(4)数据新鲜性。数据新鲜性的保障能够检测车辆是否受到了重放攻击。CAN 总线中任何ID的报文都可以被任何节点发送到总线网络中,但ECU不能证明 CAN总线上传输的报文是最近发送的或是已经发送过的。
(5)网络实时性。车载CAN总线网络是一个实时性网络,通信数据实时传输
才能保证车辆功能正常运行。安全机制的建立要以实时性为前提。

2.3密码算法


密码算法是一种数学函数,用于保证信息的安全,包括加密算法和解密算法 [42,43]。加密的基本思路就是使传输数据变得不可读,即对原来传输的可读消息按 照某种算法做一定的处理,使之转化成为无法解读真实含义的密文数据,只有在 输入相应的密钥之后才能还原,以到达保护数据不被非法阅读和窃取的目的。加 密的逆过程即为解密,是将密文数据还原为可读消息的运算过程。

2.3.1 AES算法


AES是一种基于分组的对称密码算法,是目前使用最广泛的密码算法之一[44]。 在AES标准规范中,密钥的长度可以使用128位、192位或256位,分组长度只 能是128位,算法输入的明文块长度必须是128位。根据三种不同密钥长度,推 荐加密轮数分别为10轮、12轮、14轮。AES算法采用轮函数迭代循环方式,主要有密钥扩展、字节替换、行移位、列混合和轮密钥加等步骤。常见的AES-128 加解密过程包含10轮迭代过程,如图2-5所示。轮迭代运算前9轮结构相同,第 10轮与前9轮相比不包含列混合操作,第1轮迭代前要进行轮密钥加。解密是加
密的逆运算。密钥扩展为每一轮的轮密钥加提供子密钥。

2.3.2 XTEA算法


XTEA算法是一种微型分组密码算法,具有Feistel网络结构,是TEA算法的 提高算法[45]。XTEA算法分组长度是64bit,通过64轮迭代运算生成128bit的密 文。轮函数主要包括移位操作、模加运算和异或运算。XTEA算法结构简洁、易 于描述和执行,只需要很少的代码就可以实现。XTEA算法结构流程图如图2-6
所示。

CAN网络建模与仿真


本章通过分析汽车内部车载CAN总线框架,简化了CAN总线网络模型,同 时定义了一些术语及参数符号。介绍了开发工具CANoe和编程语言CAPL,并结
合实例简述了仿真流程。

3.1 CAN网络建模

3.1.1 CAN网络架构


在车载网络中,ECU是发出车辆动作命令的核心部件,主要由硬件和软件两
大部分组成。硬件负责采集输入信号、输出控制信号等。软件是基于嵌入式系统
对输入信号进行运算,并将结果转化为控制信号输出。从功能上来说,ECU更像
是一个微型计算机,可以发送与本身功能相关的消息,也可以接收总线上传输的 消息并做出响应。
根据不同的功能需要,ECU通过总线连接,形成了不同的子网。由图2-2车 载总线网络架构可以了解到,CAN总线作为汽车内部主要的控制总线,一般分为 高速CAN和的低速CAN,CAN总线通过广播的方式将ECU发送的消息在总线 上传输,总线上任何ECU都可以接收到总线上的报文。因此,本文主要研究ECU 间的CAN网络通信安全,为了便于研究,简化系统结构模型如图3-1所示:

简化的CAN总线网络模型只有一条CAN总线,所有ECU都连接到总线本身。 在CAN总线网络中,每个ECU都可以在不同的总线事件中扮演不同的角色,有 收发(Transceiver)、仲裁(Arbitraration)、错误处理(Errors)等应用功能,我们主要从ECU收发模式的角度入手,不考虑ECU的仲裁和错误处理等情况。

3.1.2符号说明


为了便于理解,表3-1对本文中用到的一些术语和参数符号做了解释说明。

3.2仿真工具

3.2.1 CANoe


CANoe(CAN open environment)是德国Vector公司生产的一款总线开发与 分析工具,用于开发、测试和分析整个ECU网络和单个ECU而设计的全面软件 工具。适用于CAN、LIN、Ethernet、FlexRay、MOST等总线网络的建模、仿真、 测试和开发,支持J1939、J1587、NMEA2000、ISO11783、CANopen、MCnet、 GMLAN、CANaerospace等CAN总线协议。在全球大部分汽车厂和一级供应商中
得到广泛应用。CANoe实现了开发从需求分析到系统实现的过程,共有三种开发模式。一是
虚拟网络模式:模拟整个汽车总线,完全仿真一个车载网络;二是结合网络模式: 一部分进行模拟网络创建,一部分连接真实网络,辅助测试和开发网络上的部分 节点;三是实际网络模式:连接到已有车载总线网络,分析研究总线网络中存在 的问题,而不参与其工作运行。
本文采用虚拟网络模式,通过建立仿真模型来模拟ECU的行为、评估ECU 的功能,并进行系统的功能分析、测试以及总线系统和ECU的集成。

3.2.2 CAPL语言


CAPL(Communication Access Programming Language,通信访问编程语言) 是一种专门为CANoe开发环境而设计的基于事件建模的编程语言,在语法上类似 于C语言。CAPL事件类型如图3-2所示。

3.2.3仿真实例


本文通过CANoe建立仿真模型,使用CAPL编写程序并应用到网络的各个节
点上,通过数据库把测试环境和消息、信号、环境变量联系起来,从而实时监测 总线上的数据通信,接受总线上的控制信息,使得模拟面板上的控件进行动作,
模拟节点行为以及测量分析系统功能。模拟CANoe工程如图3-3所示。

CANdb(数据库编辑器)用来描述CAN网络节点间数据通讯,包含了CAN 总线协议中协议数据及其所代表的具体意义。根据设计创建模拟系统的Network node(网络节点)、Message(报文)、Signal(信号)和Environment variable(环 境变量)等,建立相互关系并定义各自属性,如图3-4所示。

Panel编辑器是交互式面板设计工具,通过建立各控件与各变量之间的联系, 搭建起所需的人机互动界面,使得仿真更加直观方便。如图3-5所示。

仿真模型经过CAPL语言对节点编程后就完成了开发。系统的功能分析、测 试及总线系统和ECU集成均在模型中进行,分析结果以图表和文字说明在评估窗 口中显示,如图3-6所示。

基于AES加密的CAN总线安全通信


CAN协议在设计之初并没有安全防护机制,总线消息以明文形式在网络上传
输,车内敏感信息很容易被窃取,干扰和破坏车载总线网络通信。因此,为了保
证CAN总线网络上传输的信息安全,保障数据机密性,防止攻击者对车载数据的 窃取,本章引入了AES加密算法,实现了安全通信CAN协议,对CAN总线上通
信数据进行加密,隐藏真实数据,使总线传输数据具有机密性,并通过实验对安 全通信协议进行了分析和验证。

4.1安全CAN总线设计思路


数据机密性是衡量网络是否安全的一个重要属性,它反映的是CAN总线上传 输的真实数据是否可以被非授权节点读取。根据对CAN总线安全漏洞的分析, CAN总线以广播形式在网络上传输未经任何处理的消息,攻击者很容易通过监听
总线窃取到传输的真实数据,并利用这些数据向其他节点发送攻击消息,威胁车 辆安全。
CAN总线网络安全通信,就是要保证总线上传输数据的机密性,通过引入 AES加密算法,将发送节点的数据进行加密处理后再发送,接收节点接收到密文
数据解密后再执行,使得总线上传输的是无法解读真实含义的密文数据,达到防
止数据被窃取的目的。安全通信设计思路如图4-1所示。

根据安全通信设计思路,CAN总线传输的密文数据与发送节点加密前和接收

相关文章:

AUTOSAR汽车电子嵌入式编程精讲300篇-基于加密算法的车载CAN总线安全通信

目录 前言 研究现状 系统架构研究 异常检测研究 认证与加密研究 相关技术 2.1车联网 2.2车载网络及总线 2.2.1 CAN总线基础 2.2.2 CAN总线网络安全漏洞 2.2.3 CAN总线信息安全需求 2.3密码算法 2.3.1 AES算法 2.3.2 XTEA算法 CAN网络建模与仿真 3.1 CAN网络建模…...

4-Docker命令之docker start

1.docker start介绍 docker start命令是用来启动一个或多个已经被停止的docker容器。 2.docker start用法 docker start [参数] container [container......] [root@centos79 ~]# docker start --helpUsage: docker start [OPTIONS] CONTAINER [CONTAINER...]Start one or…...

AWS Remote Control ( Wi-Fi ) on i.MX RT1060 EVK - 2 “架构 AWS”

接续上一章节,我们把开发环境架设好之后,此章节叙述如何建立 AWS IoT 环境,请务必已经有 AWS Account,申请 AWS Account 之流程将不在此说明。 III-1. 登入AWS IoT, 在“管理”>“所有装置”>“实物”下点击“建…...

日志框架梳理(Log4j,Reload4j,JUL,JCL,SLF4J,Logback,Log4j2)

原文链接 日志框架发展历程 在了解日志框架时总会列出一系列框架:Log4j,Reload4j,JUL,JCL,SLF4J,Logback,Log4j2,这么多框架让人感到混乱,该怎么选取、该怎么用。接下来…...

内核无锁队列kfifo

文章目录 1、抛砖引玉2、内核无锁队列kfifo2.1 kfifo结构2.2 kfifo分配内存2.3 kfifo初始化2.4 kfifo释放2.5 kfifo入队列2.6 kfifo出队列2.7 kfifo的判空和判满2.8 关于内存屏障 1、抛砖引玉 昨天遇到这样一个问题,有多个生产者,多个消费者&#xff0c…...

18、XSS——cookie安全

文章目录 1、cookie重要字段2、子域cookie机制3、路径cookie机制4、HttpOnly Cookie机制5、Secure Cookie机制6、本地cookie与内存cookie7、本地存储方式 一般来说,同域内浏览器中发出的任何一个请求都会带上cookie,无论请求什么资源,请求时&…...

从零开发短视频电商 Jmeter压测示例模板详解(无认证场景)

文章目录 添加线程组添加定时器添加HTTP请求默认值添加HTTP头管理添加HTTP请求添加结果断言响应断言 Response AssertionJSON断言 JSON Assertion持续时间断言 Duration Assertion 添加察看结果树添加聚合报告添加表格察看结果参考 以压测百度搜索为例 https://www.baidu.com/s…...

C++可以函数重载而C不可以的原因

函数重载是指在同一个作用域内,可以定义多个函数,它们具有相同的名称但是参数列表不同。函数重载的主要原理是函数的签名不同,而在 C 中,函数签名包括函数的名称和参数列表。而在 C 中,函数的标识仅依赖于函数的名称&a…...

Spark常见算子汇总

创建RDD 在Spark中创建RDD的方式分为三种: 从外部存储创建RDD从集合中创建RDD从其他RDD创建 textfile 调用SparkContext.textFile()方法,从外部存储中读取数据来创建 RDD parallelize 调用SparkContext 的 parallelize()方法,将一个存在的集合&…...

【华为数据之道学习笔记】3-1 基于数据特性的分类管理框架

华为根据数据特性及治理方法的不同对数据进行了分类定义:内部数据和外部数据、结构化数据和非结构化数据、元数据。其中,结构化数据又进一步划分为基础数据、主数据、事务数据、报告数据、观测数据和规则数据。 对上述数据分类的定义及特征描述。 分类维…...

电脑版便签软件怎么设置在桌面上显示?

对于不少上班族来说,如果想要在使用电脑办公的时候,随手记录一些常用的工作资料、工作注意事项等内容,直接在电脑上使用便签软件记录是比较方便的。电脑桌面便签工具不仅方便我们随时记录各类工作事项,而且支持我们快速便捷使用这…...

【华为数据之道学习笔记】2-建立企业级数据综合治理体系

数据作为一种新的生产要素,在企业构筑竞争优势的过程中起着重要作用,企业应将数据作为一种战略资产进行管理。数据从业务中产生,在IT系统中承载,要对数据进行有效治理,需要业务充分参与,IT系统确保遵从&…...

【IC前端虚拟项目】git和svn项目托管平台的简单使用说明

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 代码托管在gitee平台上,进去后会看到文档目录“MVU芯片前端设计验证虚拟项目”和工程目录“mvu_prj”,可以通过git来下载工程: git clone gitgitee.com:gjm9999/ic_vi…...

C++ IO库

IO类 IO对象不能拷贝和赋值 iostream 表示形式的变化: 将100转换成二进制序列 然后格式化输出 x,y共用一块内存 输出的时候用不同的方式解析同一块内存 操作 格式化:内部表示转换为相应字节序列 缓存:要输出的内容放到缓存 编码转换&…...

Springboot 项目关于版本升级到 3.x ,JDK升级到17的相关问题

由于spring 停止对2.x 版本的维护,以及 jdk 频繁发布等客观因素,现需要对已有springboot 工程做一次全面升级;已因对市面上第三方等依赖库的兼容问题; 现有工程使用哥技术栈是版本: freemarker :2.3.32 spr…...

QGraphicsView实现简易地图7『异步加载-多瓦片-无底图』

前文链接:QGraphicsView实现简易地图6『异步加载-单瓦片-无底图』 前一篇文章提到的异步单瓦片加载,是指线程每准备好一个瓦片数据后,立刻抛出信号让主线程加载。而本篇异步多瓦片加载是指线程准备好所有瓦片数据后,一起抛出信号让…...

Spring Boot学习(三十三):集成kafka

前言 下面是zookeeper和kafka的官网下载地址,大家可以学习下载 zookeeper下载地址:http://zookeeper.apache.org/releases.html kafka下载地址:http://kafka.apache.org/downloads.html 1、添加依赖 在 pom.xml 文件中添加kafka依赖&am…...

MOSFET

MOSFET 电子元器件百科 文章目录 MOSFET前言一、MOSFET是什么二、MOSFET类别三、MOSFET应用实例四、MOSFET作用原理总结前言 MOSFET是一种常见的半导体器件,通过栅极电场控制通道区的导通特性,以控制电流流动。它在现代电子电路中发挥着重要的作用,并广泛应用于各种应用领域…...

DriveWorks——参数化设计非标定制利器

DriveWorks基本介绍 DriveWorks是一套被 SOLIDWORKS 认可为金牌合作伙伴产品的设计自动化软件。DriveWorks 可自动创建特定于订单的销售文档和 SOLIDWORKS 制造数据。减少重复性任务,消除错误,增加销售额,并在创纪录的时间内交付定制产品。 为…...

DevEco Studio集成ArkUI-X

语雀知识库地址:语雀HarmonyOS知识库 飞书知识库地址:飞书HarmonyOS知识库 在上篇文章(HarmonyOS应用开发工具DevEco Studio安装与使用)中我说到官方推出了4.0 Beta版本的IDE,这篇文章就来介绍这个版本的安装与使用 该版本集成了HarmonyOS多…...

网络视频服务器的作用是什么?

随着互联网的快速发展和网络带宽的提升,网络视频已经成为人们日常生活中不可或缺的一部分。网络视频服务器作为支持和传输网络视频的关键基础设施,发挥着重要的作用。本文将以网络视频服务器的作用为方向,探讨其在现代社会中的重要性。 首先…...

解决vue3使用iconpark控制台预警提示问题

前言 最近在项目中使用 iconpark-icon 来管理图标,一切都很顺利,引入链接后,图标正常显示,没有报错。但是控制台却发出了预警信息。 [Vue warn]: Failed to resolve component: iconpark-icon If this is a native custom eleme…...

VMware 虚拟机 NAT 模式网络配置

配置的核心点在于 网关要一致,才能访问外网 比如下面的网关都是:192.168.145.2 问题总结: 当时重启电脑后如果连不上外网了,检查下 windows 服务中 NAT服务是否已经启动...

5-redis高级-哨兵

1 哨兵 1.1 python 操作哨兵 1 哨兵 # 主从---》一主多从-主库用来写-从库用来读-主库挂了--》整个系统就不能写数据了#主从复制存在的问题:1 主从复制,主节点发生故障,需要做故障转移,可以手动转移:让其中一个slave变…...

鸿蒙HarmonyOS4.0开发应用学习笔记

黑马程序员鸿蒙4.0视频学习笔记,供自己回顾使用。1.安装开发工具DevEco Studio 鸿蒙harmony开发文档指南 DevEco Studio下载地址 选择或者安装环境 选择和下载SDK 安装总览 编辑器界面 2.TypeScript语法 2.1变量声明 //string 、number、boolean、any、u…...

联通宽带+老毛子Padavan固件 开启IP v6

联通宽带开启IP v6 参考: 联通宽带开启 IPV6 的方法_联通ipv6怎么开通-CSDN博客 个人宽带如何开启IPv6网络访问 - 知乎 (zhihu.com) 首先,你要确定当前你所在的地区运营商已经开通了IPV6,可以使用手机流量 IP查询(ipw.cn) | IPv6测试 | IPv…...

唯创知音WT2003Hx系列单片机语音芯片:家庭理疗产品的智能声音伴侣

随着科技的不断创新,家庭理疗产品正迎来一场智能化的变革。唯创知音的WT2003Hx系列单片机语音芯片以其强大的功能和高品质音频播放能力,为家庭理疗产品带来了更为智能、沉浸式的用户体验。 1. MP3高品质音频播放 WT2003Hx系列语音芯片支持高品质的MP3音…...

2023_Spark_实验二十七:Linux中Crontab(定时任务)命令详解及使用教程

Crontab介绍: Linux crontab是用来crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρ…...

Java动态代理实现与原理详细分析

Java动态代理实现与原理详细分析 关于Java中的动态代理,我们首先需要了解的是一种常用的设计模式–代理模式,而对于代理,根据创建代理类的 时间点,又可以分为静态代理和动态代理。 1、代理模式 代理模式是常用的java设计模式&…...

[实践总结] 使用Apache HttpClient 4.x进行进行一次Http请求

使用Apache HttpClient 4.x进行进行一次Http请求 依赖 <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient --> <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactI…...

易宝OA 两处任意文件上传漏洞复现

0x01 产品简介 易宝OA系统是一种专门为企业和机构的日常办公工作提供服务的综合性软件平台,具有信息管理、 流程管理 、知识管理(档案和业务管理)、协同办公等多种功能。 0x02 漏洞概述 易宝OA系统UploadFile、BasicService.asmx等接口处存在文件上传漏洞,未授权的攻击者可…...

echart饼图高亮颜色设置,数据为0时候,labelLine不显示

鼠标移上去高亮&#xff0c;颜色变浅&#xff0c;希望不改变颜色 在series.data中为各项设置itemStyle&#xff0c;官方设置不生效&#xff0c;不知原因&#xff0c;可能版本问题 itemStyle: {normal: { color: #DFEAFF, },emphasis: { color: #DFEAFF }},数据为0时候显示饼图…...

Kafka 的消息格式:了解消息结构与序列化

Kafka 作为一款高性能的消息中间件系统&#xff0c;其消息格式对于消息的生产、传输和消费起着至关重要的作用。本篇博客将深入讨论 Kafka 的消息格式&#xff0c;包括消息的结构、序列化与反序列化&#xff0c;以及一些常用的消息格式选项。通过更丰富的示例代码和深入的解析&…...

装箱 Box 数据类型

装箱是最简单直接的一种智能指针&#xff0c;它的类型是Box<T>。装箱使我们可以把数据存储到堆上&#xff0c;并在栈上保留一个指向堆数据的指针。装箱操作常常被用于下面的场景&#xff1a; 当你拥有一个无法在编译时确定大小的类型&#xff0c;但又想使用这个类型的值…...

多传感器融合SLAM在自动驾驶方向的初步探索的记录

1. VIO的不可观问题 现有的VIO都是解决的六自由度的问题, 但是对于行驶在路面上的车来说, 通常情况下不会有roll与z方向的自由度, 而且车体模型限制了不可能有纯yaw的变换. 同时由于IMU在Z轴上与roll, pitch上激励不足, 会导致IMU在初始化过程中尺度不准以及重力方向估计错误,…...

ffmpeg与opencv-python处理视频

安装 opencv pip install opencv-pythonFFmpeg 1.下载 FFmpeg 访问FFmpeg官方网站。选择 “Windows builds from gyan.dev” 链接&#xff0c;这会带您到一个包含最新版本 FFmpeg Windows 构建的页面。选择一个适合您系统的版本&#xff08;例如&#xff0c;32位或64位&…...

java 操作git

​ 实现功能&#xff1a;借助jgit实现拉取文件&#xff0c;并返回文件路径清单 <!-- 依赖库 版本号有自行选择&#xff0c;只是需要注意支持的jdk版本即可&#xff0c;我使用的是jdk1.8--> <dependency><groupId>org.eclipse.jgit</groupId><artif…...

Linux 导入、导出 MySQL 数据库命令

一、导出数据库 1、导出完整数据&#xff1a;表结构数据 mysqldump -u用户名 -p 数据库名 > 数据库名.sql 举例&#xff1a;以下命令可以导出 abc 数据库的数据和表结构 /usr/local/mysql/bin/mysqldump -uroot -p abc > abc.sql2、只导出表结构 mysqldump -u用户名 -p…...

华为数通---BFD多跳检测示例

定义 双向转发检测BFD&#xff08;Bidirectional Forwarding Detection&#xff09;是一种全网统一的检测机制&#xff0c;用于快速检测、监控网络中链路或者IP路由的转发连通状况。 目的 为了减小设备故障对业务的影响&#xff0c;提高网络的可靠性&#xff0c;网络设备需要…...

AWS 日志分析工具

当您的网络资源托管在 AWS 中时&#xff0c;需要定期监控您的 AWS CloudTrail 日志、Amazon S3 服务器日志和 AWS ELB 日志等云日志&#xff0c;以降低任何潜在的安全风险、识别严重错误并确保满足所有合规性法规。 什么是 Amazon S3 Amazon Simple Storage Service&#xff…...

gitLab 和Idea分支合并

以下二选1即可完成分支合并建议第一种简单有效 Idea合并方式 切换到被合并的分支&#xff0c;如我想把0701的内容合并到dev&#xff0c;切换到dev分支&#xff0c;然后再点击merge然后选择要合并的分支&#xff0c;即可,此时git上的代码没有更新只是把代码合到本地需要pull才…...

关于 mapboxgl 的常用方法及效果

给地图标记点 实现效果 /*** 在地图上添加标记点* point: [lng, lat]* color: #83f7a0*/addMarkerOnMap(point, color #83f7a0) {const marker new mapboxgl.Marker({draggable: false,color: color,}).setLngLat(point).addTo(this.map);this.markersList.push(marker);},…...

C语言——二级指针

指针变量也是变量&#xff0c;是变量就有地址&#xff0c;那么指针变量的地址存放在哪里&#xff1f;——这就是二期指针 int a 10;int *pa &a;int **ppa &pa;//a的地址存放在pa中&#xff0c;pa的地址存放在ppa中。 //pa是一级指针&#xff0c;ppa是二级指针。 对…...

股市复苏中的明懿金汇:抓住新机遇

2023年对于明懿金汇来说是充满挑战与机遇的一年。面对复杂多变的市场环境&#xff0c;明懿金汇展现了其对市场趋势的敏锐洞察和卓越的策略适应能力。以下是该公司在2023年的主要投资策略和市场适应方式的详细分析。 随着2023年中国股市迎来反弹&#xff0c;明懿金汇迅速调整了…...

Spacemesh、Kaspa和Chia的全面对比!

当今区块链领域&#xff0c;PoST&#xff08;Proof of Space and Time&#xff09;共识算法引领着一股新的技术浪潮。在这个热潮下&#xff0c;Chia项目作为PoST共识机制的经典项目&#xff0c;和目前算力赛道备受瞩目的Kaspa项目&#xff0c;都是不可忽视的存在。虽然这两个项…...

【HTML语法】

HTML语法 1. HTML语法1.1 HTML编辑器1.2 HTML模板1.3 标签示例1.4 常见的HTML标签1.51.61.71.81.91.101.11 学习网站&#xff1a;https://www.runoob.com/html/html-tutorial.html 1. HTML语法 HTML&#xff08;全称 Hypertext Markup Language&#xff0c;超文本标记语言&…...

ROS报错:RLException:Invalid roslaunch XML Syntax: mismatched tag:

运行roslaunch文件提示&#xff1a; RLException:Invalid roslaunch XML Syntax: mismatched tag: line 45&#xff0c; column 2 The traceback for the exception was written to the log file. j 解决办法&#xff1a; line45 行多了标签&#xff1a;</node> 另外…...

C语言实现快速排序

完整代码&#xff1a; #include<stdio.h>//用第一个元素将待排序序列划分成左右两个部分&#xff0c;返回排序后low的位置&#xff0c;即枢轴的位置 int partition(int arr[],int low,int high){//让待排序序列中的第一个元素成为基准int pivotarr[low];//lowhigh代表一…...

ChatGPT对于当今的社会或科技发展有何重要性?

ChatGPT对于当今社会和科技发展的重要性在于&#xff1a; 促进社交交流&#xff1a;ChatGPT可以为人们提供全天候的在线聊天服务&#xff0c;连接人与人之间的沟通交流&#xff0c;改善社交沟通方式。 提高有效性和效率&#xff1a;人们可以通过ChatGPT获得快速和精确的信息&a…...

宝塔是可以切换mongodb版本的

在软件商店&#xff0c;搜索monggodb&#xff0c;点击设置。点击第三个标签版本切换即可。但是前提要删除所有非系统数据库。 删除数据库方法&#xff1a; 要在 MongoDB 中删除一个数据库&#xff0c;可以使用 dropDatabase() 命令。请注意&#xff0c;在执行此操作之前&#x…...