CN117614652A - 基于can总线的车载网络消息认证方法及相关设备 - Google Patents

基于can总线的车载网络消息认证方法及相关设备 Download PDF

Info

Publication number
CN117614652A
CN117614652A CN202311434160.2A CN202311434160A CN117614652A CN 117614652 A CN117614652 A CN 117614652A CN 202311434160 A CN202311434160 A CN 202311434160A CN 117614652 A CN117614652 A CN 117614652A
Authority
CN
China
Prior art keywords
message
time interval
authentication code
sender
interval 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.)
Pending
Application number
CN202311434160.2A
Other languages
English (en)
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.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
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 Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN202311434160.2A priority Critical patent/CN117614652A/zh
Publication of CN117614652A publication Critical patent/CN117614652A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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/3236Cryptographic 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 cryptographic hash functions
    • H04L9/3242Cryptographic 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 cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/3297Cryptographic 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 involving time stamps, e.g. generation of time stamps
    • 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/40Network security protocols

Abstract

本申请提供一种基于CAN总线的车载网络消息认证方法及相关设备通过计数器可以确定第一时间间隔数和第二时间间隔数,实现各ECU节点之间的时间同步,实现具有抵御去同步化的能力。通过比较第一时间间隔数和第二时间间隔数进行重放攻击认证。如果攻击者记录了以前的帧并重新发送,就会因为第一时间间隔数和第二时间间隔数的不匹配而导致重放攻击认证不通过,所以通过比较第一时间间隔数和第二时间间隔数能够满足消息新鲜度验证的安全需求,实现具有抵御重放攻击的能力。通过将初始消息报文的循环冗余校验码替换为发送方消息认证码,导致欺骗攻击无法通过接收方消息认证码的验证,实现具有抵御欺骗攻击的能力。

Description

