自主可信网联汽车充电桩系统*
2023-12-28霍奕戎范克科
霍奕戎,范克科,欧 嵬
(1.中国人民大学附属中学,北京 100080;2.海南大学,海南 海口 570228)
0 引 言
近几年,我国新能源汽车产业相关政策不断出台,2020 年10 月20 日,国务院印发《新能源汽车产业发展规划(2021—2035 年)》,指出发展新能源汽车是我国从汽车大国迈向汽车强国的必由之路,是应对气候变化、推动绿色发展的战略举措;2022 年1 月10 日,国家发展改革委、国家能源局等多部门联合印发《国家发展改革委等部门关于进一步提升电动汽车充电基础设施服务保障能力的实施意见》[1]。习近平总书记多次强调:“发展新能源汽车是我国迈向汽车强国的必由之路。”推动汽车从单纯的交通工具向移动智能终端、储能单元和数字空间转变,带动能源、交通、信息通信基础设施改造升级,促进能源消费结构优化、交通体系和城市运行智能化水平提升,对建设清洁美丽世界、构建人类命运共同体具有重要意义。
“十三五”期间,我国充电基础设施实现了跨越式发展,充电技术快速提升,标准体系逐步完备,产业生态稳步形成,建成世界上数量最多、辐射面积最大、服务车辆最全的充电基础设施体系。截至2022 年1 月,全国总计上报公共类充电桩117.8 万台,环比增加3.1 万台,1 月保有量同比增长45.2%。但就目前而言,充电桩产业快速发展的背后仍存在居住社区建桩难、公共充电设施发展不均衡、用户充电体验有待提升、行业质量与安全监管体系有待完善等突出问题[2],亟须加快相关技术、模式与机制创新,进一步提升充电服务保障能力。
首先,当前电动汽车配套服务系统智能化水平不高,运营方式的局限性和充换电车辆服务需求不断增长的矛盾越来越凸显;其次,目前的充电桩服务系统侧重于满足用户需求,对充电桩的远程监控、使用者的身份验证以及用户隐私信息保护缺乏安全考量[3];最后,充电桩厂商的关注点更多集中于硬件安全,例如锂电池合规性、充电桩过充等方面,忽略了新能源汽车智能化进程中凸显出的云端漏洞[4-7]。这些导致充电桩及其配套服务云平台[8]漏洞频出,安全攻击层出不穷[9-10]:
(1)2018 年,施耐德电气有限公司发布安全公告,该公司旗下电动汽车充电桩产品EVLink Parking 被曝出多个安全漏洞:硬编码凭证漏洞CVE-2018-7800、代码注入漏洞CVE-2018-7801 以及结构化查询语言(Structured Query Language,SQL)漏洞CVE-2018-7802。攻击者可通过以上漏洞运用非法手段获取系统或者设备的非法访问权限,对系统正常用户及其云端系统具有极大的危害性。
(2)2020 年,GeekPwn2020 国际安全极客大赛中,腾讯的Blade Team 团队在比赛现场实现了对“无感支付”式直流式充电桩的漏洞攻击演示:仅需要获得模拟受害者的车辆身份标识,并使用特殊设备,利用电动汽车电池管理系统(Battery Management System,BMS)与直流充电桩通信协议中的身份认证漏洞,就能轻松完成盗刷操作。
(3)充电桩运营平台在整个充电流程中涉及充电桩启停管控以及包括用户金融账户、身份信息在内的敏感隐私信息,而大多数充电桩运营平台对充电桩没有设置用户访问控制策略,边界防护措施薄弱,安全配置策略缺失,且运维平台一般暴露在公网中,受攻击的可能性较大,极易造成用户敏感信息的泄露;设备管理方面,在充电基础设施进行启动登录、移动终端登录、运营平台访问等过程中未使用身份认证管理或在登录过程中使用弱口令,容易造成信息泄露或篡改,甚至不可估量的损失。
针对上述问题,基于我国充电桩产业信息安全现状[11-19],设计实现自主可信网联汽车充电桩系统,致力提升用户充电体验、完善充电桩安全监管体系、助力信息基础设施建设。
本文贡献包括:
(1)通过商用密码算法及其应用体系,对用户信息、充电桩信息和超文本传输协议(Hyper Text Transfer Protocol,HTTP)请求报文等数据进行加密,使用SM2+SM3 对数据进行数字签名,保障数据的机密性与完整性[20-21];在散列消息身份验证码(Hashed Message Authentication Code,HMAC)密钥交换过程中使用临时交互号N 与标识符ID 来验证双方的身份,抵御中间人攻击。
(2)利用联盟链技术不可篡改、去中心化、可追溯等特点,进行链上密钥分配与管理。在链上密钥分配时,使用基于SM3 的HMAC 算法,确保只有拥有HMAC 密钥且通过区块链CA 认证的实体才能获取密钥,保障密钥的唯一性与可认证性。
(3)建立新的网络安全边界[22],实现访问实体的强身份认证;在边界防护、通信传输、身份鉴别、数据保密等方面,进一步收窄系统暴露面,更细粒度地保障业务系统安全[23]。
本文首先描述了方案的整体架构、阐述了主要功能模块;其次通过实验验证了所提方案的Web 应用、区块链系统的性能;最后总结全文,并提出了未来工作展望。
1 网联汽车充电桩方案设计
1.1 整体架构
如图1 所示,网联汽车充电桩系统包括访问实体、安全网关、云平台应用服务、策略控制中心、云平台安全防护体系支撑组件5 大模块。
图1 整体架构
1.1.1 访问实体
根据所处网络域环境,将访问实体划分为云平台外网实体和云平台内网实体。云平台外网实体包括已投入使用的充电桩设备、使用相关服务的普通用户和维修人员等实体。云平台内网实体则包括软件和硬件开发人员、服务运维人员和测试人员等。
1.1.2 安全网关
安全网关作为实体访问云平台的唯一入口,负责对访问实体进行身份识别与访问控制,网关能够将访问实体与平台资源隔离开来,使云平台应用服务隐藏于零信任网关之后,大大减少攻击面[24-25]。同时,采用先认证后访问的方式,只有当访问实体被认证为合法身份后,才能访问云平台的应用服务。此外,根据策略控制中心返回的评估结果,对访问实体进行访问管理。网关与访问实体和云平台之间的通信使用商用密码安全套接字协议(Secure Sockets Layer,SSL)保护,并通过SM2、SM3、SM4 保障数据的完整性、可追溯性以及抗抵赖性。
1.1.3 云平台应用服务
云平台应用服务由云平台的各项应用服务封装而成,分为公开服务和内网服务。其中,公开服务面向所有实体开放,具有良好的耦合度,负责对通过零信任安全网关的合法流量请求进行响应,提供相应服务;内网服务则只对通过强身份认证的内网域环境实体开放,外网域环境实体或未通过身份认证的内网域环境实体将无法访问相关资源[26-28]。
1.1.4 策略控制中心
该模块接收由安全网关所记录的实体访问行为事件,并将行为事件上链[29],保障行为事件的不可篡改性与可追溯性。同时,决策引擎将根据行为事件和预设安全策略配置对访问实体进行持续验证、评估与分析,提供场景和风险感知的动态授权。
1.1.5 云平台安全防护体系支撑组件
云平台安全防护体系支撑组件主要由密码基础设施、区块链管理、日志审计和权限管理4 个子模块组成,负责终端设备与访问实体的证书签发服务和区块链网络的管理,实现了对网络出入站流量与服务端设备运行环境和运行状态的实时监控[18,30]。同时,根据最小权限原则,将完整权限进行细粒度分级,根据访问实体的身份信息和可信任程度来管控其权限等级,实现安全高效的权限控制机制[31]。
1.2 主要功能模块
1.2.1 强身份认证
云平台基于B/S 架构,通过严格的身份认证保障系统的安全性与操作的合法性[32]。身份认证模块由前后端不同的处理逻辑实现。
后端的身份认证主要基于挑战/响应的双向认证机制和公钥证书,实现对终端与平台的强身份认证。挑战/响应认证机制是一系列协议的统称,在该系列协议中,其中一方提出问题(挑战),另一方提供有效的答案并进行身份验证(响应),只有答案有效才能通过验证[33],详细认证流程如图2 所示。
图2 双向认证流程
挑战/响应的双向认证具体步骤如下:首先,终端尝试连接至云平台,身份认证开始。终端生成一个随机数R1作为响应值,并将终端证书和R1发送到云平台的网关。然后,网关验证接收到的证书,并使用SM2 和网关私钥对R1进行签名,得到签名值Sig1,并将其证书和Sig1发送到终端。当终端接收到网关证书后,对其进行验证。如果证书有效,终端将根据证书上携带的网关公钥来验证Sig1;否则,终端对云平台的身份认证失败,通信终止。当上述过程结束时,网关生成一个随机数R2作为响应值,并将其发送给终端。接下来,终端用其私钥对R2进行签名,并将签名发送到网关。最后,网关根据终端的证书验证Sig2。如果Sig2有效,则成功建立连接。否则,连接建立失败,通信终止。上述过程结束则身份验证过程完成。
后端还采用基于JSON Web Token(JWT)的访问控制和Spring Security 权限控制,Token 令牌随用户登录而自动获取。此外,根据管理员账户与普通用户账户的职能和需求的不同,通过Spring Security 来控制这两类账户的不同权限,只有管理员可以进行远程控制等操作,普通用户只能查看订单相关信息和访问状态监控模块,以保证云平台的安全性。权限控制原理如图3 所示。
图3 普通用户权限控制
1.2.2 数据管理
数据管理模块包括链上数据管理、数据端对端交互、数据持久化存储。
(1)链上数据管理。本系统中,区块链用于对称密钥管理与动态评估事件的存储,主要分为链上密钥管理和链上事件管理。
①链上密钥管理。采用Fabric 联盟链进行云平台与充电桩之间的密钥管理,主要包括密钥的临时存储与分发[34]。首先,在云平台本地环境上搭建并运行Fabric 网络主环境,将云平台作为拥有最高权限的管理员节点,本文所搭建的测试网络配置为2 个组织、1 个order 节点、4 个peer 节点与1 个CA 节点。首先,在充电桩上配置Fabric 基本服务,将充电桩作为拥有一般权限的普通节点加入云平台所搭建的区块链网络中,共同维护Fabric 网络的分布式账本;其次,云平台生成一对SM2 公钥和私钥,并将所生成的私钥物理写入充电桩的存储设备中,该方式中的私钥未参与通信,只有读取云平台与充电桩的存储设备才能获得私钥,一般情况下不存在泄露风险,从而起到安全地事先共享一对公私钥的作用;最后,充电桩需要与云平台进行密钥交换,该交换基于SM2 非对称加密,所交换的密钥为HMAC 所用密钥[35]。HMAC 密钥由云平台生成,通过临时交互号N与身份标识符ID来进行身份认证与防止重放攻击,能有效抵御中间人攻击,保证密钥的可认证性与保密性。其中,临时交互号N为采用真实物理环境中的随机事件作为种子所生成的强随机数,身份标识符ID由通用唯一识别码(Universally Unique Identifier,UUID)、序列号生成,交换流程如图4 所示。
图4 HMAC 密钥交换
②链上事件管理。采用联盟链存储评估事件,并使用不同于密钥管理的区块链网络组织进行管理,如图5 所示。每个节点持有一份数据账本,事件的不可篡改性由所有节点共同背书,保障事件的安全可信存储。由于在联盟链中,不同组织之间的数据不主动相通,从而实现密钥数据与事件数据的隔离存储,保障密钥数据与事件数据之间的独立性,避免数据管理混乱。
图5 区块链测试网络结构
(2)数据端对端交互。为了保证端对端之间的数据通信的机密性、完整性与可认证性,对参与通信的数据采用SM2、SM4 加密,利用SM2、SM3进行数字签名,数据块处理如图6所示。
数据发送端使用SM2对原始数据进行签名,并通过SM4对整个数据和签名进行加密后发送,接收端解密后使用公钥进行验签,成功则通信完成,否则返回异常报告。该方法有效保障了用户隐私安全与关键数据安全,处理流程如图7所示。
图7 前后端数据传输流程
由于充电桩本身的特殊性,重放攻击能够造成的危害极大,甚至能反复控制充电桩的通电、断电,损坏电动汽车电池,影响电网运行的稳定,对充电桩、电动汽车、电网设施的信息安全与物理安全造成严重威胁。因此,本文采用“时间戳+随机数”的方法来有效防止重复攻击。该方法在每一条HTTP 请求上增加了“timeStampCode”字段,该字段由时间戳与随机数拼接而成,时间戳根据当前生成时间与1970 年1 月1 日之间的时间差计算而成,精确至毫秒级别,能显著提高被成功猜测与碰撞的难度。随机数则使用强随机数,采用算法SHA1PRNG 生成,以CPU 的热噪声、磁盘读写的字节、键盘的敲击等现实环境中的随机事件产生的熵作为种子,具有密码学安全。校验流程如图8 所示。
图8 校验流程
(3)数据持久化存储。当请求校验成功后,开始执行请求内容,若请求中携带数据,则使用对称密钥对密文进行解密,使用相应公钥对数字签名进行验签,若验签成功,则数据未遭攻击,使用MySQL 数据库进行持久化存储。若验签失败,则数据完整性遭到破坏,废弃请求,拒绝访问。处理流程如图9 所示。
图9 请求数据签名验证
1.2.3 状态监控
(1)云平台服务监控。云平台服务监控基于Spring Boot 构建,使用Drools 规则引擎管理风控规则,其特点是配置简单并支持动态调整规则,是一套分析平台风险事件、动态调整风控规则、自动精准预警风险、保障平台安全运行的系统。服务监控模块的工作流程如图10 所示。
图10 服务监控流程
(2)充电桩服务监控。通过设置定时任务,使得充电桩在每个固定的时间间隔通过HTTP 请求向云平台持续汇报状态信息,包括硬件温度、充电桩所处状态(通电、断电、锁定)、累计充电量等数据,服务信息经过SM4 加密与SM2签名,并附加了时间戳+随机数,能有效保障信息的完整性与真实性,防止其受到中间人攻击与重放攻击。
(3)远程控制。由于充电桩部署在公开环境中,因此在实际场景中,充电桩的运行环境复杂多样,难免会遭遇某些特殊情况,如人为损坏、自然灾害、安全漏洞等,从而需要通过临时改变充电桩的运行状态来防止安全事故、财产损失,保护充电桩安全,基于此,亟需一种便捷高效的手段来实现对充电桩运行状态的灵活控制[5]。因此,本系统设计了远程控制模块,可以通过云平台来远程控制充电桩的运行状态,根据序列号来选择要进行控制的充电桩,再根据指令cmd 来改变充电桩状态,指令与充电桩的状态相对应,包括LOCK、ON、OFF、UNLOCK、SHUTDOWN、REBOOT,其中,LOCK 指令表示锁定充电桩,拒绝除云平台以外的其他所有实体的访问,不允许用户继续使用充电等功能,是拥有最高优先级的指令;ON 指令表示开启充电桩充电功能,使充电桩进入充电状态,但当充电桩处于LOCK 状态时,该指令无效;OFF指令表示关闭充电桩充电功能,使充电桩停止充电;UNLOCK 指令表示解锁充电桩,将充电桩从LOCK 状态切换为OFF 状态,重新允许其他实体的访问,充电桩再次进入正常工作状态;SHUTDOWN 指令表示彻底关闭充电桩系统,使充电桩进入关机状态;REBOOT 指令表示重启充电桩,常用于充电桩系统更新中。远程控制流程如图11 所示。
图11 充电桩远程控制流程
2 系统测试
2.1 测试环境
测试软件信息如表1 所示。测试服务器配置如表2 所示。客户端配置如表3 所示。
表1 测试软件信息
表2 服务器配置
表3 客户端配置
2.2 Web 应用性能
本实验的目的是检验本文所设计实现的云平台系统是否具有良好的性能,并考察在不同的用户负载下,云平台对用户请求做出的响应情况,以确保将来系统运行的安全性、可靠性和执行效率。
2.2.1 测试工具
采用LoadRunner 性能自动化测试工具测试系统性能。通过创建虚拟用户,在高并发量和模拟真实环境的背景下,实时监控系统性能。
2.2.2 测试描述
对云平台的功能进行测试。检验云平台功能的可用性与稳定性,在高并发、高负载的环境下测试Web 应用的性能,观察并统计吞吐量、CPU 使用率、内存占用率等指标。本次测试的要求是验证在30 分钟内完成2 000 次用户登录系统,然后执行开始充电、停止充电等基本业务,最后退出。
2.2.3 性能指标
各测试项目标值如表4 所示。
表4 Web 性能指标
(1)数据摘要。LoadRunner 进行场景测试结果收集后,首先显示该结果的一个摘要信息,如图12所示。概要中列出了“Statistics Summary(统计信息摘要)”“Transaction Summary(交易摘要)”以及“HTTP Responses Summary(HTTP 请求响应摘要)”等。以简要的信息列出本次测试结果。
图12 性能测试结果摘要
(2)结果分析。获得上述数据后,最新的测试结果记录如表5 所示。
表5 Web 测试结果
本次测试运行的最大并发数为237,总吞吐量为842 037 409 字节,平均每秒的吞吐量为451 979 字节,总的请求数为211 974,平均每秒的请求为113.781。从上述结果可知,本文所设计实现的云平台性能良好,满足预设性能指标基准,证明了该系统能够承载日常的并发数和并发量,并在一定程度的并发与负载压力下,仍能保障系统运行的稳定性和可用性。
2.3 区块链系统性能
2.3.1 测试工具
Hyperledger Caliper 是一个开源的通用区块链性能测试工具。Hyperledger 项目下设了性能及可扩展性工作组,负责对各种性能指标(TPS、延迟、资源利用率等)进行形式化、规范化的定义,Caliper 在设计时也采用了这一套性能指标体系并内嵌进框架中。Caliper 能够方便地对接多种区块链平台并屏蔽了底层细节,用户只需要负责设计具体的测试流程,即可获取Caliper输出的可视化性能测试报告。可见拥有这些特点的Caliper,能恰好满足项目中区块链部分对压测工具的需求。
2.3.2 测试标准
采用的区块链标准以《可信区块链第1 部分:区块链技术参考架构》《可信区块链第2 部分:总体要求和评价指标》《可信区块链第3 部分:测评方法》作为参考,其中区块链行业标准如表6 所示。
表6 区块链行业标准
2.3.3 测试描述
为验证链上数据管理模块的稳定性与可用性,本测试在高并发、高负载的环境下,分别以执行数据上链功能(数据存储)的invoke 合约与执行链上查询功能(数据获取)的query 合约作为测试对象,通过Caliper 实时监控测试过程中区块链系统的每秒交易接收量以及每秒交易上链量,控制发送的压力,维持两者数值始终大体一致,使得压力刚刚达到系统的瓶颈。对于尖峰冲击,则通过增加发送的压力,让系统每秒交易接收量达到每秒上链量的两倍,使得压力远远超过系统的瓶颈上限,观察系统在极端情况下的运转情况。测试方案如表7 所示。
表7 区块链测试方案
(1)数据摘要。invoke 合约与query 合约的测试结果分别如图13、图14 所示。
图13 invoke 合约测试结果
图14 query 合约测试结果
将数据汇总整理后如表8 所示。
表8 测试数据
(2)结果分析。采用Caliper 对区块链进行性能测试,对交易延迟场景进行了低负载测试,对系统吞吐量进行了高负载测试,使得压力达到系统的瓶颈,对尖峰冲击场景进行了超过瓶颈的2 倍流量冲击测试。Caliper 自动记录下设定好的时间点的数据,最终生成测试结果。如表8 中的Caliper 测试结果报告所示,本次测试的交易成功率为100%,交易失败率为0,对于invoke合约:发送速率为379 TPS,最大交易延迟为5.59 s,最小交易延迟为1.39 s,平均交易延迟为3.32 s,交易吞吐量为226 TPS;对于query 合约:发送速率为399 TPS,最大交易延迟为4.67 s,最小交易延迟为0.01 s,平均交易延迟为1.15 s,交易吞吐量为385 TPS。测试结果表明:本文所采用的区块链方案具有良好的稳定性,能够满足实际业务需求,确保链上数据管理功能的可用性,各项指标测试均符合行业标准。
本节对前文所提解决方案进行了具体实现,即云平台系统与区块链系统,并分别通过Web应用性能测试与区块链系统性能测试对所设计实现的云平台系统与区块链系统的性能进行详细测试。测试结果表明,通过本文方案所实现的云平台系统与区块链系统性能良好,各项指标均符合所参考的测试性能基准,在实验所设的高负载与高并发环境下,仍能保证系统功能的稳定性和可用性,能够满足实际业务需求,符合预期目标。
3 结 语
随着电动汽车充电设施的日益数字化和智能化,网联汽车充电桩的信息安全已成为不容小觑的问题。本文对网联汽车充电桩与管理云平台的安全开展了重点研究,设计实现了基于商用密码与区块链的网联汽车充电桩安全系统。可操作性方面,系统采用主流开发框架与科学设计模式,通过B/S 架构实现服务的解耦开发、便捷维护、安全升级和稳定访问,提升用户使用体验;安全性方面,系统采用商用密码算法SM2、SM3、SM4,基于国密版Fabric 联盟链进行链上密钥管理,保证充电桩数据的全生命周期安全。
下一步工作:①优化前端界面与组件样式,提升用户体验;②引入零信任技术,加强系统安全防护;③完善动态信任评估,加强身份认证策略。