本文介绍了充电基础设施的架构与通信协议,总结了充电基础设施面临的安全风险,列举了充电桩被攻陷的案例。
大家好, 我是星舆车联网安全实验室的饭饭
。 星舆取 “星辰大海, 舆载万物”之意, 是支专注于车联网技术研究, 漏洞挖掘和工具研发的安全团队。
近期我对充电基础设施展开了研究工作。发现某充电控制计费单元存在多个漏洞,综合利用我们挖掘的这些漏洞可以实现免费充电。漏洞被滥用,会给充电桩运营企业带来巨大的损失。漏洞涉及多个品牌的充电桩,属于供应链漏洞。当前我们已联系相关责任方,后续会遵循负责披露的原则公布我们的研究成果。
7 月 30 日国务院正式公布《关键信息基础设施安全保护条例》,可见国家对关键信息基础设施安全的重视程度之高。其中电动汽车充电设施是关键信息基础设施中重要的组成部分,同时在《汽车数据安全管理若干规定》第三条中也将汽车充电网的运行数据
划归为了重要数据。今天我们就来谈一下充电基础设施的安全。
充电基础设施也有一个庞大供应服务系统,主要包括设备制造商、设施运营商、互联网平台提供商。本文将按照充电基础设施的组成结构分析充电基础设施的安全,内容涉及基础知识、安全威胁、历史漏洞等。
充电设施信息交换基础架构
电动汽车充电设施信息交换基础架构如下图,从下到上分为四层,分别是信息接入层、基础设施层、运营服务层以及数据共享层。
**信息接入层(EVAC)**指的是与充电基础设施(充电桩)通信的外部接入层,其中包括电动汽车、NFC、智能终端等。
**基础设施层(EVIE)**主要指代充电桩。按充电类型分类,分为交流充电桩(又称慢充)和直流充电桩(又称快充)、按安装条件分类,分为立式充电桩和壁挂充电桩。基础设施层是电动汽车充电的执行主体,从信息接入层接受来自外部的充电请求经过基础设施层处理后,执行充电或其他任务。
**运营服务层(EVSOP)**是充电服务云端的直接业务层,包括充电运营服务平台和结算平台。
**数据共享层(EVDSS)**包括第三方服务及管理平台,为运营服务层提供数据服务与管理支持。
充电桩(机)
充电桩(机)是充电基础设施的最前端,直接与电动汽车、用户进行交互,位于充电设施信息交换基础架构
中的基础设施层
中。充电桩可以按照充电方式、安装方式、安装地点进行分类,具体分类如下表。
直流充电桩是当前使用最广泛的充电桩,基本构成包括:功率单元、控制计费单元、计量单元、充电接口、供电接口及人机交互界面等。
充电桩将电网中的电力通过动力电源输入,经过功率变换单元转化为与电动汽车匹配的功率,由输出开关单元控制充电过程,使用充电电缆车辆插头传送电能给电动汽车。在整个充电过程中,主要的控制和数据交互部分是充电控制单元承担的。
TCU 介绍
充电控制计费单元简称 TCU。TCU 集成串口、CAN总线、485总线、SD总线、以太网、SIM卡槽、音频、LVDS、数字量输入输出等接口,并支持北斗、GPS双模定位、蓝牙通信、4G全网通通信等功能,可实现充电桩人机显示、计费计量、支付、数据加密、控制充电设备、与车联网平台通信等业务相关的管理功能。
注:本文中提到的 TCU 指满足《非车载整车直流充电机通用技术规范》要求的控制计费单元,与其他类型的控制计费单元存在一些差异。这部分留到以后再来分享。
充电机内部最重要的控制模块由两部分组成,分别是业务部分、电气部分。业务部分与电气部分通过 CAN 总线相连, 充电计费控制单元和充电控制器之间传输充电状态信息及故障信息等, 同时充电机控制器根据计费控制单元控制整个充电过程。
**业务部分:**充电控制计费单元通过蜂窝网络、网线等方式接入充电运营平台,接收并执行充电运行平台发送的指令、上传本地充电数据等; 计费控制单元与显示器与输入模块通过LVDS/并口连接,是人机交互的主要部分;CPU读卡器通过 RS232 与计费控制单元连接,用于使用储值卡充电的场景;多功能电表与计费控制单元通过 RS485 相连,用于计量消耗的电量值;此外计费控制单元还与 GNSS 天线、RS232 调试接口等其他外部输入模块进行数据交互。
**电气部分:**通过充电设备控制器实现电气保护、与车辆交互、交直流变化、环境控制等。
TCU 硬件
充电计费控制单元的 SOC多采用 ARM 架构,多采用嵌入式 Linux 系统,外部接口丰富,采用模块化设计,满足《非车载整车直流充电机通用技术规范》的要求,规范中定义了需要与外部交互的接口与功能。某 TCU 核心板如下图所示。
TCU 外壳上一般会详细标注接口的用途,具体用途见上文TCU 介绍
中的 业务部分
,这里不再赘述。
通信协议
了解了充电基础设施的硬件部分,现在来看看充电网络中专有的通信协议。这里只做简单介绍,不会详细展开分析,后续会在实际的案例中再讲解。
电动汽车与充电桩、充电桩内部、充电桩与运营平台、运营平台与第三方服务及管理平台之间使用了一系列专有协议,各层级使用的协议如下图所示。
电动汽车充电机与电池管理系统
BMS 协议:BMS(BMS,Battery Management System) 协议用于电动汽车充电机与电池管理系统之间。BMS 协议基于 CAN 协议,通信数据为250kbit/s。 使用 29 位标识符的 CAN 拓展帧,通信地址固定,任何手段都不能改变,充电机地址为 86(56H)、BMS 地址为 244(F4)。
计费控制单元与充电控制器通信协议
协议规定了计费控制单元与充电控制器之间采用 CAN 总线通信。在充电过程中, 充电计费控制单元和充电控制器交互充电状态信息及故障信息等, 同时充电机控制器根据计费控制单元控制整个充电过程。此协议与 BMS 协议相似,同样基于 CAN 协议,通信数据为250kbit/s。 使用 29 位标识符的 CAN 拓展帧,通信地址固定,任何手段都不能改变,计费控制单元地址为 138(8AH)、充电控制器地址为 242(F6H)。
电量计量协议
计费控制单元与电表的之间的通信采用 DL/T 645、Modbus 等协议,并使用 RS485 传输消息。主要功能是统计电动汽车充电的电量值,用于费用结算。
充电机与运营平台协议
充电机与运营平台协议适用于归属不同运营商的电动汽车充换电运营服务平台之间的充换电服务信息交换,以及电动汽车充换电运营服务平台与第三方服务及管理平台之间的信息交换。协议承载的主要服务包括用户认证、资产管理、设备认证、充电控制、计费模式管理等。
充电机与运营平台之间的通信协议较多,主流的有OCPP、T/CEC 102.4、CCTIA-充电桩与运营平台通讯协议等。
OCPP: OCPP 是一个全球开放性的通讯标准,主要用于解决私营的充电网络间通讯产生的各种困难。OCPP支持充电站点与各供应商中央管理系统间的无缝通讯管理。OCPP 在全球多个国家得到使用。OCPP协议主要负责充电达营服务商对充电桩的日常充电运营与维护管理,支持基本充电功能、固件更新、预约充电、充电站管理本地授权列表等功能。OCPP支持多种实施架构下的智能有序充电,是国际电动汽车与电网协同项目中常见的协议。
T/CEC 102.4 第6部分: 中电联推出的电动汽车充换电设备接入充换电设备运营服务平台的技术规范。定义了充换电设备与服务平台后之间的信息交互的类型和相应的信息交互流程。应用规约数据单元(APDU)为一个传输单元,协议采用二进制格式。数据域可选用的加密方式有TLS、AES、SM7、SM4、SM1。
CCTIA-充电桩与运营平台通讯协议: 此协议是中国电动汽车充电技术与产业联盟充电标准于2016年推出的。标准由中国普天和珠海小可乐、中移物联、泰尔实验室、积成电子等参与编写。协议采用二进制格式,通讯方式为 SOCKET 长链接方式,并使用SM4 对称加密算法加密。协议数据单元的起始为固定值 0x0601,末尾为固定值 0x0F02。
运营服务平台信息交互
《 T/CEC 102.4 电动汽车充电漫游服务信息交互》内容涉及认证识别、充电信息共享、业务数据交换、安全数据加密及传输机制、以及其他服务,目标是让电动汽车用户在不同充电服务网络之间自由切换。其中主要定义了不同运营商服务平台之间的充换电服务信息交换,以及电动汽车充换电服务平台与第三方服务及管理平台之间的信息交换。不同运营服务平台交互的服务有平台认证、用户认证、设备认证、业务策略、充电策略、充电业务、充电订单、订单对账等。
所有数据传输接口均采用 HTTP(S) 接口,每个接口的 URL 均采用格式定义:http(s)://[域名]/evcs/v[版本号]/[接口名称]
。所有接口均使用 HTTP(S)/POST 方式传输参数,采用 JSON 的方式,传输过程中应包含消息头和消息主体两部分。消息主体由运营商标识(OperatorID)、参数内容(Data)、时间戳(TimeStamp)、自增序列(Seq)和数字签名(Sig)组成。
T/CEC 102.4 主要起草单位为普天新能源、特来电、国家电网等。此规范在国家电网公司、普天新能源有限公司等主流电动汽车充电服务运营商得到广泛应用。中国向国际电工委员会提出国际标准提案并得到批准,现已成为了国际标准。
安全威胁
笔者曾多次为大型充电运营商挖掘充电桩漏洞,发现当前充电桩的防护能力较弱,存在较多的安全隐患。充电桩的国家安全标准正在制定中,但团标 《T/CEC 208—2019 电动汽车充电设施信息安全技术规范》已发布 2 年,笔者也有幸参与过此标准的制定过程。
充电基础设施面临的主要的安全威胁可分为三类充电桩安全、通信安全、云平台安全。
充电桩安全
充电基础设施中遭受攻击首当其冲就是充电桩,充电桩厂商鱼龙混杂,安全能力参差不齐。充电桩数量庞大,且与用户直接接触,攻击面较多。
-
HMI 界面弱口令
从 HMI 界面可以进入充电桩的系统配置页面,在里面能够配置各类参数,如设置网络、修改平台地址、调试等。 弱口令是老生常谈,但也屡见不鲜。 -
系统/应用安全
充电桩多采用嵌入式 Linux 系统,系统使用的各类组件可能存在已知漏洞,各类服务配置可能存在缺陷。 -
硬件安全
- 调试接口(串口、网口),未做防护
- 固件易被提取分析
通信安全
除了上文提到的 BMS、COPP、T/CEC 102.4 等通信协议安全外,还有板载协议的安全,如读卡器使用的 RS232 等。大部分的通信都对数据加密进行了定义,不安全的使用加密手段也可能带来安全威胁。此外基于通信消息上可能还有业务逻辑上的缺陷,如通过伪造 VIN 码实现免费充换电等。
云平台安全
ECMP(电动汽车充电监控运营管理平台,EV CHARGING MANAGEMENT PLATFORM) 面临的安全风险与传统业务的云服务平台差异不大,主要面临的威胁有 WEB 组件漏洞、主机漏洞、服务配置不当、逻辑漏洞等。
云平台被攻陷会造成大量的数据泄露,涉及大量的个人隐私泄露,如姓名(昵称)、余额、充电历史记录(时间、地点)等。
历史漏洞
从 汽车信息安全事件时间轴 了解到,充电桩曾多被攻陷。以下是其中三个比较典型的漏洞。
-
施耐德充电桩被攻陷
今年安全研究员 BaCde 与 Kevin2600(星舆实验室成员 高级安全研究员) 针对施耐德充电桩展开漏洞挖掘,最终实现了在无用户交互场景下的远程 Root shell 的获取。研究成果已在今年 DEFCON 黑客大会上公开 。其中两个高危漏洞为:
CVE-2021-22707:Web 后台存在硬编码,在cookie中添加 CURLTOKEN=b35fcdc1ea1221e6dd126e172a0131c5a;SESSIONID=admin 可以绕过登录认证,获取 Web 后服务的管理员权限。
CVE-2021-22708:固件验签算法存在缺陷,攻击者精心构造的恶意升级包能够绕过校验验证。通过刷入恶意固件,能够获取充电桩的 Root Shell。
-
网约车司机使用“捏枪法”、“卡秒法”半年窃电 382 次获刑
北京网约车司机董某利用国家电网充电软件的漏洞,使用“捏枪法”、“卡秒法”实现免费或低价充电,半年的时间偷电 382 次。北京市大兴区人民检察院以盗窃罪、传授犯罪方法罪对其提起公诉,董某被法院判处有期徒刑1年,并处罚金 1000 元。
“捏枪法”:利用 e充电 APP 扫描充电桩上的二维码,之后支付 0.5 或 1 元,等待数秒后,再将充电枪连接电动车。接着按一下充电枪上的开关,如果充电桩上的充电指示灯亮着表示窃电成功,电桩会给电动车充电且不进行计费。
“卡秒法”:利用 e充电 APP 扫描充电桩上的二维码,然后支付 0.5 或 1 元,等数秒后再按插在车上的充电枪开关,充电桩屏幕显示开始计费并且显示秒数,等 10 秒然后点击屏幕的返回键,再用 e充电 扫一遍充电桩上的二维码,如果充电桩的充电指示灯亮着表示窃电成功,反之意味着窃电失败,需要重新尝试。 -
卡巴斯基发现 ChargePoint 家用充电桩多个漏洞
2018 年卡巴斯基在 ChargePoint 的家用充电桩上发现多个漏洞,允许远程攻击者调整充电电流以及随时停止汽车的充电过程,从而导致潜在的物理损坏和经济损失。该家用充电站支持 WiFi 和蓝牙无线技术,用户可通过 iOS 及 Android 平台的移动应用程序远程控制充电过程。研究人员发现该设备的 Web 服务器存在证书安全问题、缓冲区溢出等漏洞。
总结
本文介绍了充电基础设施的架构与通信协议,总结了充电基础设施面临的安全风险,列举了充电桩被攻陷的案例。
参考
- 汽车信息安全事件时间轴
- 电动汽车充电设施信息安全技术规范
- 新能源汽车充电桩配套供应商大全
- 充电桩解决方案-充电桩计费控制单元
- 想参与国家电网充电桩招标?那可不能没有它。
- 《CCTIA-充电桩与运营平台通讯协议》
- 《T/CEC 208—2019 电动汽车充电设施信息安全技术规范》
- 《NB/T 33001-2010:电动汽车非车载传导式充电机技术条件》
- 《非车载整车直流充电机通用技术规范》
- 《GB/T 27930-2015 电动汽车非车载传导式充电机与电池管理系统之间的通信协议》
- 《T/CEC 102.4-2016 电动汽车充换电服务信息交换》
- 本文作者: 饭饭
- 本文来源: 奇安信攻防社区
- 原文链接: https://forum.butian.net/share/744
- 版权声明: 除特别声明外,本文各项权利归原文作者和发表平台所有。转载请注明出处!