车辆数据传输方法及***
技术领域
本发明涉及数据处理技术领域,尤其涉及一种车辆数据传输方法及***。
背景技术
汽车ECU(Electronic Control Unit,电子控制单元),又称“行车电脑”、“车载电脑”等,是汽车专用微控制器。
目前,车厂制定汽车动作与相对应的CAN报文信号,并把特定ECU对应的CAN报文信号分发给ECU分包商做功能实现。然而,对车厂来说,ECU分包商并非是完全可信赖的,而且在现有的传播环节中,CAN报文信号以明文的形式存在,因此其保密性难以保证。
针对上述问题,当前一些车厂会在ECU内安置密钥来对报文加密。但是,对于相关ECU的开发人员来说,有很多手段知晓密钥及数据处理协议,这种形式并不能保证密钥的安全,甚至导致第三方攻击者对CAN报文的逆向以及ECU供货商利用CAN报文对汽车ECU的控制的问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的车辆数据传输方法及***。
本发明的一个方面,提供了一种车辆数据传输方法,包括:
建立第一电子控制单元ECU与相应的智能卡片之间的认证关系;
当所述第一ECU向第二ECU传输CAN报文时,将所述第一ECU发送的CAN报文发送到所述智能卡片进行加密处理,并将加密处理后的CAN报文发送到总线上;
当接收到总线上传输的加密CAN报文时,所述第一ECU将接收到的加密CAN报文发送到所述智能卡片进行解密处理,并将所述智能卡片返回的数据作为有效数据。
可选地,所述智能卡片中存储有第一ECU与第二ECU之间进行CAN报文加解密用的第一主密钥,以及第一ECU与所述智能卡片之间建立通讯认证的第二主密钥。
可选地,不同功能的ECU对应不同的第二主密钥;和/或
每一智能卡片配置有多个第二主密钥以及密钥映射关系,所述密钥映射关系包括第二主密钥与不同功能的ECU之间的对应关系。
可选地,所述方法还包括:
当所述第一ECU向第二ECU传输CAN报文为广播式报文时,所述智能卡片采用所述第一主密钥对该CAN报文进行加密处理;
当接收到总线上传输的加密CAN报文为广播式报文时,所述智能卡片采用所述第一主密钥对所述加密CAN报文进行解密处理。
可选地,所述建立第一电子控制单元ECU与相应的智能卡片之间的认证关系,包括:
所述第一ECU根据与所述智能卡片约定的分散因子和所述第二主密钥对所述智能卡片进行认证;
所述智能卡片根据与所述第一ECU约定的分散因子和第一ECU的主控芯片序列号对所述第一ECU进行认证,其中,所述智能卡片内存储有该智能卡片与所述主控芯片序列号的唯一绑定关系。
可选地,所述方法还包括:
预先建立所述第一ECU的主控芯片序列号与所述智能卡片之间的唯一绑定关系。
可选地,在所述建立第一电子控制单元ECU与相应的智能卡片之间的认证关系之后,还包括:
第一ECU向所述智能卡片发送会话密钥生成请求,以使所述智能卡片根据第一主密钥建立当前会话的第一会话密钥;
利用所述第一会话密钥对后续会话数据进行加/解密。
可选地,所述智能卡片根据第一主密钥建立当前会话的第一会话密钥,包括:
所述智能卡片生成第一随机数,并采用所述第一主密钥对所述第一随机数进行加密,得到第一密文,采用所述第一主密钥对所述第一密文做签名;
所述第一ECU将签名后的数据传输到第二ECU,以供所述第二ECU将接收到的数据发送到相应的第二智能卡片,所述第二智能卡片根据预设的根密钥对所述第二ECU接收到的数据进行解密并验签,并在验签通过后,将所述第一随机数作为当前会话的第一会话密钥。
可选地,所述方法还包括:
在所述第二ECU未接收到签名后的数据或者会话数据时,所述第一ECU将签名后的数据重新传输到所述第二ECU。
可选地,所述方法还包括:
所述第一ECU发送命令执行报文,所述命令执行报文用于请求所述第二ECU生成报文校验码;
所述第一ECU接收经过加密和签名后的报文校验码,对其进行解密和验签,以提取所述报文校验码;
所述第一ECU根据约定规则对所述报文校验码进行更新,将更新后的报文校验码、所述命令执行报文以及有效命令报文进行加密,并在联合签名后传输到所述第二ECU,以供所述第二ECU根据所述约定规则对更新后的报文校验码进行验证,并在验证通过后根据所述有效命令报文执行相应命令。
可选地,所述第一ECU根据与所述智能卡片约定的分散因子和所述第二主密钥对所述智能卡片进行认证,包括:
所述第一ECU生成主机随机数发送给所述智能卡片;
所述智能卡片根据与所述第一ECU约定的分散因子、认证计数值和第一填充值生成第一认证数据;
所述智能卡片生成卡片随机数,并根据所述认证计数值、所述卡片随机数、主机随机数和第二填充值生成第二认证数据;所述第二认证数据与所述第一认证数据字节数相同;
所述智能卡片采用所述第一认证数据加密所述第二主密钥,生成本次会话的第二会话密钥;
利用所述第二会话秘钥对所述第二认证数据进行签名,生成第一签名数据;
所述智能卡片将所述认证计数值、卡片随机数和第一签名数据发送给所述第一ECU,以供所述第一ECU对所述智能卡片进行安全认证。
可选地,所述智能卡片根据与所述第一ECU约定的分散因子和主控芯片序列号对所述第一ECU进行认证,包括:
所述智能卡片将所述卡片随机数发送给所述第一ECU;
所述第一ECU根据所述卡片随机数、与所述智能卡片约定的分散因子和主控芯片序列号生成第三认证数据;
根据预设签名算法对所述第三认证数据进行签名,生成第二签名数据,并将所述第二签名数据发送给所述智能卡片;
所述智能卡片根据所述第二签名数据对所述第一ECU进行安全认证。
可选地,所述方法还包括:
双方认证通过后,根据所述第二会话密钥对所述第一ECU与所述智能卡片之间的会话数据进行加密或解密运算。
本发明的另一个方面,提供了一种车辆数据传输***,包括第一电子控制单元ECU、智能卡片和至少一个第二ECU,所述智能卡片包括第一认证单元、加密单元以及解密单元;
所述第一认证单元,适于建立所述第一ECU与相应的智能卡片之间的认证关系;
所述加密单元,适于当所述第一ECU向第二ECU传输CAN报文时,将所述第一ECU发送的CAN报文发送到所述智能卡片进行加密处理,并将加密处理后的CAN报文发送到总线上;
所述解密单元,适于当接收到总线上传输的加密CAN报文时,所述第一ECU将接收到的加密CAN报文发送到所述智能卡片进行解密处理,并将所述智能卡片返回的数据作为有效数据。
可选地,所述智能卡片中存储有第一ECU与第二ECU之间进行CAN报文加解密用的第一主密钥,以及第一ECU与所述智能卡片之间建立通讯认证的第二主密钥。
可选地,不同功能的ECU对应不同的第二主密钥;和/或
每一智能卡片配置有多个第二主密钥以及密钥映射关系,所述密钥映射关系包括第二主密钥与不同功能的ECU之间的对应关系。
可选地,所述加密单元,还适于当所述第一ECU向第二ECU传输CAN报文为广播式报文时,采用所述第一主密钥对该CAN报文进行加密处理;
所述解密单元,还适于当接收到总线上传输的加密CAN报文为广播式报文时,采用所述第一主密钥对所述加密CAN报文进行解密处理。
可选地,所述第一认证单元,适于根据与所述第一ECU约定的分散因子和第一ECU的主控芯片序列号对所述第一ECU进行认证,其中,所述智能卡片内存储有该智能卡片与所述主控芯片序列号的唯一绑定关系;
所述第一ECU包括第二认证单元;
所述第二认证单元,适于根据与所述智能卡片约定的分散因子和所述第二主密钥对所述智能卡片进行认证。
可选地,所述智能卡片还包括:
配置单元,适于预先建立与所述第一ECU的主控芯片序列号之间的唯一绑定关系。
可选地,所述第一ECU还包括:
第一生成单元,适于在所述建立与相应的智能卡片之间的认证关系之后,向所述智能卡片发送会话密钥生成请求,以使所述智能卡片根据第一主密钥建立当前会话的第一会话密钥;
所述加密单元利用所述第一会话密钥对后续会话数据进行加密,和/或
所述解密单元利用所述第一会话密钥对后续会话数据进行解密。
可选地,所述智能卡片还包括:
第二生成单元,适于生成第一随机数,并采用所述第一主密钥对所述第一随机数进行加密,得到第一密文,采用所述第一主密钥对所述第一密文做签名;
所述第一ECU还包括:
确定单元,适于将签名后的数据传输到第二ECU,以供所述第二ECU将接收到的数据发送到相应的第二智能卡片,所述第二智能卡片根据预设的根密钥对所述第二ECU接收到的数据进行解密并验签,并在验签通过后,将所述第一随机数作为当前会话的第一会话密钥。
可选地,所述第一ECU还包括:
重传单元,适于在所述第二ECU未接收到签名后的数据或者会话数据时,将签名后的数据重新传输到所述第二ECU。
可选地,所述第一ECU还包括:
发送单元,适于发送命令执行报文,所述命令执行报文用于请求所述第二ECU生成报文校验码;
解密和验签单元,适于接收经过加密和签名后的报文校验码,对其进行解密和验签,以提取所述报文校验码;
加密和签名单元,适于根据约定规则对所述报文校验码进行更新,将更新后的报文校验码、所述命令执行报文以及有效命令报文进行加密,并在联合签名后传输到所述第二ECU,以供所述第二ECU根据所述约定规则对更新后的报文校验码进行验证,并在验证通过后根据所述有效命令报文执行相应命令。
可选地,所述第二认证单元,具体适于生成主机随机数发送给所述智能卡片,以供所述智能卡片根据与所述第一ECU约定的分散因子、认证计数值和第一填充值生成第一认证数据,所述智能卡片生成卡片随机数,并根据所述认证计数值、所述卡片随机数、主机随机数和第二填充值生成第二认证数据;所述第二认证数据与所述第一认证数据字节数相同,所述智能卡片采用所述第一认证数据加密所述第二主密钥,生成本次会话的第二会话密钥,利用所述第二会话秘钥对所述第二认证数据进行签名,生成第一签名数据,并将所述认证计数值、卡片随机数和第一签名数据发送给所述第一ECU;
所述第二认证单元,具体还适于根据所述认证计数值、卡片随机数和第一签名数据对所述智能卡片进行安全认证。
可选地,所述第一认证单元,具体适于将所述卡片随机数发送给所述第一ECU,以供所述第一ECU根据所述卡片随机数、与所述智能卡片约定的分散因子和主控芯片序列号生成第三认证数据,根据预设签名算法对所述第三认证数据进行签名,生成第二签名数据,并将所述第二签名数据发送给所述智能卡片;
所述第一认证单元,具体还适于根据所述第二签名数据对所述第一ECU进行安全认证。
可选地,所述解密和验签单元,还适于在双方认证通过后,根据所述第二会话密钥对所述第一ECU与所述智能卡片之间的会话数据进行解密运算;
加密和签名单元,还适于在双方认证通过后,根据所述第二会话密钥对所述第一ECU与所述智能卡片之间的会话数据进行加密运算;
所述解密单元,还适于在双方认证通过后,分别根据所述第二会话密钥对所述第一ECU与所述智能卡片之间的会话数据进行解密运算;
所述加密单元,还适于在双方认证通过后,分别根据所述第二会话密钥对所述第一ECU与所述智能卡片之间的会话数据进行加密运算。
本发明实施例提供的车辆数据传输方法及***,通过采用智能卡片的方式,以较低成本实现全车CAN报文信息加密,不仅能够快速地实现CAN报文的加解密,确保汽车实时性要求,而且有效地抵御第三方攻击者对CAN报文的逆向以及ECU供货商利用CAN报文对汽车ECU的控制,极大程度减少ECU分包商利用CAN报文信息做攻击的可能,有效防止CAN报文协议被第三方利用而攻击汽车。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种车辆数据传输方法的流程图;
图2示出了根据本发明实施例的一种车辆数据传输方法中步骤S11的细分流程图;
图3示出了根据本发明一个实施例的一种车辆数据传输***的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。
图1示意性示出了本发明一个实施例的车辆数据传输方法的流程图。
参照图1,本发明实施例的车辆数据传输方法具体包括以下步骤:
步骤S11、建立第一电子控制单元ECU与相应的智能卡片之间的认证关系;
步骤S12、当所述第一ECU向第二ECU传输CAN报文时,将所述第一ECU发送的CAN报文发送到所述智能卡片进行加密处理,并将加密处理后的CAN报文发送到总线上;
步骤S13、当接收到总线上传输的加密CAN报文时,所述第一ECU将接收到的加密CAN报文发送到所述智能卡片进行解密处理,并将所述智能卡片返回的数据作为有效数据。
本发明实施例提供的车辆数据传输方法,通过采用智能卡片的方式,以较低成本实现全车CAN报文信息加密,不仅能够快速地实现CAN报文的加解密,确保汽车实时性要求,而且有效地抵御第三方攻击者对CAN报文的逆向以及ECU供货商利用CAN报文对汽车ECU的控制,极大程度减少ECU分包商利用CAN报文信息做攻击的可能,有效防止CAN报文协议被第三方利用而攻击汽车。
在本发明的一个可选实施例中,所述智能卡片中存储有第一ECU与第二ECU之间进行CAN报文加解密用的第一主密钥,以及第一ECU与所述智能卡片之间建立通讯认证的第二主密钥。
本实施例中,智能卡片20共内置2组主密钥,一是用于ECU与ECU之间做CAN报文加解密用的第一主密钥,该第一主密钥仅存在于智能卡片内,由车厂内置并且只有车厂知晓;一是用于ECU与智能卡片之间建立通讯用的基础主密钥即第二主密钥,该第二主密钥由车厂内置到智能卡片同时分发给ECU分包商用于后期ECU与智能卡片的认证通讯。
其中,不同功能的ECU对应不同的第二主密钥;和/或,每一智能卡片配置有多个第二主密钥以及密钥映射关系,所述密钥映射关系包括第二主密钥与不同功能的ECU之间的对应关系。
目前,智能卡片在软硬件层面的安全性极佳,数据存储非常安全,几乎不可能被破解,车厂可根据应用场景自定义卡内逻辑。基于上述智能卡片存在的优势,车厂可依靠智能卡来实现对分包商的有效制约,极大降低自己CAN报文信息泄漏给分包商带来的汽车安全隐患。类似于网络运营商所发给用户的电信智能卡时,智能卡内内置了运营商的关键密钥,但因为智能卡片的安全性,运营商不必担心面对一些高风险用户时,会有可能导致的信息泄漏。
在本实施例中,车厂在此扮演了运营商的角色,ECU分包商扮演了可能存在安全隐患的用户。并且对于不相关ECU之间,由于其具有不同功能,车厂可对ECU分包商派发内置不同第二主密钥的智能卡片来实现信息隔离。进一步地,智能卡片内可内置多重密钥,不同功能使用不同的密钥来处理,并通过在每一智能卡片内配置有多个第二主密钥以及密钥映射关系的方式实现第二主密钥与不同功能的ECU之间的对应。
在本发明的一个可选实施例中,所述方法还包括以下步骤:当所述第一ECU向第二ECU传输CAN报文为广播式报文时,所述智能卡片采用所述第一主密钥对该CAN报文进行加密处理;当接收到总线上传输的加密CAN报文为广播式报文时,所述智能卡片采用所述第一主密钥对所述加密CAN报文进行解密处理。
本发明实施例中,对于周期性广播式报文,则可以直接采用用于第一ECU与第二ECU之间进行CAN报文加解密用的第一主密钥作为统一密钥,进行统一加/解密处理,从而避免会话密钥的广播增加逻辑复杂度与CAN总线使用率。
在本发明实施例中,在步骤S11之前,所述方法还包括以下附图中未示出的步骤:步骤S10、预先建立所述第一ECU的主控芯片序列号与所述智能卡片之间的唯一绑定关系。
本实施例中,智能卡片预先将第一ECU的主控MCU芯片的唯一序列号与其绑定。需要说明的是,每一智能卡片仅能被绑定一次,由ECU分包商出货时在产线上绑定。进一步地,每一ECU与对应的智能卡片在相互认证阶段需要用到主控芯片序列号。
在本发明的一个可选实施例中,所述步骤S11,如图2所示,进一步包括以下步骤:
步骤S111、所述第一ECU根据与所述智能卡片约定的分散因子和所述第二主密钥对所述智能卡片进行认证;
本实施例中,所述第一ECU对智能卡片的认证方法如下所示,具体包括:
所述第一ECU生成主机随机数发送给所述智能卡片;
所述智能卡片根据与所述第一ECU约定的分散因子、认证计数值和第一填充值生成第一认证数据;
所述智能卡片生成卡片随机数,并根据所述认证计数值、所述卡片随机数、主机随机数和第二填充值生成第二认证数据;所述第二认证数据与所述第一认证数据字节数相同;
所述智能卡片采用所述第一认证数据加密所述第二主密钥,生成本次会话的第二会话密钥;
利用所述第二会话秘钥对所述第二认证数据进行签名,生成第一签名数据;
所述智能卡片将所述认证计数值、卡片随机数和第一签名数据发送给所述第一ECU,以供所述第一ECU对所述智能卡片进行安全认证。
步骤S112、所述智能卡片根据与所述第一ECU约定的分散因子和第一ECU的主控芯片序列号对所述第一ECU进行认证,其中,所述智能卡片内存储有该智能卡片与所述主控芯片序列号的唯一绑定关系。
本实施例中,智能卡片对第一ECU的认证方法如下所示,具体包括:
所述智能卡片将所述卡片随机数发送给所述第一ECU;
所述第一ECU根据所述卡片随机数、与所述智能卡片约定的分散因子和主控芯片序列号生成第三认证数据;
根据预设签名算法对所述第三认证数据进行签名,生成第二签名数据,并将所述第二签名数据发送给所述智能卡片;
所述智能卡片根据所述第二签名数据对所述第一ECU进行安全认证。
智能卡片采用互联网esim卡,硬件层面确保其安全性,智能卡片与ECU需要在初期相互认证建立ECU与卡片之间的会话密钥后卡片才能对ECU提供服务,同时随后ECU与卡片交流的被加密过的CAN总线数据将会被这里的会话密钥再次加密,防止攻击者通过ECU与卡片建立通讯认证后临时换掉ECU而使得卡片对其提供加解密服务。
在一个具体示例中,第一ECU与智能卡片的认证流程可以如下所述:
1、第一ECU构造8字节主机随机数发送给智能卡片。
2、智能卡片构造一组16字节的数据,构造方式为2字节分散因子+2字节认证计数值counter+12字节0。其中,分散因子由第一ECU与智能卡片共同约定,认证计数值为智能卡片内置,12字节0为第一填充值,每次认证计数值加一,该值存储于智能卡片flash内部。
智能卡片使用该16字节数字加密第一ECU与智能卡片之间的第二主密钥,生成本次会话的会话密钥即第二会话密钥。同时使用第二会话密钥对另外构造的16字节数据A进行DES MAC的签名,DES MAC的运算方式为3DES2KEY CBC模式,采用DES_MAC_M2的padding方式。其中,数据A的构造方式如下:认证计数值counter+6字节智能卡片生成的卡片随机数+主机随机数+padding),Padding为第二填充值。取CBC模式的最后8字节作为第一签名数据。
然后把分散因子+counter+卡片随机数+DES MAC签名的后8字节返回给第一ECU,第一ECU收到后用同样的方式验证签名数据。验证通过则确保第一ECU确认智能卡片确实属于车厂派发的智能卡片。
3、第一ECU在对智能卡片验证完毕后,第一ECU采用卡片随机数+分散因子+其主控芯片序列号构成的16字节作为算DES MAC的明文数据,对其签名后把签名数据返回给智能卡片,智能卡片验证签名结果后根据唯一的主控芯片序列号确认第一ECU为可信赖的车厂ECU。
进一步地,双方认证通过后,所述方法还包括:根据所述第二会话密钥对所述第一ECU与所述智能卡片之间的会话数据进行加密或解密运算。本实施例中,至此双方互认真完毕,第一ECU与智能卡片之后的所有通讯数据均会使用此第二会话密钥来进行3DES2KEY的加密。
进一步地,在所述建立第一电子控制单元ECU与相应的智能卡片之间的认证关系之后,所述方法还包括以下附图中未示出的步骤:
步骤A11、第一ECU向所述智能卡片发送会话密钥生成请求,以使所述智能卡片根据第一主密钥建立当前会话的第一会话密钥。
本实施例中,智能卡片根据第一主密钥建立当前会话的第一会话密钥,具体通过以下方式实现:所述智能卡片生成第一随机数,并采用所述第一主密钥对所述第一随机数进行加密,得到第一密文,采用所述第一主密钥对所述第一密文做签名;所述第一ECU将签名后的数据传输到第二ECU,以供所述第二ECU将接收到的数据发送到相应的第二智能卡片,所述第二智能卡片根据预设的根密钥对所述第二ECU接收到的数据进行解密并验签,并在验签通过后,将所述第一随机数作为当前会话的第一会话密钥。
进一步地,在所述第二ECU未接收到签名后的数据或者会话数据时,所述第一ECU将签名后的数据重新传输到所述第二ECU。
步骤A12、利用所述第一会话密钥对后续会话数据进行加/解密。
本发明实施例中,对于汽车控制类报文,为抵御报文重放攻击,总线数据接收者及发送者在处理对方的数据前需要建立会话密钥,发送者(即本实施例中的第一ECU)需要请求智能卡片生成本次通讯的会话密钥,会话密钥生成规则具体如下:第一ECU向所述智能卡片发送会话密钥生成请求,基于该会话密钥生成请求,智能卡片使用车厂内置的第一主密钥加密生成的第一随机数,并使用第一主密钥对得到的密文做签名,签名后的数据由报文发送者即第一ECU发出,所有关注该会话密钥的第二ECU收到该报文后需要传递给各自对应的智能卡片,各个智能卡片通过使用预设的根密钥解密并验签接收到的数据,并在验签后,将第一随机数作为当前会话的第一会话密钥,并将其存储在智能卡片ram内,后续所有会话数据均会被智能卡使用该临时的会话密钥加密/解密。如果接收者没有收到则可以通过报文请求发送者再次广播一边加密后的会话密钥。
进一步地,在后续的数据传输过程中,第一ECU所接收及发送的数据在送到总线上之前需要根据应用场景送到车厂派发给分包商的智能卡片内进行处理,第一ECU把经智能卡片处理过后的数据发送到总线上,通过总线传输到作为接收者的至少一个第二ECU。第二ECU在接收到总线上的数据时,ECU也应把数据送给对应的智能卡片处理,智能卡片返回的数据则为第二ECU可读取的有效数据。
进一步地,在本实施例中,所述方法还包括以下步骤:CAN报文数据通过智能卡片加密并交还给第一ECU发送给到总线上传输之后,再发送CAN确认报文来使得接收器确认报文来源的合法性。
本发明实施例中,定义智能卡片内提供如下5种业务功能:
1、信号发送器,生成会话密钥并广播;
2、信号接收器,得到会话密钥会存储于卡内,不同的报文ID可能具有不同的密钥,智能卡片对不同报文具有采用不同密钥解密的能力;
3、加密CAN报文;
4、解密CAN报文;
5、智能卡片接收第一ECU主控MCU的芯片唯一序列号与其绑定。其中,每一智能卡片仅能被绑定一次,由ECU分包商出货时,在生产线上进行绑定。
在本发明的一个可选实施例中,所述方法还包括以下步骤:
所述第一ECU发送命令执行报文,所述命令执行报文用于请求所述第二ECU生成报文校验码;
所述第一ECU接收经过加密和签名后的报文校验码,对其进行解密和验签,以提取所述报文校验码;
所述第一ECU根据约定规则对所述报文校验码进行更新,将更新后的报文校验码、所述命令执行报文以及有效命令报文进行加密,并在联合签名后传输到所述第二ECU,以供所述第二ECU根据所述约定规则对更新后的报文校验码进行验证,并在验证通过后根据所述有效命令报文执行相应命令。
为抵御报文重放攻击,本发明实施例中,报文交换流程具体如下所述:报文发送者即本实施例中的第一ECU发送命令执行报文并以此报文请求报文接收者即本实施例中的第二ECU生产报文校验码,并返回经上述第一会话密钥加密和签名后的数据,报文发送者收到经过加密和签名后的报文校验码后,对接收到的数据进行解密和验签,并在解密和验签后把报文校验码中携带的报文序列号加1并补充随机数,然后再把第一条请求报文及本条报文的有效数据联合签名后返回报文接收者,报文接收者收到后验证后确认第一帧内报文的合法性,并在验证通过后根据所述有效命令报文执行相应命令。
其中,在一个具体示例中,所述报文校验码由报文序列号+随机数+签名组成。
综上可见,本发明实施例中提供了多种数据安全传输的保障措施,ECU模块出厂后即便是ECU分包商希望通过接入CAN总线发送报文也将不起作用,除非重新刷新ECU芯片固件或预留后门,进而对车厂来说大大降低了第三方攻击者对CAN报文的逆向,以及ECU供货商利用CAN报文对汽车ECU的控制的安全风险。
本发明提出的车辆数据传输方法,以较低成本实现全车CAN报文信息加密,每轮CAN加解密时间耗费在1ms以内,不对汽车实时性造成过分影响。而且,本发明提出的车辆数据传输方法,还能够实现以下多种防御功能:
·加密CAN报文明文,对于参数查询类报文,攻击者(包括ECU分包商及其他知晓CAN报文意义的人)不能获取具体信息。
·抵御CAN报文重放攻击。
·抵御第三方攻击者对CAN报文的逆向。
·抵御ECU供货商利用CAN报文对汽车ECU的控制。
·车厂掌握汽车CAN总线上传输信息的时效性,极大程度减少ECU分包商利用CAN报文信息做攻击的可能。
·即使公开CAN报文信号列表及所有车身CAN报文相关的通讯协议,也能有效防止被第三方利用而攻击汽车。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
图3示意性示出了本发明一个实施例的车辆数据传输***的结构示意图。
参照图3,本发明实施例的车辆数据传输***具体包括第一电子控制单元ECU10和智能卡片20,所述智能卡片20包括第一认证单元201、加密单元202以及解密单元203;
所述第一认证单元201,适于建立所述第一ECU与相应的智能卡片之间的认证关系;
所述加密单元202,适于当所述第一ECU向第二ECU传输CAN报文时,将所述第一ECU发送的CAN报文发送到所述智能卡片进行加密处理,并将加密处理后的CAN报文发送到总线上;
所述解密单元203,适于当接收到总线上传输的加密CAN报文时,所述第一ECU将接收到的加密CAN报文发送到所述智能卡片进行解密处理,并将所述智能卡片返回的数据作为有效数据。
本发明实施例提供的车辆数据传输***,通过采用智能卡片的方式,以较低成本实现全车CAN报文信息加密,不仅能够快速地实现CAN报文的加解密,确保汽车实时性要求,而且有效地抵御第三方攻击者对CAN报文的逆向以及ECU供货商利用CAN报文对汽车ECU的控制,极大程度减少ECU分包商利用CAN报文信息做攻击的可能,有效防止CAN报文协议被第三方利用而攻击汽车。
在本发明的一个可选实施例中,所述智能卡片20中存储有第一ECU10与第二ECU之间进行CAN报文加解密用的第一主密钥,以及,第一ECU10与所述智能卡片20之间建立通讯认证的第二主密钥。本实施例中,智能卡片共内置2组主密钥,一是用于ECU与ECU之间做CAN报文加解密用的第一主密钥,该第一主密钥仅存在于智能卡片内,由车厂内置并且只有车厂知晓;一是用于ECU与智能卡片之间建立通讯用的基础主密钥即第二主密钥,该第二主密钥由车厂内置到卡片同时分发给ECU分包商用于后期ECU与卡片的认证通讯。
在本发明的一个可选实施例中,不同功能的ECU对应不同的第二主密钥;和/或,每一智能卡片配置有多个第二主密钥以及密钥映射关系,所述密钥映射关系包括第二主密钥与不同功能的ECU之间的对应关系。本实施例中,智能卡片内可内置多重密钥,不同功能使用不同的密钥来处理,并通过在每一智能卡片内配置有多个第二主密钥以及密钥映射关系的方式实现第二主密钥与不同功能的ECU之间的对应。
在本发明的一个可选实施例中,所述加密单元202,还适于当所述第一ECU10向第二ECU传输CAN报文为广播式报文时,采用所述第一主密钥对该CAN报文进行加密处理;所述解密单元203,还适于当接收到总线上传输的加密CAN报文为广播式报文时,采用所述第一主密钥对所述加密CAN报文进行解密处理。
在本发明的一个可选实施例中,所述智能卡片20还包括附图中未示出的配置单元,该配置单元,适于预先建立与所述第一ECU的主控芯片序列号之间的唯一绑定关系。
在本发明的一个可选实施例中,所述第一认证单元201,适于根据与所述第一ECU约定的分散因子和第一ECU的主控芯片序列号对所述第一ECU进行认证,其中,所述智能卡片20内存储有该智能卡片与所述主控芯片序列号的唯一绑定关系;
所述第一ECU10包括第二认证单元;
所述第二认证单元,适于根据与所述智能卡片20约定的分散因子和所述第二主密钥对所述智能卡片进行认证。
本实施例中,所述第二认证单元,具体适于生成主机随机数发送给所述智能卡片20,以供所述智能卡片20根据与所述第一ECU约定的分散因子、认证计数值和第一填充值生成第一认证数据,所述智能卡片20生成卡片随机数,并根据所述认证计数值、所述卡片随机数、主机随机数和第二填充值生成第二认证数据;所述第二认证数据与所述第一认证数据字节数相同,所述智能卡片20采用所述第一认证数据加密所述第二主密钥,生成本次会话的第二会话密钥,利用所述第二会话秘钥对所述第二认证数据进行签名,生成第一签名数据,并将所述认证计数值、卡片随机数和第一签名数据发送给所述第一ECU;所述第二认证单元,具体还适于根据所述认证计数值、卡片随机数和第一签名数据对所述智能卡片进行安全认证。
本实施例中,所述第一认证单元,具体适于将所述卡片随机数发送给所述第一ECU,以供所述第一ECU根据所述卡片随机数、与所述智能卡片约定的分散因子和主控芯片序列号生成第三认证数据,根据预设签名算法对所述第三认证数据进行签名,生成第二签名数据,并将所述第二签名数据发送给所述智能卡片;所述第一认证单元,具体还适于根据所述第二签名数据对所述第一ECU进行安全认证。
在本发明的一个可选实施例中,所述第一ECU10还包括附图中未示出的第一生成单元,该第一生成单元,适于在所述建立与相应的智能卡片20之间的认证关系之后,向所述智能卡片20发送会话密钥生成请求,以使所述智能卡片20根据第一主密钥建立当前会话的第一会话密钥;
进一步地,所述加密单元202利用所述第一会话密钥对后续会话数据进行加密,和/或所述解密单元203利用所述第一会话密钥对后续会话数据进行解密。
在本发明的一个可选实施例中,所述智能卡片20还包括附图中未示出的第二生成单元,该第二生成单元,适于生成第一随机数,并采用所述第一主密钥对所述第一随机数进行加密,得到第一密文,采用所述第一主密钥对所述第一密文做签名;
所述第一ECU10还包括附图中未示出的确定单元,该确定单元,适于将签名后的数据传输到第二ECU,以供所述第二ECU将接收到的数据发送到相应的第二智能卡片,所述第二智能卡片根据预设的根密钥对所述第二ECU接收到的数据进行解密并验签,并在验签通过后,将所述第一随机数作为当前会话的第一会话密钥。
在本发明的一个可选实施例中,所述第一ECU10还包括附图中未示出的重传单元,该重传单元,适于在所述第二ECU未接收到签名后的数据或者会话数据时,将签名后的数据重新传输到所述第二ECU。
在本发明的一个可选实施例中,所述第一ECU10还包括附图中未示出的发送单元、解密和验签单元以及加密和签名单元,其中:发送单元,适于发送命令执行报文,所述命令执行报文用于请求所述第二ECU生成报文校验码;解密和验签单元,适于接收经过加密和签名后的报文校验码,对其进行解密和验签,以提取所述报文校验码;加密和签名单元,适于根据约定规则对所述报文校验码进行更新,将更新后的报文校验码、所述命令执行报文以及有效命令报文进行加密,并在联合签名后传输到所述第二ECU,以供所述第二ECU根据所述约定规则对更新后的报文校验码进行验证,并在验证通过后根据所述有效命令报文执行相应命令。
在本发明的一个可选实施例中,所述解密和验签单元,还适于在双方认证通过后,根据所述第二会话密钥对所述第一ECU与所述智能卡片之间的会话数据进行解密运算;所述加密和签名单元,还适于在双方认证通过后,根据所述第二会话密钥对所述第一ECU与所述智能卡片之间的会话数据进行加密运算;所述解密单元,还适于在双方认证通过后,分别根据所述第二会话密钥对所述第一ECU与所述智能卡片之间的会话数据进行解密运算;所述加密单元,还适于在双方认证通过后,分别根据所述第二会话密钥对所述第一ECU与所述智能卡片之间的会话数据进行加密运算。
本发明实施例提供的车辆数据传输方法及***,通过采用智能卡片的方式,以较低成本实现全车CAN报文信息加密,不仅能够快速地实现CAN报文的加解密,确保汽车实时性要求,而且有效地抵御第三方攻击者对CAN报文的逆向以及ECU供货商利用CAN报文对汽车ECU的控制,极大程度减少ECU分包商利用CAN报文信息做攻击的可能,有效防止CAN报文协议被第三方利用而攻击汽车。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网关、代理服务器、***中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。