基于CAN总线的车载网络消息认证方法及相关设备
技术领域
本申请涉及信息安全技术领域,尤其涉及一种基于CAN总线的车载网络消息认证方法及相关设备。
背景技术
CAN总线网络在设计时的构想是作为一个封闭的网络为工业设备或控制器提供通信能力,尽管网络协议本身存在许多安全漏洞,但是由于网络本身与外界相对隔离的特性,具有一定的自我保护能力。但是恶意攻击者可以通过各种不和法的方式获取到CAN总线的访问权限,然后对总线中的消息进行篡改,进而实现对消息报文的报文接收方的欺骗攻击,比如通过使用虚假的ID或伪造的CAN帧来控制ECU。恶意攻击者可以通过重放预先截取到的CAN帧来进行重放攻击。例如恶意攻击者在车辆进行停车辅助期间重放了先前截取到的CAN帧,由于这些CAN帧中包含了错误的速度和进入车位的角度,导致ECU接收这些信息后向动力系统和转向系统发出了错误的控制信号,最终车辆在辅助停车系统启用的情况下仍然发生了碰撞事故。而且,由于CAN总线协议不保证消息的可靠传输,所以在网络负载较大的情况下可能会发生超时或消息丢失的情况。所以如何抵抗欺骗攻、抵御重放攻击和抵御去同步化是亟待解决的问题。
发明内容
有鉴于此,本申请的目的在于提出一种基于CAN总线的车载网络消息认证方法及相关设备,用于解决无法抵抗欺骗攻、无法抵御重放攻击和无法抵御去同步化的技术问题。
基于上述目的,本申请的第一方面提供了一种基于CAN总线的车载网络消息认证方法,报文发送方与报文接收方通过CAN总线发送消息报文,所述方法包括:
确定消息明文、车辆上电至所述报文发送方检测到所述消息明文的第一时长和车辆上电至报文接收方接收到所述消息报文的第二时长;
根据预设的时间间隔和所述第一时长确定第一时间间隔数,并根据所述时间间隔和所述第二时长确定第二时间间隔数;
通过比较所述第一时间间隔数和所述第二时间间隔数进行重放攻击认证;
根据所述第一时间间隔数、所述消息明文和预设的会话密钥确定发送方消息认证码;
将初始消息报文的循环冗余校验码替换为所述发送方消息认证码,得到所述消息报文;
根据所述第二时间间隔数、所述消息明文和所述会话密钥确定接收方消息认证码;
通过比较所述接收方消息认证码和所述消息报文中的所述发送方消息认证码进行欺骗攻击认证。
本申请的第二方面提供了一种基于CAN总线的车载网络消息认证装置,报文发送方与报文接收方通过CAN总线发送消息报文,所述装置包括:
数据获取模块,被配置为:确定消息明文、车辆上电至所述报文发送方检测到所述消息明文的第一时长和车辆上电至报文接收方接收到所述消息报文的第二时长;
时间计数器模块,被配置为:根据预设的时间间隔和所述第一时长确定第一时间间隔数,并根据所述时间间隔和所述第二时长确定第二时间间隔数;
消息验证模块,被配置为:通过比较所述第一时间间隔数和所述第二时间间隔数进行重放攻击认证;
第一认证码获取模块,被配置为:根据所述第一时间间隔数、所述消息明文和预设的会话密钥确定发送方消息认证码;
认证码替换模块,被配置为:将初始消息报文的循环冗余校验码替换为所述发送方消息认证码,得到所述消息报文;
第二认证码获取模块,被配置为:根据所述第二时间间隔数、所述消息明文和所述会话密钥确定接收方消息认证码;
认证码比对模块,被配置为:通过比较所述接收方消息认证码和所述消息报文中的所述发送方消息认证码进行欺骗攻击认证。
本申请的第三方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本申请第一方面提供的所述的方法。
本申请的第四方面提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行本申请第一方面提供的所述方法。
从上面所述可以看出,本申请提供的基于CAN总线的车载网络消息认证方法及相关设备在确定消息明文、车辆上电至报文发送方检测到消息明文的第一时长和车辆上电至报文接收方接收到消息报文的第二时长后,能够根据预设的时间间隔和第一时长确定第一时间间隔数,并根据时间间隔和第二时长确定第二时间间隔数。由于车内CAN总线网络具有在车辆点火时进行初始化的典型特征,所以各ECU设备的上电时间保持一致,借助这一特征就可以在CAN总线网络节点间设置一个从零开始的基于时间间隔的计数器,通过计数器可以确定第一时间间隔数和第二时间间隔数,实现各ECU节点之间的时间同步,实现具有抵御去同步化的能力。
然后,通过比较第一时间间隔数和第二时间间隔数进行重放攻击认证。如果攻击者记录了以前的帧并重新发送,就会因为第一时间间隔数和第二时间间隔数的不匹配而导致重放攻击认证不通过,所以通过比较第一时间间隔数和第二时间间隔数能够满足消息新鲜度验证的安全需求,实现具有抵御重放攻击的能力。
最后,根据第一时间间隔数、消息明文和预设的会话密钥确定发送方消息认证码;将初始消息报文的循环冗余校验码替换为发送方消息认证码,得到消息报文;根据第二时间间隔数、消息明文和会话密钥确定接收方消息认证码;通过比较接收方消息认证码和消息报文中的发送方消息认证码进行欺骗攻击认证。将初始消息报文的循环冗余校验码替换为发送方消息认证码,发送方消息认证码在生成时除需要消息明文外,还需要认证阶段交换得到的会话密钥和时间间隔计数器得到的第一时间间隔数,攻击者无法获得会话密钥,也就无法计算出与消息报文对应的发送方消息认证码。导致欺骗攻击无法通过接收方消息认证码的验证,实现具有抵御欺骗攻击的能力。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例相关技术中CAN帧结构的示意图;
图2为本申请实施例基于CAN总线的车载网络消息认证方法的流程图;
图3为本申请实施例改进后的CAN帧结构的示意图;
图4为本申请实施例进行重放攻击认证的流程图;
图5为本申请实施例时间间隔机制的示意图;
图6为本申请实施例确定发送方消息认证码的流程图;
图7为本申请实施例发送方消息认证码替换的流程图;
图8为本申请实施例进行欺骗攻击认证的流程图;
图9为本申请实施例基于CAN总线的车载网络消息认证装置的结构示意图;
图10为本申请实施例电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
基于上述背景技术的描述,相关技术中还存在如下的情况:
由于CAN总线每帧所能携带的数据量较小,对CAN总线进行安全研究的关键点就是如何在不改变负载大小和响应时延的情况下增加总线网络的安全性。相关技术中的方法大多存在某些较大的缺陷,比如抵抗伪造攻击能力较差,或者适用范围较小等。
其中,消息认证方案需要满足如下安全需求:
(1)消息来源和完整性验证:需要具有验证报文发送方合法性的能力,同时要能识别出消息中的数据是否被篡改过,以避免攻击者入侵总线网络后发起欺骗攻击。
(2)消息新鲜度验证:总线中传递的消息需要有保证新鲜度的机制,避免攻击者使用预先截取的合法消息报文进行重放攻击,影响当前时刻车辆的运行安全。
(3)抵御去同步化:由于CAN总线协议不保证消息的可靠传输,所以在网络负载较大的情况下可能会发生超时或消息丢失的情况,所以设计方案时需要考虑各通信节点的同步性。
其中,相关技术中CAN帧结构如图1所示,在一帧CAN消息报文内,可以传输8字节数据,其中,每个字节对应8比特的数据,8字节对应图1中的数据段,同时还有15比特长度的CRC校验段用来进行错误检测。循环冗余校验码(Cyclic Redundancy Check,CRC)是一种具有检错和一定程度纠错能力的校验码。但是CRC的计算过程公开且不包括身份信息,所以攻击者可以轻易为恶意消息生报文成一段合法的CRC校验码来通过合法性验证,使报文接收方受到欺骗攻击,造成危险。
本申请实施例提供的基于CAN总线的车载网络消息认证方法及相关设备在确定消息明文、车辆上电至报文发送方检测到消息明文的第一时长和车辆上电至报文接收方接收到消息报文的第二时长后,能够根据预设的时间间隔和第一时长确定第一时间间隔数,并根据时间间隔和第二时长确定第二时间间隔数。由于车内CAN总线网络具有在车辆点火时进行初始化的典型特征,所以各ECU设备的上电时间保持一致,借助这一特征就可以在CAN总线网络节点间设置一个从零开始的基于时间间隔的计数器,通过计数器可以确定第一时间间隔数和第二时间间隔数,实现各ECU节点之间的时间同步,实现具有抵御去同步化的能力。
然后,通过比较第一时间间隔数和第二时间间隔数进行重放攻击认证。如果攻击者记录了以前的帧并重新发送,就会因为第一时间间隔数和第二时间间隔数的不匹配而导致重放攻击认证不通过,所以通过比较第一时间间隔数和第二时间间隔数能够满足消息新鲜度验证的安全需求,实现具有抵御重放攻击的能力。
最后,根据第一时间间隔数、消息明文和预设的会话密钥确定发送方消息认证码;将初始消息报文的循环冗余校验码替换为发送方消息认证码,得到消息报文;根据第二时间间隔数、消息明文和会话密钥确定接收方消息认证码;通过比较接收方消息认证码和消息报文中的发送方消息认证码进行欺骗攻击认证。将初始消息报文的循环冗余校验码替换为发送方消息认证码,发送方消息认证码在生成时除需要消息明文外,还需要认证阶段交换得到的会话密钥和时间间隔计数器得到的第一时间间隔数,攻击者无法获得会话密钥,也就无法计算出与消息报文对应的发送方消息认证码。导致欺骗攻击无法通过接收方消息认证码的验证,实现具有抵御欺骗攻击的能力。
下面结合附图来描述根据本申请示例性实施方式的基于CAN总线的车载网络消息认证方法。
在一些实施例中,报文发送方与报文接收方通过CAN总线发送消息报文,如图2所示,一种基于CAN总线的车载网络消息认证方法包括:
步骤201:确定消息明文、车辆上电至报文发送方检测到消息明文的第一时长和车辆上电至报文接收方接收到消息报文的第二时长。
具体实施时,车内总线网络内部节点大多由功能单一的ECU构成,车辆正常运行状态下向CAN总线中发送的消息内容一般比较固定,且各ECU都有自己的消息发送周期。如果某些ECU的功能是监控汽车部件运行状态并报告,则有更大可能周期性发送内容相同的报文,在这种应用场景下,只是用密钥和消息明文生成消息认证码(Media Access Control,MAC)会发生认证部分重复的情况。此外,缺乏消息的实效性验证还可能导致重放攻击,严重威胁车内总线网络的安全。
相关技术中常见的消息新鲜度机制包括基于计数器和基于时间两种类型。两种机制在运行时都需要在通信双方(报文发送发和报文接收方)之间同步的维护一个或多个字段。对于基于计数器的新鲜度验证,需要对消息报文进行计数,每次发送或接收消息报文都对计数器进行更新(例如计数器计数值加一);基于时间的新鲜度验证要求通信双方的时间同步,消息根据发送或接收的时间去进行新鲜度验证。
对于车内网环境来说,保持ECU之间的消息计数器同步需要更大的代价,因为CAN总线协议不能保证消息的可靠传输,如果发生超时或其他原因导致的消息未送达,就会发生消息计数不同步的问题。所以本申请实施例选择了基于时间间隔的新鲜度机制,并通过预设时间间隔来扩大对通信、数据处理等流程所产生的时延的宽容度。
车内总线网络具有的典型特征就是在车辆点火时进行初始化,即各ECU设备的上电时间可以基本保持一致,借助这一特征就可以在总线网络节点间维护一个从零开始的定时器,通过这一定时器可以实现各ECU节点之间的时间同步,进而实现方案内新鲜度字段(发送方消息认证码MAC)的生成和验证。
如果使用精确时间计算新鲜度字段,很有可能因为发送方与接收方之间传输、处理信息的时间差造成新鲜度校验失败的情况,为了解决这一问题,本申请实施例引入了基于定时器的时间间隔计数器,实现以时间间隔数TC来代替精确时间,时间间隔数的计算方法如公式1所示:
其中,T表示车辆上电至报文发送方(例如某一ECU)检测到消息明文的时长,同时用t表示时长T结束时对应的时间点,Δt表示预设的时间间隔,TC为大于等于零值的自然数,因为TC表示时间间隔数,且由第0个时间间隔进行计数,所以需要对T/Δt计算的结果进行向下取整,得到TC。示例性地,如过Δt为2秒,T为1秒,则T/Δt=0.5,0.5∈[0,1),说明时间点T位于第0个时间间隔内;若Δt为2秒,T为4秒,则T/Δt=2,2∈[2,3),/>说明时间点T位于第2个时间间隔内。
所以,想要实现基于时间间隔的新鲜度机制,首先就需要确定消息明文M、车辆上电至报文发送方检测到消息明文的第一时长T0和车辆上电至报文接收方接收到消息报文的第二时长T1,其中,由于车辆点火时会进行计时初始化(从零开始重新计时),所以第一时长T0结束时对应的时间点为新鲜度字段(MAC)的计算时间点t0;所以第二时长T1结束时对应的时间点为新鲜度字段(MAC)的验证时间点t1
由于车内CAN总线网络具有在车辆点火时进行初始化的典型特征,所以各ECU设备的上电时间保持一致,借助这一特征就可以在CAN总线网络节点间设置一个从零开始的基于时间间隔的计数器,通过计数器可以确定第一时间间隔数和第二时间间隔数,实现各ECU节点之间的时间同步,使本申请具有抵御去同步化的能力。
步骤202:根据预设的时间间隔和第一时长确定第一时间间隔数,并根据时间间隔和第二时长确定第二时间间隔数。
具体实施时,通过公式(1)所述的计算方法可以将一段时间划分为时间间隔数TC个长度为Δt的时间间隔,处于同一时间间隔内的消息报文计算得到的TC值相同,从而增大了新鲜度字段对时延的宽容度。并且Δt的大小可以根据实际情况动态调整:如果总线负载较低,通信时延较短可以缩小Δt的值以增强安全性;而在网络负载较高,通信环境复杂的情况下则需要适当增大Δt来提高消息新鲜度校验的通过率。则根据预设的时间间隔Δt和第一时长T0,根据公式(1)可以计算得到第一时间间隔数TC0,根据预设的时间间隔Δt和第二时长T1,根据公式(1)可以计算得到第二时间间隔数TC1
步骤203:通过比较第一时间间隔数和第二时间间隔数进行重放攻击认证。
具体实施时,由于本申请实施例在MAC生成时引入了一个基于定时器时间间隔计数器,借助时间间隔数,本申请实施例能够在不同时间间隔内产生不同的MAC。如果攻击者记录了以前的历史帧(消息报文以CAN帧的形式进行发送)并重新发送,就会由于历史帧的TC与当前时刻报文接收方计算出的TC不匹配而导致MAC验证不通过。
进一步地,为了保证因为通信或处理时延而被分割在两个时间间隔中的消息也能顺利通过新鲜度验证,本申请实施例设计了补偿值c,并规定了c的阈值为n,n可以表示为最大校验次数,即c∈[-n,n]。所以,当报文消息中携带的第一时间间隔数TC0满足TC1-n≤TC0≤TC1+n时都可以通过重放攻击认证,确定携带第一时长TC0的消息报文不为重放攻击。如果重放攻击的消息报文也满足这一要求,也会被认为是合法消息报文而被接受。所以对于自定义的时间间隔最大校验次数n和时间间隔Δt,都要根据实际应用时总线网络的信号传输速度进行合理设置,以防止发生在合理时间间隔内的重放攻击。
步骤204:根据第一时间间隔数、消息明文和预设的会话密钥确定发送方消息认证码。
具体实施时,消息认证码MAC的确定需要用到通过认证和密钥交换协议后得到的会话密钥K、第一时间间隔数TC0以及本条消息传输的明文M。首先,将三者拼接后通过哈希运算得到中间参数A,示例性地,此处使用的哈希算法可以为SHA-256。通过哈希运算将得到包括32个字节的中间参数:
A[0:31]=H(K||TC0||M), (2)
A[0:31]表示中间参数的第0个字节到第31个字节,由于中间参数A包括32个字节(分别为第0个字节到第31个字节),每个字节包括8个比特,则中间参数A包括256比特。所以中间参数A的哈希结果远大于CAN数据帧中CRC校验字段的15比特,因此在对CRC字段进行替换前需要对中间参数A进行处理和裁剪。为了增加每条消息报文间裁剪的随机性,本申请实施例使用如下方法从中间参数A中裁剪出最终的MAC值作为发送方消息认证码:
offset=A[31] 0x1e, (3)
MAC=(A[offset]≤4+A[offset+1])mod 215, (4)
其中,offset为截取值,表示在第0个字节到第31个字节中截取第offset个字节,A[31]表示中间参数的最后一个字节,&表示与运算,0x1e为30的十六进制表示,其二进制表示为0001 1110,A[offset]表示第offset个字节,A[offset+1]表示第offset+1个字节。
公式(3)表示通过对哈希结果的最后1字节A[31](可以选择32个字节中的任意一个字节,在此不做限定)与0x1e进行与操作得到了最后一字节中0到5比特的数据,由于5比特的数据范围为0~31,所以将offset值作为截取值刚好可以覆盖中间参数A的第0-31字节。
然后,根据如公式(4)所示,首先,截取中间参数A的第offset和第offset+1字节,便可以得到两个字节共16比特数据,去除最高有效位(Most Significant Bit,MSB)后得到最终的15比特发送方消息认证码MAC。
步骤205:将初始消息报文的循环冗余校验码替换为发送方消息认证码,得到消息报文。
具体实施时,将消息认证码替换原CAN帧中CRC字段即可完成认证字段的生成。替换后的CAN帧如图3所示,使用MAC对消息报文进行认证较CRC而言有着较高的安全性,通过将密钥等信息附加在MAC中,可以使生成时的消息报文实现消息来源认证等功能。所以,选择使用MAC替代CRC来为CAN帧附加消息报文来源认证功能,在经过改进后的携带消息报文的CAN帧中,只有CRC校验段被替换为MAC字段,其他结构和长度并未受到影响,不会影响CAN帧其他功能。
在原有CAN协议下,攻击者可以轻易对总线网络发起欺骗攻击,因为CAN标准规定每一帧的数据完整性由CRC字段进行保护,而攻击者可以轻易使用恶意数据替换报文中的合法数据并根据恶意数据重新计算CRC值,此时接收方根据CRC校验数据时仍然会通过并接收报文中的恶意数据。使用MAC验证代替CRC,发送方MAC在生成时除需要消息明文外,还需要认证阶段交换得到的会话密钥和时间间隔计数器,攻击者无法获得会话密钥,也就无法计算出消息对应的发送方MAC值。由此可以达到对总线网络内消息来源和完整性进行验证的目标,并具有抵御欺骗攻击的能力。
步骤206:根据第二时间间隔数、消息明文和会话密钥确定接收方消息认证码。
具体实施时,当报文接收方收到CAN帧时,需要根据CAN帧中的消息报文进行消息认证来验证报文发送方的合法性和消息报文的新鲜度。首先,根据接收到消息报文时第二时长T1计算出第二时间间隔数TC1,然后,与会话密钥K、消息明文M拼接后计算出验证中间参数A′=H(K||TC1||M)。随后根据公式(3)和公式(4),通过对A′的值进行处理和裁剪就可以得到报文接收方的offset′和接收方消息认证码MAC′。
步骤207:通过比较接收方消息认证码和消息报文中的发送方消息认证码进行欺骗攻击认证。
具体实施时,在确定接收方本地计算出的接收方消息认证码MAC′和消息报文携带的发送方消息认证码MAC进行比较,若相等,则表示报文发送方的身份合法,且消息未过期,可以接受消息;不相等则认证失败,舍弃该条消息。
综上所述,本申请实施例提供的基于CAN总线的车载网络消息认证方法在确定消息明文、车辆上电至报文发送方检测到消息明文的第一时长和车辆上电至报文接收方接收到消息报文的第二时长后,能够根据预设的时间间隔和第一时长确定第一时间间隔数,并根据时间间隔和第二时长确定第二时间间隔数。由于车内CAN总线网络具有在车辆点火时进行初始化的典型特征,所以各ECU设备的上电时间保持一致,借助这一特征就可以在CAN总线网络节点间设置一个从零开始的基于时间间隔的计数器,通过计数器可以确定第一时间间隔数和第二时间间隔数,实现各ECU节点之间的时间同步,实现具有抵御去同步化的能力。
然后,通过比较第一时间间隔数和第二时间间隔数进行重放攻击认证。如果攻击者记录了以前的帧并重新发送,就会因为第一时间间隔数和第二时间间隔数的不匹配而导致重放攻击认证不通过,所以通过比较第一时间间隔数和第二时间间隔数能够满足消息新鲜度验证的安全需求,实现具有抵御重放攻击的能力。
最后,根据第一时间间隔数、消息明文和预设的会话密钥确定发送方消息认证码;将初始消息报文的循环冗余校验码替换为发送方消息认证码,得到消息报文;根据第二时间间隔数、消息明文和会话密钥确定接收方消息认证码;通过比较接收方消息认证码和消息报文中的发送方消息认证码进行欺骗攻击认证。将初始消息报文的循环冗余校验码替换为发送方消息认证码,发送方消息认证码在生成时除需要消息明文外,还需要认证阶段交换得到的会话密钥和时间间隔计数器得到的第一时间间隔数,攻击者无法获得会话密钥,也就无法计算出与消息报文对应的发送方消息认证码。导致欺骗攻击无法通过接收方消息认证码的验证,实现具有抵御欺骗攻击的能力。
在一些实施例中,如图4所示,通过比较第一时间间隔数和第二时间间隔数进行重放攻击认证,包括:
步骤401:响应于第一时间间隔数等于第二时间间隔数,确定认证通过,不存在重放攻击。
具体实施时,在进行新鲜度校验时,以第一时长结束时对应的时间点为发送方消息认证码的计算时间点t0;所以第二时长结束时对应的时间点为发送方消息认证码的验证时间点t1。可能发生如图5所示的两种情况,其中①表示正常情况下发送方消息认证码的计算时间点t0和发送方消息认证码的验证时间点t1处在同一时间间隔内,这种情况下计算得到的第一时间间隔数TC0和第二时间间隔数TC1是相等的,即消息报文的计算时间(可以等同于消息报文的发送时间)和验证时间(可以等同于消息报文的接收时间)之间的时间差小于等于一个时间间隔的时间,由于时间间隔的值很小,所以可以认为消息报文的发送时间和消息报文的接收时间极为相近,可以排除存在重放攻击的可能,所以可以通过重放攻击认证。
步骤402:响应于第一时间间隔数等于第二时间间隔数,确定最大校验次数。
具体实施时,对于图5中②对应的情况,计算时间点t0和验证时间点t1分散在了两个时间间隔内,此时通过公式(1)计算得到的第一时间间隔数TC0和第二时间间隔数TC1不相等,出现了合法消息报文的新鲜度校验(重放攻击认证)不通过的现象,使合法的消息报文无法通过重放攻击认证,将合法的消息报文被误判为重放攻击。
合法消息报文出现新鲜度校验不通过大多是因为发送方消息认证码计算时间点t0和验证时间点t1处于不同的时间间隔。为了解决这一问题,本谁请实施例引入了时间间隔补偿值c,并规定了c的阈值为n,n为最大校验次数,即c∈[-n,n]。n为补偿值的阈值,表示校验的最大尝试次数,超过此阈值则会判定新鲜度校验不通过。通过引入补偿值,使重放攻击认证具有了时间上的宽容度,允许新鲜度生成与校验间最多相差n个时间间隔的消息报文通过新鲜度校验,进而通过重放攻击认证。因此在实际应用中,需要根据网络环境选择合适的阈值,过大的可能会将较短时间前截取的报文包含进合法时间间隔内,增大了重放攻击成功的可能性。过小将会削减补偿作用。
步骤403:根据最大校验次数和第二时间间隔数确定补偿区间。
具体实施时,当校验时计算得到的TC1与TC0不想等时,会加入补偿值c重新认证,补偿方式如公式(5)所示:
其中,公式(5)表示在校验新鲜度时会按顺序计算TC1+1,TC1-1,TC1+2,TC1-2等结果对否可以使由于c∈[-n,n],则补偿区间为[TC1+n,TC1-n]。
在一些实施例中,步骤403包括:
步骤4031:确定第二时间间隔数和最大校验次数的差值。
具体实施时,确定第二时间间隔数TC1和最大校验次数n的差值TC1-n。
步骤4032:确定第二时间间隔数和最大校验次数的和值;
具体实施时,确定第二时间间隔数TC1和最大校验次数n的和值TC1+n。
步骤4033:将以差值为下边界值,以和值为上边界值的区间确定为补偿区间。
具体实施时,将以差值TC1-n为下边界值,以和值TC1+n为上边界值的区间确定为补偿区间[TC1+n,TC1-n]。
步骤404:响应于第一时间间隔数位于补偿区间内,确定认证通过,不存在重放攻击。
步骤405:响应于第一时间间隔数位于补偿区间外,确定认证未通过,存在重放攻击。
具体实施时,在得到补偿区间后,即TC0位于该补偿区间内即可认为通过认证。进一步根据补偿区间[TC1+n,TC1-n]确定报文消息中携带的第一时间间隔数TC0是否可以通过重放攻击认证(新鲜度验证),当满足TC1-n≤TC0≤TC1+n时都可以确定通过重放攻击认证,确定携带第一时长TC0的消息报文不为重放攻击。如果重放攻击的消息报文也满足这一要求,也会被认为是合法消息报文而被接受。所以对于自定义的时间间隔最大校验次数n和时间间隔Δt,都要根据实际应用时总线网络的信号传输速度进行合理设置,以防止发生在合理时间间隔内的重放攻击。
示例性地,若TC0=10,TC1=12,n=3,则补偿区间为[9,15],则计算TC1+1,TC1-1,TC1+2,TC1-2,TC1+3,TC1-3,当计算到TC1-2=10时,TC1-2=TC0,确定TC0位于补偿区间内,通过重放攻击认证,然后,可以确定TC1-2与TC0位于同一时间间隔内,所以,在计算报文接收方的中间参数A′时,需要将TC1进行重新赋值,即令TC’1=TC1-2,然后,根据公式(6)计算A′:
A′[0:31]=H(K||TC’1||M), (6)。
在不满足TC1-n≤TC0≤TC1+n时,可以确定携带第一时长TC0的消息报文为重放攻击,因为TC0与TC1之间的时间差比较大,与TC1对应的报文接收方接收到的消息报文的发送时间与接收时间之间存在较大的时间差距,该消息报文为重放攻击的可能性较大,确定该消息报文未通过认证,为重放攻击。
在一些实施例中,如图6所示,根据第一时间间隔数、消息明文和预设的会话密钥确定发送方消息认证码,包括:
步骤601:对第一时间间隔数、消息明文和会话密钥进行哈希运算,得到包括32个字节的中间参数。
具体实施时,根据公式A[0:31]=H(K||TC0||M)进行哈希运算,得到包括32个字节的中间参数A。
步骤602:将中间参数的最后一个字节与预设的范围参数进行与运算,得到截取值。
具体实施时,根据公式offset=A[31]&0x1e实现将中间参数的最后一个字节与预设的范围参数进行与运算,得到截取值offset。
其中,0x1e为30的十六进制表示,其二进制表示为0001 1110,示例性地,若A[31]为0000 0000,A[31]&0x1e=0;若A[31]为1111 1111,则A[31]&0x1e=30。即Max(A[31]&0x1e)=30,二进制表示为11110。所以通过对哈希结果的最后1字节A[31]与0x1e进行与操作得到了最后一字节中0到5比特的数据,由于进行截取时截取的是中间参数A的第offset和第offset+1字节,所以当offset的取值范围为0~30时,offset+1的取值范围为1~31,所以5比特的数据范围为0~31,所以将offset值作为截取值刚好可以覆盖中间参数A的第0-31字节。
步骤603:根据截取值对中间参数进行裁剪,得到发送方消息认证码。
在一些实施例中,步骤602包括:
步骤6031:在中间参数中截取第offset个字节和第offset+1个字节,得到16个比特的截取数据;
步骤6032:去除截取数据的最高有效位,得到15个比特的发送方消息认证码。
具体实施时,截取中间参数A的第offset和第offset+1个字节,便可以得到两个字节共16比特数据,去除最高有效位(Most Significant Bit,MSB)后得到最终的15比特发送方消息认证码MAC。其中,最高有效位是指一个n位二进制数字中的第n-1位(其中位于最右侧的为第0位),具有最高的权值2n-1,一般情况下MSB即指位于最左端的位。本申请实施例中的最高有效位为位于最左端的第15位。所以将第offet和第offset+1个字节的位于最左端的为进行剪裁,就得到了发送方消息认证码。
通过中间参数中的一位确定截取值增加了截取值的随机性,避免了采用固定截取值造成的容易被攻击方获取的技术问题,对于随机的截取,即使攻击方获取某一次的截取值,也无法应用该截取值通过其他消息报文的验证。由于截取值的随机性,就会使发送方消息认证码具有随机性,攻击者通过单次获取发送方消息认证码也无法通过其他消息报文的验证,提高了攻击者破解MAC的难度。且最终的MAC值被裁剪为15比特的长度,攻击者使用暴力破解需要尝试215种可能性,对于现代计算设备,该数量级的复杂度可以被轻松破解,但由于各种可能性的检验都要向报文接收方发送消息报文,所以实际的破解速度还受限于CAN总线网络的传输速率,攻击者将很难在一个设置合理的时间间隔内破解出合法的MAC,提高消息报文传输的安全性。
在一些实施例中,如图7所示,将初始消息报文的循环冗余校验码替换为发送方消息认证码,得到消息报文,包括:
步骤701:在初始网络报文中确定与循环冗余校验码对应的15个目标比特位。
具体实施时,在原有CAN协议下,攻击者可以轻易对总线网络发起欺骗攻击,如图1所示,因为CAN标准规定每一帧的数据完整性由CRC字段进行保护,而攻击者可以轻易使用恶意数据替换报文中的合法数据并根据恶意数据重新计算CRC值,此时接收方根据CRC校验数据时仍然会通过并接收报文中的恶意数据。使用MAC验证代替CRC,发送方MAC在生成时除需要消息明文外,还需要认证阶段交换得到的会话密钥和时间间隔计数器,攻击者无法获得会话密钥,也就无法计算出消息对应的发送方MAC值。由此可以达到对总线网络内消息来源和完整性进行验证的目标,并具有抵御欺骗攻击的能力。所以,首先需要在在初始网络报文中确定与循环冗余校验码对应的15个目标比特位,为后续的替换提供基础。
步骤702:将初始网络报文中目标比特位的数据进行删除,并将发送方消息认证码添加至空闲的目标比特位,得到消息报文。
具体实施时,将消息认证码替换原CAN帧中CRC字段即可完成认证字段的生成。替换后的CAN帧如图3所示,使用MAC对消息报文进行认证较CRC而言有着较高的安全性,通过将密钥等信息附加在MAC中,可以使生成时的消息报文实现消息来源认证等功能。所以,选择使用MAC替代CRC来为CAN帧附加消息报文来源认证功能,在经过改进后的携带消息报文的CAN帧中,只有CRC校验段被替换为MAC字段,其他结构和长度并未受到影响,不会影响CAN帧其他功能。
在一些实施例中,如图8所示,通过比较接收方消息认证码和消息报文中的发送方消息认证码进行欺骗攻击认证,包括:
步骤801:响应于第一时间间隔数和第二时间间隔数相等,且接收方消息认证码和消息报文中的发送方消息认证码相同,确定报文发送方身份合法,认证通过,成功接收消息报文。
具体实施时,对于图5所示的两种情况,验证过程略有差别,其中,对于图5中①对应的情况,此时第一时间间隔数和第二时间间隔数相等,根据公式(6)计算A',然后根据以下公式确定接收方消息认证码MAC':
offset′=A′[31]0x1e, (7)
MAC′=(A′[offset′]<<4+A′[offset′+1])mod 215, (8)
由于TC0=TC1,所以A′=A,offset′=offset,MAC′=MAC,即接收方消息认证码和消息报文中的发送方消息认证码相同,可以确定报文发送方身份合法,认证通过,成功接收消息报文。
步骤802:响应于第一时间间隔数和第二时间间隔数相等,且接收方消息认证码和消息报文中的发送方消息认证码不同,确定报文发送方身份不合法,认证未通过,舍弃消息报文。
具体实施时,对于图5所示的两种情况,验证过程略有差别,其中,对于图五中①对应的情况,未受到攻击者的欺骗攻击时,第一时间间隔数和第二时间间隔数相等,则MAC′=MAC,所以,如果出现接收方消息认证码和消息报文中的发送方消息认证码不同的情况,就可以确定报文发送方身份不合法,认证未通过,舍弃该消息报文。
步骤803:响应于第一时间间隔数和第二时间间隔数不相等,且重放攻击认证通过,根据第一时间间隔数对第二时间间隔数进行重新赋值,并根据新的第二时间间隔数、消息明文和会话密钥确定接收方消息认证码,若接收方消息认证码和消息报文中的发送方消息认证码相同,确定报文发送方身份合法,认证通过,成功接收消息报文。
具体实施时,对于图5所示的两种情况,验证过程略有差别,其中,对于图5中②对应的情况,此时第一时间间隔数和第二时间间隔数不相等,此时需要判断消息报文是否通过了重放攻击认证。如果没有通过重放攻击认证,直接舍弃该消息报文。如果通过了重放攻击认证,说明满足TC1-n≤TC0≤TC1+n,此时为了满足A′=A,需要将TC1进行重新赋值,根据中间参数的计算式H(K||TC||M)可以得知,会话密钥和消息明文对于报文接收方和报文发送方老说时一致的,所以双方中间参数是否相同的决定性变量是时间间隔数是否相等,所以,当消息报文通过重放攻击认证后,确定TC1-n≤TC0≤TC1+n,且在补偿区间中存在[TC1+n,TC1-n]存在TC1=TC0+c,c∈[-n,n]。所以,为了保证A′=A,需要将TC1进行重新赋值,即另TC′1=TC1-c=TC0,然后,根据公式(6)计算A′,此时A′=A,所以offset′=offset,MAC′=MAC,即接收方消息认证码和消息报文中的发送方消息认证码相同,可以确定报文发送方身份合法,认证通过,成功接收消息报文,实现了对重放攻击和欺骗攻击的抵御,还降低去同步化概率,保证了消息报文传输的安全性。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种基于CAN总线的车载网络消息认证装置。
报文发送方与报文接收方通过CAN总线发送消息报文,参考图9,所述基于CAN总线的车载网络消息认证装置,包括:
数据获取模块10,被配置为:确定消息明文、车辆上电至报文发送方检测到消息明文的第一时长和车辆上电至报文接收方接收到消息报文的第二时长;
时间计数器模块20,被配置为:根据预设的时间间隔和第一时长确定第一时间间隔数,并根据时间间隔和第二时长确定第二时间间隔数;
消息验证模块30,被配置为:通过比较第一时间间隔数和第二时间间隔数进行重放攻击认证;
第一认证码获取模块40,被配置为:根据第一时间间隔数、消息明文和预设的会话密钥确定发送方消息认证码;
认证码替换模块50,被配置为:将初始消息报文的循环冗余校验码替换为发送方消息认证码,得到消息报文;
第二认证码获取模块60,被配置为:根据第二时间间隔数、消息明文和会话密钥确定接收方消息认证码;
认证码比对模块70,被配置为:通过比较接收方消息认证码和消息报文中的发送方消息认证码进行欺骗攻击认证。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的基于CAN总线的车载网络消息认证方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的基于CAN总线的车载网络消息认证方法。
图10示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的基于CAN总线的车载网络消息认证方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的基于CAN总线的车载网络消息认证方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的基于CAN总线的车载网络消息认证方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
可以理解的是,在使用本公开中各个实施例的技术方案之前,均会通过恰当的方式对所涉及的个人信息的类型、使用范围、使用场景等告知用户,并获得用户的授权。
例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确的提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主的选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
作为一种可选的但非限定的实现方式,响应于接受到用户的主动请求,向用户发送提示信息的方式例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。
可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其他满足相关法律法规的方式也可应用于本公开的实现方式中。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种基于CAN总线的车载网络消息认证方法,其特征在于,报文发送方与报文接收方通过CAN总线发送消息报文,所述方法包括:
确定消息明文、车辆上电至所述报文发送方检测到所述消息明文的第一时长和车辆上电至报文接收方接收到所述消息报文的第二时长;
根据预设的时间间隔和所述第一时长确定第一时间间隔数,并根据所述时间间隔和所述第二时长确定第二时间间隔数;
通过比较所述第一时间间隔数和所述第二时间间隔数进行重放攻击认证;
根据所述第一时间间隔数、所述消息明文和预设的会话密钥确定发送方消息认证码;
将初始消息报文的循环冗余校验码替换为所述发送方消息认证码,得到所述消息报文;
根据所述第二时间间隔数、所述消息明文和所述会话密钥确定接收方消息认证码;
通过比较所述接收方消息认证码和所述消息报文中的所述发送方消息认证码进行欺骗攻击认证。
2.根据权利要求1所述的方法,其特征在于,所述通过比较所述第一时间间隔数和所述第二时间间隔数进行重放攻击认证,包括:
响应于所述第一时间间隔数等于所述第二时间间隔数,确定认证通过,不存在重放攻击;
响应于所述第一时间间隔数等于所述第二时间间隔数,确定最大校验次数;
根据所述最大校验次数和所述第二时间间隔数确定补偿区间;
响应于所述第一时间间隔数位于所述补偿区间内,确定认证通过,不存在重放攻击;
响应于所述第一时间间隔数位于所述补偿区间外,确定认证未通过,存在重放攻击。
3.根据权利要求1所述的方法,其特征在于,所述根据所述最大校验次数和所述第二时间间隔数确定补偿区间,包括:
确定所述第二时间间隔数和所述最大校验次数的差值;
确定所述第二时间间隔数和所述最大校验次数的和值;
将以所述差值为下边界值,以所述和值为上边界值的区间确定为所述补偿区间。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一时间间隔数、所述消息明文和预设的会话密钥确定发送方消息认证码,包括:
对所述第一时间间隔数、所述消息明文和所述会话密钥进行哈希运算,得到包括32个字节的中间参数;
将所述中间参数的最后一个字节与预设的范围参数进行与运算,得到截取值;
根据所述截取值对所述中间参数进行裁剪,得到所述发送方消息认证码。
5.根据权利要求1所述的方法,其特征在于,将所述截取值记为offet,所述根据所述截取值对所述中间参数进行裁剪,得到所述发送方消息认证码,包括:
在所述中间参数中截取第offet个字节和第offet+1个字节,得到16个比特的截取数据;
去除所述截取数据的最高有效位,得到15个比特的所述发送方消息认证码。
6.根据权利要求1所述的方法,其特征在于,所述将初始消息报文的循环冗余校验码替换为所述发送方消息认证码,得到所述消息报文,包括:
在所述初始网络报文中确定与所述循环冗余校验码对应的15个目标比特位;
将所述初始网络报文中所述目标比特位的数据进行删除,并将所述发送方消息认证码添加至空闲的所述目标比特位,得到所述消息报文。
7.根据权利要求1所述的方法,其特征在于,所述通过比较所述接收方消息认证码和所述消息报文中的所述发送方消息认证码进行欺骗攻击认证,包括:
响应于所述第一时间间隔数和所述第二时间间隔数相等,且所述接收方消息认证码和所述消息报文中的所述发送方消息认证码相同,确定所述报文发送方身份合法,认证通过,成功接收所述消息报文;
响应于所述第一时间间隔数和所述第二时间间隔数相等,且所述接收方消息认证码和所述消息报文中的所述发送方消息认证码不同,确定所述报文发送方身份不合法,认证未通过,舍弃所述消息报文;
响应于所述第一时间间隔数和所述第二时间间隔数不相等,且重放攻击认证通过,根据所述第一时间间隔数对所述第二时间间隔数进行重新赋值,并根据所述新的第二时间间隔数、所述消息明文和所述会话密钥确定接收方消息认证码,若所述接收方消息认证码和所述消息报文中的所述发送方消息认证码相同,确定所述报文发送方身份合法,认证通过,成功接收所述消息报文。
8.一种基于CAN总线的车载网络消息认证装置,其特征在于,报文发送方与报文接收方通过CAN总线发送消息报文,所述装置包括:
数据获取模块,被配置为:确定消息明文、车辆上电至所述报文发送方检测到所述消息明文的第一时长和车辆上电至报文接收方接收到所述消息报文的第二时长;
时间计数器模块,被配置为:根据预设的时间间隔和所述第一时长确定第一时间间隔数,并根据所述时间间隔和所述第二时长确定第二时间间隔数;
消息验证模块,被配置为:通过比较所述第一时间间隔数和所述第二时间间隔数进行重放攻击认证;
第一认证码获取模块,被配置为:根据所述第一时间间隔数、所述消息明文和预设的会话密钥确定发送方消息认证码;
认证码替换模块,被配置为:将初始消息报文的循环冗余校验码替换为所述发送方消息认证码,得到所述消息报文;
第二认证码获取模块,被配置为:根据所述第二时间间隔数、所述消息明文和所述会话密钥确定接收方消息认证码;
认证码比对模块,被配置为:通过比较所述接收方消息认证码和所述消息报文中的所述发送方消息认证码进行欺骗攻击认证。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任意一项所述的方法。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机执行权利要求1至7任一项所述方法。
CN202311434160.2A 2023-10-31 2023-10-31 基于can总线的车载网络消息认证方法及相关设备 Pending CN117614652A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311434160.2A CN117614652A (zh) 2023-10-31 2023-10-31 基于can总线的车载网络消息认证方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311434160.2A CN117614652A (zh) 2023-10-31 2023-10-31 基于can总线的车载网络消息认证方法及相关设备

