一. 简介
安全公司如何研究汽车安全?第一时间想到的,是买一辆车,以攻防测试为核心,积累能力,孵化产品等。想法是很好,但是,如今汽车种类繁多,想研究得通透且广泛,就需要要将所有种类的汽车买来研究,这是成本不允许的。将汽车拆除后又重装,这是时间不允许的。如何在安全公司内部建立车联网的研究环境,是多数安全厂商在研究初期面临的困境。
为脱离这一困境,进一步思考,我们需要的是汽车本身的电子器件,以及其功能背后的业务环境。所以,如果能买到整套汽车的电子零件,将其组件成一个测试台,达到“热插拔”的效果,也是一种解决问题的思路。然而,在4S店购买整车全新的零件,其成本也是非常高昂。好现状是,当我们在闲鱼搜索“全车电器”,我们可以轻易找到多套拆车零件,如图1所示。
图1 保时捷全车电器
在闲鱼买这些零件,可以降低汽车的研究成本。但是,一个非常巨大的问题是,这么多零件,如何脱离完整的汽车环境来运行呢?这就得梳理清楚“全车电器”都包含哪些?哪些零件是我们研究环境中最核心的?以及如何将这些零件上电运行,与测试工具建立理想的测试环境?
为此,撰写本文以分享建立研究环境的一些经验。主要内容是阐述清楚我们解决以上三个问题的过程,一些测试工具如CAN分析仪、杜邦线等可以在网络上买到的设备和其他测试材料,则默认具备。
二. 全车电器包含哪些?
“全车电器”是汽修行业的名词,我们可以简单地理解为,凡是需要接电线的零件,都可以称之为电器,全车所有接车的零件加起来就可以称为“全车电器”。在某个车型中,全车电器包含供电系统、保险盒、空调控制系统、发动机控制系统、并线辅助系统、多媒体控制系统、门锁控制系统、天窗控制系统、车身稳定系统、仪表系统、网关系统、线束等26种电器系统。随着人们对汽车的乘坐体验要求越来越高,汽车的功能将不断地迭代升级,对车内电器系统进行分类及组网部署成为了汽车研发过程的重点工作。
大多数汽车根据功能域将车内网划分为诊断域、动力域、底盘域、车身域和信息域这5大部分,部分混动车型还会有混动域,具备高级辅助驾驶的车型还会有ADAS域。各域总线接入情况基本如下:
车身CAN总线:车身控制器、PEPS、车窗、座椅等ECU;
动力CAN总线:整车控制器、换挡操纵机构、发动机管理等ECU;
底盘CAN总线:电子助力转向(EPS)、电子稳定控制系统(ESC)等ECU;
信息CAN总线:多媒体系统、T-BOX、抬头显示模块、行车记录仪等ECU;
诊断CAN总线:外接OBD接口。
这么多的电器系统,每一个都是我们安全测试所需要的吗?显然不是。所以,需要关注最核心的几个零件。
三. 核心的零件包含哪些?
车联网信息安全研究的重点应该放在信息与通信这两个方面,以涵盖全车的重要业务数据。在车联网这一套全车电器中,在保证不会遗漏车内网络传输信息的前提下,组装最少节点,作为测试台来研究是一个不错的思路。
根据信号的分类,可以筛选出部分核心零件。汽车信号,暂且可以分为两类,一类是网络信号,包含4G、蓝牙、Wi-Fi、CAN、以太网、LIN、flexray等。另一类是控制与状态信号,这类信号往往是数字电平信号或者模拟信号,如控制车门、玻璃电机的电平信号等。显然,前者才是研究的核心。所以,核心零件当中必然包含域控制器和网关。其包含的零部件为车身、底盘、动力、座舱、自动驾驶这5个域控制器以及网关。
根据通信方式,可以筛选出另一部分核心零件。汽车的通信包含了4G、GPS这类远程通信和Wi-Fi、蓝牙、无线钥匙、UWB等近场通信。所以,核心零部件应需要包含汽车钥匙、仪表、PEPS控制器(无钥匙进入和启动控制器,部分车型会与车身域控制器合二为一)、门把手及控制器、TBOX、胎压控制器这5个零件。如果研究汽车防盗,且需要响应的话,还需要一键启动按键,方向盘、转向柱、门锁电机控制器及电机。
为了连接方便,如果能找到对应车型的完整线束,将为零件的供电带来非常大的便利。因为线束上会有颜色,一般,每个车型的线束颜色及供电相关的信息可以在修车网站上查到,免去了非必要的电路分析的功夫。但是,找到配套的完整线束是比较难的,因为大部分拆车的零件都是出于事故车,拆车师傅在拆车时,会将线束剪掉以方便拆车。
所以,核心的零件,并不是一个固定的列表,一方面,这些零件需要包含汽车的所有通信数据,另一方面,还需要包含我们研究的目标功能,比如研究汽车防盗需要的电机以给定反馈。
将核心零件买回来后,另外一个问题是:如何让这些零部件工作起来。
四. 如何给这些零部件供电并启动?
车主打开车门,坐在座椅上,踩下刹车,按一键启动按钮,发动机成功打火。这是汽车启动的流程。如果只是构建研究环境,可以直接为相应的零件供电。但是,问题在于,汽车零件并不像电脑主机一样,将供电线插好就可以工作,因为他们有独特的接口形状以及定义,在网上一定可以买到插头,但不一定可以买到线束。
如BCM(车身控制器),其外形如图 2所示。车身控制器是一个以单片机为控制核心的零部件,其特点是引出了多达上百的输入输出口[1],以满足众多车身电器的连接。这些输入输出的接口,接收或者输出的是传感器、电机等ECU的原始控制信号,比如控制电机用的PWM或者电平信号,比如控制开锁关锁的电平信号等。没有线束,没有插头,如何为其供电呢?
图 2 车身控制器接口图
找到正确的接口定义及其电路图,连接电源后触发其启动条件,一定可以其上电并运转起来。如何找到其接口定义呢?答案是利用维修手册。汽车维修手册中含有电路图,在电路图的识别过程中,手册中会写清楚如何将所有的零件建立正确的电气连接。如图 3所示的维修网站提供[2]的电路图资料中,包含了每个电器系统的接插件外形及其引脚定义。如下图所示,图中标记了BCM J2接口的名称、序号和定义。
图 3 车身控制器部分接口定义
电路图中,常电电源(12V直流电源)给到了J2接口序号为1、2、3、14、16、19、31、32的8个接口。这8个接口都接入的是常电电源,但是,在主板上,他们并非默认短路连接,而是通过8路电源独立连接。只接通一路是无法启动BCM的。可见,如果仅仅通过电路分析,得到这个正确的结论,可能需要相当长时间的研究才行。
将这8路电源分别接入12V电压,电路板的铺地面接入GND,启动电源,即可为BCM供电。由于接入的电源接口较多,先使用面包板将所有电源短路后,在接入电源(红色夹子为12V,黑色夹子为GND)。具体如图4所示。
图4 车身控制器电源接线
将电源的开关打开,可以看到板子已经开始运行,且电流在0.9A左右跳动,说明内部功能正在运行,影响了PCB板的功耗。具体如图5所示。
图5 车身控制器通电后的电流显示
BCM通过CAN总线接收消息来完成其他ECU(如座舱域控制器、TBOX等)对灯、门等汽车结构的控制。同样,通过查看电路图,可以找到CAN通信的接口在J7的14和39号针脚,如图6所示。
图6 车身控制器的CAN接口定义
将其和CAN总线分析仪建立连接后,启动BCM电源,即可查看BCM发出的CAN报文,如图7所示。
图7 通电后收到的响应报文
在测试的过程中,我们设定发送的测试报文ID从0递增,每次发送递增1,发送2048个payload全部为0x55和0xAA的CAN消息,即可遍历帧ID为0x000-0x7FF的所有消息了。我们听到PCB主板上继电器跳动的声音,说明CAN信号中包含大灯、门锁等控制信号,因为这些大电流设备需要继电器作为BCM的开关进行控制。通过二分法,我们定位到帧ID为0x550的第一个字节的第2、3位(从0开始,由低位向高位计算)为控制其两个继电器的数据位。具体数据格式如图8所示。
图8 控制车身控制器的继电器的数据格式
车机、TBOX、网关等其他零件的供电和测试与此类似,且都不如BCM复杂,这里不再赘述。将车机、TBOX、网关、BCM供电并完成CAN总线的连接后,一个小型的带有车身控制和座舱娱乐功能的汽车网络就搭建完成了。
五. 总结与展望
本文介绍了建立汽车安全研究环境的过程,并以供电、控制、通信最为复杂的BCM为例,阐述了如何解决BCM供电和通信问题的。
在安全厂商做汽车安全,最为困难的,无疑是没有汽车,没有汽车意味着没有最基础的业务环境,不了解业务的乙方,也就没有专家。利用二手市场,购买全车电器并建立原车的电气连接,将大大降低我们的研究成本。同时,也能够将汽车的电子电气结构分析通透,尽可能多地暴露整车的业务,帮助我们与更了解业务的甲方客户达成部分共识。安全厂商不了解汽车业务的难题,也算是解决了。
这种方式建立的环境也存在一些缺陷。比如,由于没有车主的权限,APP的远程控制功能是不可用的,除非我们成为这辆车的车主,买一辆二手车,经过户后,可以请4S店帮忙认证。再比如,舍弃部分电器,带来的仪表盘上的各类告警信息比较多,所以,在节约成本的同时,还应该尽可能多地接入电器,以保证汽车的业务功能足够完善。
维修资料的有偿共享已成为汽修行业的常态,这将有助于汽修行业的发展,也将帮助更多的人了解汽车。维修材料给到的只是设备参数以及接口定义,并不是信息泄露。甲方应将更多精力放在对自身产品的加固方面,自身产品足够强,接口定义也并不会给黑客带来信息或者价值。
同时,我们也不建议工程师为了一个账户,去攻击汽车的云端资产,这将为公司和个人带来不必要的损失。撰写以上内容,希望对读者能有些帮助。有问题或者想交流,欢迎联系我们。
参考文献
[1].全车身控制器,https://www.continental-automotive.com/zh/Material-Handling/Chassis-Body/Precision-Operating/Body-Electronics/Body-Control-Unit
[2].汽修巴巴维修网站,https://www.qixiu88.com/
本公众号原创文章仅代表作者观点,不代表绿盟科技立场。所有原创内容版权均属绿盟科技研究通讯。未经授权,严禁任何媒体以及微信公众号复制、转载、摘编或以其他方式使用,转载须注明来自绿盟科技研究通讯并附上本文链接。
关于我们
绿盟科技研究通讯由绿盟科技创新研究院负责运营,绿盟科技创新研究院是绿盟科技的前沿技术研究部门,包括星云实验室、天枢实验室和孵化中心。团队成员由来自清华、北大、哈工大、中科院、北邮等多所重点院校的博士和硕士组成。
绿盟科技创新研究院作为“中关村科技园区海淀园博士后工作站分站”的重要培养单位之一,与清华大学进行博士后联合培养,科研成果已涵盖各类国家课题项目、国家专利、国家标准、高水平学术论文、出版专业书籍等。
我们持续探索信息安全领域的前沿学术方向,从实践出发,结合公司资源和先进技术,实现概念级的原型系统,进而交付产品线孵化产品并创造巨大的经济价值。
长按上方二维码,即可关注我
原文始发于微信公众号(绿盟科技研究通讯):如何建立汽车安全研究环境