如果我在一台笔记本电脑上敲几个按键,你正以100km/h速度驾驶的汽车就会刹车失灵,并自动向又猛打一下方向盘,一头向路边的保险带撞去,正在驾驶者汽车的你一定会感觉糟透了。

我想没有人会想遭遇这个场景,更没人打算开一辆听起来毫无安全感而言的汽车,甚至大部分人应该认同一点:汽车在下一步做出的动作应该在驾驶能够预知的范围内,如果不得不把控制权交由系统操作,那必须是有“绝对安全”的一套操作体系。但事实上,从上世纪90年代开始,你的汽车是一个只有你可以启动的“安全盒子”说法就已经不复存在了。
绝对安全一直是汽车的厂商们最喜欢推销的口号,他们在自己旗下的车型中贴上“已通过五星安全碰撞”,“碰撞危险预警”或是“加强了车身的安全构造”等标签,以显示自己牢不可破。但这些像保护壳一样的安全设置大多考虑的是汽车遭遇的外部风险,而在汽车本身如果出故障会如何上鲜有声音。
汽车和电脑一样都是由软件和硬件组成的产品,他们都会遭遇一些Bug或者漏洞,导致一些功能不能正常运行甚至失去原本的控制权。要知道Andriod开放系统由1200万行代码组成,但一个外观看起来颇具时尚感的汽车内部也不过“流淌”着1亿行的代码。包括宝马、奔驰、通用等耳熟能详的汽车厂商,他们目前使用的软件平台依然是在不考虑有外部连接破解系统的前提下搭建,这些系统和Linux等开源系统相比,那他就是第一代的Windows。
如今的汽车构造已经如家用电脑一般——它被安装了类似中枢神经一样的“中央单元处理器”,作为数据中转站,经由它流过的数据可以是控制打开车窗、雨刷这样的基础功能、支持娱乐功能的车载屏幕,或者控制速度、刹车的动力系统。当汽车的一个单元被唤醒后,这些数据就会向中央处理器汇聚,再被分配到不同的单元工作,信息被不同程度的加密,其中动力总成的单元的排线和单元的构成是相对独立的,协议也是被多重加密,除非是直接在这套系统上重新更改协议,否则入侵极其困难。但困难并不意味着“不可能”,汽车的单元都面临一个挑战:他们的线路并非独立,是彼此连接打通的;他并非不可破解,只是比入侵一台电脑更难罢了。
只要有数据存在的设备就会存在可被重新编程的节点。汽车的外形、结构以及整体材料在一百年来不断进步,但它的软件算法还停留在20世纪90年代——一个互联网还没有被普及的时代。