通信认证方法、装置及车辆与流程

文档序号:18791563发布日期:2019-09-29 18:54阅读:229来源:国知局
通信认证方法、装置及车辆与流程

本公开涉及通信领域,具体地,涉及一种通信认证方法、装置及车辆。



背景技术:

随着通信技术的发展,可用于通信的对象逐渐增多,这就存在一系列的安全问题,因此,为了保证通信安全,在通信之前需要对通信双方验证。以汽车为例,随着汽车网联技术发展,车辆具备了与外界联网的功能,因此存在被外界攻击的风险。为了保证与外界通信时消息的可信任性,需要对通信双方进行数据加密认证。现有技术中,为了保证通信安全,一般基于问答式进行认证,且需要通信双方进行两问两答,在这种方式中,认证需要耗费时间,造成用户体验不佳,另外,认证时总线负载率高,造成资源占用现象。



技术实现要素:

本公开的目的是提供一种通信认证方法、装置及车辆,以保证通信安全。

为了实现上述目的,根据本公开的第一方面,提供一种通信认证方法,应用于具有通信功能的第一设备,所述方法包括:

若接收到控制指令,根据车辆标识、第一随机数、所述控制指令对应的指令标识、第二随机数,加密生成第一认证报文,并将所述第一认证报文与所述指令标识相关联,其中,所述控制指令用于触发所述第一设备与第二设备之间的通信,所述第一随机数、所述第二随机数分别由所述控制指令触发生成;

向所述第二设备发送所述第一认证报文,以使所述第二设备对所述第一认证报文进行认证;

若接收到所述第二设备发送的第二认证报文,将与所述控制指令对应的第一标准报文与所述第二认证报文进行比较,以对所述第二认证报文进行认证,其中,所述第二认证报文是所述第二设备基于所述车辆标识、第三随机数、所述指令标识、第四随机数加密而生成的,所述第三随机数、所述第四随机数分别由所述控制指令触发生成;

若所述第二认证报文与所述第一标准报文相匹配,确定通信认证成功。

可选地,所述根据车辆标识、第一随机数、所述控制指令对应的指令标识、第二随机数,加密生成第一认证报文,包括:

根据第一预设加密算法,对所述车辆标识和所述第一随机数进行加密,获得第一加密数据;

根据第二预设加密算法,对所述指令标识和所述第二随机数进行加密,获得第二加密数据;

将所述第一加密数据、所述第二加密数据和所述控制指令组合,获得所述第一认证报文。

可选地,所述第二认证报文包括所述控制指令、第三加密数据和第四加密数据,以及,与所述控制指令对应的第一标准报文包括所述控制指令、第一验证数据和第二验证数据;

所述方法还包括:

若所述第二认证报文中的第三加密数据与所述第一标准报文中的第一验证数据相匹配,并且,所述第二认证报文中的第四加密数据与所述第一标准报文中的第二验证数据相匹配,确定所述第二认证报文与所述第一标准报文相匹配。

可选地,所述方法还包括:

在向所述第二设备发送所述第一认证报文时开始计时,得到第一计时时长;

若所述第一计时时长达到第一预设时长、且未接收到所述第二认证报文,确定通信认证失败;

或者,所述方法还包括:

若所述第二认证报文与所述第一标准报文不匹配,确定通信认证失败。

可选地,所述方法还包括:

若确定通信认证成功,向所述第二设备发送用于指示通信认证成功的确认信息。

根据本公开的第二方面,提供一种通信认证方法,应用于具有通信功能的第二设备,所述方法包括:

若接收到来自第一设备的第一认证报文,根据所述第一认证报文所对应的指令标识,确定与所述指令标识对应的第二标准报文;

将所述第二标准报文与所述第一认证报文进行比较,以对所述第一认证报文进行认证;

若所述第一认证报文与所述第二标准报文相匹配,根据车辆标识、第三随机数、所述指令标识、第四随机数,加密生成第二认证报文,并将所述第二认证报文与所述指令标识相关联,其中,所述第三随机数、所述第四随机数分别由所述指令标识对应的控制指令触发生成;

向所述第一设备发送所述第二认证报文。

可选地,所述根据车辆标识、第三随机数、所述指令标识、第四随机数,加密生成第二认证报文,包括:

根据第三预设加密算法,对所述车辆标识和所述第三随机数进行加密,获得第三加密数据;

根据第四预设加密算法,对所述指令标识和所述第四随机数进行加密,获得第四加密数据;

将所述第三加密数据、所述第四加密数据和所述指令标识对应的控制指令组合,获得所述第二认证报文。

可选地,所述第一认证报文包括与所述指令标识对应的控制指令、第一加密数据和第二加密数据,以及,与所述指令标识对应的第二标准报文包括与所述指令标识对应的控制指令、第三验证数据和第四验证数据;

所述方法还包括:

若所述第一认证报文中的第一加密数据与所述第二标准报文中的第三验证数据相匹配,并且,所述第一认证报文中的第二加密数据与所述第二标准报文中的第四验证数据相匹配,确定所述第一认证报文与所述第二标准报文相匹配。

可选地,所述方法还包括:

若接收到所述第一设备发送的用于指示通信认证成功的确认信息,执行所述指令标识对应的控制指令。

根据本公开的第三方面,提供一种通信认证装置,应用于具有通信功能的第一设备,所述装置包括:

第一报文生成模块,用于若接收到控制指令,根据车辆标识、第一随机数、所述控制指令对应的指令标识、第二随机数,加密生成第一认证报文,并将所述第一认证报文与所述指令标识相关联,其中,所述控制指令用于触发所述第一设备与第二设备之间的通信,所述第一随机数、所述第二随机数分别由所述控制指令触发生成;

第一报文发送模块,用于向所述第二设备发送所述第一认证报文,以使所述第二设备对所述第一认证报文进行认证;

第一报文比较模块,用于若接收到所述第二设备发送的第二认证报文,将与所述控制指令对应的第一标准报文与所述第二认证报文进行比较,以对所述第二认证报文进行认证,其中,所述第二认证报文是所述第二设备基于所述车辆标识、第三随机数、所述指令标识、第四随机数加密而生成的,所述第三随机数、所述第四随机数分别由所述控制指令触发生成;

第一确定模块,用于若所述第二认证报文与所述第一标准报文相匹配,确定通信认证成功。

可选地,所述第一报文生成模块,包括:

第一加密子模块,用于根据第一预设加密算法,对所述车辆标识和所述第一随机数进行加密,获得第一加密数据;

第二加密子模块,用于根据第二预设加密算法,对所述指令标识和所述第二随机数进行加密,获得第二加密数据;

第一报文生成子模块,用于将所述第一加密数据、所述第二加密数据和所述控制指令组合,获得所述第一认证报文。

可选地,所述第二认证报文包括所述控制指令、第三加密数据和第四加密数据,以及,与所述控制指令对应的第一标准报文包括所述控制指令、第一验证数据和第二验证数据;

所述装置还包括:

第一匹配判定模块,用于若所述第二认证报文中的第三加密数据与所述第一标准报文中的第一验证数据相匹配,并且,所述第二认证报文中的第四加密数据与所述第一标准报文中的第二验证数据相匹配,确定所述第二认证报文与所述第一标准报文相匹配。

可选地,所述装置还包括:

计时模块,用于在向所述第二设备发送所述第一认证报文时开始计时,得到第一计时时长;

第二确定模块,用于若所述第一计时时长达到第一预设时长、且未接收到所述第二认证报文,确定通信认证失败;

或者,所述装置还包括:

第三确定该模块,用于若所述第二认证报文与所述第一标准报文不匹配,确定通信认证失败。

可选地,所述装置还包括:

信息发送模块,用于若确定通信认证成功,向所述第二设备发送用于指示通信认证成功的确认信息。

根据本公开的第四方面,提供一种通信认证装置,应用于具有通信功能的第二设备,所述装置包括:

报文确定模块,用于若接收到来自第一设备的第一认证报文,根据所述第一认证报文所对应的指令标识,确定与所述指令标识对应的第二标准报文;

第二报文比较模块,用于将所述第二标准报文与所述第一认证报文进行比较,以对所述第一认证报文进行认证;

第二报文生成模块,用于若所述第一认证报文与所述第二标准报文相匹配,根据车辆标识、第三随机数、所述指令标识、第四随机数,加密生成第二认证报文,并将所述第二认证报文与所述指令标识相关联,其中,所述第三随机数、所述第四随机数分别由所述指令标识对应的控制指令触发生成;

第二报文发送模块,用于向所述第一设备发送所述第二认证报文。

可选地,所述第二报文生成模块,包括:

第三加密子模块,用于根据第三预设加密算法,对所述车辆标识和所述第三随机数进行加密,获得第三加密数据;

第四加密子模块,用于根据第四预设加密算法,对所述指令标识和所述第四随机数进行加密,获得第四加密数据;

第二报文生成子模块,用于将所述第三加密数据、所述第四加密数据和所述指令标识对应的控制指令组合,获得所述第二认证报文。

可选地,所述第一认证报文包括与所述指令标识对应的控制指令、第一加密数据和第二加密数据,以及,与所述指令标识对应的第二标准报文包括与所述指令标识对应的控制指令、第三验证数据和第四验证数据;

所述装置还包括:

第二匹配判定模块,用于若所述第一认证报文中的第一加密数据与所述第二标准报文中的第三验证数据相匹配,并且,所述第一认证报文中的第二加密数据与所述第二标准报文中的第四验证数据相匹配,确定所述第一认证报文与所述第二标准报文相匹配。

可选地,所述装置还包括:

指令执行模块,用于若接收到所述第一设备发送的用于指示通信认证成功的确认信息,执行所述指令标识对应的控制指令。

根据本公开的第五方面,提供一种车辆,包括:

具有通信功能的第一设备,用于执行本公开第一方面所述方法的步骤;

具有通信功能的第二设备,用于执行本公开第二方面所述方法的步骤。

通过上述技术方案,若具有通信功能的第一设备接收到控制指令,则根据车辆标识、第一随机数、控制指令对应的指令标识和第二随机数,按照预设加密算法进行加密,生成第一认证报文,并将第一认证报文与指令标识相关联。这样,对车辆标识和指令标识进行加密计算,生成用于加密认证的第一认证报文,可以提升加密认证的安全性。向第二设备发送第一认证报文,第二设备对第一认证报文进行认证。若接收到第二设备发送的第二认证报文,即第一次认证成功的情况下,开始进行第二次认证,将与控制指令对应的第一标准报文与第二认证报文进行比较,以对第二认证报文进行认证。若第二认证报文与第一标准报文相匹配,则确定通信认证成功。这样,通信双方各自通过一次信息发送和一次信息接收就可以实现两次加密认证,相比于两问两答的问答式加密认证,在提升通信安全性的基础上,既能提升通信效率,又能够减轻总线负载,减少资源占用。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是本公开提供的通信认证方法在应用时的一种场景示意图;

