原标题:特斯拉频繁被“黑客攻击”,竟是因为它

最近,特斯拉Model X被中国团队黑的新闻不绝于耳。研究人员能够远程开启汽车的制动器,车门和汽车后备箱也能够被打开和关闭。不仅如此,研究人员还能让车灯闪烁,车内广播播放音乐。他们把这一破解行为称之为"未经许可的圣诞表演"。

试想一下,当你听着《Closer》开着特斯拉和两个金发细腰的美女在高速上驰骋时,车突然自己刹车了,那被追尾是小事,估计美女会一脚把你踹出车窗外,当然前提是美女还活着。

那骇客究竟是如何黑进特斯拉的系统的呢?其实道理很简单,现在的车会通过Wifi、4G 等方式联网,既然联网了,那就相当是一台电脑,一台电脑被黑掉不是一件再正常不过的事情么?但是一般来说制动系统是不会通过Ethernet联网的,又怎么会制动呢?这就不得不提CAN总线了。

其实,汽车上有很多的通讯协议,LIN、CAN、Flexray、MOST……,但用得最广、作用最大、影响最深的无疑非CAN总线莫属了。CAN之所以叫CAN,并不是因为它很"能",而是控制器局域网络(Controller Area Network)的简称,顾名思义,CAN就是一个用于在控制器之间通讯的局域网,和我们联机打CS(一不小心暴露年龄了,农药玩家勿喷)时组的局域网并没有什么本质的区别。其实,CAN总线技术和很多其他先进技术一样,一开始都是用在飞机、坦克等高端霸气的设备上,慢慢的随着技术的发展和成本的降低被用在了汽车上。

随着汽车上电控技术的普及,电子控制器越来越多,发动机控制器、变速箱控制器、ESC控制器等,用于实时监控车辆状态的传感器也越来越多,如发动机控制单元会接受来自进气压力传感器、发动机温度传感器、油门踏板位置传感器、发动机转速传感器等信号,用于控制喷油嘴的喷油量、点火提前角等。 而这些信号其他的控制器也会需要,比如油门踏板位置信号和发动机转速信号是变速箱控制器所需要的,自动变速器控制单元会据此来发出升档和降档的操作指令。这样一来,粗大的线束与车身上有限的布置空间之间的矛盾越发激烈,线束的体积、重量、可靠性造成的负荷越来越难以承担,如图中所示,线束的杂乱无章,不仅使得整车的布置难度大幅度增加,制造和安装也越来越难,从而导致整车的成本大幅上升(当然,最后买单的还是消费者)。

而CAN总线的出现,这一难题便迎刃而解了,再多的传感器信号都只需要最需要的控制器来采集,并将信号发送到CAN总线上,其余控制器则只需要从总线上读取所需的信号即可,从而使汽车的各个系统协调运作、信息共享、保证车辆安全行驶、舒适和可靠。这样一来,整车线束就简洁明了多了,而且线束的减少,带来的是安全性的提升和成本上的降低。

早在20世纪80年代,博世(又是博世这一汽车零部件的大霸主)就开始的CAN总线的研究,并在1986年的SAE的大会上提出了CAN,随后CAN被ISO组织标准化,广泛的运用在了各类自动化控制领域。发展至今,CAN在汽车上的普及程度越来越高,几乎每一辆欧洲生产的轿车上都有CAN,有的甚至有两条CAN,目前一年汽车上的CAN节点就超过2亿个。2亿个是什么概念?!!!应该不用我多说,大家都知道CAN的普及程度了。

CAN总线,顾名思义是一个总线型的通讯机制,也就是说一条总线上可以有多个带CAN通讯的控制器,通俗点来说就是节点。每个节点既可以发送又可以接收总线上的信息,就像微信既可以收,又可以发一样。整个原理就像电话会议一样,一个用户可以讲话,在网内的所有其他用户可以选择听还是不听,同时也可以选择讲还是不讲,但是同时只能有一个用户在讲话,如果有两个人同时想讲话,那就要看谁的优先级比较高了。

CAN总线系统由CAN收发器、数据传输终端、数据传输线组成。其中CAN收发器安装在控制器内部,同时有发送和接收功能,将控制器传过来的信号转化为电信号送入数据传输线。而数据传输终端其实就是一个电阻,防止数据在线端被反射,影响数据的传输。可别小看了这个小小的电阻,没有这个电阻很可能CAN总线就不通了,就相当于断网了,你想打开网页也只会显示404了。数据传输线一般是廉价又可靠的双绞线,当然也可以用光缆,不过在一般连一个螺丝能省则省的汽车上没有厂家会去选择用光缆的。

目前汽车上的CAN总线连接方式主要有两种,一种是用于驱动系统的高速CAN总线,速率一般是500kb/s,像发动机、变速箱、ABS、ESC这类对于信息传递量较大而且对于信息传递的速度有很高的要求的都会用高速CAN,要不然等信号传过来车都已经撞上去了才接受到信号又有什么意义呢?另一种是用于车身系统的低速CAN总线,速率为100kb/s,主要是用在中控锁、电动门窗、后视镜、车内照明灯等对数据传输速率要求不高的车身舒适系统上。

在CAN总线上传输的信息称为报文(是不是有80年代电报的既视感?),一帧报文会包含信息和数据两个部分,其中信息包含ID等信息,告诉总线上的节点我发的信息是什么,其余节点可以根据需要来接收或者不接收这帧报文。而数据则是信息的内容。比如ESC控制器将采集到的轮速信息放在ID为0x23C的报文中,那需要轮速信号的节点就可以接收这一帧报文,解析得到实时的轮速信号了。

在CAN总线技术的帮助下,各种传感器实现信息共享后,大大减少了车体内线束和控制器的接口数量,同时也避免了过多线束存在的互相干涉、磨损等隐患,降低了汽车电气系统的故障发生率。更重要的是,基于CAN的上层协议,如CCP、UDS等的使用,使得标定、故障读取变得轻松自如。而标定工程师,如车辙另一作者--野土不过是在用这一协议罢了,居然还整天在那洋洋得意、华而不实。在车辆发生故障后,各个控制器通过CAN总线将存储的故障码发出来,由专业人员,通过诊断仪为车辆诊断出各种故障状态,快速准确地查找到故障点,第一时间排除故障。这也是去4S老是会看到维修人员拿着电脑往驾驶室下边的一个插口(OBD口)一插就能大概明白发生了什么故障了。

各位老司机是不是有点蠢蠢欲动,想看下自己车上的CAN总线信息了?可惜的是CAN总线上的信息如果没有解析的话就是一堆乱码,看了也不会有什么用。而网上售卖的一些所谓的故障诊断仪不过就是解码了一小部分故障信息和一些基本的如车速等信息,将其显示出来罢了,并非什么黑科技。

再回到特斯拉被黑这个问题就很容易理解了。骇客破解了特斯拉的制动CAN通讯协议,CAN总线和Ethernet是有接口的。再通过Wifi或者4G网络黑进通讯系统,再通过CAN发送制动命令,特斯拉就悲剧了。

我们只专注原创汽车内容的生产,想要变得更懂车,可以订阅我们的微信公众号:车辙(ID:cartracks)。目前已经集聚了数十万的粉丝,等你!

责任编辑: