无人驾驶系统安全
时间:2020-03-08 16:40

  目前针对无人车的方法有许多,如何防御这些以无人车的安全是个重要的课题。本文是无人驾驶技术系列的第九篇,详细介绍针对无人车传感器、操作系统、控制系统、车联网的手段以及防御方法。

  对于无人驾驶系统来说,安全性至关重要。任何无人车如果达不到安全要求就上是极其的。目前,针对无人车的方法五花八门,渗透到无人驾驶系统的每个层次,包括传感器、操作系统、控制系统、车联网通信系统等。首先,针对传感器的不需要进入无人驾驶系统内部,这种外部法技术门槛相当低,既简单又直接。 第二,如果进入无人驾驶操作系统,黑客可以造成系统崩溃导致停车,也可以窃取车辆信息。第三,如果进入无人驾驶控制系统,黑客可以直接操控机械部件,劫持无人车去伤人,是极其的。第四,车联网连接不同的无人车,以及中央云平台系统,劫持车联网通信系统也可以造成无人车间的沟通混乱。本文将详细介绍每种手段,并且讨论相应的防御方法。

  由于传感器处于整个无人驾驶计算的最前端,最直接无人车的方法就是传感器。这种外部法并不需要入侵到无人驾驶系统内部,使得入侵的技术门槛相当低。正是因为入侵的门槛低,我们需要在传感器做大量的工作来其安全。如图1所示,对各种传感器,我们都可以轻易地与。无人驾驶系列文章《GPS及惯性传感器在无人驾驶中的应用》(《程序员》2016年9月)提到可以使用惯性传感器IMU辅助无人驾驶定位,但是IMU对很,如果使用强干扰IMU,就有可能影响IMU的测量。对于GPS,如果在无人车附近设置大功率假GPS信号,就可以覆盖原来的真GPS信号,从而无人车定位。通过两种简单方法的结合,GPS与IMU的定位系统会轻易被攻破。除了GPS与IMU外,通常我们也可以使用轮测距技术辅助无人车定位。轮测距是通过测量轮子的转速乘与轮子的周长进行测距,如果黑客了轮子,这个定位辅助技术也会受影响。

  无人驾驶系列文章《光学雷达(LiDAR)在无人驾驶技术中的应用》(《程序员》2016年4月)提到激光雷达是目前无人驾驶最主要的传感器,而无人车也依赖于激光雷达数据与高精地图的匹配进行定位。但激光雷达也可以轻易地被干扰。首先激光雷达是通过测量激光反射时间来计算深度的。如果在无人车周围放置强反光物,比如镜子,那么激光雷达的测量就会被干扰,返回错误信息。除此之外, 如果黑客使用激光照射激光雷达,测量也会受干扰,会分不清哪些是自身发出的信号,哪些是外部激光的信号。另外,无人车会不断下载更新的高精地图,如果黑客把下载的地图掉包,也会造成定位失效。

  无人驾驶系列文章《基于计算机视觉的无人驾驶系统》(《程序员》2016年7月)提到计算机视觉可以辅助无人车完成许多的任务,比如交通灯识别、行人识别和车辆行驶轨迹等等。在交通灯识别的场景中,无人车上的摄像机如果检测到红灯,就会停下来。如果检测到行人,也会停下以免发生意外。黑客可以轻易地在上放置假的红绿灯以及假的行人,无人车停车并对其进行。

  既然每个传感器都可以轻易被,如何无人车安全?对此,需要使用多传感器融合技术互相纠正。单个传感器很容易,但是如果同时所有传感器难度相当大。当无人车发现不同传感器的数据相互间不一致,就知道自己可能正在被。例如,无人车检查到交通灯,但是高精地图在此处并未标注有交通灯,那么就很可能是被了。又例如GPS系统与LiDAR系统定位的极不一致,无人车也很可能是被了。

  针对传感器的是外部,不需要进入无人驾驶系统。第二种方式是入侵到无人驾驶操作系统,劫持其中一个节点并对其进行。在无人驾驶系列文章《基于ROS的无人驾驶系统》(《程序员》2016年5月)中提到,目前的无人驾驶操作系统基本是基于ROS的框架实现。但是ROS本身安全性有一定问题,总结有以下两种方法:第一,其中一个ROS的节点被劫持,然后不断地进行分配内存,导致其系统内存消耗殆尽,造成系统OOM而开始关闭不同的ROS节点进程,造成整个无人驾驶系统崩溃。第二,ROS的topic或service被劫持, 导致ROS节点之间传递的信息被伪造,从而导致无人驾驶系统的异常行为。造成第一个问题的原因是ROS Node本身是一个进程,可以无分配资源导致奔溃,另外的原因是ROS Node可以访问磁盘以及网络资源,并无很好的隔离机制。为了解决这个问题,可以使用Linax容器技术(LXC)来管理每一个ROS节点进程。简单来说,LXC提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化等其他复杂功能,相当于C++中的NameSpace。LXC有效地将由单个操作系统管理的资源划分到孤立的群组中,以更好地在孤立的群组之间平衡有冲突的资源使用需求。对于无人驾驶场景来说,LXC最大的好处是性能损耗小。我们测试发现,在运行时LXC只造成了5%左右的CPU损耗。除了资源外,LXC也提供了沙盒支持,使得系统可以ROS节点进程的权限。为避免可能有性的ROS节点进程其他的ROS节点进程运行,沙盒技术可以其进程访问磁盘、内存以及网络资源。

  至于第二个问题,主要原因是通信的信息并没有被加密,以至于者可以轻易得知通信内容。目前业界有不少对ROS节点间通信的加密尝试,比如使用DES加密算法。在通信的信息量十分小的时候,加密与否对性能影响不大。但随着信息量变大,加密时间相对信息量成几何级增长。另外,由于ROS通信系统的设计缺陷,加密时间也与接收信息的节点数量有直接关系。当接受信息的节点数量增长时,加密时间也随之增长。无人驾驶系列文章《基于ROS的无人驾驶系统》提出了几个改进ROS通信系统的机制,在这些机制中,加密对性能影响将大大减少。

  如图3所示,车辆的CAN总线连接着车内的所有机械以及电子控制部件,是车辆的中枢神经。CAN总线具有布线简单、典型总线型结构、可最大限度节约布线与成本、稳定可靠、实时、抗干扰能力强、传输距离远等特点。由于CAN总线本身只定义ISO/OSI模型中的第一层(物理层)和第二层(数据链层),通常情况下,CAN总线网络都是网络,所以没有网络层。在实际使用中,用户还需要自己定义应用层的协议,因此在CAN总线的发展过程中出现了各种版本的CAN应用层协议。CAN总线采用差分信号传输,通常情况下只需要两根信号线(CAN-H和CAN-L)就可以进行正常的通信。在干扰比较强的场合,还需要用到屏蔽地即CAN-G(主要功能是屏蔽干扰信号)。CAN总线上任意节点均可在任意时刻主动的向其它节点发起通信,节点没有主从之分,但在同一时刻优先级高的节点能获得总线的使用权。

  如果CAN被劫持,那么黑客将,造成极其严重的后果。一般来说,要进入CAN系统是极其困难的。但是一般车辆的娱乐系统以及检修系统的OBD-II端口都连接到CAN总线,这就给了黑客进入CAN的机会。的方式包括以下几点:

  OBD-II入侵:OBD-II端口主要用于检测车辆状态,通常在车辆进行检修时,技术人员会使用每个车厂开发的检测软件接入OBD-II端口并对汽车进行检测。由于OBD-II连接到CAN总线,只要黑客取得这些检测软件,包括 Ford的NGS、Nissan的Consult II、Toyota的Diagnostic Tester等,便能轻易截取车辆信息。

  电动车充电器入侵:最近电动车越来越普及,充电设备成为电动车生态必不可少的核心部件。由于电动车的充电装置在充电时会与外部充电桩通信,而且电动车的充电装置会连接CAN总线,这就给了黑客们通过外部充电桩入侵CAN系统的机会。

  车载CD机入侵:曾经有的案例是把代码编码到音乐CD中,当用户播放CD时,恶意代码便会通过CD播放机侵入CAN总线,从而可以取得总线控制以及盗取车辆核心信息。

  蓝牙入侵:另一个入口是蓝牙。如今蓝牙连接手机与汽车通讯以及娱乐系统已经成为标配。由于用户可以通过蓝牙给CAN发送信息以及从CAN读取信息,这也给黑客们的窗口。除了取得车主手机的控制权,由于蓝牙的有效范围是10米,黑客们也可以使用蓝牙进行远程。

  TPMS入侵:TPMS是车轮压力管理系统,也有黑客对TPMS展开。在这种方法中,黑客先把代码放置在车辆TPMS ECU中,然后当TPMS检测到某个胎压值的时候,恶意代码便会被激活,从而对车辆进行。

  一个通用的解决方法是对ECU接收的信息进行加密验证,以信息是由可信的MCU,而不是由黑客发出。使用加密验证,我们可以选择对称或者非对称密码。对称密码的计算量小但是需要通信双方预先知道密码。非对称密码无需预先知道密码,但是计算量大。由于大部分车用ECU计算能力与内存有限,现在通用做法是使用对称密码加密,然后密钥在生产过程中被写入ECU。这样的后果是有许多ECU复用同一个密钥,当一个ECU密钥被破解后,同批的ECU都会有风险。为了解决这个问题,学术界和业界也提出了几种解决方案:

  当无人车上后,它会成为车联网的一部分。V2X是车联网通信机制的总称。可以说,V2X是泛指各种车辆通讯的情景,包括V2V车车通讯、V2I车通讯、V2P车与人通讯等。通过V2X车辆可以获得实时况、道、行人等一系列交通信息,从而带来远距离信号。比如V2V,最普遍的应用场景是在城市街道、高速公,车辆之间可以相互通信,发送数据,实现信息的共享。这样的数据包括:车辆的时速、相对、刹车、直行还是左拐等所有与行驶安全的数据提前提供给周围的车辆,使得周围车辆都能够预判其他车辆的驾驶行为,从而实现主动的安全策略。V2X安全防护是自动驾驶必要技术和智慧交通的重要一环,接下来我们讨论V2X的潜在安全风险及解决方案。

  确保V2X通信安全的系统要满足以下两个基本条件:第一,确认消息来自的发送设备,这个需要通过验证安全证书来。第二,确认消息传输过程中没有被修改,这个需要接受信息后计算信息的完整性。为了实现V2X的安全,欧盟发起了V2X安全研究项目PRESERVE并在项目中提出了符合V2X安全标准的硬件、软件,以及安全证书架构。

  软件:在安全硬件上,PRESEVER提供了一整套开源软件栈提供安全通信。这套软件栈提供了加密解密的软件库、电子证书认证库、与受信任的证书颁发机构的安全通信库等。

  安全证书:为了确保信息来源于可信设备,可以使用受信任的证书颁发机构来提供安全证书与密钥。当汽车A向汽车B放送信息时,汽车A的发送器会在信息上添加电子签名,并用密钥对信息进行加密。汽车B接受信息时,会首先对信息的电子证书进行认证,确认信息是由汽车A发送,然后使用公钥对信息进行解密,并对信息的完整性进行验证。

  为了无人驾驶系统的安全性,我们需要从纵向对系统的每个层面进行校验。这些层面包括代码、电子控制单元(ECU)、控制算法、车内及车外网、自动车整体与物理结合的网宇实体系统,甚至需要多部车辆互相通讯的车联网。越往上层系统的复杂度越大,校验也越困难。所以一般在对上层系统的分析会基于下层的分析结果做抽象化处理。比如在分析车内网的时候,对与网络链接的电子控制单元一般只考虑通讯接口的模型,而不会考虑电子控制单元内的具体功能及软件。在对每个层面在做安全分析时,也需要考虑各种不同的模型和向量。比如说,代码的安全校验除了需要考虑缓冲区溢出,还要考虑其他模块通过利用API来侵入,或者是第三方软件里载有木马的。在对车内网的分析时,要考虑在某个电子控制单元被黑客控制下可能出现的各种情况,包括阻断服务(Denial of Service Attack),修改通讯件的内容,伪造通讯件的来源等。由于无人驾驶系统对处理速度和容量的要求远远高于传统车辆控制系统,一部分单核的电子控制单元在不久的将来会被多核芯片或GPU取代。每个新的电子控制单元将会支持多个功能或多个功能的部分实现,而这些功能会通过虚拟机来管理硬件资源分配。从安全的角度来说,就需要对虚拟机管理器进行分析,比如虚拟机与虚拟机之间的通讯(intra-VM communication)不被第三方干扰或。无人车加入了很多新的自动行驶功能,比如最简单的自动刹车,对于这些功能的控制算法,验证时也需要全面地考虑前文所提到的一系列,包括某个传感器的信息被恶意修改,通讯渠道被堵所引起的信息滞后等等。因为无人车需要强大的AI系统做支持,对这些AI系统的不同方式也在校验的考虑范围内。最近有研究指出,深度学习系统(特别应用在图像识别上)也很容易被。比如修改一张图像中的几个像素就可能使识别结果大相径庭。这个隐患大大增加了系统被黑客攻破的可能性。在车联网的层面上,常见的安全问题有通讯信息被,被黑客控制的车辆故意提供假信息或伪造身份,阻断服务,女巫(sybil attack:单辆车通过控制多个身份标识来对网络整体进行),以及盗取其他车主的私密信息(比如所在)。

  对于这些安全问题及向量的分析涉及的技术非常广。本文重点介绍关于车内网(比如前面提到的CAN)和控制系统的安全模型和验证。现有的车内网安全协议一般建立在一些基本的加密单元上,比如对称密钥加密和非对称密钥加密。一般初始身份鉴别时需要用非对程密钥加密,而之后的通讯就可以用相对更快的对称密钥加密。根据不同的安全等级需求,密钥的长度会不一样。长的密钥会更安全,但也会增加加密和解密的时间,因此影响到控制系统的性能。另外,长的密钥会增加通信的负担。不管是CAN还是TDMA类的车内网协议,这些附加的安全信息都可能导致通讯超时(结果可能是来不及刹车)。所以在安全校验的同时也必须考虑增加安全机制所产生的延时。最后,密钥的分发和管理也至关重要。这是当前的一个技术难点,还没有特别好的解决方案。对于协议本身的验证方法有几种。一般来说,首先要校验协议的数学模型。最近提出的LASAN就是先用形式化验证工具Scyther来证明协议的安全性,然后做仿真来测试性能。对于控制系统,分析时是会侧重考虑对数据所产生的影响(比如说延时,丢失或假数据),然后对相应的安全方案(比如传感器数据混合处理或状态估计)做数学证明来达到校验的目的。类似的方法也被应用在验证一些车联网的功能上,像合作的可变巡航控制。总体来说,无人车的安全问题至关重要,车辆如果被黑客或控制会危及生命。但是,不管从技术还是标准化的角度看,现阶段对于无人车安全问题的校验尚未成熟,还需要学术界和工业界的深入研究与大力开发。

  大学欧文分校计算机博士,研究方向智能 计算、系统软件、体系结构与异构计算。现在PerceptIn主要专注 于SLAM技术及其在智能硬件上的实现与优化。

  大学伯克利分校电子工程与计算机科学博士。研究方向包括自动化设计与检测,可靠及容错计算机系统,计算证明法,网宇实体系统。

  主要从事面向无人驾驶和机器人的大数据计算与存储平台、面向人工智能的计算体系架构、面向机器视觉的嵌入式系统研究。

  “别人怎么对你,你就用相同的态度回应!生而为人,谁都是第一次。” 生活依然继续~                              先来看一下想要实现无人驾驶所需的核心模块吧:+融合+决策...博文来自:I-am-Unique

  无人驾驶轨迹规划总结amp;lt;1amp;gt;无人驾驶系统介绍行为决策运动轨迹规划径规划的不同之处径规划的定义径规划方法全局径规划Dubins径方法D...博文来自:此心,亦复何言~

  作者简介:申泽邦(Adam Shan),大学在读硕士研究生,主攻无人驾驶,深度学习;兰大未来计算研究院无人车团队,在改自己的无人车,参加过很多无人车Hackath......博文来自:AI科技大本营

  作者 刘少山无人驾驶作为一项新兴技术,落地为产品需要大量算法、工程、产品贯通的AI全栈人才。笔者在最近一年招聘中发现,许多技术方向的同学对人工智能既爱又,一方面觉得这是未来,另一方面又觉得很难...博文来自:CSDN人工智能

  作者:韩威,宇通智能车队队长,大学博士,有超20年软件开发与系统设计经验。曾参与研发多辆无人驾驶车辆,是北汽C70、E70、宇通智能驾驶大客车的主要技术负责人。 本文为《程序员》原创文章,...博文来自:CSDN 人工智能

  【声明:版权所有,欢迎转载,请勿用于商业用途。联系信箱:】虽然目前市场上无人驾驶概念很火,但是真正能够落地的很少。虽然根据SAE的标准,自动驾驶有6个级别,但是目...博文来自:平凡的程序员

  CAN总线在整个无人驾驶系统中有着十分重要的作用。除了在VCU信号需要通过CAN总线进行传输外,无人车上的某些传感器(如雷达、Mobileye)的信号传递也是通过CAN实现的。前言本文主要内容是——无...

  【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:     无人驾驶里面,要说人们最关心的内容,应该就是安全本身了。说到安全,一般人会想到的就是汽车...

  ISO26262-5中,通过某硬件电失效率的计算展示了如何进行定量地分析功能安全。失效分为单点故障和潜在多点故障。一、硬件电原理图电实现的功能如下:1)MCU采集车速信号(I1、I2为车速传感器...

  无人驾驶汽车系统入门(十七)——无人驾驶系统基本框架前面的文章基本上是想写什么写什么,缺乏条理,本节我们完整的梳理一遍无人驾驶系统的基本框架,帮助读者建立对整个系统的完整认识无人驾驶系统的核心可以概述...

  作者:李力耘,刘少山责编:何永灿,欢迎人工智能领域技术、约稿、给文章纠错,请发送邮件至本文为《程序员》原创文章,未经允许不得转载,更多精彩文章请订阅《程序员》无人车作为一...

  作者:王江,吴双,刘少山 本文为《程序员》原创文章,未经允许不得转载,更多精彩文章请订阅2016年《程序员》本文是无人驾驶技术系列的第六篇,着重介绍增强学习在无人驾驶中的应用。增强学习的目的是...

  记得有一部电影生化危机里面的红后、以及复仇者联盟2里的人工智能奥创,它们都有一个中央控制中心系统,中央神经网络控制中心处理系统可以发送指令至终端(机器人、虚拟影像红后),在生化危机电影里面展示是红...

  作者简介:吴双,原百度研究院硅谷人工智能实验室高级研究员,百度美国研发中心高级架构师。美国南大学物理博士,大学分校博士后,研究方向包括计算机和生物视觉,互联网广告算法,互联网文本和视频的...

  作者:吴双,王江,刘少山 本文为《程序员》原创文章,未经允许不得转载,更多精彩文章请订阅2017年《程序员》无人驾驶的部分作为计算机视觉的领域范围,也不可避免地成为CNN发挥作用的舞台。本...

  作者简介: 吴双,原百度研究院硅谷人工智能实验室高级研究员,百度美国研发中心高级架构师。美国南大学物理博士,大学分校博士后,研究方向包括计算机和生物视觉,互联网广告算法,互联网文本和视频...

  作者: 刘少山,唐洁,吴唯玥 责编:何永灿,欢迎人工智能领域技术、约稿、给文章纠错,请发送邮件至 本文为《程序员》原创文章,未经允许不得转载,更多精彩文章请...

  无人驾驶作为人工智能的集大成应用,从来就不是某单一的技术,而是众多技术点的整合。技术上它需要有算法上的创新、系统上的融合,以及来自云平台的支持。本文整合了首发于《程序员》的无人驾驶系列技术文章,点击以...

  今年6月底,特斯拉自动驾驶汽车发生了一起致命意外,一时间无人驾驶的安全性被推到了风口浪尖。一直以来,虽然各个自动驾驶开发企业都都在不断的公开自动汽车的测数据,但是自动驾驶的安全性问题一直是业内外认识...

  据CNBC网站报道,杜克大学普拉特工程学院教授玛丽·卡明斯(MaryCummings)说:“在上之前,无人驾驶汽车需要通过一套可接受的标准化测试。”玛丽·卡明斯是杜克大学人类与自动实验室主任和杜克大...

  关于阿古斯全球汽车网络安全领域的领导者阿古斯提供全面且经过验证的解决方案套件,以连接的汽车和商用车辆免受网络。凭借在网络安全和汽车行业数十年的丰富经验,Argus提供创新的安全方法和久经的...

  作者: 唐洁,刘少山 责编:何永灿,欢迎人工智能领域技术、约稿、给文章纠错,请发送邮件至 本文为《程序员》原创文章,未经允许不得转载,更多精彩文章请订阅《程...

  CSDN 人工智能无人驾驶硬件计算平台---特斯拉、奥迪A8、通用的L2-L3级自动驾驶方案

  爬虫福利一:27报网MM批量下载 点击看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成!目标网站:妹子图网:Python3.x相关第三方模块:requ...

  写了很久,这是一份最适合/贴切普通大众/科班/非科班的『学习线万+说实话,对于学习线这种文章我一般是不写的,大家看我的文章也知道,我是很少写别人怎么样怎么样的文章,更多的是,写自己的真实经历,然后供大家去参考,这样子,我内心也比较踏实,也不怕他人。但是,最...

  12-05阅读数 1万+3分钟宕机,线上事故,阿里程序员差点当初被,还好最后化险为夷一己之力力挽狂澜。...

  12-05阅读数 4586且看小Q如何吃一堑,长两智发际线堪忧的小Q,为了守住头发最后的,深入分析了几十款防脱洗发水的评价,最后综合选了一款他认为最完美的防脱洗发水。一星期后,他没察觉到任何变化。一个月后,他......

  12-06阅读数 2643成为一名程序媛,月入30K不是梦?什么是成功?迎娶程序媛,人生巅峰。程序媛不矫揉造作,没有逛不完的街,没有买不完的包,心动不如行动,找个程序媛就嫁了吧。我是一个普通到不能再普通的一个大数据分析工程...

  12-09阅读数 4万+大家好,我是 Rocky0429,一个对计算机基础一无所知的蒟蒻…作为一个所谓的计算机科班出身的人来说,特别难为情的是自己的计算机基础很差,比如计算机网络当年一度差点挂掉,多亏当时的老师手下留情,给我...