图2是根据本公开的一种实施方式提供的通信认证方法的流程图;

图3a是本公开提供的通信认证方法中,第一认证报文的一种示例性的示意图;

图3b是本公开提供的通信认证方法中,第一标准报文的一种示例性的示意图;

图4是根据本公开的一种实施方式提供的通信认证方法的流程图;

图5是根据本公开提供的通信认证方法在实施时的一种示例性的信令交互图;

图6是根据本公开的一种实施方式提供的通信认证装置的框图;

图7是根据本公开的一种实施方式提供的通信认证装置的框图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

为了使后文中对于本公开提供的方法的描述更加清楚明确,在描述本公开提供的通信认证方法之前,首先对该方法的应用场景进行简要说明。在本公开的应用场景中,涉及到两个设备之间的通信认证,本公开方案的目的是保证这两个设备之间的通信安全,后文中将以第一设备和第二设备代表这两个设备,其中,第一设备可以接收其他设备发送的信息(例如,控制指令),进而向第二设备发起通信请求。如图1所示,为本公开提供的通信认证方法在应用时的一种场景示意图。其中,第一设备11可以接收外部设备10发送的信息,第一设备11在接收到外部设备10发送的信息后,若该信息用于请求向第二设备12的通信,第一设备11向第二设备12请求通信,请求成功(即,认证成功)后实现通信。在这个过程中,利用本公开提供的通信认证方法对通信双方进行认证,以保证通信的安全。其中,第一设备和第二设备可以是任何两个需要互相通信的电子设备。以车辆为例,若本公开的方案应用在车辆中,则第一设备(或第二设备)可以例如为车辆网关、车载t-box、vcu(vehiclecontrolunit,整车控制器)、bcu(brakecontrolunit,制动控制器)、mcu(motorcontrolunit,电机控制器)、ecu(electroniccontrolunit,电子控制器)、bcm(bodycontrolmodule,车身控制器)等。并且,第一设备和第二设备并不局限于上述对象,任何需要互相通信的两个设备均可以作为第一设备和第二设备。例如,第一设备为车辆网关、且第二设备为整车控制器。举例来说,在图1中,外部设备10可以为用户终端(例如,手机),第一设备11可以为t-box,若用户通过手机(外部设备10)发出用于指示“打开车门”的指令a,t-box(第一设备11)接收到指令a后,需要将该指令发送至整车控制器,也就是需要与整车控制器通信,所以,在这一情景中,第二设备12就是整车控制器,第一设备11需要与第二设备12互相认证,双方认证成功后第二设备12才会开始对指令a进行处理,例如,执行指令a,控制车门开启。在图1中,箭头指向可以代表信息流向。其中,对于通信双方的认证为本公开的核心内容,因此,接下来将对双方认证的过程进行详细说明。

图2是根据本公开的一种实施方式提供的通信认证方法的流程图。该方法可以应用于具有通信功能的第一设备,例如车辆网关、车载t-box、vcu、bcu、mcu、ecu、bcm等。如图2所示,该方法可以包括以下步骤。

在步骤21中,若接收到控制指令,根据车辆标识、第一随机数、控制指令对应的指令标识、第二随机数,加密生成第一认证报文,并将第一认证报文与指令标识相关联。

其中,控制指令用于触发第一设备与第二设备之间的通信。例如,若第一设备为网关,控制指令用于控制车辆电机,则第一设备接收到该控制指令后,会请求与电机控制器进行通信,此时第二设备就是电机控制器,也就是说,用于控制车辆电机的控制指令在被发送至网关时触发了网关与电机控制器之间的通信。

车辆标识是用于代表车辆的唯一的标识,不同的车辆对应不同的车辆标识,因此可以唯一地代表车辆。示例地,车辆标识可以为车辆的pin码,pin码是在车辆生产期间厂家分配给每个车辆的唯一号码,可作为车辆的标识。指令标识与控制指令对应,每一种控制指令对应一个指令标识,可以唯一地代表控制指令,示例地,指令标识可以为指令id。其中,指令标识与控制指令之间的对应关系、指令标识均可以是预先规定的。示例地,若共有五种控制指令(指令1~指令5),依次对应于5个指令标识(id1~id5),则若接收到的控制指令为指令3,那么可知指令标识为id3。第一设备可以按照预设加密算法加密生成第一认证报文,其中,预设加密算法可以是任何一种加密算法(对称加密算法、非对称加密算法、hash算法),示例地,预设加密算法可以为aes加密算法,如128位aes加密算法。第一随机数、第二随机数分别是由控制指令触发生成的,用以辅助预设加密算法进行加密。示例地,第一随机数、第二随机数可以是控制指令触发aes发生器产生的随机数。其中,第一随机数、第二随机数这两个随机数的产生是由控制指令分别触发两次而实现的,也就是说,第一随机数、第二随机数的产生过程互不影响。另外,获得第一随机数和第二随机数的先后顺序不限,即,可以先获得第一随机数再获得第二随机数,也可以先获得第二随机数再获得第一随机数,本公开对此不限定。

在一种可能的实施方式中,步骤21中,根据车辆标识、第一随机数、控制指令对应的指令标识、第二随机数,加密生成第一认证报文,可以包括以下步骤:

根据第一预设加密算法,对车辆标识和第一随机数进行加密,获得第一加密数据;

根据第二预设加密算法,对指令标识和第二随机数进行加密,获得第二加密数据;

将第一加密数据、第二加密数据和控制指令组合,获得第一认证报文。

在得到车辆标识和第一随机数后,按照第一预设加密算法对二者进行加密,得到第一加密数据,示例地,第一加密数据可以为4字节数据。在得到指令标识和第二随机数后,按照第二预设加密算法对二者进行加密,得到第二加密数据,示例地,第二加密数据可以为2字节数据。其中,第一预设加密算法和第二预设加密算法可以相同,也可以不同,本公开对此不进行限定。并且,若第一预设加密算法和第二预设加密算法采用不同的加密算法,相较于第一预设加密算法与第二预设加密算法相同的情况,安全性有明显提高。

在得到第一加密数据和第二加密数据后,将二者以及控制指令进行组合,得到第一认证报文。在这里,第一认证报文是以can报文的形式存储的,共8个字节,依次包含占2个字节的控制指令、占6个字节的第一加密数据和占2个字节的第二加密数据。图3a示出了一种可能的第一认证报文,其中,每个方框代表一个字节,cmd1和cmd2为控制指令,aes1~aes4为第一加密数据,aes5和aes6为第二加密数据。

在得到第一认证报文后,将第一认证报文与指令标识相关联,以便后续对加密的数据进行认证。

在步骤22中,向第二设备发送第一认证报文。

向第二设备发送第一认证报文,可以使第二设备对第一认证报文进行认证。示例地,第二设备可以获得用于对第一认证报文进行认证的报文,从而可以对第一认证报文进行认证,以确定第一认证报文是否合法,以此进行第一次认证。在第一认证报文通过认证的情况下,第二设备则可以生成第二认证报文,并返回第一设备,以使第一设备进行第二次认证。其中,第二认证报文与第一认证报文的结构相同,第二认证报文是第二设备基于所述车辆标识、第三随机数、所述指令标识、第四随机数加密而生成的,第三随机数、所述第四随机数分别由所述控制指令触发生成,具体的生成方式将在后文中说明。示例地,第二认证报文可以包括控制指令、第三加密数据和第四加密数据。第二设备对第一认证报文进行认证以及生成第二认证报文的过程也将在后文中针对第二设备的说明中进行详细描述,此处不赘述。

而在第一认证报文未通过认证的情况下,第二设备不会生成第二认证报文。

在步骤23中,若接收到第二设备发送的第二认证报文,将与控制指令对应的第一标准报文与第二认证报文进行比较。

在这里首先对标准报文和认证报文进行解释说明。标准报文和认证报文的结构相同,均是由指令和加密所得数据构成,其中加密所得数据分为两部分,以上文中提到第一认证报文为例就是第一加密数据和第二加密数据。相应地,标准报文可以包括控制指令、验证数据和另一验证数据,其中验证数据和另一验证数据均为加密后的数据,以第一标准报文为例即为第一验证数据和第二验证数据。控制指令具有对应的指令标识,标准报文关联控制指令(标准报文中所包括的控制指令)对应的指令标识,也就是说,每种控制指令(每个指令标识)对应一个标准报文。其中,标准报文是以can报文的形式存储的,共8个字节,依次包含占2个字节的控制指令、占6个字节的第一验证数据和占2个字节的第二验证数据。图3b示出了一种可能的第一标准报文,其中,每个方框代表一个字节,data1和data2为控制指令,data3~data6为第一验证数据,data7和data8为第二验证数据。

标准报文和认证报文的生成方式也是相似的,如上文所述,认证报文是将控制指令、第一加密数据和第二加密数据组合,其中,第一加密数据根据第一预设加密算法对车辆标识和第一随机数加密得到,第二加密数据根据第二预设加密算法对指令标识和第二随机数加密得到。下面则对标准报文的生成方式进行说明。对于某一控制指令,根据车辆标识和由该控制指令触发的一个随机数,加密生成一验证数据,以及,根据该控制指令对应的指令标识和由该控制指令触发的另一个随机数,加密生成另一验证数据。一般来说,一个设备的标准报文是用于对来自另一个设备的认证报文进行认证的,二者对应相同的控制指令,在根据控制指令生成认证报文和标准报文的过程中,控制指令在两个设备中两次触发的随机数均是一致的,而车辆标识是车辆的固有参数,指令标识也是预先规定的,因此,车辆标识和指令标识相同,两次产生的随机数也相同,采用相同的加密算法后,报文中加密后的数据应是一致的,即来自另一设备的认证报文中的各部分加密数据应与本设备标准报文中的各部分验证数据对应相同。通过此特点,可以实现两个设备之间的认证。

在一种可能的实施例中,标准报文可以是预先存储的。也就是说,预先针对每一种控制指令,参照上文中的标准报文生成方式,生成标准报文,生成的标准报文与控制指令对应的指令标识相关联,存储到车辆相应的存储位置。

在另一种可能的实施例中,标准报文也可以是在获得控制指令后,针对该控制指令,参照上文中标准报文的生成方式而实时生成的,生成后与该控制指令对应的指令标识相关联。

若接收到第二设备发送的第二认证报文,则将与控制指令对应的第一标准报文与第二认证报文进行比较,以实现对第二认证报文的认证。

在一种可能的实施例中,若标准报文是预先存储的,则根据接收到的控制指令所对应的指令标识,可以得到与该指令标识对应的标准报文,即第一标准报文。

在另一种可能的实施例中,若标准报文是实时生成的,则根据接收到的控制指令,参照上文中标准报文的生成方式生成报文,生成的报文即为第一标准报文,且该第一标准报文是与控制指令对应的指令标识相关联的。

在确定与控制指令对应的第一标准报文后,则将该第一标准报文与接收到的第二设备发送的第二认证报文进行比较。

在步骤24中,若第二认证报文与第一标准报文相匹配,确定通信认证成功。

在一种可能的实施方式中,判断第二认证报文是否与第一标准报文相匹配,可以通过如下步骤实现:

若第二认证报文与第一标准报文相同,确定第二认证报文与第一标准报文相匹配;

若第二认证报文与第一标准报文不同,确定第二认证报文与第一标准报文不匹配。

由上文可知,第二认证报文和第一标准报文均为8字节的can报文,并且,如果双方合法,二者应当是相同的。因此,可以直接将二者进行比较,通过二者之间的异同确定第二认证报文与第一标准报文是否相匹配。其中,若第二认证报文与第一标准报文相同,则可以确定第二认证报文与第一标准报文相匹配;若第二认证报文与第一标准报文不同,则可以确定第二认证报文与第一标准报文不匹配。

在另一种可能的实施方式中,本公开提供的方法还可以包括以下步骤:

若第二认证报文中的第三加密数据与第一标准报文中的第一验证数据相匹配,并且,第二认证报文中的第四加密数据与第一标准报文中的第二验证数据相匹配,确定第二认证报文与第一标准报文相匹配。

由上文可知,标准报文和认证报文中除去控制指令的部分是认证的关键,一旦认证报文中的各个加密数据部分依次等同于标准报文中的各个验证数据部分,则控制指令自然是相同的,无需再进行比较。因此,在判断第二认证报文与第一标准报文是否相匹配时,可以不考虑保证中的控制指令,而只对加密后的数据进行比较。

如果第二认证报文中的第三加密数据与第一标准报文中的第一验证数据相匹配,并且,第二认证报文中的第四加密数据与第一标准报文中的第二验证数据相匹配,则可以确定第二认证报文与第一标准报文相匹配。示例地,若第二认证报文中的第三加密数据与第一标准报文中的第一验证数据相同,可以认为第二认证报文中的第三加密数据与第一标准报文中的第一验证数据相匹配,以及,若第二认证报文中的第四加密数据与第一标准报文中的第二验证数据相同,可以认为第二认证报文中的第四加密数据与第一标准报文中的第二验证数据相匹配。

采用上述方式,仅通过加密后的数据对报文进行认证,可以快速得到认证结果,节省计算量,且能够提升效率。

若第二认证报文与第一标准报文相匹配,则可以确定通信认证成功。

另外,若第二认证报文与第一标准报文不匹配,可以确定通信认证失败。其中,确定第二认证报文与第一标准报文不匹配的方式可以参考上文中所述的确定二者相匹配的方式。若不满足上文中给出的匹配的条件,则可以认为第二认证报文与第一标准报文不匹配,从而确定通信认证失败。例如,如果第二认证报文中的第三加密数据与第一标准报文中的第一验证数据不同,则可以确定第二认证报文与第一标准报文不匹配。

通过上述方案,若具有通信功能的第一设备接收到控制指令,则根据车辆标识、第一随机数、控制指令对应的指令标识和第二随机数,按照预设加密算法进行加密,生成第一认证报文,并将第一认证报文与指令标识相关联。这样,对车辆标识和指令标识进行加密计算,生成用于加密认证的第一认证报文,可以提升加密认证的安全性。向第二设备发送第一认证报文,第二设备对第一认证报文进行认证。若接收到第二设备发送的第二认证报文,即第一次认证成功的情况下,开始进行第二次认证,将与控制指令对应的第一标准报文与第二认证报文进行比较,以对第二认证报文进行认证。若第二认证报文与第一标准报文相匹配,则确定通信认证成功。这样,通信双方各自通过一次信息发送和一次信息接收就可以实现两次加密认证,相比于两问两答的问答式加密认证,在提升通信安全性的基础上,既能提升通信效率,又能够减轻总线负载,减少资源占用。

在一种可能的实施方式中,本公开提供的方法还可以包括以下步骤:

在向第二设备发送第一认证报文时开始计时,得到第一计时时长;

若第一计时时长达到第一预设时长、且未接收到第二认证报文,确定通信认证失败。

在第一设备向第二设备发送第一认证报文时开始计时,得到第一计时时长,第一计时时长是随着时间流逝而变化的。第一预设时长可以人为确定,例如,可以参考一般情况下第一设备与第二设备实现一次通信闭环(即,第一设备向第二设备发送消息开始、到接收到第二设备反馈的消息为止所经过的时长)的时长而确定。因此,若第一计时时长达到第一预设时长、且仍未接收到第二认证报文,可以说明第一认证报文在第二设备的认证未通过,因此可以确定通信认证失败。

采用上述方式,在等待时间达到第一预设时长的情况下,确定通信认证失败,防止出现无限等待的情况。

在一种可能的实施方式中,本公开提供的方法还可以包括以下步骤:

若确定通信认证成功,向第二设备发送用于指示通信认证成功的确认信息。

若确定通信认证成功,则第一设备可以向第二设备发送确认信息,以使第二设备知晓双方已通过加密认证,安全性无问题,以便第二设备针对控制指令进行相应处理。

另外,在确定通信认证失败的情况下,第一设备可以不再向第二设备发送任何信息,第二设备在未收到反馈的情况下,不会对控制指令进行任何处理,由此可防止不合法的指令影响通信,保证通信安全。

在一种可能的实施例中,在确定通信认证失败的情况下,第一设备还可以向与车辆绑定的用户终端反馈用于指示通信认证失败的信息,以使用户知晓通信失败。示例地,若控制指令由用户经用户终端发出,第一设备通过用户终端向用户反馈用于指示通信认证失败的信息后,可以便于用户继续请求通信。再例如,若控制指令由非用户终端的未知方发出,第一设备通过用户终端向用户反馈用于指示通信认证失败的信息后,可以便于用户采取相关措施,防止信息被未知方窃取、篡改等。

图4是根据本公开的一种实施方式提供的通信认证方法的流程图。该方法可以应用于具有通信功能的第二设备,例如车辆网关、车载t-box、vcu、bcu、mcu、ecu、bcm等。如图4所示,该方法可以包括以下步骤。

在步骤41中,若接收到来自第一设备的第一认证报文,根据第一认证报文所对应的指令标识,确定与指令标识对应的第二标准报文。

由上文所述,第一认证报文包括控制指令、第一加密数据和第二加密数据,其中,控制指令为与指令标识对应的控制指令,并且,第一认证报文关联有指令标识。与指令标识对应的第二标准报文可以包括与指令标识对应的控制指令、第三验证数据和第四验证数据。其中,第二标准报文与第一标准报文的结构和生成方式均相同,具体的生成方式可参照前文,下面也将给出简单描述。

一种情况中,标准报文可以是预先存储的。也就是说,预先针对每一种控制指令,参照上文中的标准报文生成方式,生成标准报文,生成的标准报文与控制指令对应的指令标识相关联,存储到车辆相应的存储位置。

另一种情况中,标准报文可以是在获得控制指令后,针对该控制指令,参照上文中标准报文的生成方式而实时生成的,生成后与该控制指令对应的指令标识相关联。

在一种可能的实施例中,若标准报文是预先存储的,则根据接收到的第一认证报文所对应的指令标识,可以得到与该指令标识对应的标准报文,即第二标准报文。

在另一种可能的实施例中,若标准报文是实时生成的,则根据接收到的第一认证报文,参照上文中标准报文的生成方式生成报文,生成的报文即为第二标准报文,且该第二标准报文是与第一认证报文对应的指令标识相关联的。

在步骤42中,将第二标准报文与第一认证报文进行比较。

将第二标准报文与第一认证报文进行比较,以对第一认证报文进行认证,可认为这是加密认证中的第一次认证。其中,比较方式与第一设备中比较第一标准报文和第二认证报文的方式相似,下面将进行简单描述。

在一种可能的实施方式中,判断第一认证报文是否与第二标准报文相匹配,可以通过如下步骤实现:

若第一认证报文与第二标准报文相同,确定第一认证报文与第二标准报文相匹配;

若第一认证报文与第二标准报文不同,确定第一认证报文与第二标准报文不匹配。

由上文可知,第一认证报文和第二标准报文均为8字节的can报文,并且,如果双方合法,二者应当是相同的。因此,可以直接将二者进行比较,通过二者之间的异同确定第一认证报文与第二标准报文是否相匹配。其中,若第一认证报文与第二标准报文相同,则可以确定第一认证报文与第二标准报文相匹配;若第一认证报文与第二标准报文不同,则可以确定第一认证报文与第二标准报文不匹配。

在另一种可能的实施方式中,本公开提供的方法还可以包括以下步骤:

若第一认证报文中的第一加密数据与第二标准报文中的第三验证数据相匹配,并且,第一认证报文中的第二加密数据与第二标准报文中的第四验证数据相匹配,确定第一认证报文与第二标准报文相匹配。

由上文可知,标准报文和认证报文中除去控制指令的部分是认证的关键,一旦认证报文中的各个加密数据部分依次等同于标准报文中的各个验证数据部分,则控制指令自然是相同的,无需再进行比较。因此,在判断第一认证报文与第二标准报文是否相匹配时,可以不考虑保证中的控制指令,而只对加密后的数据进行比较。

如果第一认证报文中的第一加密数据与第二标准报文中的第三验证数据相匹配,并且,第一认证报文中的第二加密数据与第二标准报文中的第四验证数据相匹配,则可以确定第一认证报文与第二标准报文相匹配。示例地,若第一认证报文中的第一加密数据与第二标准报文中的第三验证数据相同,可以认为第一认证报文中的第一加密数据与第二标准报文中的第三验证数据相匹配,以及,若第一认证报文中的第二加密数据与第二标准报文中的第四验证数据相同,可以认为第一认证报文中的第二加密数据与第二标准报文中的第四验证数据相匹配。

采用上述方式,仅通过加密后的数据对报文进行认证,可以快速得到认证结果,节省计算量,且能够提升效率。

若第一认证报文与第二标准报文不匹配,可以确定对第一认证报文的认证失败,即第一次认证失败。其中,确定第一认证报文与第二标准报文不匹配的方式可以参考上文中所述的确定二者相匹配的方式。若不满足上文中给出的匹配的条件,则可以认为第一认证报文与第二标准报文不匹配,从而确定通信认证失败。例如,如果第一认证报文中的第一加密数据与第二标准报文中的第三验证数据不同,则可以确定第一认证报文与第二标准报文不匹配。若确定对第一认证报文的认证失败,则第二设备可以不再向第一设备发送任何信息。

若第一认证报文与第二标准报文相匹配,可以确定第一次认证成功,可以开始进行下一次的认证,即可以执行步骤43。

在步骤43中,若第一认证报文与第二标准报文相同,根据车辆标识、第三随机数、指令标识、第四随机数,加密生成第二认证报文,并将第二认证报文与指令标识相关联。

第三随机数、第四随机数的生成方式可参考前文的描述,第三随机数、第四随机数分别由指令标识对应的控制指令触发生成,用以辅助预设加密算法进行加密。示例地,第三随机数、第四随机数可以是控制指令触发aes发生器产生的随机数。其中,第三随机数、第四随机数这两个随机数的产生是由控制指令分别触发两次而实现的,也就是说,第三随机数、第四随机数的产生过程互不影响。另外,获得第三随机数、第四随机数的先后顺序不限,即,可以先获得第三随机数再获得第四随机数,也可以先获得第四随机数再获得第三随机数,本公开对此不限定。

在一种可能的实施方式中,步骤43中,根据车辆标识、第三随机数、指令标识、第四随机数,加密生成第二认证报文,可以包括以下步骤:

根据第三预设加密算法,对车辆标识和第三随机数进行加密,获得第三加密数据;

根据第四预设加密算法,对指令标识和第四随机数进行加密,获得第四加密数据;

将第三加密数据、第四加密数据和指令标识对应的控制指令组合,获得第二认证报文。

在得到车辆标识和第三随机数后,按照预设加密算法对二者进行加密,得到第三加密数据,示例地,第三加密数据可以为4字节数据。在得到指令标识和第四随机数后,按照预设加密算法对二者进行加密,得到第四加密数据,示例地,第四加密数据可以为2字节数据。其中,第三预设加密算法和第四预设加密算法可以相同,也可以不同,本公开对此不进行限定。并且,若第三预设加密算法和第四预设加密算法采用不同的加密算法,相较于第三预设加密算法与第四预设加密算法相同的情况,安全性有明显提高。另外,若第一预设加密算法、第二预设加密算法、第三预设加密算法、第四预设加密算法采用不同的加密算法,通信认证的安全性将有显著提升。

在得到第三加密数据和第四加密数据后,将二者以及控制进行组合,得到第二认证报文。在这里,第二认证报文是以can报文的形式存储的,共8个字节,依次包含占2个字节的控制指令、占6个字节的第三加密数据和占2个字节的第四加密数据。可参考图3a示出的结构。

在得到第二认证报文后,将第二认证报文与指令标识相关联,以便后续对加密的数据进行认证。

在步骤44中,向第一设备发送第二认证报文。

向第一设备发送第二认证报文,可以使第一设备对第二认证报文进行认证。具体的认证方式在上文中已有描述,此处不赘述。

在一种可能的实施方式中,本公开提供的方法可以包括以下步骤:

若接收到第一设备发送的用于指示通信认证成功的确认信息,执行指令标识对应的控制指令。

若接收到第一设备发送的用于指示通信认证成功的确认信息,说明两次加密认证均已通过,该控制指令不具有威胁,因此,可以执行指令标识所对应的控制指令,通信成功。

采用上述方式,在经过两次认证表明通信安全的前提下,第二设备才会执行来自其他设备的指令,可保证通信时的安全。

图5是根据本公开提供的通信认证方法在实施时的一种示例性的信令交互图。下面将会借助图5中的信令交互过程,对本公开提供的方法在应用时的流程进行说明,主要涉及外部指令安全,即两次认证均通过的场景。其中,由于在描述时涉及第一设备及第二设备双方,因此对上文中涉及到的各个步骤重新进行编号,以使说明更加清楚。

在步骤501中,若第一设备接收到控制指令,根据车辆标识、第一随机数、控制指令对应的指令标识、第二随机数,加密生成第一认证报文,并将第一认证报文与指令标识相关联。

在步骤502中,第一设备向第二设备发送第一认证报文。这样,便于第二设备对第一认证报文进行认证,即第一次加密认证。

在步骤503中,第二设备接收到来自第一设备的第一认证报文后,根据第一认证报文所对应的指令标识,确定与指令标识对应的第二标准报文。

在步骤504中,第二设备将第二标准报文与第一认证报文进行比较。

在步骤505中,若第一认证报文与第二标准报文相同,根据车辆标识、第三随机数、指令标识、第四随机数,加密生成第二认证报文,并将第二认证报文与指令标识相关联。

在步骤506中,第二设备向第一设备发送第二认证报文。这样,便于第一设备对第二认证报文进行认证,即第二次加密认证。

在步骤507中,第一设备接收到第二认证报文后,将与控制指令对应的第一标准报文与第二认证报文进行比较。

在步骤508中,若第二认证报文与第一标准报文相匹配,确定通信认证成功。

在步骤509中,若确定通信认证成功,第一设备向第二设备发送用于指示通信认证成功的确认信息。

在步骤510中,第二设备接收到用于通信认证成功的确认信息后,执行指令标识对应的控制指令。

