一种控制器区域网总线安全通信方法、装置及系统制造方法及图纸

技术编号:19702963 阅读:22 留言:0更新日期:2018-12-08 14:23
一种控制器区域网总线安全通信方法、装置及系统,以有效的抵挡攻击者进行窃听﹑注入与重放攻击。网关ECU生成随机数并向至少一个CAN总线ECU发送随机数。第一CAN总线ECU,获取网关ECU发送的随机数,并基于第一CAN标识符的密钥、网关ECU发送的随机数、第一CAN标识符的计数值、第一CAN报文的数据,生成第一信息认证码。第一CAN总线ECU基于第一CAN标识符的密钥和第二CAN报文进行加密运算,以得到第一加密运算结果,并对第一加密运算结果、第一信息认证码、第一CAN标识符的计数值、第一CAN报文的数据进行等长加密运算,以得到加密认证的第一CAN报文,发送所述加密认证的第一CAN报文。

【技术实现步骤摘要】
一种控制器区域网总线安全通信方法、装置及系统
本申请涉及通信
,尤其涉及一种控制器区域网(ControllerAreaNetwork,CAN)总线安全通信方法、装置及系统。
技术介绍
CAN通信协议定义了物理层(PhysicalLayer,PHY)与数据链路层(DataLinkLayer,DLL)的数据传输标准,是一个广播型态的传输信道,且被广泛应用,例如被广泛地被运用在车内通信当中。基于CAN通信协议进行通信的CAN通信网络架构中,一个中央网关电子控制单元(ElectronicControlUnit,ECU)通过CAN总线系统连接多个ECU,其中,CAN总线系统中可包括多个CAN总线,每个CAN总线中的多个ECU通过其它CAN总线以及中央网关ECU互相连接,并进行各自业务与信息的收发。例如图1所示的应用于车内通信的CAN通信网络架构中,一个中央网关ECU连接多个负责车内功能业务的CAN总线(动力传动系统CAN总线、舒适系统CAN总线、诊断系统CAN总线以及信息娱乐系统CAN总线)。负责车内功能业务的每个CAN总线中的多个ECU通过其它CAN总线以及中央网关ECU互相连接,并进行各自业务与信息的收发。例如,动力传动系统可以实时侦测引擎转速并将引擎转速值传送到动力传动系统CAN总线,通过该动力传动系统CAN总线可将该引擎转速值传送给仪表板ECU,仪表板ECU收到引擎转速值后,可在仪表板上实时显示该引擎转速值。目前,基于CAN通信协议进行通信过程中,恶意攻击者可以通过对通信过程中传输的CAN报文(frame)进行窃听,注入或重放攻击,对CAN总线系统进行有效攻击。例如,应用于车内通信的CAN通信系统中通过图2所示的原始CAN报文传送引擎转速数值,图2中原始CAN报文中引擎转速数值为0x5DC=1500RPM,若攻击者通过窃听获取到该原始CAN报文,解析出CAN报文格式,针对攻击目标(引擎转速数值)注入错误的数值,例如图2中植入篡改的CAN报文中将引擎转速数值修改为0x1F40=8000RPM,则仪表板在接收到该植入篡改的CAN报文后,解析得到引擎转速数值为0x1F40=8000RPM,使得仪表板接收并且显示的引擎转速数值为错误的数值。为抵挡攻击者对CAN报文的窃听,注入或重放攻击,目前存在一些对CAN报文进行认证或加密的机制,例如,一种机制中,可使用一个密钥对CAN报文的数据(CAN报文标识符、对应CAN标识符的计数器值以及该CAN报文标识符对应的CAN报文中的数据)进行加密运算并生成信息验证码,然后通过额外的CAN报文传输该信息验证码,但此种方法对于要传输的CAN报文中的数据仍是未被加密处理的,故此种方式并不能抵挡窃听,只是可以抵挡重放攻击,并且通过额外的CAN报文传输信息验证码,传输开销较大。再例如,另一种机制中,针对CAN报文标识符对应的CAN报文中的数据先计算一组循环冗余校验(CyclicRedundancyCheck,CRC)值,然后将数据与CRC值串联后使用密钥进行加密,然而由于CRC值不具有随机性,若攻击者获取到合法的CRC值,则仍可进行重放攻击。又例如,又一种机制中,通过运用非标准的CAN收发器硬件将信息认证码镶嵌于较高的收发物理频率中,与标准CAN报文同时传送,实现对CAN报文的信息认证机制且采用信息认证码技术。由于使用非标准的CAN收发器硬件,需要对CAN收发器硬件进行修改,无法直接应用于现有的CAN总线通信系统中。故,提供一种有效的基于CAN总线进行安全通信的方法,以抵挡攻击者进行窃听﹑注入与重放攻击,势在必行。
技术实现思路
本申请实施例提供一种CAN总线安全通信方法、装置及系统,以有效的抵挡攻击者进行窃听﹑注入与重放攻击。第一方面,提供一种CAN总线安全通信系统,该CAN总线安全通信系统中包括网关ECU、与所述网关ECU相连接的至少一个CAN总线;其中,每个CAN总线上连接有至少一个CAN总线ECU,所述至少一个CAN总线ECU中包括第一CAN总线ECU。其中,网关ECU用于生成随机数并通过所述至少一个CAN总线向至少一个CAN总线ECU发送生成的随机数。第一CAN总线ECU用于获取网关ECU发送的所述随机数,并基于第一CAN标识符的密钥、网关ECU发送的随机数、第一CAN标识符的计数值、第一CAN报文的数据,生成第一信息认证码。第一CAN总线ECU还用于基于第二CAN报文和所述第一CAN标识符的密钥进行加密运算,以得到第一加密运算结果,对第一加密运算结果、第一信息认证码、第一CAN标识符的计数值、第一CAN报文的数据进行等长加密运算,以得到加密认证的第一CAN报文,并发送加密认证的第一CAN报文。其中,第一CAN标识符的密钥由CAN总线安全通信系统为第一CAN标识符预先分配,第一CAN标识符的计数值根据第一CAN总线ECU使用第一CAN标识符传输CAN报文的数量确定,且随第一CAN总线ECU使用第一CAN标识符传输CAN报文的数量的变化而变化,第一CAN报文为第一CAN总线ECU待发送的报文,且第一CAN总线ECU使用第一CAN标识符发送所述第一CAN报文。其中,第二CAN报文为第一CAN总线ECU的历史CAN报文。具体的,若第一CAN报文为第一CAN总线ECU使用第一CAN标识符发送的首个CAN报文,则第一CAN总线ECU的历史CAN报文可以为CAN总线安全通信系统为第一CAN标识符预先分配的初始默认CAN报文。若第一CAN报文为第一CAN总线ECU使用第一CAN标识符发送的非首个CAN报文,则第一CAN总线ECU的历史CAN报文可以为第一CAN总线ECU使用第一CAN标识符已完成发送的CAN报文中设定的CAN报文。一种可能的设计中,第一CAN总线ECU使用第一CAN标识符已完成发送的CAN报文中设定的CAN报文为第一CAN总线ECU使用第一CAN标识符已完成发送的CAN报文中与第一CAN报文相邻的前一则CAN报文,以减少存储开销。本申请实施例中,第一CAN总线ECU对CAN报文的加密运算过程以及生成信息认证码过程中,不仅使用待发送报文的数据,还使用率随机数、计数值以及已发送CAN报文中设定的CAN报文,故即使注入相同的数据值,生成的信息认证码和加密运算结构也不同,故CAN总线ECU发送加密认证CAN报文,可以抵挡重放攻击,并由于结合了加密与认证双重过程,使传输的CAN报文数据区的数据可同时抵挡窃听攻击,注入攻击与重放攻击,安全度较高。并且信息认证码可理解为是直接镶嵌于CAN报文数据区中的,不使用另外CAN报文装载,传输开销较低,并且整体设计不修改CAN收发器硬件,可应用于目前已有的CAN总线系统。其中,第一CAN总线ECU可基于随机数以及第一CAN标识符的密钥得到第一生成密钥,并基于第一生成密钥、随机数、第一CAN标识符的计数值、第一CAN报文的数据生成第一信息认证码,以进一步提高CAN报文传输的安全性。其中,CAN总线安全通信系统中还包括第二CAN总线ECU,第二CAN总线ECU用于获取加密认证的第一CAN报文,并对加密认证的第一CAN报文进行解密,以得到第一解密信息认证码、第一CAN报文的解密数据、第一CAN标识符的第一解密计数值。第二CAN总线ECU获本文档来自技高网
...

