CN113162928B - 通信方法、装置、ecu、车辆及存储介质 - Google Patents
通信方法、装置、ecu、车辆及存储介质 Download PDFInfo
- Publication number
- CN113162928B CN113162928B CN202110420141.9A CN202110420141A CN113162928B CN 113162928 B CN113162928 B CN 113162928B CN 202110420141 A CN202110420141 A CN 202110420141A CN 113162928 B CN113162928 B CN 113162928B
- Authority
- CN
- China
- Prior art keywords
- ecu
- information
- message
- communication
- preset
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40267—Bus for use in transportation systems
- H04L2012/40273—Bus for use in transportation systems the transportation system being a vehicle
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Small-Scale Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请公开了一种通信方法、装置、ECU、车辆及存储介质,涉及车辆技术领域。在第一ECU针对第二ECU的通信状态信息为第一状态信息时,向第二ECU发送第一状态信息;若接收到第二ECU基于第一状态信息发送的通信验证请求,向第二ECU发送验证信息;接收第二ECU基于验证信息发送的反馈信息;当反馈信息符合预设规则时,将通信状态信息更改为第二状态信息,并将加密密钥发送至第二ECU,其中,加密密钥用于加密第一ECU与第二ECU通信过程中的报文信息。如此,可以ECU之间通过加密密钥对通信过程中的报文进行加密,提升安全性,并且在ECU之间统一加密密钥之前进行通信验证,通信验证后才可以进行通信并且统一加密密钥,提升了ECU之间的通信安全性。
Description
技术领域
本申请涉及汽车技术领域,更具体地,涉及一种通信方法、装置、ECU、车辆及存储介质。
背景技术
随着车辆互联化的程度越来越高,对车内通信的安全问题越来越重视。在相关技术中,车内的电子控制单元(Electronic Control Unit,ECU)之间大部分是基于控制器局域网络(Controller Area Network,CAN)或者可变速率的CAN(CAN with Flexible Data-Rate,CAN-FD)的方式进行通信。通常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之间的通信状态为可通信状态,所述加密密钥用于加密所述第一ECU与所述第二ECU通信过程中的报文信息。
第三方面,本申请实施例提供了一种ECU,包括:一个或多个处理器;存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行第一方面提供的通信方法。
第四方面,本申请实施例提供了一种车辆,所述车辆包括车辆主体以及设置于所述车辆主体内的上述ECU。
第五方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,所述程序代码可被处理器调用执行第一方面提供的通信方法。
本申请提供的方案中,在第一ECU针对第二ECU的通信状态信息为第一状态信息时,向第二ECU发送第一状态信息,其中,第一状态信息用于表征第二ECU与第一ECU之间的通信状态为不可通信状态,且第二ECU需要进行与第一ECU之间的通信验证;若接收到第二ECU基于第一状态信息发送的通信验证请求,向第二ECU发送验证信息;接收第二ECU基于验证信息发送的反馈信息;当反馈信息符合预设规则时,将通信状态信息更改为第二状态信息,并将加密密钥发送至第二ECU,其中,第二状态信息用于表征所述第二ECU与第一ECU之间的通信状态为可通信状态,加密密钥用于加密第一ECU与第二ECU通信过程中的报文信息。如此,可以保证ECU之间通过加密密钥对通信过程中的报文进行加密,提升安全性,并且在ECU之间统一加密密钥之前进行通信验证,通信验证后才可以进行通信并且统一加密密钥,提升了ECU之间的通信安全性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一实施例提供的通信方法的硬件环境图。
图2示出了本申请一实施例提供的通信方法的流程示意图。
图3示出了本申请又一实施例提供的通信方法的流程示意图。
图4示出了本申请中报文信息的格式的示意图。
图5示出了图3所示步骤S270在一种实施方式中的子步骤流程示意图。
图6示出了图3所示步骤S270在另一种实施方式中的子步骤流程示意图。
图7示出了本申请另一实施例提供的通信方法的流程示意图。
图8示出了本申请再一实施例提供的通信方法的流程示意图。
图9示出了本申请实施例提供的通信方法的一种交互实现流程图。
图10是根据本申请一实施例提供的一种通信装置的框图。
图11是本申请实施例的用于执行根据本申请实施例的通信方法的ECU的框图。
图12示出了本申请实施例提供的车辆的结构示意图。
图13是本申请实施例的用于保存或者携带实现根据本申请实施例的通信方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在车内网的相关技术中,车辆中包括多个ECU,其中,ECU是控制车辆系统最重要的部件。并且,不同的ECU之间通过CAN或者CANFD的通信方式进行数据交互,车内传输的每个数据信息对驾驶者的生命安全至关重要。但是在CAN或者CANFD的设计中没有考虑到信息安全。当使用CAN总线网络进行数据广播,是通过明文传输报文信息,因此,CAN总线网络不能确保CAN数据帧的机密性,以及ECU对CAN数据帧的认证,使得恶意攻击者轻松地窃取数据或进行重放攻击,进而威胁到驾驶者的生命安全。
基于此,在实际应用中,不同ECU之间的控制报文信息通过提前对其进行加密,再将加密后的控制报文信息进行传输,以提高报文信息的机密性。但是,由于一直使用固定的密钥进行加密,一旦被第三方截获到该密钥,仍可以窃取到传输过程中的报文信息,进而导致第三方可以对该车辆内部通信进行重放攻击,进而影响驾驶者的生命安全。
针对上述问题,发明人提出一种通信方法、装置、ECU、车辆及存储介质,可以在ECU之间通过加密密钥对通信过程中的报文进行加密,提升安全性,并且通过设计安全性校验字段的格式保证此安全方法可以抵御回放攻击,即及时回放整车的报文,ECU也能判断出来是非法报文,提高了车内通信的安全性。下面对该内容进行详细描述。
请参照图1,图1为本申请一实施例提供的一种通信方法的硬件环境图。其中,车辆内部可以包括多个ECU,如图1所包含的ECU1、ECU2、ECU3及ECU4,本实施例对此不作限制。在ECU1与ECU2、ECU3及ECU4之间的通信状态为可通信状态时,ECU1可以分别与ECU2、ECU3及ECU4通过CAN或者CANFD总线进行报文信息的传输;在ECU4与ECU2和ECU3之间的通信状态为可通信状态时,可以分别与ECU2和ECU3通过CAN或者CANFD总线进行报文信息的传输。
请参照图2,图2为本申请一实施例提供的一种通信方法的流程示意图,应用于车辆的第一电子控制单元ECU,所述车辆还包括第二ECU。下面将结合图2对本申请实施例提供的通信方法进行详细阐述。该通信方法可以包括以下步骤:
步骤S110:在所述第一ECU针对所述第二ECU的通信状态信息为第一状态信息时,向所述第二ECU发送所述第一状态信息,所述第一状态信息用于表征所述第二ECU与所述第一ECU之间的通信状态为不可通信状态,且所述第二ECU需要进行与所述第一ECU之间的通信验证。
在本实施例中,ECU为电子控制单元,也可以理解为行车电脑或者车载电脑。ECU具有运算和控制的功能,在车辆上电时,ECU可以采集各传感器的信号,进行运算,并将运算的结果转变为控制信号,控制被控对象的工作。随着车用电子化自动化的提高,车辆内部也可以包括多个ECU,为了简化电路和降低成本,车辆内部的多个ECU之间的信息传递可以采用CAN或者CANFD的方式进行通信。
基于此,为了提高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,本实施例对此不作限制。
步骤S120:若接收到所述第二ECU基于所述第一状态信息发送的通信验证请求,向所述第二ECU发送验证信息。
在本实施例中,第一ECU若接收到第二ECU基于第一状态信息发送的通信验证请求,则向第二ECU发送验证消息,对应地,第二ECU接收该验证信息。其中,验证消息可以是一个携带有随机数的报文信息,也可以是一个携带有通信请求授权指令的报文信息,本实施例对此不作限制。
步骤S130:接收所述第二ECU基于所述验证信息发送的反馈信息。
基于此,在第二ECU接收到第一ECU发送的验证信息后,第二ECU可以向第一ECU发送基于验证信息的反馈信息,对应地,第一ECU接收第二ECU发送的基于验证信息的反馈消息。
在一些实施方式中,当验证消息为一个携带有随机数的报文信息时,反馈信息可以是第二ECU通过加密算法及密钥对上述报文信息进行加密后的密文信息,其中,加密算法可以是非对称加密算法,也可以是对称加密算法,本实施例对此不作限制。
在另一些实施方式中,当验证信息是一个携带有通信请求授权标识的报文信息时,反馈信息可以是第二ECU生成的一个携带有通信授权标识的报文信息。
步骤S140:当所述反馈信息符合预设规则时,将所述通信状态信息更改为第二状态信息,并将分配给所述第二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之间通过加密密钥对通信过程中的报文进行加密,提升安全性,并且在ECU之间统一加密密钥之前进行通信验证,通信验证后才可以进行通信并且统一加密密钥,提升了ECU之间的通信安全性。
请参照图3,图3为本申请又一实施例提供的一种通信方法的流程示意图,应用于车辆的第一电子控制单元ECU,所述车辆还包括第二ECU。下面将结合图3对本申请实施例提供的通信方法进行详细阐述。该通信方法可以包括以下步骤:
步骤S210:在所述第一ECU针对所述第二ECU的通信状态信息为第一状态信息时,向所述第二ECU发送所述第一状态信息,所述第一状态信息用于表征所述第二ECU与所述第一ECU之间的通信状态为不可通信状态,且所述第二ECU需要进行与所述第一ECU之间的通信验证。
步骤S220:若接收到所述第二ECU基于所述第一状态信息发送的通信验证请求,向所述第二ECU发送验证信息。
步骤S230:接收所述第二ECU基于所述验证信息发送的反馈信息。
步骤S240:当所述反馈信息符合预设规则时,将所述通信状态信息更改为第二状态信息,并将分配给所述第二ECU的加密密钥发送至所述第二ECU,所述第二状态信息用于表征所述第二ECU与所述第一ECU之间的通信状态为可通信状态,所述加密密钥用于加密所述第一ECU与所述第二ECU通信过程中的报文信息。
在本申请实施例中,步骤S210-步骤S240可以参阅前述实施例中步骤S110-步骤S140的内容,在此不再赘述。
步骤S250:接收所述第二ECU发送的密文信息,所述密文信息为所述第二ECU使用所述加密密钥及第一加密算法加密报文信息得到。
在本实施例中,在第一ECU将通信状态信息更改为第二状态信息,并将加密密钥发送给第二ECU之后,第二ECU可以使用接收到的加密密钥以及第一加密算法对报文信息进行加密,得到上述密文信息,再将该密文信息发送至第一ECU,其中,第一加密算法可以是对称加密算法,也可以是非对称加密算法,本实施例对此不作限制。
步骤S260:通过所述加密密钥及所述第一加密算法对应的第一解密算法对所述密文信息进行解密,得到所述报文信息。
步骤S270:判断所述报文信息是否符合预设报文规则。
基于此,第一ECU在接收到密文信息后,可以通过相同的加密密钥,以及第一加密算法对应的第一解密算法对密文信息进行解密,得到未加密的报文信息,并判断报文信息是否符合预设报文规则,当判定报文信息符合预设报文规则时,第一ECU才确定该报文信息为第一ECU发送的,并执行报文信息中包含的对车辆的控制信息;若第一ECU判定报文信息不符合预设报文规则时,第一ECU则会将该报文信息判定为非法报文,其中,非法报文可以是第三方恶意通过截取并模仿第一ECU和第二ECU的某个通信时间段的报文,第三方发送非法报文信息,试图控制该车辆。因此,在接收到第二ECU发送的密文信息后,可以通过密文信息进行解密,并判断解密后的报文信息是是否符合预设报文规则,来抵御回放攻击。
可选地,在加密密钥发布完成后,后续的报文信息都需要通过安全性校验,即当报文信息符合预设报文规则时,ECU才会执行报文信息中包含的控制指令。如图4所示,报文信息可以包括应用数据字段、安全性校验字段以及完整性校验字段,安全性校验字段又包括版本号、消息摘要算法(Message Digest Algorithm,MD5)数值、计数器以及时间戳。
在一些实施方式中,可以通过判断版本号是否与预设版本号一致,进而判断报文信息是否符合预设报文规则,若版本号与预设版本号一致,则判定当前接收到的报文信息符合预设报文规则;若版本号与预设版本号不一致,则判定当前接收到的报文信息不符合预设报文规则。
在另一些实施方式中,可以判断MD5数值是否与预设数值一致,若不一致,则代表该报文被篡改过,进而判定当前接收到的报文信息不符合预设报文规则。
在又一些实施方式中,请参阅图5,步骤S270可以包括:
步骤S271A:判断所述计数器数值相较于历史计数器数值是否按照预设间隔数值递增,所述历史计数器数值为所述第一ECU上一次接收到的所述第二ECU发送的报文信息中携带的计数器数值。
在本实施例中,第二ECU发送给第一ECU的每个报文信息中都会包含一个计数器数值,并且计数器的数值随着报文信息的发送时间按照预设间隔数值递增,其中,间隔数值可以是1、3、5等,本实施例对此不作限制。在第一ECU和第二ECU之间的通信状态为可通信状态后,第一ECU和第二ECU即使没有控制报文信息发送,仍会每隔固定时长发送一个类似心跳包的报文信息维持该通信链路。因此,在第一ECU和第二ECU开始通信后,第二ECU发送给第一ECU的报文信息的计数器数值相较于历史计数器数值是一直按照预设间隔数值递增的。也就是说,若第三方通过监听第一ECU和第二ECU之间的通信过程中的报文信息,并基于截取到的报文信息模仿发送非法报文来控制该车辆,由于第三方在发送非法报文时,并不能确定第二ECU的报文信息中的计数器数值递增到哪个数值,即,第三方模仿的非法报文的计数器数值是无法满足与第二ECU发送的上一个报文信息的计数器数值按照预设间隔数值递增的条件。因此,可以通过判断报文信息中的计数器数值相较于历史计数器数值是否按照预设间隔数值递增,来判断该报文信息是否为合法报文信息。
步骤S272A:若所述计数器数值相较于所述历史计数器数值按照所述预设间隔数值递增,判定所述报文信息符合所述预设报文规则。
步骤S273A:若所述计数器数值相较于所述历史计数器数值未按照所述预设间隔数值递增,判定所述报文信息不符合所述预设报文规定。
基于此,当判定计数器数值相较于历史计数器数值按照预设间隔数值递增,则判定报文信息符合预设报文规则;若计数器数值相较于历史计数器数值未按照预设间隔数值递增,判定报文信息不符合预设报文规定。
例如,第二ECU每隔固定时长(如5ms)向第一ECU发送报文信息,若在预设时长(如15ms)内,第二ECU向第一ECU一共发送了三个报文信息,若第一个报文信息中的计数器数值提前设置为1,第二个报文信息中的计数器数值按照预设间隔数值2递增,则第二个报文信息中的计数器数值为3,对应地,第三个报文信息中的计数器数值为5。此时,若第一ECU又接收到了第二ECU发送的报文信息,则会对该报文信息携带的计数器数值进行判断,若该计数器数值为7,可以确定该报文信息为第二ECU发送的合法报文,而不是第三方通过模拟历史报文信息发送的非法报文;若该计数器数值为5,第一ECU则会将该报文信息判定为非法报文,并且不执行该非法报文中包含的控制信息。
在另一些实施方式中,请参阅图6,步骤S270可以包括:
步骤S271B:判断所述时间戳与所述第一ECU上一次接收到的报文信息中携带的历史时间戳之间的时间差值是否小于预设阈值。
在本实施例中,还可以基于报文信息中的时间戳来判断报文信息是否符合预设报文规则。其中,报文信息中的时间戳可以代表该报文信息的发送时间,每个报文信息中都会包含一个时间戳,时间戳的格式可以是2021/4/12 15:30:03,其代表该报文信息的发送时间为2021年4月12日15点30分3秒。第二ECU发送给第一ECU的每个报文信息均包含一个时间戳,并且每个报文信息中的时间戳的时间都是依次递增的,在第一ECU和第二ECU之间的通信状态为可通信状态后,第一ECU和第二ECU即使没有控制报文信息发送,仍会每隔固定时长发送一个类似心跳包的报文信息维持该通信链路。因此,第二ECU发送的每个报文信息的时间戳均是依次递增的,如果第三方通过监听第一ECU和第二ECU之间的通信过程中的报文信息,并基于截取到的报文信息模仿发送非法报文来控制该车辆,由于第三方在发送非法报文时,无法或者第二ECU发送的上一个报文信息的时间戳,也就无法成功模仿到第一ECU和第二ECU之间的报文信息的正确格式。
基于此,可以通过对每个报文信息中的时间戳进行验证,从而验证该报文信息是否为被篡改后的非法报文信息。即,获取第一ECU上一次接收到的报文信息中的时间戳,并计算当前报文信息中携带的时间戳与上一次接受到的报文信息中的时间戳的差值,并判断该差值是否小于预设阈值,来判断该报文信息是否符合预设报文规则。
步骤S272B:若所述时间差值小于预设阈值,判定所述报文信息符合所述预设报文规则。
步骤S273B:若所述时间差值不小于所述预设阈值,判定所述报文信息不符合所述预设报文规则。
在本实施例中,预设阈值可以是提前设置的数值,也可以是上述类似心跳包的报文信息发送的间隔时长,本实施例对此不作限制。当时间差值小于预设阈值时,代表此时接收到的报文信息为第二ECU连续发送的合法报文信息,则判定该报文信息符合预设报文规则;当时间差值不小于预设阈值时,代表该报文信息可能为第三方非法截取历史报文信息并基于历史报文信息模仿发送的非法报文信息,对应地,第一ECU则会将该报文信息判定为非法报文,并判定该报文信息不符合预设报文规则。
例如,若第一ECU上一次接受到的报文信息中携带的时间戳为2021/4/12 15:30:03,预设阈值为2s,若当前接收到的报文信息中的时间戳为2021/4/12 15:30:08,则时间戳与第一ECU上一次接收到的报文信息中携带的历史时间戳之间的时间差值为5s,此时可以将当前接收到的报文信息判定为非法报文,即,当前接收到的报文信息不符合预设报文规则;若当前接收到的报文信息中的时间戳为2021/4/12 15:30:04,则时间戳与第一ECU上一次接收到的报文信息中携带的历史时间戳之间的时间差值为1s,则可以确定当前的报文信息为合法报文,并判定该报文信息符合预设报文规则。
除此之外,在判断时间戳与第一ECU上一次接收到的报文信息中携带的历史时间戳之间的时间差值是否小于预设阈值之前,还可以判断当前接收到的报文信息的时间戳是否相较于上一次接收到的报文信息中携带的历史时间戳递增的,若不是递增的,也可以判断该当前接收到的报文信息不符合预设规则。
在本实施例中,第一ECU对接收到的报文信息的安全性校验字段进行安全性校验,其中,若报文信息中的版本号、MD5数值、计数器以及时间戳中的任一项不符合上述条件,则判定该报文信息不符合预设报文规则;或者,通过循环冗余校验(Cyclic RedundancyCheck,CRC)的方式对完整性校验字段进行校验,若判定该报文信息不完整,仍可以判定该报文信息不符合预设报文规则。即,当针对安全性校验字段的安全性校验通过,且针对完整性校验字段的CRC校验通过时,可以判定该报文信息符合预设报文规则。
步骤S280:若所述报文信息不符合预设报文规则,则将所述通信状态信息更改为所述第一状态信息。
在本实施例中,当检测到报文信息不符合预设报文规则时,代表当前接收到的报文信息可能是第三方发送的非法报文信息;第一ECU则会将针对第二ECU的第二状态信息更改为第一状态信息,即第一ECU与第二ECU之间的通信状态又变为不可通信状态,并且不执行该报文信息中包含的控制指令。
在本实施例中,在报文信息不符合预设报文规则,将通信状态信息更改为第一状态信息之后,重新执行步骤S110-步骤S140。即,第一ECU判定当前与第二ECU的通信过程可能被第三方非法监听,因此,将针对第二ECU的通信状态更改为不可通信状态可以保证通信安全,并且,第二ECU在收到第一ECU更改当前的通信状态信息后,可以重新发送通信验证,若通信验证通过,第一ECU则重新分发一个新的加密密钥给第二ECU,并在此将通信状态更改为第二状态信息,与第二ECU重新建立通信路径,传输后续的控制报文信息。
在本实施例中,在第一ECU针对第二ECU的通信状态信息为第一状态信息时,向第二ECU发送第一状态信;若接收到第二ECU基于第一状态信息发送的通信验证请求,向第二ECU发送验证信息;接收第二ECU基于验证信息发送的反馈信息;当反馈信息符合预设规则时,将通信状态信息更改为第二状态信息,并将加密密钥发送至第二ECU;接收第二ECU发送的密文信息,密文信息为第二ECU使用加密密钥及第一加密算法加密报文信息得到;通过加密密钥及第一加密算法对应的第一解密算法对密文信息进行解密,得到报文信息;判断报文信息是否符合预设报文规则;若报文信息不符合预设报文规则,则将通信状态信息更改为所述第一状态信息。如此,可以ECU之间通过加密密钥对通信过程中的报文进行加密,提升安全性,并且在ECU之间统一加密密钥之前进行通信验证,通信验证后才可以进行通信并且统一加密密钥,提升了ECU之间的通信安全性。并且可以保证每次在车辆上电或者ECU检测到异常时,第一ECU均会分配一个新的加密密钥给第二ECU加密传输过程中的报文信息,降低了加密密钥被恶意盗取以及加密算法被破解的可能性,提高了报文信息在传输过程中的安全性;再通过对报文信息的安全性字段进行安全性校验,可以有效抵御回放攻击,提高车内通信的安全性。
请参照图7,图7为本申请另一实施例提供的一种通信方法的流程示意图,应用于车辆的第一电子控制单元ECU,所述车辆还包括第二ECU。下面将结合图7对本申请实施例提供的通信方法进行详细阐述。该通信方法可以包括以下步骤:
步骤S310:在所述第一ECU针对所述第二ECU的通信状态信息为第一状态信息时,向所述第二ECU发送所述第一状态信息,所述第一状态信息用于表征所述第二ECU与所述第一ECU之间的通信状态为不可通信状态,且所述第二ECU需要进行与所述第一ECU之间的通信验证。
步骤S320:若接收到所述第二ECU基于所述第一状态信息发送的通信验证请求,向所述第二ECU发送验证信息。
步骤S330:接收所述第二ECU基于所述验证信息发送的反馈信息。
在本申请实施例中,步骤S310-步骤S330可以参阅前述实施例中步骤S110-步骤S130的内容,在此不再赘述。
步骤S340:通过所述第一密钥以及所述第二加密算法对应的第二解密算法对数据信息进行解密,得到目标数据。
在本实施例中,数据信息为第二ECU通过第一密钥以及第二加密算法对验证信息加密得到的,因此,在接收到第二ECU基于验证信息发送的反馈信息后,第一ECU可以通过相同的第一密钥以及第二加密算法对应的第二解密算法对数据信息进行解密,得到目标数据。因为第一ECU解密数据信息与第二ECU加密验证信息使用的密钥是相同的,所以解密数据信息后得到目标数据应该与初始的验证信息相匹配,若不匹配则可能代表该反馈信息为第三方模仿历史报文发送的非法报文。因此,可以通过判断解密后得到的目标数据是否与验证信息是否匹配,来判断反馈信息是否符合预设规则。
步骤S350:判断所述目标数据是否与所述验证信息匹配。
步骤S360:若所述目标数据与所述验证信息匹配,判定所述反馈信息符合预设规则,将所述通信状态信息更改为第二状态信息,并将所述加密密钥发送至所述第二ECU。
在本实施例中,在得到目标数据后,通过判断目标数据与验证信息是否匹配,来判定反馈信息是否符合预设规则。若目标数据与验证信息匹配,则判定反馈信息符合预设规则,将通信状态信息更改为第二状态信息,并将加密密钥发送至所述第二ECU。对应地,第二ECU在接收到通信状态信息更改的报文信息以及加密密钥后,可以使用加密密钥以及第一加密算法对后续的报文信息进行加密。
例如,若第一ECU发送的验证信息是一个随机数123456,第二ECU在接收到该随机数后,使用第一密钥以及第二加密算法对该随机数进行加密,得到反馈信息543210,并将包含该反馈信息发送至第一ECU,第一ECU则可以根据第一密钥以及第二加密算法对应的第二解密算法对该反馈信息进行解密,得目标数据。若解密后的目标数据为123456,则代表该目标数据与验证信息匹配,进而判定反馈信息符合预设规则,将通信状态信息更改为第二状态信息,并将加密密钥发送至所述第二ECU。
步骤S370:若所述目标数据与所述验证信息不匹配,判定所述反馈信息不符合预设规则。
仍以第一ECU发送的验证信息是一个随机数123456为例,若解密后的目标数据为423016,则代表该目标数据与验证信息不匹配,进而判定反馈信息不符合预设规则,相当于第二ECU与第一ECU之间的通信验证失败,即第一ECU判定第二ECU并非为一个合法的节点,因此,第一ECU不会分发加密密钥给第二ECU。
基于此,若第二ECU仍需要与第一ECU进行通信,第二ECU可以再次向第一ECU发起通信验证,即,重新执行步骤S310-步骤S350。
在本实施例中,在第一ECU针对第二ECU的通信状态信息为第一状态信息时,向第二ECU发送第一状态信息;若接收到第二ECU基于第一状态信息发送的通信验证请求,向第二ECU发送验证信息;接收第二ECU基于验证信息发送的反馈信息;通过第一密钥以及第二加密算法对应的第二解密算法对数据信息进行解密,得到目标数据;判断目标数据是否与验证信息匹配;若目标数据与验证信息匹配,判定反馈信息符合预设规则,将通信状态信息更改为第二状态信息,并将加密密钥发送至第二ECU;若目标数据与验证信息不匹配,判定反馈信息不符合预设规则。如此,可以ECU之间通过加密密钥对通信过程中的报文进行加密,提升安全性,并且在ECU之间统一加密密钥之前进行通信验证,通信验证后才可以进行通信并且统一加密密钥,提升了ECU之间的通信安全性。
请参照图8,图8为本申请再一实施例提供的一种通信方法的流程示意图,应用于车辆的第一电子控制单元ECU,所述车辆还包括第二ECU。下面将结合图8对本申请实施例提供的通信方法进行详细阐述。该通信方法可以包括以下步骤:
步骤S410:在所述第一ECU针对所述第二ECU的通信状态信息为第一状态信息时,向所述第二ECU发送所述第一状态信息,所述第一状态信息用于表征所述第二ECU与所述第一ECU之间的通信状态为不可通信状态,且所述第二ECU需要进行与所述第一ECU之间的通信验证。
步骤S420:若接收到所述第二ECU基于所述第一状态信息发送的通信验证请求,向所述第二ECU发送验证信息。
步骤S430:接收所述第二ECU基于所述验证信息发送的反馈信息。
步骤S440:当所述反馈信息符合预设规则时,将所述通信状态信息更改为第二状态信息,并将分配给所述第二ECU的加密密钥发送至所述第二ECU,所述第二状态信息用于表征所述第二ECU与所述第一ECU之间的通信状态为可通信状态,所述加密密钥用于加密所述第一ECU与所述第二ECU通信过程中的报文信息。
在本申请实施例中,步骤S410-步骤S440可以参阅前述实施例中步骤S110-步骤S140的内容,在此不再赘述。
步骤S450:若在预设时长内未接收到所述第二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基于第一状态信息发送的通信验证请求,向第二ECU发送验证信息;接收第二ECU基于验证信息发送的反馈信息;当反馈信息符合预设规则时,将通信状态信息更改为第二状态信息,并将加密密钥发送至第二ECU;若在预设时长内未接收到第二ECU发送的密文信息、接收到第二ECU发送的重启报文或者检测到第一ECU重启,将针对第二ECU的通信状态信息更改为第一状态信息,其中,重启报文用于表示第二ECU在指定时长内发生过重启。如此,可以保证每次在车辆上电或者ECU检测到异常时,第一ECU均会分配一个新的加密密钥给第二ECU加密传输过程中的报文信息,降低了加密密钥被恶意盗取以及加密算法被破解的可能性,提高了报文信息在传输过程中的安全性。
请参照图9,其中示出了本方案中第一ECU与第二ECU的交互实现流程图。
在本实施例中,第一ECU和第二ECU之间可以通过CANFD进行通信。在第一ECU与第二ECU之间最开始的通信状态为不可通信状态,第一ECU将该通行状态通过广播的方式发送给第二ECU,第二ECU在获取到通信状态信息为不可通信状态时,向第一ECU发送通信验证请求,第一ECU在接收到通信验证请求后,生成一个验证信息,该验证信息中包括一个随机数,并将该验证信息发送至第二ECU;第二ECU在接收到验证信息后,使用第一密钥对该验证信息中的随机数进行加密,得到加密后的数据信息,并将该数据信息发送至第一ECU;对应地,第一ECU在通过第一密钥对接收到的加密后的数据信息进行解密,并将解密后的目标数据与验证信息进行匹配,若不匹配,则仍保持当前通信状态为不可通信状态;若匹配,则将当前通信状态更改为可通信状态,并使用第一密钥对加密密钥进行加密,再将加密后的加密密钥发送至第二ECU。第二ECU在等待第一ECU发送的包含通信状态信息以及加密密钥的时间超过预设时长,则重新发起通信请求,若在预设时长内接收到加密后的加密密钥,则使用第一密钥对加密密钥进行解密,得到解密后的加密密钥。
基于此,第二ECU使用加密密钥加密报文信息1,并将加密后的报文信息1发送至第一ECU,若第一ECU在指定时长内未接收到加密后的报文信息1,则将当前的通信状态更改为不可通信状态。若接收到该加密后的报文信息1,则使用加密密钥对报文信息1进行解密,并判断报文信息是否符合预设报文规则,若不符合,则将当前的通信状态更改为不可通信状态;若符合,则继续使用该加密密钥加密报文信息2,并发送至第二ECU。若第二ECU在预设时长内未接收到该报文信息2,则重新发起通信验证请求;若在预设时长内接收到该报文信息2,则使用加密密钥对报文信息2进行解密,并判断报文信息2是否符合预设报文规则,若不符合,则重新发起通信验证;若符合,则继续使用该加密密钥加密后续报文信息。
在第一ECU和第二ECU成功建立安全通信后,第二ECU可以持续监测第一ECU的通信状态,以及自身存储的加密密钥,若检测到第一ECU的通信状态更改为不可通信状态,或者加密密钥恢复为初始值0时,则重新向第一ECU发起通信验证;同样地,第一ECU也可以持续检测第二ECU发送的报文信息,若判定接收到的报文信息不符合预设报文规则、在预设时长内未接收到第二ECU发送的报文信息、接收到第二ECU发送的重启报文或者检测到第一ECU发生重启,均将当前的通信状态信息更改为不可通信状态。
如此,可以ECU之间通过加密密钥对通信过程中的报文进行加密,提升安全性,并且在ECU之间统一加密密钥之前进行通信验证,通信验证后才可以进行通信并且统一加密密钥,提升了ECU之间的通信安全性。并且保证每次在车辆上电或者ECU检测到异常时,第一ECU均会分配一个新的加密密钥给第二ECU加密传输过程中的报文信息,降低了加密密钥被恶意盗取以及加密算法被破解的可能性,提高了报文信息在传输过程中的安全性;并且,通过对报文信息的安全性字段进行安全性校验,可以有效抵御回放攻击,提高车内通信的安全性。
请参照图10,其中示出了本申请实施例提供的一种通信装置500的结构框图,应用于车辆的第一ECU,所述车辆还包括第二ECU。该装置500可以包括:状态信息发送模块510、验证信息发送模块520、信息接收模块530和密钥分发模块540。
状态信息发送模块510用于在所述第一ECU针对所述第二ECU的通信状态信息为第一状态信息时,向所述第二ECU发送所述第一状态信息,所述第一状态信息用于表征所述第二ECU与所述第一ECU之间的通信状态为不可通信状态,且所述第二ECU需要进行与所述第一ECU之间的通信验证。
验证信息发送模块520用于若接收到所述第二ECU基于所述第一状态信息发送的通信验证请求,向所述第二ECU发送验证信息。
信息接收模块530用于接收所述第二ECU基于所述验证信息发送的反馈信息。
密钥分发模块540用于当所述反馈信息符合预设规则时,将所述通信状态信息更改为第二状态信息,并将分配给所述第二ECU的加密密钥发送至所述第二ECU,所述第二状态信息用于表征所述第二ECU与所述第一ECU之间的通信状态为可通信状态,所述加密密钥用于加密所述第一ECU与所述第二ECU通信过程中的报文信息。
在一些实施方式中,在当所述反馈信息符合预设规则时,将所述通信状态信息更改为第二状态信息,并将所述加密密钥发送至所述第二ECU之后,通信装置500可以包括:密文接收模块、解密模块及报文判断模块。密文接收模块可以用于接收所述第二ECU发送的密文信息,所述密文信息为所述第二ECU使用所述加密密钥及第一加密算法加密报文信息得到。解密模块可以用于通过所述加密密钥及所述第一加密算法对应的第一解密算法对所述密文信息进行解密,得到所述报文信息。报文判断模块可以用于判断所述报文信息是否符合预设报文规则,若所述报文信息不符合预设报文规则,则将所述通信状态信息更改为所述第一状态信息,执行所述在所述第一ECU针对所述第二ECU的通信状态信息为第一状态信息时,向所述第二ECU发送所述第一状态信息,至所述当所述反馈信息符合预设规则时,将所述通信状态信息更改为第二状态信息,并将所述加密密钥发送至所述第二ECU的步骤。
在该方式中,报文判断模块可以包括:计数器数值判断单元。计数器数值判断单元可以具体用于判断所述计数器数值相较于历史计数器数值是否按照预设间隔数值递增,所述历史计数器数值为所述第一ECU上一次接收到的所述第二ECU发送的报文信息中携带的计数器数值;若所述计数器数值相较于所述历史计数器数值按照所述预设间隔数值递增,判定所述报文信息符合所述预设报文规则;若所述计数器数值相较于所述历史计数器数值未按照所述预设间隔数值递增,判定所述报文信息不符合所述预设报文规定。
在该方式中,报文判断模块还可以包括:时间戳判断单元。时间戳判断单元可以具体用于判断所述时间戳与所述第一ECU上一次接收到的报文信息中携带的历史时间戳之间的时间差值是否小于预设阈值;若所述时间差值小于预设阈值,判定所述报文信息符合所述预设报文规则;若所述时间差值不小于所述预设阈值,判定所述报文信息不符合所述预设报文规则。
在一些实施方式中,所述反馈信息为所述第二ECU通过第一密钥以及第二加密算法对所述验证信息加密得到的数据信息,在所述接收所述第二ECU基于所述验证信息发送的反馈信息之后,通信装置500还可以包括:目标数据获取单元及目标数据判断单元。目标数据获取单元可以用于通过所述第一密钥以及所述第二加密算法对应的第二解密算法对所述数据信息进行解密,得到目标数据。目标数据判断单元可以用于判断所述目标数据是否与所述验证信息匹配;若所述目标数据与所述验证信息匹配,判定所述反馈信息符合预设规则;若所述目标数据与所述验证信息不匹配,判定所述反馈信息不符合预设规则。
在一些实施方式中,通信装置500还可以包括:状态更改模块。状态更改模块可以用于若在预设时长内未接收到所述第二ECU发送的密文信息、接收到所述第二ECU发送的重启报文或者检测到所述第一ECU重启,将针对所述第二ECU的通信状态信息更改为所述第一状态信息,所述重启报文用于表示所述第二ECU在指定时长内发生过重启。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
综上所述,本申请实施例提供的方案中,在第一ECU针对第二ECU的通信状态信息为第一状态信息时,向第二ECU发送第一状态信;若接收到第二ECU基于第一状态信息发送的通信验证请求,向第二ECU发送验证信息;接收第二ECU基于验证信息发送的反馈信息;当反馈信息符合预设规则时,将通信状态信息更改为第二状态信息,并将加密密钥发送至第二ECU;接收第二ECU发送的密文信息,密文信息为第二ECU使用加密密钥及第一加密算法加密报文信息得到;通过加密密钥及第一加密算法对应的第一解密算法对密文信息进行解密,得到报文信息;判断报文信息是否符合预设报文规则;若报文信息不符合预设报文规则,则将通信状态信息更改为所述第一状态信息。如此,可以ECU之间通过加密密钥对通信过程中的报文进行加密,提升安全性,并且在ECU之间统一加密密钥之前进行通信验证,通信验证后才可以进行通信并且统一加密密钥,提升了ECU之间的通信安全性。并且保证每次在车辆上电或者ECU检测到异常时,第一ECU均会分配一个新的加密密钥给第二ECU加密传输过程中的报文信息,降低了加密密钥被恶意盗取以及加密算法被破解的可能性,提高了报文信息在传输过程中的安全性;并且,通过对报文信息的安全性字段进行安全性校验,可以有效抵御回放攻击,提高车内通信的安全性。
下面将结合图11对本申请提供的一种ECU进行说明。
参照图11,图11示出了本申请实施例提供的一种ECU600的结构框图,本申请实施例提供的风险预测方法可以由该ECU600执行。
本申请实施例中的ECU600可以包括一个或多个如下部件:处理器601、存储器602、以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器602中并被配置为由一个或多个处理器601执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器601可以包括一个或者多个处理核。处理器601利用各种接口和线路连接整个ECU600内的各个部分,通过运行或执行存储在存储器602内的指令、程序、代码集或指令集,以及调用存储在存储器602内的数据,执行ECU600的各种功能和处理数据。可选地,处理器601可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器601可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以集成到处理器601中,单独通过一块通信芯片进行实现。
存储器602可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器602可用于存储指令、程序、代码、代码集或指令集。存储器602可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储ECU600在使用中所创建的数据(比如上述的各种对应关系)等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参照图12,本申请实施例还提供一种车辆700,该车辆700包括车体710、第一ECU720以及第二ECU730,上述第一ECU720以及第二ECU730设于车体710内,并且可以对车辆700进行控制。
请参考图13,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质800中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质800可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质800包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质800具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码810可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种通信方法,其特征在于,应用于车辆的第一电子控制单元ECU,所述车辆还包括第二ECU,所述方法包括:
在所述第一ECU针对所述第二ECU的通信状态信息为第一状态信息时,向所述第二ECU发送所述第一状态信息,所述第一状态信息用于表征所述第二ECU与所述第一ECU之间的通信状态为不可通信状态,且所述第二ECU需要进行与所述第一ECU之间的通信验证;
若接收到所述第二ECU基于所述第一状态信息发送的通信验证请求,向所述第二ECU发送验证信息;
接收所述第二ECU基于所述验证信息发送的反馈信息;
当所述反馈信息符合预设规则时,将所述通信状态信息更改为第二状态信息,并将分配给所述第二ECU的加密密钥发送至所述第二ECU,所述第二状态信息用于表征所述第二ECU与所述第一ECU之间的通信状态为可通信状态,所述加密密钥用于加密所述第一ECU与所述第二ECU通信过程中的报文信息;
接收所述第二ECU发送的密文信息,所述密文信息为所述第二ECU使用所述加密密钥及第一加密算法加密报文信息得到;
通过所述加密密钥及所述第一加密算法对应的第一解密算法对所述密文信息进行解密,得到所述报文信息;
判断所述报文信息是否符合预设报文规则,其中,所述预设报文规则用于判定所述报文信息是否为非法报文;
若所述报文信息不符合预设报文规则,则判定所述报文信息为非法报文,将所述通信状态信息更改为所述第一状态信息。
2.根据权利要求1所述的方法,其特征在于,在所述若所述报文信息不符合预设报文规则,则判定所述报文信息为非法报文,将所述通信状态信息更改为所述第一状态信息之后,所述方法还包括:
执行所述在所述第一ECU针对所述第二ECU的通信状态信息为第一状态信息时,向所述第二ECU发送所述第一状态信息,至所述当所述反馈信息符合预设规则时,将所述通信状态信息更改为第二状态信息,并将所述加密密钥发送至所述第二ECU的步骤。
3.根据权利要求1所述的方法,其特征在于,所述报文信息包括计数器数值,所述判断所述报文信息是否符合预设报文规则,包括:
判断所述计数器数值相较于历史计数器数值是否按照预设间隔数值递增,所述历史计数器数值为所述第一ECU上一次接收到的所述第二ECU发送的报文信息中携带的计数器数值;
若所述计数器数值相较于所述历史计数器数值按照所述预设间隔数值递增,判定所述报文信息符合所述预设报文规则;
若所述计数器数值相较于所述历史计数器数值未按照所述预设间隔数值递增,判定所述报文信息不符合所述预设报文规则。
4.根据权利要求1所述的方法,其特征在于,所述报文信息包括时间戳,所述判断所述报文信息是否符合预设报文规则,还包括:
判断所述时间戳与所述第一ECU上一次接收到的报文信息中携带的历史时间戳之间的时间差值是否小于预设阈值;
若所述时间差值小于预设阈值,判定所述报文信息符合所述预设报文规则;
若所述时间差值不小于所述预设阈值,判定所述报文信息不符合所述预设报文规则。
5.根据权利要求1所述的方法,其特征在于,所述反馈信息为所述第二ECU通过第一密钥以及第二加密算法对所述验证信息加密得到的数据信息,在所述接收所述第二ECU基于所述验证信息发送的反馈信息之后,所述方法还包括:
通过所述第一密钥以及所述第二加密算法对应的第二解密算法对所述数据信息进行解密,得到目标数据;
判断所述目标数据是否与所述验证信息匹配;
若所述目标数据与所述验证信息匹配,判定所述反馈信息符合预设规则;
若所述目标数据与所述验证信息不匹配,判定所述反馈信息不符合预设规则。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
若在预设时长内未接收到所述第二ECU发送的密文信息、接收到所述第二ECU发送的重启报文或者检测到所述第一ECU重启,将针对所述第二ECU的通信状态信息更改为所述第一状态信息,所述重启报文用于表示所述第二ECU在指定时长内发生过重启。
7.一种通信装置,其特征在于,应用于车辆的第一ECU,所述车辆还包括第二ECU,所述装置包括:
状态信息发送模块,用于在所述第一ECU针对所述第二ECU的通信状态信息为第一状态信息时,向所述第二ECU发送所述第一状态信息,所述第一状态信息用于表征所述第二ECU与所述第一ECU之间的通信状态为不可通信状态,且所述第二ECU需要进行与所述第一ECU之间的通信验证;
验证信息发送模块,用于若接收到所述第二ECU基于所述第一状态信息发送的通信验证请求,向所述第二ECU发送验证信息;
信息接收模块,用于接收所述第二ECU基于所述验证信息发送的反馈信息;
密钥分发模块,用于当所述反馈信息符合预设规则时,将所述通信状态信息更改为第二状态信息,并将分配给所述第二ECU的加密密钥发送至所述第二ECU,所述第二状态信息用于表征所述第二ECU与所述第一ECU之间的通信状态为可通信状态,所述加密密钥用于加密所述第一ECU与所述第二ECU通信过程中的报文信息;
密文接收模块,用于接收所述第二ECU发送的密文信息,所述密文信息为所述第二ECU使用所述加密密钥及第一加密算法加密报文信息得到;
解密模块,用于通过所述加密密钥及所述第一加密算法对应的第一解密算法对所述密文信息进行解密,得到所述报文信息;
报文判断模块,用于判断所述报文信息是否符合预设报文规则,其中,所述预设报文规则用于判定所述报文信息是否为非法报文;若所述报文信息不符合预设报文规则,则判定所述报文信息为非法报文,将所述通信状态信息更改为所述第一状态信息。
8.一种ECU,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-6中任意一项所述的方法。
9.一种车辆,其特征在于,所述车辆包括车辆主体以及设置于所述车辆主体内的如权利要求8所述的ECU。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-6中任意一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110420141.9A CN113162928B (zh) | 2021-04-19 | 2021-04-19 | 通信方法、装置、ecu、车辆及存储介质 |
EP21206903.3A EP4080818A1 (en) | 2021-04-19 | 2021-11-08 | Communication method and device, ecu, vehicle and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110420141.9A CN113162928B (zh) | 2021-04-19 | 2021-04-19 | 通信方法、装置、ecu、车辆及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113162928A CN113162928A (zh) | 2021-07-23 |
CN113162928B true CN113162928B (zh) | 2023-03-31 |
Family
ID=76868695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110420141.9A Active CN113162928B (zh) | 2021-04-19 | 2021-04-19 | 通信方法、装置、ecu、车辆及存储介质 |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP4080818A1 (zh) |
CN (1) | CN113162928B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422181A (zh) * | 2021-12-11 | 2022-04-29 | 浙江吉利控股集团有限公司 | 一种车辆数据报文安全通信方法 |
CN115348048A (zh) * | 2022-04-28 | 2022-11-15 | 青岛海尔科技有限公司 | 安全通信的建立方法和装置、存储介质及电子装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108650082A (zh) * | 2018-05-08 | 2018-10-12 | 腾讯科技(深圳)有限公司 | 待验证信息的加密和验证方法、相关装置及存储介质 |
CN111935317A (zh) * | 2020-09-27 | 2020-11-13 | 恒大新能源汽车投资控股集团有限公司 | 车辆信息验证方法及装置、计算机可读存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420297B (zh) * | 2008-09-08 | 2010-11-03 | 北京飞天诚信科技有限公司 | 协商密钥的方法和系统 |
CN105791307B (zh) * | 2016-04-06 | 2019-09-06 | 新华三技术有限公司 | 网络时间协议报文安全认证方法及装置 |
US20200177398A1 (en) * | 2016-06-17 | 2020-06-04 | Kddi Corporation | System, certification authority, vehicle-mounted computer, vehicle, public key certificate issuance method, and program |
SG10201705960QA (en) * | 2017-07-20 | 2019-02-27 | Huawei Int Pte Ltd | System and method for managing secure communications between modules in a controller area network |
CN109495449A (zh) * | 2018-10-18 | 2019-03-19 | 东南(福建)汽车工业有限公司 | 一种车辆can总线加密方法 |
CA3127711A1 (en) * | 2019-04-25 | 2020-10-29 | Deere & Company | Systems, methods and controllers for secure communications |
CN111432374B (zh) * | 2020-02-28 | 2023-09-15 | 深圳开源互联网安全技术有限公司 | 网联汽车网络节点身份认证方法、装置及可读存储介质 |
CN111817849A (zh) * | 2020-06-30 | 2020-10-23 | 宝能(广州)汽车研究院有限公司 | 电子控制单元ecu及其安全通信方法、系统 |
-
2021
- 2021-04-19 CN CN202110420141.9A patent/CN113162928B/zh active Active
- 2021-11-08 EP EP21206903.3A patent/EP4080818A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108650082A (zh) * | 2018-05-08 | 2018-10-12 | 腾讯科技(深圳)有限公司 | 待验证信息的加密和验证方法、相关装置及存储介质 |
CN111935317A (zh) * | 2020-09-27 | 2020-11-13 | 恒大新能源汽车投资控股集团有限公司 | 车辆信息验证方法及装置、计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP4080818A1 (en) | 2022-10-26 |
CN113162928A (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Woo et al. | A practical wireless attack on the connected car and security protocol for in-vehicle CAN | |
EP3324572B1 (en) | Information transmission method and mobile device | |
CN110708388B (zh) | 用于提供安全服务的车身安全锚节点设备、方法以及网络系统 | |
CN108111497B (zh) | 摄像机与服务器相互认证方法和装置 | |
CN101404576B (zh) | 一种网络资源查询方法和系统 | |
CN110621014B (zh) | 一种车载设备及其程序升级方法、服务器 | |
CN113162928B (zh) | 通信方法、装置、ecu、车辆及存储介质 | |
JP2010011400A (ja) | 共通鍵方式の暗号通信システム | |
CN114637987B (zh) | 基于平台验证的安全芯片固件下载方法及系统 | |
CN113794734A (zh) | 车载can总线加密通信方法、控制装置和可读存储介质 | |
CN115208705B (zh) | 基于链路数据自适应调整的加密解密方法及装置 | |
CN114760056B (zh) | 动态更新密钥的安全通信方法及装置 | |
CN114793184B (zh) | 一种基于第三方密钥管理节点的安全芯片通信方法及装置 | |
CN115208697A (zh) | 基于攻击行为的自适应数据加密方法及装置 | |
CN112087419A (zh) | 一种车载终端数据传输安全防护方法和设备 | |
CN109451504B (zh) | 物联网模组鉴权方法及系统 | |
CN113115309B (zh) | 车联网的数据处理方法、装置、存储介质和电子设备 | |
CN116419217B (zh) | Ota数据升级方法、系统、设备及存储介质 | |
CN113448299B (zh) | 一种车载网关控制器、信息处理方法及汽车 | |
CN114500150A (zh) | 基于can总线的通信方法、装置及作业机械 | |
CN111343129B (zh) | 一种防御协议组网被破解的方法和设备 | |
CN112214753A (zh) | 一种认证方法及装置、电子设备、存储介质 | |
CN114218598B (zh) | 一种业务处理方法、装置、设备和存储介质 | |
CN114513371B (zh) | 一种基于交互数据的攻击检测方法及系统 | |
CN113726720B (zh) | 物联网设备通信方法、设备、服务器和通信系统 |
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 |