通过上述方案,第一设备接收到外部请求后,请求与第二设备的通信,利用车辆标识以及指令标识生成用于进行加密认证的报文,首先由第二设备进行第一次认证,在认证成功后由第一设备进行第二次认证,由此,通信双方各自通过一次信息发送和一次信息接收就可以实现两次加密认证,相比于两问两答的问答式加密认证,在提升通信安全性的基础上,既能提升通信效率,又能够减轻总线负载,减少资源占用。

图6是根据本公开的一种实施方式提供的通信认证装置的框图。该通信认证装置可以应用于具有通信功能的第一设备。如图6所示,装置60可以包括:

第一报文生成模块61,用于若接收到控制指令,根据车辆标识、第一随机数、所述控制指令对应的指令标识、第二随机数,加密生成第一认证报文,并将所述第一认证报文与所述指令标识相关联,其中,所述控制指令用于触发所述第一设备与第二设备之间的通信,所述第一随机数、所述第二随机数分别由所述控制指令触发生成;

第一报文发送模块62,用于向所述第二设备发送所述第一认证报文,以使所述第二设备对所述第一认证报文进行认证;

第一报文比较模块63,用于若接收到所述第二设备发送的第二认证报文,将与所述控制指令对应的第一标准报文与所述第二认证报文进行比较,以对所述第二认证报文进行认证,其中,所述第二认证报文是所述第二设备基于所述车辆标识、第三随机数、所述指令标识、第四随机数加密而生成的,所述第三随机数、所述第四随机数分别由所述控制指令触发生成;

第一确定模块64,用于若所述第二认证报文与所述第一标准报文相匹配,确定通信认证成功。

可选地,所述第一报文生成模块61,包括:

第一加密子模块,用于根据第一预设加密算法,对所述车辆标识和所述第一随机数进行加密,获得第一加密数据;

第二加密子模块,用于根据第二预设加密算法,对所述指令标识和所述第二随机数进行加密,获得第二加密数据;

第一报文生成子模块,用于将所述第一加密数据、所述第二加密数据和所述控制指令组合,获得所述第一认证报文。

可选地,所述第二认证报文包括所述控制指令、第三加密数据和第四加密数据,以及,与所述控制指令对应的第一标准报文包括所述控制指令、第一验证数据和第二验证数据;

所述装置60还包括:

第一匹配判定模块,用于若所述第二认证报文中的第三加密数据与所述第一标准报文中的第一验证数据相匹配,并且,所述第二认证报文中的第四加密数据与所述第一标准报文中的第二验证数据相匹配,确定所述第二认证报文与所述第一标准报文相匹配。

可选地,所述装置60还包括:

计时模块,用于在向所述第二设备发送所述第一认证报文时开始计时,得到第一计时时长;

第二确定模块,用于若所述第一计时时长达到第一预设时长、且未接收到所述第二认证报文,确定通信认证失败;

或者,所述装置60还包括:

第三确定该模块,用于若所述第二认证报文与所述第一标准报文不匹配,确定通信认证失败。

可选地,所述装置60还包括:

信息发送模块,用于若确定通信认证成功,向所述第二设备发送用于指示通信认证成功的确认信息。

图7是根据本公开的一种实施方式提供的通信认证装置的框图。该通信认证装置可以应用于具有通信功能的第二设备。如图7所示,装置70可以包括:

报文确定模块71,用于若接收到来自第一设备的第一认证报文,根据所述第一认证报文所对应的指令标识,确定与所述指令标识对应的第二标准报文;

第二报文比较模块72,用于将所述第二标准报文与所述第一认证报文进行比较,以对所述第一认证报文进行认证;

第二报文生成模块73,用于若所述第一认证报文与所述第二标准报文相匹配,根据车辆标识、第三随机数、所述指令标识、第四随机数,加密生成第二认证报文,并将所述第二认证报文与所述指令标识相关联,其中,所述第三随机数、所述第四随机数分别由所述指令标识对应的控制指令触发生成;

第二报文发送模块74,用于向所述第一设备发送所述第二认证报文。

可选地,所述第二报文生成模块73,包括:

第三加密子模块,用于根据第三预设加密算法,对所述车辆标识和所述第三随机数进行加密,获得第三加密数据;

第四加密子模块,用于根据第四预设加密算法,对所述指令标识和所述第四随机数进行加密,获得第四加密数据;

第二报文生成子模块,用于将所述第三加密数据、所述第四加密数据和所述指令标识对应的控制指令组合,获得所述第二认证报文。

可选地,所述第一认证报文包括与所述指令标识对应的控制指令、第一加密数据和第二加密数据,以及,与所述指令标识对应的第二标准报文包括与所述指令标识对应的控制指令、第三验证数据和第四验证数据;

所述装置70还包括:

第二匹配判定模块,用于若所述第一认证报文中的第一加密数据与所述第二标准报文中的第三验证数据相匹配,并且,所述第一认证报文中的第二加密数据与所述第二标准报文中的第四验证数据相匹配,确定所述第一认证报文与所述第二标准报文相匹配。

可选地,所述装置70还包括:

指令执行模块,用于若接收到所述第一设备发送的用于指示通信认证成功的确认信息,执行所述指令标识对应的控制指令。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本公开还提供一种车辆,包括:

具有通信功能的第一设备,用于执行本公开任意实施例所提供的用于第一设备的通信认证方法的步骤;

具有通信功能的第二设备,用于执行本公开任意实施例所提供的用于第二设备的通信认证方法的步骤。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1