【论文阅读】自动驾驶安全的研究现状与挑战
文章目录
- 摘要
- 1.引言
- 1.1.自动驾驶安全
- 1.2.攻击面
- 1.3.内容和路线图
- 2.自动驾驶技术
- 2.1.组成
- 2.2.技术
- 3.传感器安全
- 3.1.照相机
- 3.2.GNSS(全球导航系统)/IMU(惯性测量单元)
- 3.3.超声波传感器
- 3.4.毫米波雷达
- 3.5.激光雷达
- 3.6.多传感器交叉验证
- 3.7.传感器故障
- 4.操作系统安全
- 4.1.早期移动机器人操作系统
- 4.2.ROS
- 4.3.ROS的安全性
- 4.4.ROS2的安全性增强
- 4.5.ROS2的缺点
- 5.控制系统安全
- 5.1.CAN
- 5.2.
- 6.V2X通信安全
- 7.讨论和解决方案
- 8.结论
论文题目: Autonomous Driving Security: State of the Art and Challenges(自动驾驶安全的研究现状与挑战)
发表年份: 2022-IoTJ(IEEE Internet of Things Journal)
作者信息: Cong Gao(西安邮电大学), Geng Wang(西安邮电大学), Weisong Shi(美国韦恩州立大学), Zhongmin Wang(西安邮电大学), Yanping Chen(西安邮电大学)
备注: 一篇关于自动驾驶安全的综述文献,2022年发表在物联网顶刊IEEE Internet of Things Journal(中科院1区/CCF-C期刊)
摘要
过去十年,自动驾驶行业迅速发展。尽管无人驾驶毫无疑问已经成为本世纪最有前途的技术之一,但其发展面临着多重挑战,其中安全是主要问题。在本文中,我们对自动驾驶安全性进行了全面的分析。首先,提出了自动驾驶的攻击面。在从关键部件和技术方面分析了自动驾驶的运行后, 从四个维度阐述了自动驾驶的安全性: 1)传感器;2)操作系统;3)控制系统;4)车联网(V2X)通信。从 传感器 的自定位和环境感知五个方面对传感器的安全性进行了研究。 操作系统 的安全性分析是操作系统的第二个维度,主要集中在机器人操作系统上。在 控制系统 安全方面,主要从控制器局域网的漏洞和防护措施两方面进行探讨。第四个维度, V2X通信安全 ,从四类攻击进行探讨:1)真实性/识别;2)可用性;3)数据完整性;4)保密,并有相应的解决方案。此外,还指出了现有方法在四个维度上的不足。最后,提出了一个概念性的多层防御框架,以保护从外部通信到物理自动驾驶车辆的信息流。
关键词: Attack surface, autonomous driving, control area network, data distribution service (数据分发服务), robot operating system, security, sensor, unmanned vehicle(无人驾驶车辆), vehicle-to-everything (V2X) communication(车联网通信)
1.引言
随着智能汽车的发展,自动驾驶汽车引起了越来越多的研究关注。自动驾驶汽车被认为有益于减轻交通拥堵且降低交通事故。然而,目前的自动驾驶技术尚不成熟,仍处于发展阶段。乘客和车辆本身的安全远不能得到保证[1],[2]。例如,2018年,在亚利桑那州的一次道路测试中,一辆Uber无人驾驶汽车与一名推着自行车过马路的行人相撞[3]。这是世界上第一起导致行人死亡的自动驾驶汽车事故。这一事件随后引发了一场关于自动驾驶汽车安全性的激烈讨论。
1.1.自动驾驶安全
自动驾驶汽车是一个综合系统,主要包括 定位系统 、 感知系统 、 规划系统 和 控制系统 [4]。自动驾驶汽车的安全性一般是指驾驶过程中的安全性,包括 传感器 、 操作系统 、 控制系统 以及 V2X (vehicle-to-everything)通信 的安全性。
- 1)传感器安全: 传感器安全主要处理实际组件的安全,如板载传感器和板载芯片。例如,谷歌的自动驾驶汽车采用各种传感器来检测驾驶环境。采集到的传感器数据用于分析车辆是否处于安全驾驶状态。
- 2)操作系统安全性: 操作系统安全性是指确保操作系统的完整性和可用性,防止未经授权的访问。目前,大多数自动驾驶汽车都是基于机器人系统开发的。例如,百度的自动驾驶汽车平台Apollo[5]就是基于最著名的机器人操作系统ROS[6]。ROS是一个机器人中间件平台,为异构计算机集群提供操作系统的基本功能。然而,ROS最初的设计没有考虑安全性。其他类似的操作系统也存在这个问题。
- 3)控制系统安全性: 控制系统安全性保证车载决策系统根据采集到的环境数据和车辆本身的数据,对自动驾驶车辆的转向、加速、减速和停车做出正确的指令。然而,随着车辆外部接口种类的增加,新的攻击面不断涌现。因此,控制系统很容易受到非法入侵。
- 4) V2X通信安全: V2X通信安全是指车对车(V2V)、车对基础设施(V2I)、车对行人(V2P)、车对网络(V2N)通信的安全。车辆网络系统的设计应保证上述通信不受攻击。此外,来自V2X通信的周围车辆和环境状况信息进一步有助于车辆的安全性。
1.2.攻击面
攻击面的概念通常被认为是微软的迈克尔·霍华德提出的。它被非正式地引入,作为软件系统安全性的指示器[7]。
早期的攻击面研究[8]-[12]主要集中在软件系统方面,为后续的研究奠定了坚实的基础。Michael Howard认为攻击面是一组攻击特征:开放套接字、开放RPC端点、开放命名管道、服务等[7]。Manadhata等人[12]给出了系统攻击面是攻击者可以用来攻击系统的资源子集的定义。
Ren等人[2]简要地将围绕自动驾驶汽车的安全威胁分为三组攻击面:1)各种传感器;2)车载门禁系统;3)车载网络协议。
最近关于攻击面的文献主要集中于为软件系统或计算机网络的攻击面创建经验和理论度量[13],如[14]-[17]。
在自动驾驶领域,关于攻击面有如下值得注意的文献。
Maple等人[18]使用混合功能-通信观点开发了一种参考架构,用于连接自动驾驶汽车(cav)的攻击面分析。
Salfer和Eckert[19]提出了一种基于开发数据和软件flash图像的汽车电子控制单元(ecu)攻击面和漏洞评估自动化方法。
Checkoway等[20]对汽车的外部攻击面进行了详细的分析。这项工作主要集中在远程入侵。
文献[21]讨论了车载信息娱乐系统的威胁区域。确定了基于linux的车载信息娱乐系统的7个漏洞和15个潜在攻击面。
Chattopadhyay等人[22]为自动驾驶汽车开发了一个安全设计框架。该框架包含一个高级模型,该模型将自动驾驶汽车的攻击面定义为三层。
Dominic等人[23]提出了一种自动驾驶和协作式自动驾驶的风险评估框架。基于美国国家公路交通安全管理局(NHTSA)[24]描述的威胁模型和E-safety vehicle intrusion protected applications (EVITA)项目[25]描述的安全需求,提出了一种威胁模型。攻击面分为五类:1)惯性/里程法攻击面;2)距离传感器;全球定位系统(GPS);4)地图更新;5) V2V/V2I。
Petit和Shladover[26]研究了针对自动驾驶汽车的潜在网络攻击。分别分析了自动驾驶车辆和协作式自动驾驶车辆的攻击面。
通过对上述文献的分析, 我们将自动驾驶的攻击面大致分为三类 。如图1所示,它们分别是 传感器 、 车载系统 和 V2X 。对于传感器:GNSS/IMU代表全球导航卫星系统和惯性测量单元。激光雷达是光探测和测距的缩写。车载系统:OBD-II是第二代车载诊断系统的简称。TPMS代表胎压监测系统。ADAS是高级驾驶辅助系统的简称。对于V2X: OTA代表无线。它本质上只是无线的同义词。DSRC是专用短程通信的缩写。图1并非详尽无遗,但旨在提出自动驾驶汽车的安全问题。
1.3.内容和路线图
回顾了自动驾驶上述四个方面的研究现状和挑战,并指出了现有解决方案的不足。介绍了自动驾驶的主要组成部分和相关技术;重点讨论了摄像头、GNSS/IMUs、超声波传感器、毫米波雷达和激光雷达等 传感器的安全问题 。对 操作系统安全性 的讨论主要集中在ROS上。详细介绍了ROS version 2采用的安全增强数据分发服务(DDS)。 控制系统的安全性分析 主要集中在控制器局域网(CAN)上。 基于5种攻击路径分析了CAN网络的脆弱性: 1)OBD-II;2)电动汽车充电器;3) CD播放器;4)及全面;5)蓝牙。提出了两类保护方法:1)基于加密/认证的保护方法和2)基于入侵检测的保护方法。介绍了基于CAN总线的控制区域网络标准(CAN FD)的最新进展。基于4类攻击对V2X通信的安全性 进行分析:1)认证/鉴别;2)可用性;3)数据完整性;4)保密性。此外,对基于区块链的车载网安全措施进行了综述。最后,给出了6个真实的无人驾驶汽车安全事件。然后,提出了面向自动驾驶安全的概念多层防御框架;
本文其余部分的结构如下。在第二节中,我们回顾了自动驾驶系统的主要组成部分和技术。在第三节中,我们讨论了自动驾驶汽车的五个关键传感器的安全性。在第四节中,我们分析了流行的自动驾驶汽车操作系统的安全性。重点讨论在自动驾驶领域占据主导地位的ROS。第五部分讨论了基于CAN总线的控制系统的安全性。介绍了CAN网络的弱点、攻击和防护措施。在CAN FD的基础上,提出了新的CAN标准。第六部分总结了针对车联网通信的攻击及解决方案。在第七- a节中,介绍了六起自动驾驶汽车的真实安全事件。这些事件分为4类:1)传感器安全;2)操作系统安全性;3)控制系统安全;4) V2X通信安全。在第七- b节中,我们提出了一个汽车信息安全的概念防御框架。最后,我们在第八节提出我们的结论。
2.自动驾驶技术
2.1.组成
2.2.技术
3.传感器安全
3.1.照相机
3.2.GNSS(全球导航系统)/IMU(惯性测量单元)
3.3.超声波传感器
3.4.毫米波雷达
3.5.激光雷达
3.6.多传感器交叉验证
3.7.传感器故障
4.操作系统安全
4.1.早期移动机器人操作系统
4.2.ROS
4.3.ROS的安全性
4.4.ROS2的安全性增强
4.5.ROS2的缺点
5.控制系统安全
5.1.CAN
5.2.
6.V2X通信安全
7.讨论和解决方案
8.结论
安全是自动驾驶的首要要求。本文从四个方面进行了回顾性和前瞻性研究:1)传感器安全;2)操作系统安全;3)控制系统安全;4) V2X通信安全。详细讨论了每种攻击路径以及针对这些攻击路径的现有防御措施。自动驾驶汽车的安全问题是由黑客入侵和篡改数据引起的,属于信息安全的范畴,因此,本工作提出了一个概念框架来构建高效的车辆信息安全。然而,如果要实现自动驾驶汽车的量产,学术界和工业界还需要对自动驾驶模块的攻击面进行额外的研究。我们希望这篇文章能引起计算机和汽车界的注意。
相关文章:
【论文阅读】自动驾驶安全的研究现状与挑战
文章目录 摘要1.引言1.1.自动驾驶安全1.2.攻击面1.3.内容和路线图 2.自动驾驶技术2.1.组成2.2.技术 3.传感器安全3.1.照相机3.2.GNSS(全球导航系统)/IMU(惯性测量单元)3.3.超声波传感器3.4.毫米波雷达3.5.激光雷达3.6.多传感器交叉…...
标签打印小工具 选择图片打印,按实际尺寸打印。可旋转图片
您可以尝试使用以下标签打印工具: 柯尼卡美能达标签打印机:功能齐全、易于使用的打印机,支持各种标签尺寸和类型。 赛门铁克标签打印机:高速打印、可靠性强的打印机,支持多种操作系统和软件。 齐柏林标签打印机&…...
什么是深拷贝和浅拷贝?
面试回答 在计算机内存中,每个对象都有一个地址,这个地址指向对象在内存中存储的位置。当我们使用变量引用一个对象时,实际上是将该对象的地址赋值给变量。因此,如果我们将一个对象复制到另一个变量中国,实际上是将对象…...
安装docker服务及docker基本操作
一、docker安装(yum安装) 基于centos7 1.添加docker-ce 源信息 安装依赖包(yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要device-mapper-persistent-data 和 lvm2) yum install yum-…...
【项目经验】:项目中下拉框数据太多造成页面卡顿(二)
一.项目需求 下拉框下拉列表数据是由后端返回的,而且他会变化,所以数据不是写死的而且数据量大。上一篇博客http://t.csdn.cn/sSNTa我们是用的数据懒加载的方式,这次我们使用远程搜索的方式解决这个问题。 二.用到的组件方法介绍 filterabl…...
Prompt本质解密及Evaluation实战(一)
一、基于evaluation的prompt使用解析 基于大模型的应用评估与传统应用程序的评估不太一样,特别是基于GPT系列或者生成式语言模型,因为模型生成的内容与传统意义上所说的内容或者标签不太一样。 以下是借用了ChatGPT官方的evaluation指南提出的对结果的具…...
linux 在系统已有python2版本下安装python3
方法一:使用包管理器安装 更新包索引: sudo apt update 安装Python3: sudo apt install python3 安装Python3的pip(如果你需要): sudo apt install python3-pip 验证Python 2和3的安装: pyt…...
IO多路转接 ——— select、poll、epoll
select初识 select是系统提供的一个多路转接接口。 select系统调用可以让我们的程序同时监视多个文件描述符的上的事件是否就绪。 select的核心工作就是等,当监视的多个文件描述符中有一个或多个事件就绪时,select才会成功返回并将对应文件描述符的就绪…...
FPGA原理与结构——FIFO IP核原理学习
一、FIFO概述 1、FIFO的定义 FIFO是英文First-In-First-Out的缩写,是一种先入先出的数据缓冲器,与一般的存储器的区别在于没有地址线, 使用起来简单,缺点是只能顺序读写数据,其数据地址由内部读写指针自动加1完成&…...
【Linux操作系统】Linux中的信号回收:管理子进程的关键步骤
在Linux中,我们可以通过捕获SIGCHLD信号来实现对子进程的回收。当一个子进程终止时,内核会向其父进程发送SIGCHLD信号。父进程可以通过注册信号处理函数,并在处理函数中调用wait()或waitpid()函数来回收已终止的子进程。 文章目录 借助信号捕…...
Spark大数据分析与实战笔记(第一章 Scala语言基础-1)
文章目录 章节概要1.1 初识Scala1.1.1 Scala的概述1.1.2 Scala的下载安装1.1.3 在IDEA开发工具中下载安装Scala插件1.1.4 开发第一个Scala程序 章节概要 Spark是专为大规模数据处理而设计的快速通用的计算引擎,它是由Scala语言开发实现的,关于大数据技术…...
R语言03-R语言中的矩阵
概念 在R语言中,矩阵(Matrix)是一个二维的数据结构,由行和列组成,其中所有元素必须具有相同的数据类型。矩阵可以用于存储数值型数据,常用于线性代数运算、统计计算以及数据处理等领域。 代码示例 # 创建…...
“深入理解JVM:探索Java虚拟机的工作原理与优化技巧“
标题:深入理解JVM:探索Java虚拟机的工作原理与优化技巧 摘要:本文将深入探索Java虚拟机(JVM)的工作原理及优化技巧。我们将介绍JVM的架构和组成部分,解释JVM是如何将Java字节码转换为可执行代码的。我们还…...
SQL注入原理
SQL、SQL注入是什么? 结构化查询语言(Structured Query Language,SQL),是一种特殊的编程语言,用于数据库的标准数据查询。1986 年10 月美国国家标准协会对SQL 进行了规范后,以此作为关系型数据库系统的标准语言。1987 …...
PIL.Image和base64,格式互转
将PIL.Image转base64 ##PIL转base64 import base64 from io import BytesIOdef pil_base64(image):img_buffer BytesIO()image.save(img_buffer, formatJPEG)byte_data img_buffer.getvalue()base64_str base64.b64encode(byte_data)return base64_str将base64转PIL.Image …...
vue父子组件传值(v-model)
父组件使用v-model传值给子组件 <template><!-- 按钮 --> <el-button click"addMenu(new)">打开弹框</el-button><!-- 自定义组件,下面这两种写法都可以👇 --> <MediaDialog :name"name" v-model:visible&qu…...
Java接口详解
接口 接口的概念 在现实生活中,接口的例子比比皆是,比如:笔记本上的USB口,电源插座等。 电脑的USB口上,可以插:U盘,鼠标,键盘等所有符合USB协议的设备 电源插座插孔上,…...
Windows共享文件夹,用户密码访问
Windows共享文件夹,用户密码访问 小白教程,一看就会,一做就成。 1.先创建一个用户 计算机右键----管理----本地用户和组----点击用户进去---右键新建用户 这里以kk为例 2.找到你想共享的文件夹 3.共享-想共享的文件夹---右键---属性---共…...
Mac更新node
查看本机node版本 node -v 删除node相关内存 sudo npm cache clean -f 安装n sudo npm install n -g 更新node版本 sudo n stable // 把当前系统的 Node 更新成最新的 “稳定版本” sudo n lts // 长期支持版 sudo n latest // 最新版 sudo n 18.17.1 // 指定安装版本 可以顺便…...
2023国赛数学建模思路 - 案例:粒子群算法
文章目录 1 什么是粒子群算法?2 举个例子3 还是一个例子算法流程算法实现建模资料 # 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 什么是粒子群算法? 粒子群算法(Pa…...
Wireshark数据抓包分析之ARP协议
一、实验目的: 通过wireshark的数据抓包了解这个ARP协议的具体内容 二、预备知识: 1.Address Resolution Protocol协议,就是通过目标IP的值,获取到目标的mac地址的一个协议 2.ARP协议的详细工作过程,下面描述得非常清晰ÿ…...
6个比较火的AI绘画生成工具
随着人工智能技术的发展,市场上出现了越来越多的人工智能图像生成工具。这些人工智能图像生成工具可以自动创建惊人的图像、艺术作品和设计,以帮助设计师和创意人员更快地实现他们的创造性想法。在本文中,我们将推荐7种最近流行的人工智能图像…...
静力水准仪说明介绍
静力水准仪是测量两点间或多点间相对高程变化的仪器。由储液器、高精度芯体和特别定制电路模块、保护罩等部件组成。沉降系统由多个同型号传感器组成,储液罐之间由通气管和通液管相连通,基准点置于一个稳定的水平基点,当测点相对于基准点发生…...
HAProxy 高级功能与配置
HAProxy 高级功能与配置 配置和验证的环境看这篇文章:HAProxy 各种调度算法介绍 一.基于 cookie 的会话保持 使用cookie关键字来配置后端服务器基于 cookie 的会话持久连接。 配置格式 cookie <name> [ rewrite | insert | prefix ] [ indirect ] [ nocache ][ post…...
cuda编程002—流
没有使用同步的情况: #include <stdio.h> #include <cuda_runtime.h>__global__ void test_kernel(){printf("Message from Device.\n"); } void test(){test_kernel<<<1, 1>>>(); } #include <cuda_runtime.h> #i…...
2023年国赛 高教社杯数学建模思路 - 案例:粒子群算法
文章目录 1 什么是粒子群算法?2 举个例子3 还是一个例子算法流程算法实现建模资料 # 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 什么是粒子群算法? 粒子群算法(Pa…...
【C#学习笔记】数据类中常用委托及接口——以List<T>为例
文章目录 List\<T\>/LinkedList \<T\>为什么是神?(泛型为什么是神)一些常见,通用的委托和接口ComparisonEnumerator List<T>/LinkedList <T>为什么是神?(泛型为什么是神࿰…...
idea的断点调试
1、行断点 首先在代码的最左侧点击会显示红色的圆圈 第二步在main方法中右键选中debug run进行运行 会出现下面图片的情况 出现上图之后,点击console 下一步 这个时候就可以看到调试的结果了 6、方法调用栈:这里显示了该线程调试所经过的所有方法&…...
vue和react学哪一个比较有助于以后发展?
前言 首先声明vue和react这两个框架都是很优秀的前端框架,使用的人群下载量上数量也是相当的庞大,这篇文章没有贬低或者攻击任何一个框架的意思,只在于根据答主的问题来对这两个框架做出对比,以方便大家更加清晰的了解到当下vue和…...
【SkyWalking】分布式服务追踪与调用链系统
1、基本介绍 SkyWalking是一个开源的观测平台,官网:Apache SkyWalking; 可监控:分布式追踪调用链 、jvm内存变化、监控报警、查看服务器基本配置信息。 2、SkyWalking架构原理 在整个skywalking的系统中,有三个角色&am…...
wordpress new page/优化方案电子版
近日,360公司董事长周鸿祎做客腾讯科技《新产品经理》系列访谈,期间他将自己多年的产品心得和盘托出,甚至访谈中都不需要腾讯科技发问。不得不说,这 场访谈也是在《新产品经理》系列访谈中最精彩的对话之一。前言少叙,…...
怎样做一名优秀的网站技术客服/谷歌官方seo入门指南
众所周知,在PC领域,X86完全是处于垄断地全的,至少占了90%以上的份额。其它的像MIPS、ARM、RISC-V等等,都不是X86的对手。 这与X86是复杂指令集有关,更与X86绑定了windows操作系统,有坚固的intel联盟有关&am…...
网站 开发 外包/福州网seo
遍历Symbian某目录下的所有文件应该是Symbian中常用到的功能模块,比如你想写一个类似“程序管理器”的程序,那么首先的任务就是要先知道某目录下到底有那些文件,然后再筛选出你所需要的文件。遍历Symbian某目录下的所有文件有两种方法① 我们…...
懒人凳子网站建设策划书/广告推广媒体
题意 : 给定一个 w * h 的 矩阵,在矩阵中找不同n个连通块的个数(旋转,翻转,平移算作一种) 分析 : 这题的关键点有两个 ① 生成n连块并且存储起来(因为题目是多测试用例,如果每一次都…...
动态网站开发知识/快速网站轻松排名
1.解释器: 工作机制: 现状: 2.JIT编译器: HotSpot JVM执行方式: 热点代码及探测方式: 方法调用计数器: 回边计数器: 3.C1,C2编译器:...
济源做网站/活动推广方案怎么写
泛型概述 泛型,允许在定义类、接口时通过一个标识表示类中某个属性的类型或者某个方法的返回值及参数类型。这个类型参数将在使用时(例如:继承或实现这个接口,用这个类型声明变量、创建对象时)确定(即传入实际的参数类型,也称为类…...