CN111460477B - Ecu安全认证方法及装置 - Google Patents
Ecu安全认证方法及装置 Download PDFInfo
- Publication number
- CN111460477B CN111460477B CN202010238122.XA CN202010238122A CN111460477B CN 111460477 B CN111460477 B CN 111460477B CN 202010238122 A CN202010238122 A CN 202010238122A CN 111460477 B CN111460477 B CN 111460477B
- Authority
- CN
- China
- Prior art keywords
- authentication
- data
- ecu
- message
- random number
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Mobile Radio Communication Systems (AREA)
- Lock And Its Accessories (AREA)
Abstract
本发明实施例提供了一种ECU安全认证方法及装置,方法包括在接收到外部设备的诊断操作请求后,对外部设备进行接入认证;并在接入认证通过后,控制ECU进入认证状态;在ECU进入认证状态后,还判断外部设备发送的认证保持报文是否符合保持条件,保持条件包括认证保持报文未超时且正确,若是,则控制ECU维持认证状态,若否,则控制ECU退出认证状态。本发明提供的ECU安全认证方法,在ECU进入认证状态后,外部设备还需要向ECU发送认证保持报文,若外部设备发送的认证保持报文超时或者不正确,则ECU会退出认证状态,降低了ECU被攻击的风险,进而提高了ECU的安全性。
Description
技术领域
本发明涉及ECU(Electronic Control Unit,电子控制单元)领域,更具体地说,涉及一种ECU安全认证方法及装置。
背景技术
出于安全的考虑,车辆中搭载的ECU的某些数据、请求会被限制访问。外部设备只有经过ECU的安全认证,才可以对进行ECU进行访问。目前ECU安全认证采用Seed&Key的方式,即种子和密钥的方式。Seed&Key方式的实现过程如图1所示:
1、外部设备发送认证请求至ECU;
2、ECU返回种子至外部设备;
3、外部设备利用与ECU内部存储的相同算法对seed进行计算,得到密钥并发送密钥至ECU;
4、ECU根据存储的相同算法对seed进行计算,得到密钥,并将自身计算出的密钥与外部设备发送的密钥进行比对,完成安全认证,返回认证结果。
发明人发现现有ECU安全认证中存在一次认证始终有效的问题。即当ECU对外部设备的认证通过后,认证有效状态会一直保持,直到断电或者外部设备主动断开。在认证通过后外部设备与ECU连接期间,若外部设备使用相关指令,就可以恶意修改ECU的关键数据或者执行其它高安全等级的操作。因此,现有的Seed&Key的方式容易导致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为现有技术中的一种ECU安全认证方法的示意图;
图2为本发明实施例提供的一种ECU安全认证方法的流程图;
图3为本发明实施例提供的一种ECU对外部设备的单向认证方法的流程图;
图4为本发明实施例提供的一种ECU和外部设备的双向认证方法的流程图;
图5为本发明实施例提供的一种检测认证保持报文的方法的流程图;
图6为本发明实施例提供的一种ECU安全认证装置的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2为本发明的实施例提供的一种ECU安全认证方法。该方法包括以下步骤:
S21:接收外部设备的诊断操作请求。
S22:对外部设备进行接入认证。
对外部设备进行接入认证既可以是ECU对外部设备的单向认证,也可以是ECU和外部设备的双向认证。
S23:在对外部设备的接入认证通过后,控制ECU进入认证状态。
ECU进入认证状态后,外部设备可以对ECU进行诊断操作,如改写ECU数据、访问ECU受保护的存储区等操作。
S24:在ECU进入认证状态后,判断外部设备发送的认证保持报文是否符合保持条件,保持条件包括认证保持报文未超时且正确,若是,则控制ECU维持认证状态,若否,则控制ECU退出认证状态。
ECU退出认证状态后,外部设备无法对ECU进行诊断操作。在接入认证成功后,外部设备还需要周期性向ECU发送认证保持报文,以使ECU维持认证状态。判断认证保持报文是否超时,具体包括:在ECU进入认证状态或每次接收到认证保持报文时,开始计时,若在预设时间内未接收到认证保持报文,则确定认证保持报文超时,否则,确定认证保持报文未超时。确定认证保持报文超时,则控制ECU退出认证状态;确定认证保持报文未超时,则判断接收到的认证保持报文是否正确,若正确则控制ECU维持认证状态,若不正确,则控制ECU退出认证状态。
图3为本发明实施例提供的一种ECU对外部设备的单向认证过程。该单向认证包括以下步骤:
S31:接收外部设备发送的请求报文,请求报文包含第一随机数。
外部设备可以利用安全芯片生成第一随机数,以提高算法的安全性。安全芯片用于生成真随机数、密钥存储、密钥管理、数据加解密等工作。安全芯片包括随机数生成器和密钥管理模块。安全芯片内部可以集成国SM1、SM2、SM3、SM4等密算商用码法,同时支持3DES、AES、RSA、ECDSA、SHA-1/256/384/512等国际常用算法。安全芯片具备生成随机数的硬件模块,用于生成真随机数。外部设备将第一随机数临时保持到其MCU(MicrocontrollerUnit,微控制单元)的RAM中。
S32:生成第二随机数并发送至外部设备,以及保存第一随机数和第二随机数。
ECU也可以利用安全芯片生成第二随机数,以提高算法的安全性。ECU将第一随机数和第二随机数保存到其MCU的RAM中。为了保证ECU对外部设备的接入认证通过,ECU和外部设备可以采用同一款安全芯片;或者ECU和外部设备采用的安全芯片存储的密钥及算法相同,以及随机数生成器满足相同的规范,示例性的,ECU和外部设备的安全芯片均存储用于通讯的AES128bit密钥,随机数生成器满足GMT0005-2012随机性检测规范NIST。
S33:接收外部设备发送的第一认证数据。
为了接入认证成功,外部设备需要将第一随机数、第一填充数据和第二随机数组合在一起生成第一待加密数据,并对第一待加密数据进行加密得到第一认证数据,然后发送至ECU。示例性的,第一待加密数据可以为:第一随机数+ 0x01 0x01 0x01 0x01 +第二随机数,0x01 0x01 0x01 0x01为第一填充数据,可自定义设置,用于与其它待加密数据区分。
S34:对第一待加密数据进行加密得到第二认证数据。
ECU也存储有第一填充数据,进而对第一待加密数据进行加密得到第二认证数据。
S35:判断第一认证数据与第二认证数据是否相同,若是,则确定外部设备的接入认证成功,若否,则确定外部设备的接入认证失败。
若外部设备与ECU设备使用的加密算法以及第一填充数据相同,则第一认证数据与第二认证数据也相同。本发明据此确定外部设备的接入认证是否成功。还可以在确定外部设备的接入认证是否成功后,向外部设备发送认证结果。
图4为本发明实施例提供的一种ECU和外部设备的双向认证过程,相比于图3示出的单向认证过程,在判断出第一认证数据与第二认证数据相同之后,且在确定外部设备接入认证成功之前,还包括以下步骤:
S46:对第二待加密数据进行加密得到第三认证数据。
第二待加密数据包括第一随机数、第二填充数据和第二随机数。ECU还存储有第二填充数据。示例性的,第二待加密数据可以为:第一随机数+ 0x02 0x02 0x02 0x02 +第二随机数,0x02 0x02 0x02 0x02为第二填充数据,可自定义设置,用于与其它待加密数据区分。
S47:向外部设备发送第三认证数据。
为了接入认证成功,外部设备在接收到ECU发送的第三认证数据后,还需要将第一随机数、第二填充数据和第二随机数组合在一起生成第二待加密数据,并对第二待加密数据进行加密得到第四认证数据,然后判断第三认证数据与第四认证数据是否相同,并将表示判断结果的认证结果发送至ECU。外部设备通过判断第三认证数据与第四认证数据是否相同,来完成对ECU的认证。
S48:在接收到外部设备发送的表示第三认证数据与第四认证数据相同的认证结果后,确定对外部设备的接入认证成功。
通过执行步骤S41~S45完成了ECU对外部设备的认证。并通过执行步骤S46~S48完成了外部设备对ECU的认证。即通过执行步骤S41~S48完成了ECU和外部设备的双向认证。
在一个具体实施例中,认证保持报文包含累加计数值和信息摘要值;判断认证保持报文是否正确的过程,如图5所示,具体包括以下步骤:
S51:对第三待加密数据进行加密得到第一中间数据密文。
ECU存储有第三填充数据。第三待加密数据包括第一随机数、第三填充数据和第二随机数。示例性的,第三待加密数据可以为:第一随机数+0x03 0x03 0x03 0x03+第二随机数,0x03 0x03 0x03 0x03为第三填充数据,可自定义设置,用于与其它待加密数据区分。
S52:根据第一中间数据密文,计算得到初始期望累加计数值。
具体的,执行步骤S52,将所第一中间数据密文拆分为至少两部分,对每一部分包括的所有数据密文进行异或操作,得到与每一部分对应的数值;将与每一部分对应的数值组合,得到初始期望累加计数值。在一个具体实施例中第一随机数和第二随机数均为6字节。这样第三待加密数据为16字节,得到的第一中间数据密文也是16字节;第一中间数据密文的每个字节的密文分别是RC_Crypto[0] ~ RC_Crypto[15]。
将16字节的第一中间数据密文分为四部分:RC_Crypto[0]、RC_Crypto[1]、RC_Crypto[2]、RC_Crypto[3];RC_Crypto[4]、RC_Crypto[5]、RC_Crypto[6]、RC_Crypto[7];RC_Crypto[8]、RC_Crypto[9]、RC_Crypto[10]、RC_Crypto[11];RC_Crypto[12]、RC_Crypto[13]、RC_Crypto[14] 、RC_Crypto[15]。
对每一部分所有数据密文进行异或操作,得到与每一部分对应的数值RC[0]、RC[1]、RC[2] 和RC[3]。RC[0]= RC_Crypto[0] xor RC_Crypto[1]xor RC_Crypto[2] xorRC_Crypto[3];RC[1] = RC_Crypto[4]xor RC_Crypto[5] xor RC_Crypto[6]xor RC_Crypto[7];RC[2]= RC_Crypto[8] xor RC_Crypto[9]xor RC_Crypto[10] xor RC_Crypto[11];RC[3] = RC_Crypto[12]xor RC_Crypto[13] xor RC_Crypto[14]xor RC_Crypto[15]。将RC[0]、RC[1]、RC[2] 和RC[3]组合在一起,得到初始期望累加计数值= RC[3]<<24+ RC[2]<<16 + RC[1]<<8 + RC[0]。例如,若RC[3]=0x88,RC[2]=0x66,RC[1]=0x44,RC[0]=0x22,则那么,初始期望累加计数值=0x88664422。
S53:在ECU进入认证状态后,第一次接收到认证保持报文时,判断认证保持报文包含的累加计数值与初始期望累加计数值的差值是否小于预设差值阈值,若否,则执行步骤S54,若是,则执行步骤S55。
认证保持报文包含的累加计数值与初始期望累加计数值的差值,小于预设差值阈值时,分为两种情况。第一种是累加计数值与初始期望累加计数值相等;第二种是累加计数值与初始期望累加计数值相不相等,且累加计数值与初始期望累加计数值的差值小于预设差值阈值。
外部设备每次都正常向ECU发出认证保持报文,且ECU每次都成功接收到外部设备发送的认证保持报文时,认证保持报文包含的累加计数值与初始期望累加数值相等。考虑到正常丢帧情况,如果在认证保持报文包含的累加计数值与初始期望累加数值不相等时,直接确定认证保持报文不正确,退出认证状态,容易导致正常使用外部设备异常断开。因此,为了提高认证方式的鲁棒性,设置一个可容忍的丢帧次数,即预设差值阈值;在认证保持报文包含的累加计数值与初始期望累加计数值的差值不小于预设差值阈值时,才确定认证保持报文不正确,否则,进行后续判断。
为了保证维持认证状态,外部设备第一次发送认证保持报文时,需要采用与步骤S51和S52相同的方法计算得到累加计数值。且在之后每次发送认证保持报文时,将前一次发送的认证保持报文中的累加计数值与预设的累加值求和后,作为本次将要发送的认证保持报文中的累加计数值。需要说明的是,当累加计数值超过0X FFFFFFFF时,从0x00000000重新计数。
S54:确定认证保持报文不正确。
S55:对第四待加密数据进行加密得到第二中间数据密文。
ECU存储有第四填充数据。第四待加密数据包括当前的累加计数值和第四填充数据。示例性的,第四待加密数据可以为:当前的累加计数值+0x80 0x00 0x00 0x00 0x000x00 0x00 0x00 0x00 0x00 0x00 0x00,0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x000x00 0x00 0x00 0x00为第四填充数据,可自定义设置,用于与其它待加密数据区分。累加计数值为四字节。
S56:根据第二中间数据密文,计算得到期望信息摘要值。
具体的,执行步骤S56,将第二中间数据密文拆分为至少两部分,对每二部分包括的所有数据密文进行异或操作,得到与每一部分对应的数值;将与每一部分对应的数值组合,得到期望信息摘要值。第四待加密数据为16字节,得到的第二中间数据密文也是16字节,第二中间数据密文的每个字节的密文分别是M[0]~ M[15]。
将16字节的第二中间数据密文分为四部分:M[0]、M[4]、M[8]、M[12];M[1]、M[5]、M[9]、M[13]; M[2]、M[6]、M[10]、M[14];M[3]、M[7]、M[11]、M[15]。
对每一部分所有数据密文进行异或操作,得到与每一部分对应的数值MAC[0]、MAC[1]、MAC[2] 和MAC[3]。MAC[0]= M[0] xor M[4]xor M[8] xor M[12];MAC[1] = M[1]xorM[5] xor M[9]xor M[13];MAC[2]= M[2] xor M[6]xor M[10] xor M[14];MAC[3] = M[3]xor M[7] xor M[11]xor M[15]。
S57:判断认证保持报文包含的信息摘要值与期望信息摘要值是否相同,若否,则执行步骤S54,若是,则执行步骤S58。
为了保证维持认证状态,外部设备发送认证保持报文时,需要采用与步骤S55和S56相同的方法计算得到信息摘要值。
S58:确定认证保持报文正确,并将认证保持报文包含的累加计数值与预设的累加值求和后,作为下一次接收到的认证保持报文的期望累加计数值。
为了保证维持认证状态,ECU和外部设备预设的累加值需要相等。例如ECU和外部设备预设的累加值均为1。需要说明的是,当认证保持报文包含的累加计数值,与ECU中的初始期望累加计数值或期望累加计数值相等时,步骤S58中的将认证保持报文包含的累加计数值与预设的累加值求和后,作为下一次接收到的认证保持报文的期望累加计数值,还可以替换为将ECU中的初始期望累加计数值或期望累加计数值与预设的累加值求和后,作为下一次接收到的认证保持报文的期望累加计数值。
S59:在所述ECU进入认证状态后,非第一次接收到认证保持报文时,判断认证保持报文包含的累加计数值与存储的期望累加计数值的差值是否小于预设差值阈值,若否,则执行步骤S54,若是,则执行步骤S55。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
图6为本发明实施例提供的一种ECU安全认证装置,包括接入认证单元、第一处理单元、判断单元、第二处理单元和第三处理单元。
接入认证单元,用于在接收到外部设备的诊断操作请求后,对外部设备进行接入认证。
第一处理单元,用于在接入认证通过后,控制ECU进入认证状态。
判断单元,用于在ECU进入认证状态后,判断外部设备发送的认证保持报文是否符合保持条件,保持条件包括认证保持报文未超时且正确,若是,则执行第二处理单元,若否,则执行第三处理单元。
第二处理单元,用于控制ECU维持认证状态;
第三处理单元,用于控制ECU退出认证状态。
可选的,接入认证单元,包括请求报文接收子单元、随机数子单元、第一认证数据接收子单元、第二认证数据子单元、第一判断子单元、通过子单元和拒绝子单元。
请求报文接收子单元,用于接收外部设备发送的请求报文,请求报文包含第一随机数。
随机数子单元,用于生成第二随机数并发送至外部设备,以及保存第一随机数和第二随机数。
第一认证数据接收子单元,用于接收外部设备发送的第一认证数据。
第二认证数据子单元,用于对第一待加密数据进行加密得到第二认证数据,第一待加密数据包括第一随机数、第一填充数据和第二随机数,ECU存储有第一填充数据。
第一判断子单元,用于判断第一认证数据与第二认证数据是否相同,若是,则执行通过子单元,若否,则执行拒绝子单元。
通过子单元,用于确定接入认证成功。
拒绝子单元,用于确定接入认证失败。
可选的,接入认证单元,还包括第三认证数据生成子单元、第三认证数据发送单元和第二判断子单元。
第三认证数据生成子单元,用于在第一判断子单元判断出第一认证数据与第二认证数据相同之后,且在执行通过子单元之前,对第二待加密数据进行加密得到第三认证数据,第二待加密数据包括第一随机数、第二填充数据和第二随机数,ECU存储有第二填充数据。
第三认证数据发送单元,用于向外部设备发送第三认证数据,以使外部设备接收到第三认证数据后,对第二待加密数据进行加密得到第四认证数据,并判断第三认证数据与第四认证数据是否相同。
第二判断子单元,用于在接收到外部设备发送的表示第三认证数据与第四认证数据相同的认证结果后,执行通过子单元。
可选的,认证保持报文包含累加计数值和信息摘要值;判断单元,具体包括:第一中间数据密文子单元、初始期望累加计数值子单元、第三判断子单元、第一确定子单元、第二中间数据密文子单元、期望信息摘要值子单元、第四判断子单元、第二确定子单元和第五判断子单元。
第一中间数据密文子单元,用于对第三待加密数据进行加密得到第一中间数据密文,第三待加密数据包括第一随机数、第三填充数据和第二随机数,ECU存储有第三填充数据。
初始期望累加计数值子单元,用于根据第一中间数据密文,计算得到初始期望累加计数值。
第三判断子单元,用于在ECU进入认证状态后,第一次接收到认证保持报文时,判断认证保持报文包含的累加计数值与初始期望累加计数值的差值是否小于预设差值阈值,若否,则执行第一确定子单元,若是,则执行第二中间数据密文子单元。
第一确定子单元,用于确定认证保持报文不正确。
第二中间数据密文子单元,用于对第四待加密数据进行加密得到第二中间数据密文,第四待加密数据包括累加计数值和第四填充数据。
期望信息摘要值子单元,用于根据第二中间数据密文,计算得到期望信息摘要值。
第四判断子单元,用于判断认证保持报文包含的信息摘要值与期望信息摘要值是否相同,若否,则执行第一确定子单元,若是,则执行第二确定子单元。
第二确定子单元,用于确定认证保持报文正确,并将认证保持报文包含的累加计数值与预设的累加值求和后,作为下一次接收到的认证保持报文的期望累加计数值。
第五判断子单元,用于在ECU进入认证状态后,非第一次接收到认证保持报文时,判断认证保持报文包含的所述累加计数值与存储的期望累加计数值的差值是否小于预设差值阈值,若否,则执行第一确定子单元,若是,则执行第二中间数据密文子单元。
可选的,初始期望累加计数值子单元,具体包括第一拆分异或模块和第一组合转换模块。
第一拆分异或模块,用于将第一中间数据密文拆分为至少两部分,对每一部分包括的所有数据密文进行异或操作,得到与每一部分对应的数值。
第一组合转换模块,用于将与每一部分对应的数值组合,得到初始期望累加计数值。
可选的,期望信息摘要值子单元,具体包括第二拆分异或模块和第二组合转换模块。
第二拆分异或模块,用于将第二中间数据密文拆分为至少两部分,对每一部分包括的所有数据密文进行异或操作,得到与每一部分对应的数值。
第二组合转换模块,用于将与每一部分对应的数值组合,得到期望信息摘要值。
可选的,判断单元具体包括:超时判断子单元,用于在ECU进入认证状态或每次接收到认证保持报文时,开始计时,若在预设时间内未接收到认证保持报文,则确定认证保持报文超时,否则,确定认证保持报文未超时。
可选的,ECU和外部设备均利用安全芯片生成随机数以及实现数据加密。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对本发明所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种ECU安全认证方法,其特征在于,包括:
在接收到外部设备的诊断操作请求后,对所述外部设备进行接入认证;
在所述接入认证通过后,控制ECU进入认证状态;
在所述ECU进入认证状态后,判断所述外部设备发送的认证保持报文是否符合保持条件,所述保持条件包括所述认证保持报文未超时且正确,若是,则控制ECU维持认证状态,若否,则控制ECU退出认证状态;
其中,所述认证保持报文包含累加计数值和信息摘要值,判断所述认证保持报文是否正确,具体包括:
对第三待加密数据进行加密得到第一中间数据密文,所述第三待加密数据包括第一随机数、第三填充数据和第二随机数,所述ECU存储有第三填充数据;
将所述第一中间数据密文拆分为至少两部分,对每一部分包括的所有数据密文进行异或操作,得到与每一部分对应的数值;
将与每一部分对应的数值组合,得到初始期望累加计数值;
在所述ECU进入认证状态后,第一次接收到所述认证保持报文时,判断所述认证保持报文包含的所述累加计数值与所述初始期望累加计数值的差值是否小于预设差值阈值,若否,则确定所述认证保持报文不正确,若是,则对第四待加密数据进行加密得到第二中间数据密文,所述第四待加密数据包括所述累加计数值和第四填充数据;
将所述第二中间数据密文拆分为至少两部分,对每一部分包括的所有数据密文进行异或操作,得到与每一部分对应的数值;
将与每一部分对应的数值组合,得到期望信息摘要值;
判断所述认证保持报文包含的所述信息摘要值与所述期望信息摘要值是否相同,若否,则确定所述认证保持报文不正确,若是,则确定所述认证保持报文正确,并将所述认证保持报文包含的所述累加计数值与预设的累加值求和后,作为下一次接收到的所述认证保持报文的期望累加计数值。
2.根据权利要求1所述的ECU安全认证方法,其特征在于,所述对所述外部设备进行接入认证,包括:
接收所述外部设备发送的请求报文,所述请求报文包含第一随机数;
生成第二随机数并发送至所述外部设备,以及保存所述第一随机数和所述第二随机数;
接收所述外部设备发送的第一认证数据;
对第一待加密数据进行加密得到第二认证数据,所述第一待加密数据包括所述第一随机数、第一填充数据和所述第二随机数,所述ECU存储有所述第一填充数据;
判断所述第一认证数据与所述第二认证数据是否相同,若是,则确定所述接入认证成功,若否,则确定所述接入认证失败。
3.根据权利要求2所述的ECU安全认证方法,其特征在于,在判断出所述第一认证数据与所述第二认证数据相同之后,且在确定所述接入认证成功之前,还包括:
对第二待加密数据进行加密得到第三认证数据,所述第二待加密数据包括所述第一随机数、第二填充数据和所述第二随机数,所述ECU存储有所述第二填充数据;
向所述外部设备发送所述第三认证数据,以使所述外部设备接收到所述第三认证数据后,对所述第二待加密数据进行加密得到第四认证数据,并判断所述第三认证数据与所述第四认证数据是否相同;
在接收到所述外部设备发送的表示所述第三认证数据与所述第四认证数据相同的认证结果后,确定所述接入认证成功。
4.根据权利要求1所述的ECU安全认证方法,其特征在于,还包括:
在所述ECU进入认证状态后,非第一次接收到所述认证保持报文时,判断所述认证保持报文包含的所述累加计数值与存储的所述期望累加计数值的差值是否小于预设差值阈值,若否,则执行所述确定所述认证保持报文不正确的步骤,若是,则执行所述对第四待加密数据进行加密得到第二中间数据密文的步骤。
5.根据权利要求1所述的ECU安全认证方法,其特征在于,判断所述认证保持报文是否超时,具体包括:
在所述ECU进入认证状态或每次接收到所述认证保持报文时,开始计时,若在预设时间内未接收到所述认证保持报文,则确定所述认证保持报文超时,否则,确定所述认证保持报文未超时。
6.根据权利要求1~5中任意一项所述的ECU安全认证方法,其特征在于,所述ECU和所述外部设备均利用安全芯片生成随机数以及实现数据加密。
7.一种ECU安全认证装置,其特征在于,包括:
接入认证单元,用于在接收到外部设备的诊断操作请求后,对所述外部设备进行接入认证;
第一处理单元,用于在所述接入认证通过后,控制ECU进入认证状态;
判断单元,用于在所述ECU进入认证状态后,判断所述外部设备发送的认证保持报文是否符合保持条件,所述保持条件包括所述认证保持报文未超时且正确,若是,则执行第二处理单元,若否,则执行第三处理单元;
所述第二处理单元,用于控制ECU维持认证状态;
所述第三处理单元,用于控制ECU退出认证状态;
其中,所述认证保持报文包含累加计数值和信息摘要值,所述判断单元判断所述认证保持报文是否正确,具体包括:
对第三待加密数据进行加密得到第一中间数据密文,所述第三待加密数据包括第一随机数、第三填充数据和第二随机数,所述ECU存储有第三填充数据;
将所述第一中间数据密文拆分为至少两部分,对每一部分包括的所有数据密文进行异或操作,得到与每一部分对应的数值;
将与每一部分对应的数值组合,得到初始期望累加计数值;
在所述ECU进入认证状态后,第一次接收到所述认证保持报文时,判断所述认证保持报文包含的所述累加计数值与所述初始期望累加计数值的差值是否小于预设差值阈值,若否,则确定所述认证保持报文不正确,若是,则对第四待加密数据进行加密得到第二中间数据密文,所述第四待加密数据包括所述累加计数值和第四填充数据;
将所述第二中间数据密文拆分为至少两部分,对每一部分包括的所有数据密文进行异或操作,得到与每一部分对应的数值;
将与每一部分对应的数值组合,得到期望信息摘要值;
判断所述认证保持报文包含的所述信息摘要值与所述期望信息摘要值是否相同,若否,则确定所述认证保持报文不正确,若是,则确定所述认证保持报文正确,并将所述认证保持报文包含的所述累加计数值与预设的累加值求和后,作为下一次接收到的所述认证保持报文的期望累加计数值。
8.根据权利要求7所述的ECU安全认证装置,其特征在于,所述接入认证单元,包括:
请求报文接收子单元,用于接收所述外部设备发送的请求报文,所述请求报文包含第一随机数;
随机数子单元,用于生成第二随机数并发送至所述外部设备,以及保存所述第一随机数和所述第二随机数;
第一认证数据接收子单元,用于接收所述外部设备发送的第一认证数据;
第二认证数据子单元,用于对第一待加密数据进行加密得到第二认证数据,所述第一待加密数据包括所述第一随机数、第一填充数据和所述第二随机数,所述ECU存储有所述第一填充数据;
第一判断子单元,用于判断所述第一认证数据与所述第二认证数据是否相同,若是,则执行通过子单元,若否,则执行拒绝子单元;
所述通过子单元,用于确定所述接入认证成功;
所述拒绝子单元,用于确定所述接入认证失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010238122.XA CN111460477B (zh) | 2020-03-30 | 2020-03-30 | Ecu安全认证方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010238122.XA CN111460477B (zh) | 2020-03-30 | 2020-03-30 | Ecu安全认证方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111460477A CN111460477A (zh) | 2020-07-28 |
CN111460477B true CN111460477B (zh) | 2023-08-11 |
Family
ID=71681524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010238122.XA Active CN111460477B (zh) | 2020-03-30 | 2020-03-30 | Ecu安全认证方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111460477B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102045333A (zh) * | 2010-06-29 | 2011-05-04 | 北京飞天诚信科技有限公司 | 一种安全报文过程密钥的生成方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102013101508A1 (de) * | 2012-02-20 | 2013-08-22 | Denso Corporation | Datenkommunikationsauthentifizierungssystem für ein Fahrzeug, Netzkopplungsvorrichtung für ein Fahrzeug, Datenkommunikationssystem für ein Fahrzeug und Datenkommunikationsvorrichtung für ein Fahrzeug |
-
2020
- 2020-03-30 CN CN202010238122.XA patent/CN111460477B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102045333A (zh) * | 2010-06-29 | 2011-05-04 | 北京飞天诚信科技有限公司 | 一种安全报文过程密钥的生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111460477A (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140301550A1 (en) | Method for recognizing a manipulation of a sensor and/or sensor data of the sensor | |
US8526606B2 (en) | On-demand secure key generation in a vehicle-to-vehicle communication network | |
US5297208A (en) | Secure file transfer system and method | |
US8417936B2 (en) | Node apparatus, method and storage medium | |
CN109218825B (zh) | 一种视频加密*** | |
CN101448130B (zh) | 监控***中数据加密保护的方法、***和设备 | |
CN109587518B (zh) | 图像传输装置、操作图像传输装置的方法以及片上*** | |
JP2013048374A (ja) | 保護通信方法 | |
CN110896387B (zh) | 数据传输方法、电池管理***和存储介质 | |
US11303453B2 (en) | Method for securing communication without management of states | |
CN111614621A (zh) | 物联网通信方法和*** | |
US8631491B2 (en) | Replay attack protection with small state for use in secure group communication | |
US20120331305A1 (en) | Encryption processing apparatus | |
CN111460477B (zh) | Ecu安全认证方法及装置 | |
KR102523416B1 (ko) | 이미지에 대한 보안 기능을 제공하는 보안 장치, 이를 포함하는 카메라 장치 및 카메라 장치를 제어하는 시스템 온 칩 | |
CN116055141A (zh) | 数据安全传输方法、***、装置及存储介质 | |
CN114448607A (zh) | 一种基于puf技术的离线设备安全认证***及实现方法 | |
KR20150109202A (ko) | 차량용 통신 데이터 인증 방법 및 시스템 | |
CN110890959A (zh) | 一种账户改密的方法、***及装置 | |
CN112039663A (zh) | 一种数据的传输方法及*** | |
KR20160038935A (ko) | Dnp 메시지의 보안통신장치 및 방법 | |
CN116684870B (zh) | 电力5g终端的接入认证方法、装置及*** | |
US12021999B2 (en) | Devices and methods for the generating and authentication of at least one data packet to be transmitted in a bus system (BU), in particular of a motor vehicle | |
WO2023247120A1 (en) | Aerosol-generating device with encrypted data management | |
US20220191040A1 (en) | Devices and methods for the generating and authentication of at least one data packet to be transmitted in a bus system (bu), in particular of a motor vehicle |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 4 / F, building 1, No.14 Jiuxianqiao Road, Chaoyang District, Beijing 100020 Applicant after: Beijing Jingwei Hengrun Technology Co.,Ltd. Address before: 8 / F, block B, No. 11, Anxiang Beili, Chaoyang District, Beijing 100101 Applicant before: Beijing Jingwei HiRain Technologies Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |