CN110647138B - 基于改进蚁群算法的充电桩can总线协议的安全检测方法 - Google Patents
基于改进蚁群算法的充电桩can总线协议的安全检测方法 Download PDFInfo
- Publication number
- CN110647138B CN110647138B CN201910957928.1A CN201910957928A CN110647138B CN 110647138 B CN110647138 B CN 110647138B CN 201910957928 A CN201910957928 A CN 201910957928A CN 110647138 B CN110647138 B CN 110647138B
- Authority
- CN
- China
- Prior art keywords
- charging pile
- path
- message
- data
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 30
- 238000001514 detection method Methods 0.000 title claims abstract description 28
- 238000012360 testing method Methods 0.000 claims abstract description 26
- 239000003016 pheromone Substances 0.000 claims description 41
- 241000257303 Hymenoptera Species 0.000 claims description 13
- 230000007704 transition Effects 0.000 claims description 6
- 230000000694 effects Effects 0.000 claims description 3
- 239000003471 mutagenic agent Substances 0.000 claims description 3
- 238000009825 accumulation Methods 0.000 claims description 2
- 230000014759 maintenance of location Effects 0.000 claims description 2
- 238000000034 method Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 239000000654 additive Substances 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000002474 experimental method Methods 0.000 description 5
- 239000004973 liquid crystal related substance Substances 0.000 description 5
- 238000007726 management method Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- ZPUCINDJVBIVPJ-LJISPDSOSA-N ***e Chemical compound O([C@H]1C[C@@H]2CC[C@@H](N2C)[C@H]1C(=O)OC)C(=O)C1=CC=CC=C1 ZPUCINDJVBIVPJ-LJISPDSOSA-N 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- NTMYVTSWQJFCPA-UHFFFAOYSA-N (2-tert-butylpyrimidin-5-yl)oxy-ethoxy-propan-2-yloxy-sulfanylidene-$l^{5}-phosphane;[cyano-(4-fluoro-3-phenoxyphenyl)methyl] 3-(2,2-dichloroethenyl)-2,2-dimethylcyclopropane-1-carboxylate Chemical compound CCOP(=S)(OC(C)C)OC1=CN=C(C(C)(C)C)N=C1.CC1(C)C(C=C(Cl)Cl)C1C(=O)OC(C#N)C1=CC=C(F)C(OC=2C=CC=CC=2)=C1 NTMYVTSWQJFCPA-UHFFFAOYSA-N 0.000 description 1
- 238000012356 Product development Methods 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
- G05B23/0205—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
- G05B23/0218—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults
- G05B23/0224—Process history based detection method, e.g. whereby history implies the availability of large amounts of data
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24065—Real time diagnostics
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Small-Scale Networks (AREA)
- Selective Calling Equipment (AREA)
Abstract
本发明针对电动汽车充电桩CAN总线信息安全问题,提出了一种基于改进蚁群算法的充电桩CAN总线协议的安全检测方法。本发明通过改进最大最小蚁群算法来提高CAN协议模糊测试报文生成的效率,通过特定的变异方式,更改报文的相应字段,并通过CAN协议分析仪向充电桩CAN节点发送模糊测试报文,使得充电桩CAN协议的检测效率大幅提高。基于上述检测方法发现了目前电动汽车充电协议存在充电桩停机、拒绝服务攻击等安全问题。
Description
技术领域
本发明涉及控制局域网络技术领域,具体是一种基于改进蚁群算法的充电桩CAN总线协议的安全检测方法。
背景技术
在研究CAN总线协议安全检测方面,主要研究工作有:Charlie Miller和ChrisValasek自2013年以来发表了关于CAN网络协议安全性的研究报告。在该报告中,研究人员已经证明了他们通过CAN通信协议,能利用各种方法来远程控制目标汽车。他们通过CAN总线向车内ECU的节点发送假异常消息,从而达到控制汽车的目的。Charlie Miller和ChrisValasek提出了一种基于模糊测试技术的黑盒测试框架,从而对CAN-fd总线协议进行模糊测试。为了可以与CAN盒通信交互,他们设计了beSTORM的通信接口,通过这个设计接口成功地利用该工具进行Fuzzing,以实现控制OBD-II的福特翼虎和丰田普锐斯方向盘转向、制动、油门加速、控制仪表板和其它动作。于赫、秦贵和等人于2016年提出了一种车辆CAN总线异常检测方法,利用CAN总线信息熵发现安全问题。
然而以上工作主要针对汽车车载控制***,目前还没有针对电动汽车充电协议的安全检测工作。虽然Charlie Millerk和Chris Valasek提出了对车载网络进行Fuzzing的方案。但在该方案中,由于模糊测试报文生成的随机性,生成的报文通过协议规范的效率极低,导致CAN协议检测的效率大幅下降,被测目标响应的检测时间将急剧增长。
有关文献:Miller C,Valasek C.(2013)Adventures in Automotive Networksand Control Units.DEF CON 21Hacking Conference,Las Vegas,NV,2-4 August 2013,230-235.Ryosuke Nishimura,Ryo Kurachi,Kazumasa Ito,et al.Implementation ofthe CAN-FD Protocol in the Fuzzing Tool beSTORM[C].IEEE InternationalConference on Vehicular Electronics&Safety.IEEE,2016.Davis R I,NavetN.Controller area network(CAN)schedule ability analysis for messages witharbitrary deadlines in FIFO and work-conserving queues[J].Real-Time Systems,2007,35(03):239-272.News I,News A,News F,et al.Request for Comment onAutomotive Electronic Control Systems Safety and Security[J].GreenbergA.Hackers Remotely Kill a Jeep on the Highway–With Me in It[J].PakinamNoureldeen,Marianne A.Azer,Ahmed Refaat and Mahmoud Alam.Replay attack onlightweight CAN authentication protocol.2017 12th International Conference onComputer Engineering and Systems(ICCES),Cairo,2017,pp.600-606.于赫;秦贵和;孙铭会等.车载CAN总线网络安全问题及异常检测方法[J].吉林大学学报(工),2016,46(4):1246-1253.吴玲云;秦贵和;于赫.基于随机森林的车载CAN总线异常检测方法[J].吉林大学学报(理学版),2018,v.56,No.231(03):201-206.
发明内容
有鉴于此,本发明提出了一种基于改进蚁群算法的电动汽车充电桩充电协议安全检测方法,利用MMAS算法(Maximum and minimum ant colony algorithm,最大最小蚁群算法)构造模糊测试数据,优化变异数据生成方式,通过CAN协议分析仪将自主构造的数据包发送到充电桩与电动汽车之间的CAN总线上,通过观察充电桩的响应,来检测判断CAN协议的安全问题进而极大地提高了对电动汽车充电协议进行模糊测试的效率。
一种基于改进蚁群算法的充电桩CAN总线协议的安全检测方法,包括如下步骤:
第一步:以六边形的每一个顶点代表报文PGN7168的一个数据部分,6个节点中五种随机变异方式与其他的节点均有路径相连,每一条路径的初始值代表距离,将每个节点之间的距离初始化为一个较大的初始值,并且随机选择起始字节,再随机选择一样变异方式;
第二步:“蚂蚁”移动,以如下的概率选择下一个节点和变体:
将初始节点S置于蚂蚁K的解集CK中,蚂蚁K(K=1,…,m)按以下公式(1)和(2)状态转移规则,从节点i移至下一个节点j,并将j加入当前解集CK中,其中i,j均表示某一个数据段的某一种变异方式;
其中,表示转移概率,allowedk表示蚂蚁K下一步选择的地方,τij表示边(i,j)上残留的信息量,也就是两个数据段的两个变异方式之间的信息素浓度,μij表示边(i,j)的能见度,是一个启发函数,其值越大,表示从该变异方式转移到下一个变异方式的期望程度越大,q是蚂蚁在选择路径时所引进的随机参数,q0为初始设定的参数,α为信息素重要程度因子,其值越大,表明信息素的强度影响越大,β为启发函数重要因子,其值越大,表明启发函数影响越大;
第三步:重复第二步,直到遍历完所有6个节点,自此报文PGN7168的数据段的六个部分均已得到变异;
第四步:将变异的数据包发送给充电桩,根据路径更新规则,更新各个节点之间路径的长度,记录发现的问题或者漏洞;
第五步:统计路径长度,选择找出当前循环中最优解的蚂蚁进行信息素更新,其信息素的更新方式如公式(3)(4)所示:
τij(t+1)=ρτij(t)+Δτij (3)
每次迭代期间,仅选择该迭代期间获得最佳路线的路径用于信息素更新,同时为避免搜索停滞,将每条边的信息素浓度限制在[τmin,τmax]之内,上式中的ρ为信息素轨迹的保留系数,为迭代最优解或是全局最优解的值;
第六步:重复第一步到第五步的步骤,直至循环结束,即已经达到足够的迭代次数或是已经收敛,然后统计在这些步骤结束后得到的问题和漏洞。
进一步的,第一步中五种变异方式具体为:
2)DataElementRemoveMutator:将报文的某一节数据段移除;
3)StringMutator:将报文的某一节数据段用设计的字符表中的随机某一段替代;
4)DataElementDuplicateMutator:将报文的某一段数据重复n遍;n是随机数;
6)BlobBitFliperMutator:将报文的某一段二进制数据的n位,0变成1,1变成0;n是一个随机数;
7)NO_Mutator:该数据段不采用变异器;
6个节点中五种随机变异方式与其他的节点均有路径相连,但是同一节点中的随机方式并没有路径连接。
进一步的,在最大最小蚁群算法中,需要对信息素的大小进行设定,其最大最小信息素的算法公式如(5)、(6)所示:
其中,L(t)中的t表示的是迭代最优路径长度,该路径长度即最优路径上所有距离之和,信息素挥发系数用ρ表示,信息素量在各条路径上将控制在[τmin,τmax]在此范围之内,当信息素的浓度超过这个范围时,浓度小于τmin时取τmin,大于τmax时取τmax。
进一步的,第二步中α取值为3,β取值为0.3。
进一步的,第五步中设置ρ<1,以避免路径上轨迹量的无限累加。
进一步的,第四步中的路径更新规则如下:
(1)当充电桩接受了报文,并且进行下一阶段时,本次循环走过的路径上所有的距离减1,该步骤是对全局的距离变量减1同时对相应的临时距离变量也要减1。
(2)当充电桩返回错误报文时,本次循环走过的路径上所有的距离减2,该规则中对全局的距离变量减1同时对算法的相应的临时距离变量也要减2。
(3)当充电桩宕机,不再发包时,本次循环走过的路径上所有的距离减3,该规则中对全局的距离变量减2同时对相应的临时距离变量也要减3。
本发明通过改进最大最小蚁群算法来提高CAN协议模糊测试报文生成的效率,通过特定的变异方式,更改报文的相应字段,并通过CAN协议分析仪向充电桩CAN节点发送模糊测试报文,使得充电桩CAN协议的检测效率大幅提高。基于上述测试方法发现了目前电动汽车充电协议存在充电桩停机、拒绝服务攻击等安全问题。
附图说明
图1是本发明CAN数据帧格式;
图2是本发明蚁群算法构造随机数据的原理示意图;
图3是本发明电动汽车和充电桩之间整个充电过程示意图。
具体实施方式
下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述。
为了发现充电桩CAN总线的漏洞,本发明采用了一种模糊测试的检测方案。模糊测试,也称为Fuzzing,常常用于检测软件或计算机***的安全漏洞。其核心思想是将自动或半自动生成的随机数据输入到一个程序中,并监视程序异常,如崩溃,断言失败,以发现可能的程序错误,比如内存泄漏。Fuzzing主要有黑盒、白盒和灰盒测试三种。由于大部分测试情况下,不知道充电桩电子控制单元内部的体系架构,而电动汽车和充电桩CAN通信协议遵循国标《GB/T27930-2015电动汽车非车载传导式充电机与电池管理***之间的通信协议》,因此基于灰盒的模糊测试是一种比较有效的方式。
在模糊测试的时候,如果一味地使用完全随机的方式,毋庸置疑会大幅地降低报文正确通过协议的规范,并且可以被目标***接收的可能性,这种方式效率极低,难以满足实际的需求,一般的做法会基于变异的方式,通过更改正确报文的某一些字段,以此来提高数据报文通过的可能性,但是变异方式多,数据段的数量也不少,如何选取更加适合的方式,也是一个问题所在,本发明基于变异的方式,并结合MMAS(最大最小蚁群算法)来提高模糊测试的报文生成,以此提高报文的生成效率。
在电动汽车充电站的CAN协议中,物理层应符合ISO11898-1标准。SAE J1939-11:2006(商用车控制***局域网络数据链路层标准)中对CAN总线协议有关物理层的规定:充电桩和BMS(Battery Management System,电池管理***)之间的通信应使用独立的CAN接口。
在我国有关充电通信的标准文件,在数据链路层方面,帧格式是采用CAN拓展帧的29位标识符。其协议如图1所示,在国家标准文件中对数据格式有如下的几个要求:
1)P代表了优先权:从最高0设置到最低7。
2)R作为保留位,在这个标准中值设置为0。
3)DP是数据页,在该标准中也设置为0。
4)PF用来确定PDU(Protocol Data Unit,协议数据单元)格式,是数据域对应的参数组编号。
5)PS值表示目标地址,PS值取决于PDU格式。
6)SA为源地址:发送此报文的源地址。
7)DATA是数据域,当参数数据长度小于等于8字节,按照国标规定的报文长度进行传输。当参数组数据长度9-1785字节时,数据传输需多个CAN数据帧,通过传输协议功能管理能力来建立和关闭多包参数组的通信(后文的蚁群算法构造随机数据就是这一部分)。
PS(特定PDU):PS(特定PDU)的定义在于PDU的格式。特定PDU属于8位域,通过PDU的格式可以判断出其是组扩展还是目标地址,如表1为PDU的格式类别。
表1 PDU的格式类别
在标准文件中,充电机的地址值为56H,BMS即电动汽车的值为F4H。CAN总线规范支持五种类型的信息:命令,请求,广播/响应,确认和组功能。具体定义遵循SAE J1939-21:2006中5.4信息类型的相关规定。
表2 PGN7168的数据部分的内容
从表2中可以看到,每个SPN(Suspect Parameter Number,汽车局域网络CAN里用到的可疑参数编号,用来确定数据域中具体数据的含义)数据都有各自的含义和内容,它们代表了目标***不同的处理方式,如果只是简单对整个数据段进行同一种变异,无疑会降低报文通过的成功率,故对于这些字段应采用不一样的变异方式。为了更好的说明如何使用蚁群算法改进模糊测试,下面以PGN7168(即BMS统计数据报文)为例,实验中决定将该报文6个部分的数据(除了包含上表中5个有意义的数据部分外,还包括1个用FF填充的剩余部分)分为6个组,如图2所示。
图2中的六边形的每一个顶点代表了报文PGN7168的一个数据部分(即一个SPN),SPN是每一个数据段的编号,具体意义可以参照表2,图中展示了五种变异方式在***中的名称,接下就对这几种变异方式做一个简单的介绍:
3)DataElementRemoveMutator:将报文的某一节数据段移除。
4)StringMutator:将报文的某一节数据段用设计的字符表中的随机某一段替代(这里的字符表是直接采用的peach3生成)。
5)DataElementDuplicateMutator:将报文的某一段数据重复n遍(n是随机数)。
8)BlobBitFliperMutator:将报文的某一段二进制数据的n位,0变成1,1变成0(n是一个随机数)。
5)NO_Mutator:该数据段不采用变异器。
6个节点中五种随机变异方式与其他的节点均有路径相连,但是,同一节点中的随机方式并没有路径连接,这保证了“蚂蚁”只可以在多种变异方式中选择一种方式作为该字节的变异方式,当“蚂蚁”走完6个节点以后,一个报文的数据段就变异完成,可以进行发送。
图2的每一条路径都有初始值,它代表了“距离”,初始值在最开始的时候是相同的,是一个较大的值但经过多轮的变化,它们也都会有相应的改变。
算法中路径更新规则如下:
(1)当充电桩接受了报文,并且进行下一阶段时,本次循环走过的路径上所有的距离减1,该步骤是对全局的距离变量减1同时对相应的临时距离变量也要减1。
(2)当充电桩返回错误报文时,本次循环走过的路径上所有的距离减2,该规则中对全局的距离变量减1同时对算法的相应的临时距离变量也要减2。
(3)当充电桩宕机,不再发包时,本次循环走过的路径上所有的距离减3,该规则中对全局的距离变量减2同时对相应的临时距离变量也要减3。
从图2中可以看到如果将6个节点中的每个变异方式看成一个坐标点,则用节点作为x轴和变异方式作为y轴即可确定一个二维平面中的点,只不过位于同一x轴上的点之间是没有距离值的(实际上就是同一个字节中,变异方式之间没有可到达的路径),这可以通过一个数组用来存放走过的节点,每次选择新的节点时,会进行比较,确保每次走过的节点都是新的,虽然图2可以看做是一个二维平面,但一个点实际上是由两个变量来表示的,一个是该点所处的数据段,一个是该点所代表的变异方式,用两个变量就可以表示一个唯一的变异方式,而距离的表示是在两个点之间的,故采用4维数组,来作为路径间“距离”的表示,其声明如下:
Double
g_Distance[N_CITY_COUNT][N_MUT_STRAG][N_CITY_COUNT][N_MUT_STRAG]
如字面所表示的,用该数组就可以完整的表示路径间的“距离”。尽管4维数组会加大程序的复杂度,但是在该发明中,每一维都是个位数,其实际耗费的时间并不是特别的多,因此上文中提到的距离变量实际上就是一个存储有所有点距离的数组,同样的信息素的表示也采用相同的方式来处理。
一种基于改进蚁群算法的充电桩CAN总线协议的安全检测方法,包括如下步骤:
第一步:以六边形的每一个顶点代表报文PGN7168的一个数据部分,6个节点中五种随机变异方式与其他的节点均有路径相连,每一条路径的初始值代表距离,将每个节点之间的距离初始化为一个较大的初始值,并且随机选择起始字节,再随机选择一样变异方式;
第二步:“蚂蚁”移动,以如下的概率选择下一个节点和变体。(注意,节点和节点之间的路径实际上是各个节点之间变异方式的路径,但同一节点内的并无路径)。
将初始节点S置于蚂蚁K的解集CK中,蚂蚁K(K=1,…,m)按以下公式(1)和(2)状态转移规则,从节点i移至下一个节点j,并将j加入当前解集CK中,其中i,j均表示某一个数据段的某一种变异方式;
其中,表示转移概率,allowedk表示蚂蚁K下一步选择的地方,τij表示边(i,j)上残留的信息量,也就是两个数据段的两个变异方式之间的信息素浓度,μij表示边(i,j)的能见度,是一个启发函数,其值越大,表示从该变异方式转移到下一个变异方式的期望程度越大,q是蚂蚁在选择路径时所引进的随机参数,q0为初始设定的参数,α为信息素重要程度因子,其值越大,表明信息素的强度影响越大,β为启发函数重要因子,其值越大,表明启发函数影响越大;
第三步:重复第二步,直到遍历完所有6个节点,自此报文PGN7168的数据段的六个部分均已得到变异;
第四步:将变异的数据包发送出去,根据前文提供的路径更新规则,更新各个节点之间路径的长度。这么做是为了使得效果显著的变异方式的组合方式可以在后续迭代中更容易被选择到,记录发现的问题或者漏洞。
第五步:统计路径长度,选择找出当前循环中最优解的蚂蚁(迭代最优解)进行信息素更新。其信息素的更新方式如(3)(4)所示:
τij(t+1)=ρτij(t)+Δτij (3)
每次迭代期间,仅选择该迭代期间获得最佳路线的路径用于信息素更新,同时为避免搜索停滞,将每条边的信息素浓度限制在[τmin,τmax]之内,上式中的ρ为信息素轨迹的保留系数,为迭代最优解或是全局最优解的值;
在最大最小蚁群算法中,需要对信息素的大小进行设定,其最大最小信息素的算法公式如(5)、(6)所示:
在公式中,L(t)中的t表示的是迭代最优路径长度,该路径长度,即最优路径上所有“距离”之和,而“距离”在前文已有定义。信息素挥发系数用ρ表示,信息素量在各条路径上将控制在[τmin,τmax]在此范围之内,当信息素的浓度超过这个范围时,浓度小于τmin就取τmin,大于τmax就取τmax。使用这种方法原因是,如果一条路径上的信息素含量比其他路径大得多,并且全部的蚂蚁都汇集于同一条路径上,这将导致算法不扩散,从而陷入局部最优状态。
第六步:重复第一步到第五步的步骤,直至循环结束,即已经达到足够的迭代次数或是已经收敛,此时可以统计在这些步骤结束后,得到的问题和漏洞。
CAN-USB分析仪是一种广泛使用的CAN总线检测设备,CAN-USB总线适配器(CANalyst-II)分析仪可视为标准CAN节点,是CAN总线产品开发、CAN总线设备测试和数据分析的有效工具。在本发明中,我们用CAN-USB分析仪实现充电桩CAN总线网络中的数据处理、数据通信和数据采集。
电动汽车和充电桩之间整个充电过程如图3所示,包括物理辅助完成,低压辅助上电,充电握手阶段,充电参数配置阶段,充电阶段,充电结束阶段六个阶段。在各阶段中,当充电机和BMS在指定时间内未收到来自对方的消息,或未收到正确的消息,就被判断为超时(超时意味着规定时段没有收到完整数据包或正确数据包),同时充电桩会将不符合协议规范的数据包抛弃。在故障排除过程中,根据故障类型执行处理也不同。在充电阶段过程中,如发生超时,则直接终止充电过程。
测试准备阶段将CAN盒连接到充电桩的ECU上,另一端直接连接到计算机。由于充电桩在每次充电过程中,需要通过TCU上的身份认证后,充电桩才能启动充电,为了避免每次CAN盒发送数据包的时候需要在TCU上刷卡,实验中将TCU与ECU的连接断开,并在ECU上之直接入液晶终端,该液晶终端起到TCU刷卡功能的作用,极大提高的实验过程中提取CAN报文以及模糊测试发送数据包的便捷性。将液晶终端接入后,其替代了充电桩TCU的部分功能。每次对充电桩进行CAN协议抓包和检测过程中,直接点击液晶终端屏幕上的刷卡充电按键即可。另外充电桩的充电枪直接与负载相连,实验中利用的是北京博电BMS模拟软件来模拟电动汽车充电***,该软件可以模拟电动汽车充电的各个阶段报文信息,并且可以解析所接收的消息。
检测过程分为充电握手、充电参数配置和充电阶段三个阶段。充电握手阶段主要执行充电器的识别和检测相关车辆信息,充电参数配置阶段主要执行需求设置参数检测。充电阶段一是开展充电业务逻辑检测,二是进行模糊测试。
因为充电桩对于ID是非常敏感,所以对于所有报文的ID部分,实验过程中是不会采用模糊测试进行变异的,此外充电桩对于有些报文是极其敏感的,一旦检测得到的结果不符合协议标准,充电桩就会马上停机,(即使只是发送一条该错误报文,也会让充电桩立即停止工作。)这对于实验中CAN总线的检测是非常的不利,无法持续不断的进行测试,所以在实验中对模糊测试时候要检测的报文进行分类,其中极其敏感的报文为表3所示:
表3检测过程中的敏感报文
以上报文在测试的时候并不会进行变异,其余的如充电桩与BMS的握手报文等,因为与充电阶段并无太大的关系,故也不会进行变异(变异报文的发送是利用CAN协议分析仪发送到充电桩CAN总线当中)。
综上,实验中变异的报文为如表4所示。
表4变异报文
利用MMAS算法对一款电动汽车充电桩协议测试结果如下:
(1)多帧报文的请求报文0x1CEC56F4,修改其数据段,极易引起充电桩停止工作,如将请求报文ID为0x1CEC56F4的报文的数据部分100D0002FF000600修改为100D0004FF000600,会导致充电桩多帧报文接受出错。
(2)在汽车开始充电的时候,发送BMS停止充电报文0x181956F4,会让刚刚进入的充电进程强制结束,产生拒绝服务攻击。
(3)充电桩对部分报文较为敏感,BRM,BCP,BCL三种报文稍作改变都会导致充电桩停机。如增加BCL报文的第二个数据部分SPN3073(电流需求)到一定程度后会导致充电机停机。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何属于本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (4)
1.一种基于改进蚁群算法的充电桩CAN总线协议的安全检测方法,其特征在于包括如下步骤:
第一步:以六边形的每一个顶点代表报文PGN7168的一个数据部分,6个节点中五种随机变异方式与其他的节点均有路径相连,每一条路径的初始值代表距离,将每个节点之间的距离初始化为一个较大的初始值,并且随机选择起始字节,再随机选择一样变异方式;
第二步:“蚂蚁”移动,以如下的概率选择下一个节点和变体:
将初始节点S置于蚂蚁K的解集CK中,蚂蚁K(K=1,…,m)按以下公式(1)和(2)状态转移规则,从节点i移至下一个节点j,并将j加入当前解集CK中,其中i,j均表示某一个数据段的某一种变异方式;
其中,表示转移概率,allowedk表示蚂蚁K下一步选择的地方,τij表示边(i,j)上残留的信息量,也就是两个数据段的两个变异方式之间的信息素浓度,μij表示边(i,j)的能见度,是一个启发函数,其值越大,表示从该变异方式转移到下一个变异方式的期望程度越大,q是蚂蚁在选择路径时所引进的随机参数,q0为初始设定的参数,α为信息素重要程度因子,其值越大,表明信息素的强度影响越大,β为启发函数重要因子,其值越大,表明启发函数影响越大;
第三步:重复第二步,直到遍历完所有6个节点,自此报文PGN7168的数据段的六个部分均已得到变异;
第四步:将变异的数据包发送给充电桩,根据路径更新规则,更新各个节点之间路径的长度,记录发现的问题或者漏洞;
第五步:统计路径长度,选择找出当前循环中最优解的蚂蚁进行信息素更新,其信息素的更新方式如公式(3)(4)所示:
τij(t+1)=ρτij(t)+Δτij (3)
每次迭代期间,仅选择该迭代期间获得最佳路线的路径用于信息素更新,同时为避免搜索停滞,将每条边的信息素浓度限制在[τmin,τmax]之内,上式中的ρ为信息素轨迹的保留系数,为迭代最优解或是全局最优解的值;
第六步:重复第一步到第五步的步骤,直至循环结束,即已经达到足够的迭代次数或是已经收敛,然后统计在这些步骤结束后得到的问题和漏洞;
第一步中五种变异方式具体为:
1)DataElementRemoveMutator:将报文的某一节数据段移除;
2)StringMutator:将报文的某一节数据段用设计的字符表中的随机某一段替代;
3)DataElementDuplicateMutator:将报文的某一段数据重复n遍;n是随机数;
4)BlobBitFliperMutator:将报文的某一段二进制数据的n位,0变成1,1变成0;n是一个随机数;
5)NO_Mutator:该数据段不采用变异器;
6个节点中五种随机变异方式与其他的节点均有路径相连,但是同一节点中的随机方式并没有路径连接;
在最大最小蚁群算法中,对信息素的大小进行设定,其最大最小信息素的算法公式如(5)、(6)所示:
其中,L(t)中的t表示的是迭代最优路径长度,该路径长度即最优路径上所有距离之和,信息素挥发系数用ρ表示,信息素量在各条路径上将控制在[τmin,τmax]在此范围之内,当信息素的浓度超过这个范围时,浓度小于τmin时取τmin,大于τmax时取τmax。
2.如权利要求1所述的基于改进蚁群算法的充电桩CAN总线协议的安全检测方法,其特征在于:第二步中α取值为3,β取值为0.3,q0取值为0.3。
3.如权利要求1所述的基于改进蚁群算法的充电桩CAN总线协议的安全检测方法,其特征在于:第五步中设置ρ<1,以避免路径上轨迹量的无限累加。
4.如权利要求1所述的基于改进蚁群算法的充电桩CAN总线协议的安全检测方法,其特征在于:为达到足够的循环次数,达到较好的测试效果,第四步中的路径更新规则如下:
(1)当充电桩接受了报文,并且进行下一阶段时,本次循环走过的路径上所有的距离减1,该步骤是对全局的距离变量减1同时对相应的临时距离变量也要减1;
(2)当充电桩返回错误报文时,本次循环走过的路径上所有的距离减2,该规则中对全局的距离变量减1同时对算法的相应的临时距离变量也要减2;
(3)当充电桩宕机,不再发包时,本次循环走过的路径上所有的距离减3,该规则中对全局的距离变量减2同时对相应的临时距离变量也要减3。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910957928.1A CN110647138B (zh) | 2019-10-10 | 2019-10-10 | 基于改进蚁群算法的充电桩can总线协议的安全检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910957928.1A CN110647138B (zh) | 2019-10-10 | 2019-10-10 | 基于改进蚁群算法的充电桩can总线协议的安全检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110647138A CN110647138A (zh) | 2020-01-03 |
CN110647138B true CN110647138B (zh) | 2021-02-02 |
Family
ID=69012516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910957928.1A Active CN110647138B (zh) | 2019-10-10 | 2019-10-10 | 基于改进蚁群算法的充电桩can总线协议的安全检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110647138B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114465938A (zh) * | 2022-01-05 | 2022-05-10 | 国网湖北省电力有限公司电力科学研究院 | 一种基于模糊测试的充电桩can协议的渗透测试方法、***及存储介质 |
CN115550228A (zh) * | 2022-08-23 | 2022-12-30 | 深圳开源互联网安全技术有限公司 | 车联网总线通信网络测试方法及*** |
CN115550069B (zh) * | 2022-11-29 | 2023-05-09 | 国网电动汽车服务(天津)有限公司 | 一种电动汽车智能充电***及其安全防护方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105320125A (zh) * | 2015-10-13 | 2016-02-10 | 新安乃达驱动技术(上海)有限公司 | 基于数据共享的电动车用控制*** |
CN106779250A (zh) * | 2017-01-16 | 2017-05-31 | 浙江大学城市学院 | 一种基于新型优化模型的孤立分布式电网配置方法 |
CN106875075A (zh) * | 2015-12-14 | 2017-06-20 | 贵州电网有限责任公司电力科学研究院 | 一种基于出行行为学的电动汽车充电站布点方法 |
CN109784558A (zh) * | 2019-01-11 | 2019-05-21 | 浙江工业大学 | 一种基于蚁群算法的电动汽车充电调度优化方法 |
CN110263976A (zh) * | 2019-05-22 | 2019-09-20 | 广东工业大学 | 一种在多种充电方式并存环境下的电动汽车充电路径规划方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103024856B (zh) * | 2012-12-31 | 2015-08-26 | 上海交通大学 | 位置启发因子在无线自组网蚁群节能路由建立的应用方法 |
CN104618982A (zh) * | 2015-01-08 | 2015-05-13 | 重庆邮电大学 | 基于改进遗传-蚁群算法的Adhoc网络寻找最优路径的方法 |
US10427548B2 (en) * | 2016-10-17 | 2019-10-01 | Eaton Intelligent Power Limited | Electric vehicle charging device and method for charging electric vehicle |
CN108092835A (zh) * | 2016-11-23 | 2018-05-29 | 普天信息技术有限公司 | 电动汽车充电桩的检测方法和装置 |
CN110275508B (zh) * | 2019-05-08 | 2021-09-28 | 西安电子科技大学 | 车载can总线网络异常检测方法及*** |
-
2019
- 2019-10-10 CN CN201910957928.1A patent/CN110647138B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105320125A (zh) * | 2015-10-13 | 2016-02-10 | 新安乃达驱动技术(上海)有限公司 | 基于数据共享的电动车用控制*** |
CN106875075A (zh) * | 2015-12-14 | 2017-06-20 | 贵州电网有限责任公司电力科学研究院 | 一种基于出行行为学的电动汽车充电站布点方法 |
CN106779250A (zh) * | 2017-01-16 | 2017-05-31 | 浙江大学城市学院 | 一种基于新型优化模型的孤立分布式电网配置方法 |
CN109784558A (zh) * | 2019-01-11 | 2019-05-21 | 浙江工业大学 | 一种基于蚁群算法的电动汽车充电调度优化方法 |
CN110263976A (zh) * | 2019-05-22 | 2019-09-20 | 广东工业大学 | 一种在多种充电方式并存环境下的电动汽车充电路径规划方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110647138A (zh) | 2020-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110647138B (zh) | 基于改进蚁群算法的充电桩can总线协议的安全检测方法 | |
CN106828362B (zh) | 汽车信息的安全测试方法及装置 | |
CN105847463A (zh) | 电动车单体电池采集模块的自动编址***及其编址方法 | |
CN102123044B (zh) | 基于拓扑发现技术的网络拓扑一致性检测设备和检测方法 | |
CN110855493B (zh) | 用于混合环境的应用拓扑图绘制装置 | |
CN109063486B (zh) | 一种基于plc设备指纹识别的安全渗透测试方法与*** | |
CN111865743A (zh) | 车辆can总线模糊测试方法、***、电子设备及存储介质 | |
CN112906011B (zh) | 漏洞发现方法、测试方法、安全测试方法及相关装置、平台 | |
CN103684912A (zh) | 一种传感网安全测试方法及*** | |
CN106851513A (zh) | 一种电子产品的测试方法和*** | |
CN114281676A (zh) | 针对工控私有协议的黑盒模糊测试方法及*** | |
CN111459616B (zh) | 一种测试方法、装置、设备及存储介质 | |
JP3937341B2 (ja) | 計算機システム性能測定分析用のトランザクションプロファイルの生成システム、その生成方法及びプログラム | |
CN106067879A (zh) | 信息的检测方法及装置 | |
CN103281160B (zh) | 一种控制器局域网帧传输验证方法 | |
CN113156053A (zh) | 一种无证无照经营的加油站识别方法 | |
CN105334768A (zh) | 获取波特率的方法和装置 | |
CN105929724A (zh) | 基于数据请求循环的obd产品识别方法及*** | |
CN116114221A (zh) | 网络设定估计装置、网络设定估计方法及程序 | |
CN105652858A (zh) | 基于数据请求间隔的obd设备识别方法及*** | |
Lee et al. | Collecting big data from automotive ECUs beyond the CAN bandwidth for fault visualization | |
CN105867348A (zh) | 基于数据pid请求范围和类型的obd设备识别方法及*** | |
Yang et al. | Study on penetration testing platform oriented to CAN bus embedded system | |
CN111277452A (zh) | 总线数据测试方法、装置、设备及存储介质 | |
CN114978571B (zh) | 一种用于探测网络中EoL嵌入式设备存活状态的方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |