干扰传感器,就像让你蒙着眼睛戴着耳罩开车一样,只不过如何给你蒙上眼睛、戴上耳罩同样存在难度。
在上周关于Defcon的预告中,车云菌提到过将会有360的团队将会演示是如何通过欺骗,或者说是干扰传感器,来让车上的半自动驾驶系统做出错误的决定。
本周一,360汽车信息安全实验室负责人刘健皓与一同进行这项课题研究的浙江大学教授/博士生导师徐文渊、浙江大学闫琛一起,在Defcon上共同进行演示,介绍了是如何骗过特斯拉Model S上的超声波传感器、摄像头和毫米波雷达。
自动驾驶,包括现阶段的半自动驾驶,实现的过程都是通过安装在车辆上的各类传感器对车辆周围的环境进行感知,数据传到分析处理单元,控制单元根据分析处理单元发送的结果得到判断,进而向车辆的执行器发出命令,做出转向、加速、刹车等不同的命令。
他们的切入点,就是在第一步,传感器感知周围环境时,做了一些手脚,让传感器得到错误的数据。
如何干扰传感器?
不同的传感器干扰的方式自然不同。这次研究的三个传感器工作原理各不相同,咱们一个一个看。
1.超声波传感器
超声波传感器在车辆上的作用是探测障碍物,发出超声波之后,根据接收到回声的时间来判断与障碍物之间的距离。特斯拉的Model S的车身周围安装有12个超声波传感器用来探测车辆周围的障碍物,并且会在检测到有障碍物之后发出警告声,仪表盘上对应位置会有障碍物以及距离提示。如果开启了Autopilot,那么车辆还会在距离过近的时候自动刹车。
影响超声波传感器的方式很简单,一种是通过发出超声波的噪声,增加超声波传感器接收到回声的信噪比来影响它的判断;一种是发出相同频率的超声波给超声波传感器,让它误以为原本没有障碍物的地方是有障碍物的。
实现起来也很方便,只需要一个成本在60元人民币的干扰设备,在车辆的超声波传感器前方发出对应信号就可以了。从团队研究的结果来看,如果是通过噪声来干扰,那么会影响超声波对距离的判断,判断结果不精准,从而显示在仪表盘上的距离信息也是错误的;而如果是通过发出同频率的信号,那么会让传感器做出完全相反的判断。
△干扰之后,传感器对距离判断错误
如果是在人工驾驶状态下,那么会被仪表盘显示的错误信息而误导,而如果是在Autopilot的状态下,那么同样会被误导而做出错误判断,或者误以为系统不工作而发出警告声,必须由人类驾驶员接手。需要注意的是,如果是发出同频率信号来进行干扰,那么时间很重要,只有第一次让传感器接收到的超声波是有效的,能够产生影响。
△传感器未能识别出障碍物
1 2 3