[翻译]汽车黑客 Part 1
发表于:
2017-8-22 10:09
9109
汽车黑客是我们黑客学科的前沿领域之一。随着汽车变的越来越智能化,包含越来越多的电子产品,这使得汽车越来越易被攻击。我们此刻确确实实的处在一个无人驾驶或者自动驾驶汽车的转折点上,对汽车的攻击行为将会变得更加重要和危险。
在本系列中,我们将研究汽车黑客的基础知识,并提出更复杂的黑客策略。举一个简单的汽车黑客的例子,看看这篇黑掉三菱欧蓝德的文章 。
在我们深入汽车黑客之前,首先需要了解基础知识。比如说,在进行网络hacking之前需要了解TCP/IP协议,在进行SCADA(数据采集与监视系统)hacking之前需要了解Modbus通讯协议。汽车中的电子部件采用若干种不同的协议在诸多微控制器、传感器、仪表、执行器等等之间进行通讯。其中,最广泛使用的莫过于Controller Area Network(控制器局域网络 )或者称之为CAN 。
CAN协议首先由汽车电子业界闻名的德国工业巨头罗伯特·博世有限公司(Robert Bosch GmbH)开发。它于1986年首次在汽车工程师学会(SAE)会议上发布。CAN协议已经被标准化为ISO 11898-1和ISO 11898-2。它被设计用于在不需要主机的情况下车辆的微控制器和设备之间的良好的通信。
CAN以广播类型网络的形式运作,类似于以太网中的广播数据包,或者像过去在网络中使用的集线器(1980-90年代)。网络上的每个节点都可以“看到”每个传输数据包。不同于以太网或TCP/IP(但与SCADA系统中的modbus相似),CAN不能向单个黑店发送消息,但却提供了本地过滤,以便每个节点仅对其操作相关的消息起作用。你可以将这种机制视为“内容消息传递”,其中内容确定目标节点。
CAN在两根线缆之上运行,CAN高线,CAN低线。由于汽车系统固有的“噪音”,CAN使用差分信号(译注:即电平差)。这就是协议分别在两根线缆上升高、降低电压来通信的原因所在。在高速和低速CAN这两种情况下,当发送0时,信令将高线向5V驱动,低线向0V驱动,但在发送1时两线都不驱动。
CAN使用4中不同的消息类型:
这是用于实际数据传输的唯一帧。在大多数情况下,由数据源节点发送数据帧。
该帧有两种类型,基本帧和扩展帧。基本帧有11位标识码而扩展帧有29位。CAN标准要求必须接受基本数据帧,并且扩展帧必须是可兼容的,换句话说,扩展帧不会中断协议或者数据传输。
远程帧被使用在当数据目标节点需要从源节点获取数据的情况下。
错误帧有两个不同的字段,第一个字段由ERROR FLAGS给出,由不同的驻点产生,第二个是ERROR DELIMITER,只是指示错误消息的结束。
过载帧由两个字段,过载标志和过载分隔符。当接收机内部条件满足或者在传输期间检测到主要位(0)时会触发过载帧。
大多数车辆现在都配有一个OBD-II连接器。如果你把汽车带到4S店进行维修,那么在仪表板的下方,机械师将会使用这个接口连接电脑,以便读取车载电脑的数据。
OBD-II有16个引脚,如下图所示。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)