Publications (1)

Publication Number Publication Date
CN117614652A true CN117614652A (zh) 2024-02-27

Family

ID=89955169

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311434160.2A Pending CN117614652A (zh) 2023-10-31 2023-10-31 基于can总线的车载网络消息认证方法及相关设备

Country Status (1)

Country Link
CN (1) CN117614652A (zh)

Similar Documents

Publication Publication Date Title
US10243732B1 (en) Cryptographic key management for end-to-end communication security
Jo et al. A survey of attacks on controller area networks and corresponding countermeasures
CN110493197B (zh) 一种登录处理方法及相关设备
US10104094B2 (en) On-vehicle communication system
Nürnberger et al. –vatican–vetted, authenticated can bus
Jo et al. Mauth-can: Masquerade-attack-proof authentication for in-vehicle networks
US20210328782A1 (en) End-to-end communication security
Martínez-Cruz et al. Security on in-vehicle communication protocols: Issues, challenges, and future research directions
CN107086981B (zh) 受控安全代码认证
JP5949572B2 (ja) 車両不正状態検出方法、車載システムにおける制御方法、およびシステム
US10425231B2 (en) Information processing apparatus and method for authenticating message
Schmandt et al. Mini-MAC: Raising the bar for vehicular security with a lightweight message authentication protocol
CN112487408B (zh) 用于车内ecu的安全访问方法、系统及存储介质
US11388156B2 (en) Proof-of-work concept for a vehicle
Han et al. A practical solution to achieve real-time performance in the automotive network by randomizing frame identifier
CN112866297A (zh) 访问数据处理方法、装置及系统
US10972441B2 (en) In-place authentication scheme for securing intra-vehicle communication
Kim et al. Shadowauth: Backward-compatible automatic can authentication for legacy ecus
Carsten et al. A system to recognize intruders in controller area network (can)
KR102462736B1 (ko) 센서의 측정값들에 서명하기 위한 방법, 장치 및 명령어들을 포함하는 컴퓨터 판독 가능 저장 매체
CN117614652A (zh) 基于can总线的车载网络消息认证方法及相关设备
EP3692698A1 (en) System and method for validation of authenticity of communication at in-vehicle networks
Tanksale Controller area network security requirements
KR20150109202A (ko) 차량용 통신 데이터 인증 방법 및 시스템
CN114567456A (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