【技术保护点】
1.一种控制器区域网CAN总线安全通信系统,其特征在于,包括网关电子控制单元ECU、与所述网关ECU相连接的至少一个CAN总线;其中,每个CAN总线上连接有至少一个CAN总线ECU,所述至少一个CAN总线ECU中包括第一CAN总线ECU,其中:所述网关ECU,用于生成随机数并通过所述至少一个CAN总线向所述至少一个CAN总线ECU发送所述随机数;所述第一CAN总线ECU,用于获取所述网关ECU发送的所述随机数,并基于第一CAN标识符的密钥、第一CAN标识符的计数值、第一CAN报文的数据以及所述网关ECU发送的所述随机数,生成第一信息认证码,其中,第一CAN标识符的密钥由所述CAN总线安全通信系统为所述第一CAN标识符预先分配,第一CAN标识符的计数值根据所述第一CAN总线ECU使用所述第一CAN标识符传输CAN报文的数量确定,且随所述第一CAN总线ECU使用所述第一CAN标识符传输CAN报文的数量的变化而变化,第一CAN报文为所述第一CAN总线ECU待发送的报文,且所述第一CAN总线ECU使用所述第一CAN标识符发送所述第一CAN报文;所述第一CAN总线ECU,还用于基于第二CAN报文和所述第一CAN标识符的密钥进行加密运算,以得到第一加密运算结果,并对所述第一加密运算结果、所述第一信息认证码、所述第一CAN标识符的计数值、所述第一CAN报文的数据进行等长加密运算,以得到加密认证的第一CAN报文,并发送所述加密认证的第一CAN报文;其中,所述第二CAN报文为所述第一CAN总线ECU的历史CAN报文。...

