CN111726274B - 一种汽车can总线数据通信方法、设备及存储介质 - Google Patents

一种汽车can总线数据通信方法、设备及存储介质 Download PDF

Info

Publication number
CN111726274B
CN111726274B CN202010448948.9A CN202010448948A CN111726274B CN 111726274 B CN111726274 B CN 111726274B CN 202010448948 A CN202010448948 A CN 202010448948A CN 111726274 B CN111726274 B CN 111726274B
Authority
CN
China
Prior art keywords
message
data
bus
sent
encrypted
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
Application number
CN202010448948.9A
Other languages
English (en)
Other versions
CN111726274A (zh
Inventor
田韶鹏
徐冰洁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University of Technology WUT
Original Assignee
Wuhan University of Technology WUT
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan University of Technology WUT filed Critical Wuhan University of Technology WUT
Priority to CN202010448948.9A priority Critical patent/CN111726274B/zh
Publication of CN111726274A publication Critical patent/CN111726274A/zh
Application granted granted Critical
Publication of CN111726274B publication Critical patent/CN111726274B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN

Abstract

本发明公开了一种汽车CAN总线数据通信方法、设备及存储介质,所述方法包括:获取发送节点生成的CAN总线报文,并给CAN总线报文的报文ID中加上报文编号;提取CAN总线报文中的数据域,缩短所述CAN总线报文中的数据域的字节数后对缩短后的数据域进行填充,并对填充后的数据域进行加密;采用挑战应答认证机制对接收节点进行身份认证;判断所述待发送加密报文的报文编号是否正确;对所述待发送加密报文中的数据域进行解密,并获取解密后的数据域中的有效数据后,得到待接收解密报文,将所述待接收解密报文发送给接收节点。本发明保证CAN总线上报文数据的安全传输,加大了攻击者窃取数据的难度,防止重放攻击,提高了通信数据的安全性。

Description

一种汽车CAN总线数据通信方法、设备及存储介质
技术领域
本发明涉及汽车CAN总线通信安全技术领域,特别涉及一种汽车CAN总线数据通信方法、设备及存储介质。
背景技术
随着汽车智能网联的发展,汽车内ECU(整车控制器)的数量显著增多,车载网络也越来越复杂。而汽车内绝大部分ECU是通过车内CAN总线进行信息交互的,车内CAN总线的报文是明文传输的,很容易对CAN总线数据进行逆向分析,且网络上所有节点收发数据共同使用一条总线,数据发送是广播式的,所以可以从任何一个节点获取总线数据。由于车联网暴露了许多可供攻击的端口,如T-BOX(用于和后台系统/手机APP通信)、车载娱乐系统、云平台或车载OBD(一种为汽车故障诊断而延伸出来的一种检测系统)端口,所以攻击者可通过攻击任意一点进而侵入车内总线,来达到控制总线上各ECU功能的目的。所以如何保证CAN总线的通信安全成为亟待解决的问题。
因而现有技术还有待改进和提高。
发明内容
鉴于上述现有技术的不足之处,本发明的目的在于提供一种汽车CAN总线数据通信方法、设备及存储介质,可保证CAN总线上报文数据的安全传输,对报文进行数据加密和身份认证,防止数据被窃取或篡改,从而避免外部攻击威胁到汽车安全。
为了达到上述目的,本发明采取了以下技术方案:
第一方面,本发明提供了一种汽车CAN总线数据通信方法,包括如下步骤:
获取发送节点生成的CAN总线报文,并给所述CAN总线报文的报文ID中加上报文编号;
提取所述CAN总线报文中的数据域,缩短所述CAN总线报文中的数据域的字节数后对缩短后的数据域进行填充,并采用分块加密的方式对填充后的数据域进行加密,获得待发送加密报文;
采用挑战应答认证机制对接收节点进行身份认证;
当接收节点的身份认证通过时,判断所述待发送加密报文的报文编号是否正确;
当所述待发送加密报文的报文编号正确时,将待发送加密报文发送给接收节点,由所述接收节点对所述待发送加密报文中的数据域进行解密,并获取解密后的数据域中的有效数据后,得到待接收解密报文。
第二方面,本发明提供了一种汽车CAN总线数据通信设备,包括:处理器和存储器;
所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述处理器执行所述计算机可读程序时实现如上所述的汽车CAN总线数据通信方法中的步骤。
第三方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上所述的汽车CAN总线数据通信方法中的步骤。
相较于现有技术,本发明提供的汽车CAN总线数据通信方法、设备及存储介质,没有直接对原数据进行填充,而是先缩短原数据字节数再填充,接收方解密后根据填充的内容可判断有效的数据字节数。由于每组报文的有效数据字节数不是全相同的,攻击者难以获取准确的有效数据,进一步加大了攻击者窃取数据的难度。而且,采用分块加密的方式对通信数据进行加密,加密轮次少,相比传统的DES等加密算法,加密时间更短,对数据实时传输的影响最小。此外,增加了报文编号来防止重放攻击,采用节点认证来验证ECU节点身份的合法性,进一步提高了通信数据的安全性,确保了总线通信数据的安全传输。
附图说明
图1为本发明提供的汽车CAN总线数据通信方法的一较佳实施例的流程图;
图2为本发明提供的汽车CAN总线数据通信方法中,数据加密的一具体实施例的示意图;
图3为本发明中加密的一较佳实施例的加密解密流程图;
图4为本发明提供的汽车CAN总线数据通信方法中,所述步骤S300的一较佳实施例的流程图;
图5为本发明汽车CAN总线数据通信程序的较佳实施例的运行环境示意图;
图6为本发明安装汽车CAN总线数据通信程序的系统较佳实施例的功能模块图。
具体实施方式
本发明提供一种汽车CAN总线数据通信方法、设备及存储介质,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
请参阅图1,本发明实施例提供的一种汽车CAN总线数据通信方法,包括如下步骤:
S100、获取发送节点生成的CAN总线报文,并给所述CAN总线报文的报文ID中加上报文编号。
本实施例中,所述CAN总线报文由七种不同的位域组成,包括帧起始、仲裁域、控制域、数据域、循环冗余校验域、应答域和帧结束。其中,所述数据域以明文方式传递,容易造成CAN总线越来越多的受到攻击导致信息泄露,从而对行车安全造成威胁,本实施例首先给CAN总线报文的报文ID中加上报文编号,进而可以方便后续的数据有效性判断,防止重放攻击,具体的,所述给所述CAN总线报文的报文ID中加上报文编号的具体方法为:
获取上一次生成的CAN总线报文的报文编号,将上一次生成的CAN总线报文的报文编号加一后,生成新的报文编号,并将新的报文编号加入到所述CAN总线报文的报文ID中。
换而言之,本发明实施例中加上报文编号的过程实质上是给所述CAN总线报文打上时间戳的过程,如果接收节点统计的报文编号与本次发送的所述CAN总线报文的报文编号一致,则表明数据有效,进而达到防止重放攻击的目的。
S200、提取所述CAN总线报文中的数据域,缩短所述CAN总线报文中的数据域的字节数后对缩短后的数据域进行填充,并采用分块加密的方式对填充后的数据域进行加密,获得待发送加密报文。
本实施例中,采用分块加密的方式对CAN总线报文中的数据域进行加密,其中,每一个块是固定的字节长度(例如16字节)。所述CAN总线报文的数据域的长度可以为0-64位,为了实现CAN总线报文的数据域加密,本发明实施例通过先把CAN总线报文中有效的数据位进行缩短,将CAN总线报文中的有效数据位都集中到其中的几个字节(例如4个字节)中,然后对缩短后的数据域进行填充(例如填充为16字节)后对填充后的数据域进行加密。如图2所示,在一个具体实施例中,首先将CAN总线报文中的数据域缩短为四个字节,然后填充成16字节,其中,填充的字节内容为需要填充的字节数。然后将获得的16字节的数据进行加密,生成新的16字节的数据,最后将加密后的数据分两次为一组报文发送。由于本加密方法没有直接对原始数据进行填充,而是采用先缩短原数据字节数后再填充的方式,故接收节点解密后可以根据填充的内容判断有效的数据字节数,此外,由于每组报文的有效数据字节数不尽相同,从而使得攻击者难以获取准确的有效数据,进一步加大了攻击者窃取数据的难度。
优选的实施例中,所述缩短所述CAN总线报文中的数据域的字节数后对缩短后的数据域进行填充的步骤具体包括:
提取所述数据域中的有效数据位,并将所述有效数据位集中在一个或者多个字节中,以使所述数据域中的有效数据位缩短;
根据缩短后的有效数据位的字节长度以及加密所需的字节长度对所述缩短后的有效数据位进行填充,其中,填充的数据的个数为加密所需的字节长度与缩短后的有效数据位的字节长度差,每个填充的数据的字节数为加密所需的字节长度与缩短后的有效数据位的字节长度差。
具体来说,由于采用分块加密的方式(每一个块的字节长度需相同)来进行加密,所以在缩短有效数据位后需要将缩短后的数据填充至预设长度(加密所需的字节长度,例如16字节),如果填充的字节为任意数据的话,那么将加密的数据解密后,还需要对有效数据和填充的数据进行区分,无疑增加了解密难度,给系统带来更大的负担;为了方便解密后查询到有效数据,本发明实施例将每个填充的字节的数据均设定为加密所需的字节长度与缩短后的有效数据位的字节长度差,举例来说,当缩短后数据长度需要填充n(n>0)个字节才对齐时,那么在缩短后的有效数据位后面填充n个字节,而且每个字节的数据都是n,此时最后一个字节即为填充数据的长度,所以在解密后即可根据最后一个字节的数据来准确删除填充的数据,具体的,接收节点接收到两组数据后进行解密,解密后根据最后一个字节的数据n来判断前(16-n)个字节为有效数据,方便了数据的解密过程;例如图2中一个具体实施例中,缩短后的有效数据位的字节数为4,加密所需的字节长度为16,所以需要填充12个字节,此时将填充的12个字节的数据均设定为12,所以在进行解密后,最后一个字节的数据(12)为填充数据的长度(12),此时删除后面12个字节,前4个字节即为有效数据。
优选的实施例中,所述采用分块加密的方式对填充后的数据域进行加密的方法具体为:
Y=Ak(r+1)·R·S·Akr·C·R·S·Ak(r-1)…C·R·S·Ak1(x),
其中,x表示128位字节明文输入,Y表示128位字节的密文输出,“·”表示复合运算;Aki表示对x的一个变换;
Figure GDA0003121511910000061
其中,Ki为第i轮的子密钥,
Figure GDA0003121511910000062
为比特串的异或运算;S表示位运算,即S盒置换(类似查表);R表示行位移变换;C表示列混合变换。
具体来说,请参阅图3,本发明中加密是经过多轮加密来进行加密的算法,首先第1轮中,给明文输入的数据加上第1轮的子秘钥,然后经过位运算、行变换、列混合后输出第1轮的加密数据,第1轮的加密数据加上第2轮的子秘钥,再经过位运算、行变换、列混合后输出第2轮的加密数据,以此类推,直至第10轮的加密数据加上最后的子秘钥后生成最终的加密数据,从而实现了CAN总线报文中的数据域的加密,得到待发送加密报文,本发明中的加密算法对通信数据进行加密,算法加密轮次少,相比传统的DES等加密算法,加密时间更短,对数据实时传输的影响最小。
S300、采用挑战应答认证机制对接收节点进行身份认证。
本实施例中,在两个节点互相通信前,需要确认通信的对端是否是自身通信的真实节点来保证通信的安全,因此,通信前要先进行节点间的身份认证,本发明采用挑战应答认证机制来进行接收节点的身份认证,进一步提高通信数据的安全性,确保了总线通信数据的安全传输。具体的,请参阅图4,所述步骤S300具体包括:
S301、发送广播认证请求,并接收接收节点反馈的加密后的挑战报文;
S302、根据所述挑战报文的报文ID在节点信息表中查询与所述接收节点对应的节点信息;
S303、当查询到所述接收节点对应的节点信息时,对所述挑战报文进行加密,并通过HMAC算法生成消息摘要后,向所述接收节点发送响应报文,以使所述接收节点根据所述响应报文判断是否认证成功。
具体实施时,在车载CAN总线中采用挑战应答认证机制,通过中心网关来对ECU(整车控制器,为接收节点)进行身份认证。中心网关先广播认证请求,ECU接收到认证请求后向网关发送挑战码,挑战码采用加密算法进行加密来防止窃取。网关接收到ECU节点的挑战报文后,通过待发送加密报文中的ID字段在ECU信息表中查询对应的ECU节点信息,如果不存在则不通过认证,如果存在则对该ECU对应的挑战码进行AES解密,通过HMAC算法生成消息摘要,然后向该ECU节点发送响应报文。ECU节点接收到响应报文后计算HMAC值,与响应报文中的认证标签对比,如果不同则认证失败,丢弃响应报文并终止认证;如果相同则该节点通过认证,该ECU节点身份合法。本发明采用节点认证来验证接收节点身份的合法性,进一步提高了通信数据的安全性,确保了总线通信数据的安全传输。优选的,所述挑战报文采用AES加密法(具体采用AES加密法)来进行加密,节省加密时间,避免影响数据传输的时间。
S400、当接收节点的身份认证通过时,判断所述待发送加密报文的报文编号是否正确。
具体来说,为了避免重放攻击,在报文解密前还需要进行报文编号认证,具体的,所述步骤S400具体包括:
获取上一次发送的报文的报文编号,解析所述待发送加密报文的报文ID并获取所述待发送加密报文的报文编号,当所述待发送加密报文的报文编号为上一次发送的报文的报文编号加一且上一次发送的报文的报文编号加一后小于预设值时,判断所述待发送加密报文的报文编号正确,否则,判断所述待发送加密报文的报文编号不正确,并丢弃所述待发送加密报文。
换而言之,本发明通过时间戳的方式来判断报文编号是否正确,进而放置重放攻击,如果接收节点统计的报文编号小于预设值,且与待发送加密报文的报文编号一致,则表明数据有效,如果接收节点统计的报文编号大于预设值,则表示编号错误,此时重新进行此次报文的报文编号统计,保证判断结果准确,进而达到防止重放攻击的目的,如果接收节点统计的与待发送加密报文的报文编号不一致,则表示数据无效,此时即丢弃所述待发送加密报文,结束数据通信。优选的,所述预设值为28
S500、当所述待发送加密报文的报文编号正确时,将待发送加密报文发送给接收节点,由所述接收节点对所述待发送加密报文中的数据域进行解密,并获取解密后的数据域中的有效数据后,得到待接收解密报文。
具体来说,当编号认证和节点认证都通过时,可以开始对数据解密并找出有效数据,具体的,采用与加密过程对称的算法进行解密,然后获取解密后的数据,之后删除解密后的数据中填充的字节,具体的,解密后根据最后一个字节的数据n来判断前(16-n)个字节为有效数据,然后删除后面n个数据即得到了待接收解密报文,然后将所述待接收解密报文发送给接收节点后,即完成了CAN总线数据通信。
本发明没有直接对原数据进行填充,而是先缩短原数据字节数再填充,接收方解密后根据填充的内容可判断有效的数据字节数。每组报文的有效数据字节数不是全相同的,攻击者难以获取准确的有效数据,进一步加大了攻击者窃取数据的难度。而且,采用分块加密的方式对通信数据进行加密,加密轮次少,相比传统的DES等加密算法,加密时间更短,对数据实时传输的影响最小。此外,增加了报文编号来防止重放攻击,采用节点认证来验证ECU节点身份的合法性,进一步提高了通信数据的安全性,确保了总线通信数据的安全传输。
应该理解的是,虽然图1和图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。
如图5所示,基于上述汽车CAN总线数据通信方法,本发明还相应提供了一种汽车CAN总线数据通信设备,所述汽车CAN总线数据通信设备可以是移动终端、桌上型计算机、笔记本、掌上电脑及服务器等计算设备。该汽车CAN总线数据通信设备包括处理器10、存储器20及显示器30。图5仅示出了汽车CAN总线数据通信设备的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
所述存储器20在一些实施例中可以是所述汽车CAN总线数据通信设备的内部存储单元,例如汽车CAN总线数据通信设备的硬盘或内存。所述存储器20在另一些实施例中也可以是所述汽车CAN总线数据通信设备的外部存储设备,例如所述汽车CAN总线数据通信设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器20还可以既包括汽车CAN总线数据通信设备的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述汽车CAN总线数据通信设备的应用软件及各类数据,例如所述安装汽车CAN总线数据通信设备的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有汽车CAN总线数据通信程序40,该汽车CAN总线数据通信程序40可被处理器10所执行,从而实现本申请各实施例的汽车CAN总线数据通信方法。
所述处理器10在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述汽车CAN总线数据通信方法等。
所述显示器30在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。所述显示器30用于显示在所述汽车CAN总线数据通信设备的信息以及用于显示可视化的用户界面。所述汽车CAN总线数据通信设备的部件10-30通过系统总线相互通信。
在一实施例中,当处理器10执行所述存储器20中汽车CAN总线数据通信程序40时实现如上述实施例所述的汽车CAN总线数据通信方法中的步骤,由于上文已对汽车CAN总线数据通信方法进行详细描述,在此不再赘述。
请参阅图6,其为本发明安装汽车CAN总线数据通信程序的系统较佳实施例的功能模块图。在本实施例中,安装汽车CAN总线数据通信程序的系统可以被分割成一个或多个模块,所述一个或者多个模块被存储于所述存储器20中,并由一个或多个处理器(本实施例为所述处理器10)所执行,以完成本发明。例如,在图6中,安装汽车CAN总线数据通信程序的系统可以被分割成报文获取模块21、报文加密模块22、节点认证模块23、编号认证模块24和报文发送模块25。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述汽车CAN总线数据通信程序在所述汽车CAN总线数据通信设备中的执行过程。以下描述将具体介绍所述模块21-25的功能。
报文获取模块21,用于获取发送节点生成的CAN总线报文,并给所述CAN总线报文的报文ID中加上报文编号;
报文加密模块22,用于提取所述CAN总线报文中的数据域,缩短所述CAN总线报文中的数据域的字节数后对缩短后的数据域进行填充,并采用分块加密的方式对填充后的数据域进行加密,获得待发送加密报文;
节点认证模块23,用于采用挑战应答认证机制对接收节点进行身份认证;
编号认证模块24,用于当接收节点的身份认证通过时,判断所述待发送加密报文的报文编号是否正确;
报文发送模块25,用于当所述待发送加密报文的报文编号正确时,将待发送加密报文发送给接收节点,由所述接收节点对所述待发送加密报文中的数据域进行解密,并获取解密后的数据域中的有效数据后,得到待接收解密报文。
其中,所述报文获取模块21具体用于:
获取上一次生成的CAN总线报文的报文编号,将上一次生成的CAN总线报文的报文编号加一后,生成新的报文编号,并将新的报文编号加入到所述CAN总线报文的报文ID中。
优选的,所述缩短所述CAN总线报文中的数据域的字节数后对缩短后的数据域进行填充的步骤具体包括:
提取所述数据域中的有效数据位,并将所述有效数据位集中在一个或者多个字节中,以使所述数据域中的有效数据位缩短;
根据缩短后的有效数据位的字节长度以及加密所需的字节长度对所述缩短后的有效数据位进行填充,其中,填充的字节长度为加密所需的字节长度与缩短后的有效数据位的字节长度差,每个填充的字节的数据为加密所需的字节长度与缩短后的有效数据位的字节长度差。
优选的,所述采用分块加密的方式对填充后的数据域进行加密的方法具体为:
Y=Ak(r+1)·R·S·Akr·C·R·S·Ak(r-1)…C·R·S·Ak1(x),
其中,x表示128位字节明文输入,Y表示128位字节的密文输出,“·”表示复合运算;Aki表示对x的一个变换;
Figure GDA0003121511910000111
其中,Ki为第i轮的子密钥,
Figure GDA0003121511910000112
为比特串的异或运算;S表示位运算;R表示行位移变换;C表示列混合变换。
优选的,所述节点认证模块23具体用于:
发送广播认证请求,并接收接收节点反馈的加密后的挑战报文;
根据所述挑战报文的报文ID在节点信息表中查询与所述接收节点对应的节点信息;
当查询到所述接收节点对应的节点信息时,对所述挑战报文进行加密,并通过HMAC算法生成消息摘要后,向所述接收节点发送响应报文,以使所述接收节点根据所述响应报文判断是否认证成功。
优选的,所述挑战报文采用AES加密法进行加密。
进一步的实施例中,所述编号认证模块24具体用于:
获取上一次发送的报文的报文编号,解析所述待发送加密报文的报文ID并获取所述待发送加密报文的报文编号,当所述待发送加密报文的报文编号为上一次发送的报文的报文编号加一且上一次发送的报文的报文编号加一后小于预设值时,判断所述待发送加密报文的报文编号正确,否则,判断所述待发送加密报文的报文编号不正确。
优选的,所述预设值为28
综上所述,本发明提供的汽车CAN总线数据通信方法、设备及存储介质,没有直接对原数据进行填充,而是先缩短原数据字节数再填充,接收方解密后根据填充的内容可判断有效的数据字节数。每组报文的有效数据字节数不是全相同的,攻击者难以获取准确的有效数据,进一步加大了攻击者窃取数据的难度。而且,采用分块加密的方式对通信数据进行加密,加密轮次少,相比传统的DES等加密算法,加密时间更短,对数据实时传输的影响最小。此外,增加了报文编号来防止重放攻击,采用节点认证来验证ECU节点身份的合法性,进一步提高了通信数据的安全性,确保了总线通信数据的安全传输。
当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的存储介质中,该程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、光盘等。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。

Claims (10)

1.一种汽车CAN总线数据通信方法,其特征在于,包括如下步骤:
获取发送节点生成的CAN总线报文,并给所述CAN总线报文的报文ID中加上报文编号;
提取所述CAN总线报文中的数据域,缩短所述CAN总线报文中的数据域的字节数后对缩短后的数据域进行填充,并采用分块加密的方式对填充后的数据域进行加密,获得待发送加密报文;
采用挑战应答认证机制对接收节点进行身份认证;
当接收节点的身份认证通过时,判断所述待发送加密报文的报文编号是否正确;
当所述待发送加密报文的报文编号正确时,将待发送加密报文发送给接收节点,由所述接收节点对所述待发送加密报文中的数据域进行解密,并获取解密后的数据域中的有效数据后,得到待接收解密报文。
2.根据权利要求1所述的汽车CAN总线数据通信方法,其特征在于,所述给所述CAN总线报文的报文ID中加上报文编号的具体方法为:
获取上一次生成的CAN总线报文的报文编号,将上一次生成的CAN总线报文的报文编号加一后,生成新的报文编号,并将新的报文编号加入到所述CAN总线报文的报文ID中。
3.根据权利要求1所述的汽车CAN总线数据通信方法,其特征在于,所述缩短所述CAN总线报文中的数据域的字节数后对缩短后的数据域进行填充的步骤具体包括:
提取所述数据域中的有效数据位,并将所述有效数据位集中在一个或者多个字节中,以使所述数据域中的有效数据位缩短;
根据缩短后的有效数据位的字节长度以及加密所需的字节长度对所述缩短后的有效数据位进行填充,其中,填充的字节长度为加密所需的字节长度与缩短后的有效数据位的字节长度差,每个填充的字节的数据为加密所需的字节长度与缩短后的有效数据位的字节长度差。
4.根据权利要求3所述的汽车CAN总线数据通信方法,其特征在于,所述采用分块加密的方式对填充后的数据域进行加密的方法具体为:
Y=Ak(r+1)·R·S·Akr·C·R·S·Ak(r-1)…C·R·S·Ak1(x),
其中,x表示128位字节明文输入,Y表示128位字节的密文输出,“·”表示复合运算;Aki表示对x的一个变换;
Figure FDA0003121511900000021
其中,Ki为第i轮的子密钥,
Figure FDA0003121511900000022
为比特串的异或运算;S表示位运算;R表示行位移变换;C表示列混合变换。
5.根据权利要求1所述的汽车CAN总线数据通信方法,其特征在于,所述采用挑战应答认证机制对接收节点进行身份认证的步骤具体包括:
发送广播认证请求,并接收接收节点反馈的加密后的挑战报文;
根据所述挑战报文的报文ID在节点信息表中查询与所述接收节点对应的节点信息;
当查询到所述接收节点对应的节点信息时,对所述挑战报文进行加密,并通过HMAC算法生成消息摘要后,向所述接收节点发送响应报文,以使所述接收节点根据所述响应报文判断是否认证成功。
6.根据权利要求5所述的汽车CAN总线数据通信方法,其特征在于,所述挑战报文采用AES加密法进行加密。
7.根据权利要求1所述的汽车CAN总线数据通信方法,其特征在于,所述当接收节点的身份认证通过时,判断所述待发送加密报文的报文编号是否正确的步骤具体包括:
获取上一次发送的报文的报文编号,解析所述待发送加密报文的报文ID并获取所述待发送加密报文的报文编号,当所述待发送加密报文的报文编号为上一次发送的报文的报文编号加一且上一次发送的报文的报文编号加一后小于预设值时,判断所述待发送加密报文的报文编号正确,否则,判断所述待发送加密报文的报文编号不正确。
8.根据权利要求7所述的汽车CAN总线数据通信方法,其特征在于,所述预设值为28
9.一种汽车CAN总线数据通信设备,其特征在于,包括:处理器和存储器;
所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述处理器执行所述计算机可读程序时实现如权利要求1-8任意一项所述的汽车CAN总线数据通信方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-8任意一项所述的汽车CAN总线数据通信方法中的步骤。
CN202010448948.9A 2020-05-25 2020-05-25 一种汽车can总线数据通信方法、设备及存储介质 Active CN111726274B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010448948.9A CN111726274B (zh) 2020-05-25 2020-05-25 一种汽车can总线数据通信方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010448948.9A CN111726274B (zh) 2020-05-25 2020-05-25 一种汽车can总线数据通信方法、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111726274A CN111726274A (zh) 2020-09-29
CN111726274B true CN111726274B (zh) 2021-10-29

Family

ID=72564940

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010448948.9A Active CN111726274B (zh) 2020-05-25 2020-05-25 一种汽车can总线数据通信方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111726274B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112378420A (zh) * 2020-10-30 2021-02-19 北斗星通智联科技有限责任公司 用于汽车导航测试的信号模拟方法、系统及电子设备
CN112383521A (zh) * 2020-11-02 2021-02-19 大连理工大学 一种分布式文件系统中节点身份认证方法
US20230087521A1 (en) * 2021-09-20 2023-03-23 Ford Global Technologies, Llc Computing device verification
CN114142998B (zh) * 2021-11-26 2024-03-15 北京神经元网络技术有限公司 一种数据加密处理方法、装置、电子设备及存储介质
CN114205133B (zh) * 2021-12-06 2022-11-08 南昌大学 一种用于车载can网络的信息安全增强方法及电子设备
CN114422181A (zh) * 2021-12-11 2022-04-29 浙江吉利控股集团有限公司 一种车辆数据报文安全通信方法
CN114567521A (zh) * 2022-02-28 2022-05-31 湖南三一中型起重机械有限公司 Can总线通信方法、发送装置、接收装置及汽车
CN114760163B (zh) * 2022-04-22 2024-01-12 惠州华阳通用电子有限公司 一种can通信方法
CN115296861B (zh) * 2022-07-15 2023-06-06 智己汽车科技有限公司 车载can总线的网络安全通讯方法及控制装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1703108A (zh) * 2005-06-01 2005-11-30 海信集团有限公司 移动终端短消息加密的方法
CN104378649A (zh) * 2014-08-19 2015-02-25 中国科学院信息工程研究所 一种利用国密sm1算法对视频流进行实时加密的方法及系统
CN205283564U (zh) * 2015-12-25 2016-06-01 北京握奇智能科技有限公司 一种电子签名装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7685423B1 (en) * 2000-02-15 2010-03-23 Silverbrook Research Pty Ltd Validation protocol and system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1703108A (zh) * 2005-06-01 2005-11-30 海信集团有限公司 移动终端短消息加密的方法
CN104378649A (zh) * 2014-08-19 2015-02-25 中国科学院信息工程研究所 一种利用国密sm1算法对视频流进行实时加密的方法及系统
CN205283564U (zh) * 2015-12-25 2016-06-01 北京握奇智能科技有限公司 一种电子签名装置

Also Published As

Publication number Publication date
CN111726274A (zh) 2020-09-29

Similar Documents

Publication Publication Date Title
CN111726274B (zh) 一种汽车can总线数据通信方法、设备及存储介质
KR102316872B1 (ko) 제어기 영역 네트워크 버스 기반 보안 통신 방법, 장치 및 시스템
Woo et al. A practical wireless attack on the connected car and security protocol for in-vehicle CAN
CN108696411B (zh) 用于在can系统中使用的装置
US8856536B2 (en) Method and apparatus for secure firmware download using diagnostic link connector (DLC) and OnStar system
US11356425B2 (en) Techniques for improving security of encrypted vehicle software updates
US20180084412A1 (en) In-vehicle networking
CN111181928B (zh) 车辆诊断方法、服务器及计算机可读存储介质
US11245535B2 (en) Hash-chain based sender identification scheme
JP2014204444A (ja) センサへの操作及び/又はセンサのセンサデータへの操作を検出するための方法及び装置
CN108494725A (zh) 一种车载can总线报文的加密通信方法
US11321074B2 (en) Vehicle-mounted device upgrade method and related apparatus
CN111565182B (zh) 一种车辆诊断方法、装置及存储介质
CN113439425B (zh) 报文传输方法及装置
CN111917538B (zh) 基于车载设备的密钥衍生方法、装置及车载设备
WO2021139190A1 (zh) 一种基于车内网的通信方法及装置
CN113138775B (zh) 车载诊断系统固件保护方法及系统
CN113872770A (zh) 一种安全性验证方法、系统、电子设备及存储介质
Youn et al. Practical sender authentication scheme for in-vehicle CAN with efficient key management
Siddiqui et al. A secure communication framework for ecus
Giri et al. An integrated safe and secure approach for authentication and secret key establishment in automotive Cyber-Physical systems
CN114867011A (zh) 车载数据传输装置、方法、车辆和车载数据传输系统
CN113872769B (zh) 基于puf的设备认证方法、装置、计算机设备及存储介质
US20230106378A1 (en) Sufficiently Secure Controller Area Network
Hridoy Lightweight Authenticated Encryption for Vehicle Controller Area Network

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