【技术特征摘要】
2017.05.25 CN 20171038130741.一种控制器区域网CAN总线安全通信系统,其特征在于,包括网关电子控制单元ECU、与所述网关ECU相连接的至少一个CAN总线;其中,每个CAN总线上连接有至少一个CAN总线ECU,所述至少一个CAN总线ECU中包括第一CAN总线ECU,其中:所述网关ECU,用于生成随机数并通过所述至少一个CAN总线向所述至少一个CAN总线ECU发送所述随机数;所述第一CAN总线ECU,用于获取所述网关ECU发送的所述随机数,并基于第一CAN标识符的密钥、第一CAN标识符的计数值、第一CAN报文的数据以及所述网关ECU发送的所述随机数,生成第一信息认证码,其中,第一CAN标识符的密钥由所述CAN总线安全通信系统为所述第一CAN标识符预先分配,第一CAN标识符的计数值根据所述第一CAN总线ECU使用所述第一CAN标识符传输CAN报文的数量确定,且随所述第一CAN总线ECU使用所述第一CAN标识符传输CAN报文的数量的变化而变化,第一CAN报文为所述第一CAN总线ECU待发送的报文,且所述第一CAN总线ECU使用所述第一CAN标识符发送所述第一CAN报文;所述第一CAN总线ECU,还用于基于第二CAN报文和所述第一CAN标识符的密钥进行加密运算,以得到第一加密运算结果,并对所述第一加密运算结果、所述第一信息认证码、所述第一CAN标识符的计数值、所述第一CAN报文的数据进行等长加密运算,以得到加密认证的第一CAN报文,并发送所述加密认证的第一CAN报文;其中,所述第二CAN报文为所述第一CAN总线ECU的历史CAN报文。2.如权利要求1所述的系统,其特征在于,所述网关ECU具体用于:基于第三CAN报文和第二CAN标识符的密钥,得到第一随机数发送密钥,其中,所述网关ECU使用所述第二CAN标识符向所述至少一个CAN总线ECU发送CAN报文,所述第二CAN标识符的密钥由所述CAN总线安全通信系统为所述第二CAN标识符预先分配,所述第三CAN报文为所述网关ECU的历史CAN报文;基于所述第一随机数发送密钥以及所述网关ECU待发送的随机数,生成第一随机数信息认证码;对所述第一随机数发送密钥和所述第三CAN报文进行加密运算,以得到第二加密运算结果;对所述第二加密运算结果、所述第一随机数信息认证码、所述待发送的随机数进行等长加密运算,以得到加密认证的随机数;向所述至少一个CAN总线ECU,发送所述加密认证的随机数。3.如权利要求2所述的系统,其特征在于,所述第一CAN总线ECU,还用于:获取所述第二CAN标识符、所述第三CAN报文以及所述加密认证的随机数;基于所述第二CAN标识符的密钥和所述第三CAN报文,得到第二随机数发送密钥;对所述第二随机数发送密钥以及所述第三CAN报文进行加密运算,以得到第三加密运算结果;对所述第三加密运算结果和所述加密认证的随机数进行等长解密运算,以得到第一随机数解密信息认证码;基于所述网关ECU发送的所述随机数与所述第二随机数发送密钥,生成第二随机数信息认证码;若所述第一随机数解密信息认证码和所述第二随机数信息认证码一致,则确定所述网关ECU发送的所述随机数合法。4.如权利要求1至3任一项所述的系统,其特征在于,所述至少一个CAN总线ECU中还包括第二CAN总线ECU,所述第二CAN总线ECU用于:获取所述加密认证的第一CAN报文,并对所述加密认证的第一CAN报文进行解密,以得到第一解密信息认证码、第一CAN报文的解密数据、第一CAN标识符的第一解密计数值;获取所述网关ECU发送的所述随机数,并基于所述第一CAN标识符的密钥、所述网关ECU发送的所述随机数、所述第一CAN标识符的第一解密计数值和所述第一CAN报文的解密数据,生成第二信息认证码;若所述第一解密信息认证码和所述第二信息认证码一致,且所述第一CAN标识符的第一解密计数值合法,则确定所述加密认证的第一CAN报文合法。5.如权利要求4所述的系统,其特征在于,所述第一CAN标识符的第一解密计数值合法是指所述第一CAN标识符的第一解密计数值在预设的计数值允许误差范围内。6.如权利要求4或5所述的系统,其特征在于,所述第一CAN总线ECU,具体用于:基于所述网关ECU发送的所述随机数以及第一CAN标识符的密钥,得到第一生成密钥,并基于第一CAN标识符的计数值、第一CAN报文的数据、所述第一生成密钥以及所述网关ECU发送的所述随机数,生成第一信息认证码;所述第二CAN总线ECU,具体用于:基于所述网关ECU发送的所述随机数以及第一CAN标识符的密钥,得到第一生成密钥,并基于所述第一生成密钥、所述网关ECU发送的所述随机数、所述第一CAN标识符的第一解密计数值、所述第一CAN报文的解密数据,生成第二信息认证码。7.如权利要求1至6任一项所述的系统,其特征在于,若所述第一CAN报文为所述第一CAN总线ECU使用所述第一CAN标识符发送的首个CAN报文,则所述第一CAN总线ECU的历史CAN报文为所述CAN总线安全通信系统为所述第一CAN标识符预先分配的初始默认CAN报文;若所述第一CAN报文为所述第一CAN总线ECU使用所述第一CAN标识符发送的非首个CAN报文,则所述第一CAN总线ECU的历史CAN报文为所述第一CAN总线ECU使用所述第一CAN标识符已完成发送的CAN报文中设定的CAN报文。8.如权利要求2至6任一项所述的系统,其特征在于,若所述网关ECU待发送的随机数为所述网关ECU发送的首个随机数,则所述网关ECU的历史CAN报文为所述CAN总线安全通信系统为所述网关ECU预先分配的初始默认CAN报文;若所述网关ECU待发送的随机数为所述网关ECU发送的非首个随机数,则所述网关ECU的历史CAN报文为所述网关ECU使用所述第二CAN标识符已完成发送的CAN报文中设定的CAN报文。9.一种控制器区域网CAN总线安全通信装置,其特征在于,应用于第一CAN总线电子控制单元ECU,包括:接收单元,用于获取网关ECU发送的随机数;处理单元,用于基于第一CAN标识符的密钥、第一CAN标识符的计数值、第一CAN报文的数据以及所述接收单元获取的随机数,生成第一信息认证码,其中,第一CAN标识符的密钥由CAN总线安全通信系统为所述第一CAN标识符预先分配,第一CAN标识符的计数值根据所述第一CAN总线ECU使用所述第一CAN标识符传输CAN报文的数量确定,且随所述第一CAN总线ECU使用所述第一CAN标识符传输CAN报文的数量的变化而变化,第一CAN报文为所述第一CAN总线ECU待发送的报文,且所述第一CAN总线ECU使用所述第一CAN标识符发送所述第一CAN报文;并基于所述第二CAN报文和第一CAN标识符的密钥进行加密运算,以得到第一加密运算结果,对所述第一加密运算结果、所述第一信息认证码、所述第一CAN标识符的计数值、所述第一CAN报文的数据进行等长加密运算,以得到加密认证的第一CAN报文;其中,所述第二CAN报文为所述第一CAN总线ECU的历史CAN报文;发送单元,用于发送所述处理单元生成的加密认证的第一CAN报文。10.如权利要求9所述的装置,其特征在于,所述接收单元,还用于获取第二CAN标识符、第三CAN报文以及加密认证的随机数,其中,所述网关ECU使用所述第二CAN标识符向所述至少一个CAN总线ECU发送CAN报文,所述第三CAN报文为所述网关ECU的历史CAN报文;所述处理单元,还用于:基于所述第二CAN标识符的密钥和所述第三CAN报文,得到第二随机数发送密钥,所述第二CAN标识符的密钥由所述CAN总线安全通信系统为所述第二CAN标识符预先分配;对所述第二随机数发送密钥以及所述第三CAN报文进行加密运算,以得到第三加密运算结果;对所述第三加密运算结果和所述接收单元接收到的加密认证的随机数,进行等长解密运算,以得到第一随机数解密信息认证码;基于所述接收单元接收到的随机数与所述第二随机数发送密钥,生成第二随机数信息认证码;若所述第一随机数解密信息认证码和所述第二随机数信息认证码一致,则确定所述接收单元获取到的所述随机数合法。11.如权利要求9或10所述的装置,其特征在于,所述处理单元,采用如下方式基于第一CAN标识符的密钥、第一CAN标识符的计数值、第一CAN报文的数据以及所述接收单元获取的随机数,生成第一信息认证码:基于所述接收单元接收到的随机数以及第一CAN标识符的密钥,得到第一生成密钥,并基于第一CAN标识符的计数值、第一CAN报文的数据、所述第一生成密钥以及所述接收单元接收到的随机数,生成第一信息认证码。12.如权利要求9至11任一项所述的装置,其特征在于,若所述第一CAN报文为所述第一CAN总线ECU使用所述第一CAN标识符发送的首个CAN报文,则所述第一CAN总线ECU的历史CAN报文为所述CAN总线安全通信系统为所述第一CAN标识符预先分配的初始默认CAN报文;若所述第一CAN报文为所述第一CAN总线ECU使用所述第一CAN标识符发送的非首个CAN报文,则所述第一CAN总线ECU的历史CAN报文为所述第一CAN总线ECU使用所述第一CAN标识符已完成发送的CAN报文中设定的CAN报文。13.一种控制器区域网CAN总线安全通信装置,其特征在于,应用于第二CAN总线电子控制单元ECU,包括:接收单元,用于获取加密认证的第一CAN报文以及网关ECU发送的随机数;处理单元,用于对所述接收单元获取的加密认证的第一CAN报文进行解密,以得到第一解密信息认证码、第一CAN报文的解密数据、第一CAN标识符的第一解...

【专利技术属性】
技术研发人员:林孝盈魏卓沙庆迪唐康
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1