掌桥专利:专业的专利平台
掌桥专利
首页

一种设备认证方法、及车辆

文献发布时间:2024-04-18 19:58:30


一种设备认证方法、及车辆

技术领域

本申请涉及认证技术领域,具体而言,涉及一种设备认证方法、及车辆。

背景技术

众所周知,如果两个需要进行数据通信的设备之间未进行安全认证,容易造成设备的私密数据泄漏,设备被远程操控,恶意软件感染等,从而影响设备的安全运行。现有技术中,比如车辆与其他设备之间进行认证,通常是采用车辆的用户名和和密码的方式进行与设备之间的认证,认证通过之后直接进行明文通信,但这种认证方式容易被黑客攻击,导致设备之间进行数据通信的安全性不高,基于此,如何提高设备之间进行数据通信的安全性是亟待解决的技术问题。

发明内容

本申请的实施例提供了一种设备认证方法、及车辆,基于本申请提供的技术方案能提高设备之间进行数据通信的安全性。

本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。

根据本申请实施例的第一方面,提供了一种设备认证方法,所述方法执行于第一设备,所述方法包括:响应于对第二设备的认证请求,通过所述第二设备的公钥对第一拼接字符串进行加密,得到第一加密数据,并将所述第一加密数据发送至所述第二设备,所述第一拼接字符串包括所述第一设备生成的第一随机字符串;接收由所述第二设备发送的第二加密数据,所述第二加密数据由所述第二设备通过所述第一设备的公钥对第二拼接字符串进行加密得到,所述第二拼接字符串包括第二随机字符串;通过所述第一设备的私钥对所述第二加密数据进行解密,得到所述第二随机字符串;如果所述第二随机字符串与所述第一随机字符串相同,则通过对所述第二设备的认证。

在本申请的一些实施例中,基于前述方案,所述方法还包括:如果所述第二随机字符串与所述第一随机字符串不相同,则拒绝对所述第二设备的认证。

在本申请的一些实施例中,基于前述方案,所述通过所述第一设备的私钥对所述第二加密数据进行解密,得到所述第二随机字符串,包括:通过所述第一设备的私钥对所述第二加密数据进行解密,得到所述第二拼接字符串;从所述第二拼接字符串中获取所述第二随机字符串。

在本申请的一些实施例中,基于前述方案,所述第一拼接字符串还包括所述第一设备生成的密钥,所述第二拼接字符串还包括所述第二设备生成的第三随机字符串,在通过对所述第二设备的认证之后,所述方法还包括:获取通过对所述第二加密数据解密得到的第三随机字符串;通过所述密钥对所述第三随机字符串进行加密,得到第三加密数据;将所述第三加密数据发送至所述第二设备,以使得所述第二设备基于所述第三加密数据对所述第一设备进行认证。

在本申请的一些实施例中,基于前述方案,所述方法还包括:如果所述第二设备通过对所述第一设备的认证,则与所述第二设备进行数据通信;在数据通信过程中,通过所述密钥对待发送至所述第二设备的数据进行加密,或者通过所述密钥对接收的由所述第二设备发送的数据进行解密。

根据本申请实施例的第二方面,提供了一种设备认证方法,所述方法执行于第二设备,所述方法包括:接收由第一设备发送的第一加密数据,所述第一加密数据由所述第一设备通过所述第二设备的公钥对第一拼接字符串进行加密得到,所述第一拼接字符串包括所述第一设备生成的第一随机字符串;通过所述第二设备的私钥对所述第一加密数据进行解密,得到第二随机字符串;基于所述第二随机字符串,生成第二拼接字符串,并通过所述第一设备的公钥对所述第二拼接字符串进行加密,得到第二加密数据;将所述第二加密数据发送至所述第一设备,以使得所述第一设备基于所述第二加密数据对所述第二设备进行认证。

在本申请的一些实施例中,基于前述方案,所述通过所述第二设备的私钥对所述第一加密数据进行解密,得到第二随机字符串,包括:通过所述第二设备的私钥对所述第一加密数据进行解密,得到所述第一拼接字符串;从所述第一拼接字符串中获取所述第二随机字符串。

在本申请的一些实施例中,基于前述方案,所述第一拼接字符串还包括所述第一设备生成的密钥,所述第二拼接字符串还包括所述第二设备生成的第三随机字符串,在所述第一设备对所述第二设备认证成功之后,所述方法还包括:接收由所述第一设备发送的第三加密数据,所述第三加密数据由所述第一设备基于所述密钥对所述第三随机字符串进行加密得到;通过所述密钥对所述第三加密数据进行解密,得到第四随机字符串;如果所述第三随机字符串与所述第四随机字符串相同,则通过对所述第一设备的认证。

在本申请的一些实施例中,基于前述方案,所述方法还包括:如果所述第三随机字符串与所述第四随机字符串不相同,则拒绝对所述第一设备的认证。

根据本申请实施例的第三方面,提供了一种设备认证装置,所述装置包括:第一加密单元,用于响应于对第二设备的认证请求,通过所述第二设备的公钥对第一拼接字符串进行加密,得到第一加密数据,并将所述第一加密数据发送至所述第二设备,所述第一拼接字符串包括所述第一设备生成的第一随机字符串;第一接收单元,用于接收由所述第二设备发送的第二加密数据,所述第二加密数据由所述第二设备通过所述第一设备的公钥对第二拼接字符串进行加密得到,所述第二拼接字符串包括第二随机字符串;第一解密单元,用于通过所述第一设备的私钥对所述第二加密数据进行解密,得到所述第二随机字符串;认证单元,用于如果所述第二随机字符串与所述第一随机字符串相同,则通过对所述第二设备的认证。

根据本申请实施例的第四方面,提供了一种设备认证装置,所述装置包括:第二接收单元,用于接收由第一设备发送的第一加密数据,所述第一加密数据由所述第一设备通过所述第二设备的公钥对第一拼接字符串进行加密得到,所述第一拼接字符串包括所述第一设备生成的第一随机字符串;第二解密单元,用于通过所述第二设备的私钥对所述第一加密数据进行解密,得到第二随机字符串;第二加密单元,用于基于所述第二随机字符串,生成第二拼接字符串,并通过所述第一设备的公钥对所述第二拼接字符串进行加密,得到第二加密数据;发送单元,用于将所述第二加密数据发送至所述第一设备,以使得所述第一设备基于所述第二加密数据对所述第二设备进行认证。

根据本申请实施例的第五方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行以实现如上述第一方面任一项所述的方法所执行的操作。

根据本申请实施例的第六方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行以实现如上述第二方面任一项所述的方法所执行的操作。

根据本申请实施例的第七方面,提供了一种车辆,包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条程序代码,所述至少一条程序代码由所述一个或多个处理器加载并执行以实现如上述第一方面任一项所述的方法所执行的操作。

根据本申请实施例的第八方面,提供了一种车辆,包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条程序代码,所述至少一条程序代码由所述一个或多个处理器加载并执行以实现如上述第二方面任一项所述的方法所执行的操作。

本申请的技术方案,第一设备对第二设备进行认证的过程中,首先,响应于对第二设备的认证请求,通过所述第二设备的公钥对第一拼接字符串进行加密,得到第一加密数据,并将所述第一加密数据发送至所述第二设备,所述第一拼接字符串包括所述第一设备生成的第一随机字符串;其次,接收由所述第二设备发送的第二加密数据,所述第二加密数据由所述第二设备通过所述第一设备的公钥对第二拼接字符串进行加密得到,所述第二拼接字符串包括第二随机字符串;再次,通过所述第一设备的私钥对所述第二加密数据进行解密,得到所述第二随机字符串;最后,如果所述第二随机字符串与所述第一随机字符串相同,则通过对所述第二设备的认证。由此可见,基于本申请的技术方案,第一设备对第二设备进行认证,由于是基于非对称加密算法将认证的凭据进行加密处理,以及基于非对称加密算法对接收的数据进行解密,并且在认证过程中不涉及将第一设备的用户名发送至第二设备以作为认证凭据,因此,基于本申请的认证方式,在一定程度上能避免黑客攻击,进而提升认证的可靠性,提高设备之间进行数据通信的安全性。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1示出了根据本申请一个实施例的设备认证方法的流程示意图;

图2示出了根据本申请一个实施例的设备认证方法的流程示意图;

图3示出了根据本申请一个实施例的设备认证方法的整体流程示意图;

图4示出了根据本申请一个实施例的设备认证装置的框图;

图5示出了根据本申请一个实施例的设备认证装置的框图;

图6示出了适于用来实现本申请实施例的车辆的计算机系统的结构示意图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。

附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

需要注意的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的对象在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在图示或描述的那些以外的顺序实施。

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,本申请中提及的第一设备和第二设备的设备类型可以相同,也可以不相同,具体的,本申请在此不做限定。

还需要说明的是,本申请中的设备可以是车机,车辆中的车载T-BOX,车辆中的执行控制器等等,也可以是其他智能设备。具体的,本申请在此不做限定。

还需要说明的是,本申请的设备认证方法适用于需要进行数据通信的两个设备之间进行认证,在执行设备认证方法的过程中,会涉及不同的执行主体,下面将从不同执行主体的角度,对本申请实施例的技术方案细节进行详细阐述。

从第一设备的角度进行阐述:

本实施例提供了一种设备认证方法,其中,该方法执行于第一设备。

参见图1,示出了根据本申请一个实施例的设备认证方法的流程示意图。具体包括步骤S110至S140:

S110,响应于对第二设备的认证请求,通过所述第二设备的公钥对第一拼接字符串进行加密,得到第一加密数据,并将所述第一加密数据发送至所述第二设备,所述第一拼接字符串包括所述第一设备生成的第一随机字符串。

需要说明的是,所述第一设备可以是数据需求方,也可以是数据分享方,可以理解的是,如果第一设备为数据需求方,那么对应的第二设备为数据分享方;如果第一设备为数据分享方,那么对应的第二设备为数据需求方。

还需要说明的是,所述认证请求可以是由云端向第一设备发起,也可以由第二设备向第一设备发起,也可以由第一设备自身发起。示例性的,如果第一设备接收到第二设备发送的数据请求,则第一设备自身生成所述认证请求,以使得第一设备主动对第二设备进行认证;或者如果第一设备向第二设备发送数据请求,第二设备在接收到该数据请求之后向第一设备发送所述认证请求,以使得第一设备开始对第二设备进行认证。

在一些实施方式中,可以基于PKI生成两对RSA2048的公私钥,一对公私钥的公钥存储于第一设备,私钥存储于第二设备;另一对公私钥的公钥存储于第二设备,私钥存储于第一设备。该两对公私钥可以实现:在第一设备与第二设备进行认证的过程中,第一设备可以基于RSA2048算法和第二设备的公钥对待发送至第二设备的数据进行加密,或者基于RSA2048算法和自身的私钥对接收的由第二设备发送的数据进行解密;同理,第二设备可以基于RSA2048算法和第一设备的公钥对待发送至第一设备的数据进行加密,或者基于RSA2048算法和自身的私钥对接收的由第一设备发送的数据进行解密。

在一些实施方式中,第一设备可以基于随机数生成器生成所述第一随机字符串。所述第一随机字符串可以是设定字节的字符串,比如,可以是16字节的字符串。

在一些实施方式中,所述第一拼接字符串还包括所述第一设备生成的密钥。第一设备可以基于密码器生成设定字节的密钥,也可以基于相关软件生成设定字节的密钥,比如生成16字节的密钥。

在一些实施方式中,第一设备将自身生成的密钥和第一随机字符串进行拼接,以得到所述第一拼接字符串,从而再通过第二设备的公钥对第一拼接字符进行加密,得到第一加密数据。

继续参见图1,S120,接收由所述第二设备发送的第二加密数据,所述第二加密数据由所述第二设备通过所述第一设备的公钥对第二拼接字符串进行加密得到,所述第二拼接字符串包括第二随机字符串。

在一些实施方式中,第二设备接收到第一设备发送的第一加密数据,通过自身的私钥对第一加密数据进行解密,从而得到第一拼接字符串,再对第一拼接字符串进行拆分,即能得到第一设备生成的密钥和与第一随机字符串对应的第二随机字符串。

在一些实施方式中,第二设备可以生成对称加密初始化向量作为第三随机字符串,再将第三随机字符串和解密第一拼接字符串得到的第二随机字符串进行拼接,得到第二拼接字符串,再通过第一设备的公钥对第二拼接字符串进行加密,得到第二加密数据。

在一些实施方式,所述第三随机字符串的字节长度与第一随机字符串的字节长度相同,比如为16字节。

在一些实施方式中,第二设备生成的第三随机字符串和第一设备生成的密钥,可以实现,在第一设备与第二设备进行认证的过程中,第一设备可以基于AES128-CBC算法,所述密钥和所述第三随机字符串对待发送至第二设备的数据进行加密,或者基于AES128-CBC算法,所述密钥和所述第三随机字符串对接收的由第二设备发送的数据进行解密;同理,第二设备可以基于AES128-CBC算法,所述密钥和所述第三随机字符串对待发送至第一设备的数据进行加密,或者基于AES128-CBC算法,所述密钥和所述第三随机字符串对接收的由第一设备发送的数据进行解密。

继续参见图1,S130,通过所述第一设备的私钥对所述第二加密数据进行解密,得到所述第二随机字符串。

在一些实施方式中,步骤S130的具体实施方式,可以按照如下步骤S131至S132执行:

S131,通过所述第一设备的私钥对所述第二加密数据进行解密,得到所述第二拼接字符串。

S132,从所述第二拼接字符串中获取所述第二随机字符串。

可以理解的是,所述第二拼接字符串是由第二设备对第一加密数据进行解密得到的第二随机字符串和生成的第三随机字符串进行拼接得到的,因此如果第一设备对解密得到的第二拼接字符串进行拆分,即能得到所述第三随机字符串和所述第二随机字符串。

继续参见图1,S140,如果所述第二随机字符串与所述第一随机字符串相同,则通过对所述第二设备的认证。

可以理解的是,如果第一设备通过解密得到的第二随机字符串与自身生成的第一随机字符串相同,说明第二设备为合法设备,第二设备未对第一加密数据进行篡改,第二设备解密得到的第一拼接字符串与第一设备自身生成的第一拼接字符串相同,并且第二设备对第一加密数据进行解密得到的随机字符串(即第二随机字符串)与第一设备生成的第一随机字符串相同,并且第二设备生成的第二拼接字符串中的第二随机字符串与第一设备生成的第一随机字符串相同,因此,如果第一设备解密得到的第二随机字符串与自身生成的第一随机字符串相同,则通过对第二设备的认证。

在一些实施方式中,如果所述第二随机字符串与所述第一随机字符串不相同,则拒绝对所述第二设备的认证。

可以理解的是,如果所述第二随机字符串与所述第一随机字符串不相同,说明第二设备为非法设备,第二设备可能对解密得到的第一拼接字符串进行了篡改,使得解密得到的第二随机字符串与第一设备生成的第一随机字符串不相同。因此,在该种情况下,第一设备拒绝对所述第二设备的认证,能禁止第一设备与第二设备之间进行数据通信,从而提高第一设备的运行安全性。

在一些实施方式中,在步骤140之后,还可以执行如下步骤S150至S170:

S150,获取通过对所述第二加密数据解密得到的第三随机字符串。

可以理解的是,所述第二拼接字符串是由第二设备对解密得到的第二随机字符串和生成的第三随机字符串进行拼接得到的,因此如果第一设备对解密得到的第二拼接字符串进行拆分,即能获取解密得到的第三随机字符串。

S160,通过所述密钥对所述第三随机字符串进行加密,得到第三加密数据。

在一些实施方式中,可以直接通过所述密钥对所述第三随机字符串进行加密,以得到第三加密数据。

在一些实施方式中,可以将所述第三随机字符串作为对称加密初始化向量IV,再通过所述第三随机字符串和所述对称加密初始化向量对所述第三随机字符串进行加密,以得到第三加密数据。

S170,将所述第三加密数据发送至所述第二设备,以使得所述第二设备基于所述第三加密数据对第一设备进行认证。

在一些实施方式中,在步骤S170之后,如果第二设备通过了对设备的认证,那么第一设备和第二设备之间可以进行数据通信,进行数据通信的方式至少包括如下两种实施方式。

第一种实施方式,包括如下步骤S180A至S190A:

S180A,如果所述第二设备通过对所述第一设备的认证,则与所述第二设备进行数据通信。

S190A,在数据通信过程中,通过所述密钥对待发送至所述第二设备的数据进行加密,或者通过所述密钥对接收的由所述第二设备发送的数据进行解密。

需要说明的是,步骤S190至少存在两种实施方式,第一种为,在数据通信过程中,直接通过所述密钥对待发送至所述第二设备的数据进行加密,或者直接通过所述密钥对接收的由所述第二设备发送的数据进行解密;第二种为,在数据通信过程中,通过所述密钥和所述第三随机字符串对待发送至所述第二设备的数据进行加密,或者通过所述密钥和所述第三随机字符串对接收的由所述第二设备发送的数据进行解密。

可以理解的是,如果第二设备通过了对第一设备的认证,那么说明第一设备和第二设备均为合法设备,且认证过程中第一设备生成的密钥和第二设备生成的第三随机字符串均为安全数据,因此第一设备和第二设备之间可以进行数据通信,并且在数据通信过程中基于所述密钥和所述第三随机字符串对传输的数据进行加密或解密,能提高第一设备和第二设备之间进行数据通信的安全性。

第二实施方式,包括如下步骤S180B至S190B:

S180B,如果所述第二设备通过对所述第一设备的认证,则与所述第二设备进行数据通信。

S190B,在数据通信过程中,通过所述第二设备的公钥对待发送至所述第二设备的数据进行加密,或者通过自身的私钥对接收的由所述第二设备发送的数据进行解密。

可以理解的是,如果第二设备通过了对第一设备的认证,那么说明第一设备和第二设备均为合法设备,在数据通信过程中,采用非对称加密算法的方式对传输的数据进行加密或解密,相对于直接采用明文进行传输,能提高传输的数据的安全性。

上述两种数据通信的实施方式,第一种相对于第二种来说,对称加密算法使得第一设备与第二设备之间进行数据通信的效率更高。

在步骤S170中,所述第二设备基于所述第三加密数据对第一设备进行认证的具体实施方式,将在后续的实施例中进行详细介绍,本申请在此不做赘述。

以上为从第一设备的角度阐述的设备认证方法,基于本申请的设备认证方法,能避免第一设备向第二设备发送自身的用户名,并且基于非对称加密算法对认证凭据进行加密处理,以及采用拼接技术,能大大提高第一设备对第二设备进行认证的可靠性,进而提高第一设备的运行安全性。

从第二设备的角度进行阐述:

本实施例提供了一种设备认证方法,其中,该方法执行于第二设备。

参见图2,示出了根据本申请一个实施例的设备认证方法的流程示意图,具体包括步骤S100至S400:

S100,接收由第一设备发送的第一加密数据,所述第一加密数据由所述第一设备通过所述第二设备自身的公钥对第一拼接字符串进行加密得到,所述第一拼接字符串包括所述第一设备生成的第一随机字符串。

本实施例中第二设备接收到的第一加密数据为第一设备通过执行前述步骤S110得到的。

S200,通过所述第二设备的私钥对所述第一加密数据进行解密,得到第二随机字符串。

在一些实施方式中,步骤S200的具体实施方式,可以按照如下步骤S201至S202执行:

S201,通过所述第二设备的私钥对所述第一加密数据进行解密,得到所述第一拼接字符串。

S202,从所述第一拼接字符串中获取所述第二随机字符串。

在一些实施方式中,第一拼接字符串是由第一设备将自身生成的密钥和第一随机字符串进行拼接得到,因此第二设备在接收到第一加密数据之后,通过自身的私钥对第一加密数据进行解密,即能得到第一拼接字符串,再对第一拼接字符串进行拆分,即能得到密钥和与所述第一随机字符串相对应的第二随机字符串。

继续参见图2,S300,基于所述第二随机字符串,生成第二拼接字符串,并通过所述第一设备的公钥对所述第二拼接字符串进行加密,得到第二加密数据。

在一些实施方式中,所述基于所述第二随机字符串,生成第二拼接字符串的具体实施方式可以按照如下步骤S301至S302执行:

S301,生成第三随机字符串;

S302,将所述第三随机字符串和对第一加密数据进行解密得到的第二随机字符串进行拼接,得到第二拼接字符串。

需要说明的是,第二设备生成的第三随机字符串可以为对称加密初始化向量IV。

继续参见图2,S400,将所述第二加密数据发送至所述第一设备,以使得所述第一设备基于所述第二加密数据对所述第二设备进行认证。

在一些实施方式中,步骤S400中第一设备基于所述第一加密数据对所述第二设备进行认证的具体实施方式,可以参见上述步骤S120至S140,本申请在此不做赘述。

在一些实施方式中,在所述第一设备对所述第二设备认证成功之后,本申请的设备认证方法还包括如下步骤S500至S700:

S500,接收由所述第一设备发送的第三加密数据,所述第三加密数据由所述第一设备基于所述密钥对所述第三随机字符串进行加密得到。

在一些实施方式中,第二设备接收到的第三加密数据是由第一设备执行前述步骤S150至S170得到的。

S600,通过所述密钥对所述第三加密数据进行解密,得到第四随机字符串。

需要说明的是,第二设备解密第三加密数据与第一设备加密第三随机字符串的方式是相对应的。同理,本申请中,第一设备或第二设备对接收到的数据进行解密采用的方式,与对方对发送的数据进行加密采用的方式相对应。

示例性的,如果第一设备为将第三随机字符串作为对称加密初始化向量,基于AES128-CBC算法,通过自身生成的密钥和所述对称加密初始化向量对所述第三随机字符串进行加密,那么相对应的,第二设备会基于AES128-CBC算法,基于所述密钥和所述第三随机字符串对接收的第三加密数据进行解密,从而得到与第三随机字符串相对应的第四随机字符串。

S700,如果所述第三随机字符串与所述第四随机字符串相同,则通过对所述第一设备的认证。

可以理解的是,如果第二设备解密得到的第四随机字符串与第二设备自身生成的第三随机字符串相同,说明第一设备在对第二加密数据进行解密并得到所述第三随机字符串的过程中,不存在对第三随机字符串进行篡改的行为,因此第二设备可以认为第一设备为合法设备,可以与第一设备进行数据通信。

在一些实施方式中,如果所述第三随机字符串与所述第四随机字符串不相同,则拒绝对所述第一设备的认证。

可以理解的是,如果所述第三随机字符串与所述第四随机字符串不相同,则说明第一设备可能对解密得到的第二拼接字符串进行了篡改,使得第一设备解密得到的第三随机字符串与第二设备生成的第三随机字符串不相同。因此,在该种情况下,第一设备可能为非法设备,第二设备拒绝对所述第一设备的认证,能禁止第一设备与第二设备之间进行数据通信,从而提高第二设备的运行安全性。

在一些实施方式中,在步骤S700之后,第一设备和第二设备之间可以进行数据通信,进行数据通信的方式至少包括如下两种实施方式。

第一种实施方式,包括如下步骤S800A至S900A:

S800A,与第一设备进行数据通信。

S900A,在数据通信过程中,通过所述密钥对待发送至所述第一设备的数据进行加密,或者通过所述密钥对接收的由所述第一设备发送的数据进行解密。

在步骤S900B中,至少存在两种实施方式,第一种为,在数据通信过程中,直接通过所述密钥对待发送至所述第一设备的数据进行加密,或者直接通过所述密钥对接收的由所述第一设备发送的数据进行解密;第二种为,在数据通信过程中,通过所述密钥和所述第三随机字符串对待发送至所述第一设备的数据进行加密,或者通过所述密钥和所述第三随机字符串对接收的由所述第一设备发送的数据进行解密。

可以理解的是,第一种实施方式与前述第一设备在数据通信过程中执行的第一种实施方式相对应。

第二种实施方式,包括如下步骤S800B至S900B:

S800B,与第一设备进行数据通信。

S900B,在数据通信过程中,通过所述第一设备的公钥对待发送至所述第一设备的数据进行加密,或者基于自身的私钥对接收的由所述第一设备发送的数据进行解密。

可以理解的是,第二种实施方式与前述第一设备在数据通信过程中执行的第二种实施方式相对应。

从整体视角进行阐述:

下面将结合图3,对本申请一些实施方式中涉及的设备认证方法进行整体阐述。

参见图3,示出了根据本申请一个实施例的设备认证方法的整体流程示意图。

当存在第一设备对第二设备的认证请求时,第一设备与第二设备之间开始如下步骤的认证。

步骤1,第一设备生成密钥和第一随机字符串。

步骤2,第一设备将密钥和第一随机字符串进行拼接,得到第一拼接字符串。

步骤3,第一设备通过第二设备的公钥对第一拼接字符串进行加密,得到第一加密数据。

步骤4,第一设备将第一加密数据发送至第二设备。

步骤5,第二设备接收到第一加密数据之后,通过自身的私钥对第一加密进行解密,得到第一拼接字符串。

步骤6,第二设备对第一拼接字符串进行拆分,得到密钥和第二随机字符串。

步骤7,第二设备将第二随机字符串和自身生成的第三随机字符串进行拼接,得到第二拼接字符串。

步骤8,第二设备通过第一设备的公钥对第二拼接字符串进行加密,得到第二加密数据。

步骤9,第二设备将第二加密数据发送至第一设备。

步骤10,第一设备接收到第二加密数据之后,第一设备通过自身的私钥对第二加密数据进行解密,得到第二拼接字符串。

步骤11,第一设备对第二拼接字符串进行拆分,得到第三随机字符串和第二随机字符串。

步骤12,如果第二随机字符串和第一随机字符串相同,则第一设备通过对第二设备的认证。

步骤13,第一设备通过密钥对第三随机字符串进行加密,得到第三加密数据。

步骤14,第一设备将第三加密数据发送至第二设备。

步骤15,第二设备接收到第三加密数据之后,通过密钥对第三加密数据进行解密,得到第四随机字符串。

步骤16,如果第三随机字符串和第四随机字符串相同,则第二设备通过对第一设备的认证。

步骤17,第一设备和第二设备在进行数据通信的过程中,基于密钥进行数据通信。

在本申请的一些实施例所提供的技术方案中,第一设备对第二设备进行认证的过程中,首先,响应于对第二设备的认证请求,通过所述第二设备的公钥对第一拼接字符串进行加密,得到第一加密数据,并将所述第一加密数据发送至所述第二设备,所述第一拼接字符串包括所述第一设备生成的第一随机字符串;其次,接收由所述第二设备发送的第二加密数据,所述第二加密数据由所述第二设备通过所述第一设备的公钥对第二拼接字符串进行加密得到,所述第二拼接字符串包括第二随机字符串;再次,通过所述第一设备的私钥对所述第二加密数据进行解密,得到所述第二随机字符串;最后,如果所述第二随机字符串与所述第一随机字符串相同,则通过对所述第二设备的认证。由此可见,基于本申请的技术方案,第一设备对第二设备进行认证,由于是基于非对称加密算法将认证的凭据进行加密处理,以及基于非对称加密算法对接收的数据进行解密,并且在认证过程中不涉及将第一设备的用户名发送至第二设备以作为认证凭据,因此,基于本申请的认证方式,在一定程度上能避免黑客攻击,进而提升认证的可靠性,提高设备之间进行数据通信的安全性。

基于同一发明构思,本申请实施例提供了一种设备认证装置,可以用于执行本申请上述实施例中的设备认证方法。对于本申请实施例中未披露的细节,请参照本申请上述的设备认证方法的实施例。

参见图4,示出了根据本申请的一个实施例的设备认证装置的框图。

如图4所示,根据本申请的一个实施例的设备认证装置400,包括:第一加密单元401,第一接收单元402,第一解密单元403,以及认证单元404。

其中,所述第一加密单元401,用于响应于对第二设备的认证请求,通过所述第二设备的公钥对第一拼接字符串进行加密,得到第一加密数据,并将所述第一加密数据发送至所述第二设备,所述第一拼接字符串包括所述第一设备生成的第一随机字符串;所述第一接收单元402,用于接收由所述第二设备发送的第二加密数据,所述第二加密数据由所述第二设备通过所述第一设备的公钥对第二拼接字符串进行加密得到,所述第二拼接字符串包括第二随机字符串;所述第一解密单元403,用于通过所述第一设备的私钥对所述第二加密数据进行解密,得到所述第二随机字符串;所述认证单元404,用于如果所述第二随机字符串与所述第一随机字符串相同,则通过对所述第二设备的认证。

在本申请的一些实施例中,基于前述方案,所述认证单元404还用于:如果所述第二随机字符串与所述第一随机字符串不相同,则拒绝对所述第二设备的认证。

在本申请的一些实施例中,基于前述方案,所述第一解密单元403还用于:通过所述第一设备的私钥对所述第二加密数据进行解密,得到所述第二拼接字符串;从所述第二拼接字符串中获取所述第二随机字符串。

在本申请的一些实施例中,基于前述方案,所述第一拼接字符串还包括所述第一设备生成的密钥,所述第二拼接字符串还包括所述第二设备生成的第三随机字符串,所述认证单元404还用于:在通过对所述第二设备的认证之后,获取通过对所述第二加密数据解密得到的第三随机字符串;通过所述密钥对所述第三随机字符串进行加密,得到第三加密数据;将所述第三加密数据发送至所述第二设备,以使得所述第二设备基于所述第三加密数据对第一设备进行认证。

在本申请的一些实施例中,基于前述方案,所述设备认证装置还包括通信单元,所述通信单元用于,如果所述第二设备通过对所述第一设备的认证,则与所述第二设备进行数据通信;在数据通信过程中,通过所述密钥对待发送至所述第二设备的数据进行加密,或者通过所述密钥对接收的由所述第二设备发送的数据进行解密。

基于同一发明构思,本申请实施例还提供了一种设备认证装置,可以用于执行本申请上述实施例中的设备认证方法。对于本申请实施例中未披露的细节,请参照本申请上述的设备认证方法的实施例。

参见图5,示出了根据本申请的一个实施例的设备认证装置的框图。

如图5所示,根据本申请的一个实施例的设备认证装置500,包括:第二接收单元501,第二解密单元502,第二加密单元503,以及发送单元504。

其中,所述第二接收单元501,用于接收由第一设备发送的第一加密数据,所述第一加密数据由所述第一设备通过所述第二设备的公钥对第一拼接字符串进行加密得到,所述第一拼接字符串包括所述第一设备生成的第一随机字符串;所述第二解密单元502,用于通过所述第二设备的私钥对所述第一加密数据进行解密,得到第二随机字符串;所述第二加密单元503,用于基于所述第二随机字符串,生成第二拼接字符串,并通过所述第一设备的公钥对所述第二拼接字符串进行加密,得到第二加密数据;所述发送单元504,用于将所述第二加密数据发送至所述第一设备,以使得所述第一设备基于所述第二加密数据对所述第二设备进行认证。

在本申请的一些实施例中,基于前述方案,所述第二解密单元502还用于:通过所述第二设备的私钥对所述第一加密数据进行解密,得到所述第一拼接字符串;从所述第一拼接字符串中获取所述第二随机字符串。

在本申请的一些实施例中,基于前述方案,所述第一拼接字符串还包括所述第一设备生成的密钥,所述第二拼接字符串还包括所述第二设备生成的第三随机字符串,所述发送单元504还用于:在所述第一设备对所述第二设备认证成功之后,接收由所述第一设备发送的第三加密数据,所述第三加密数据由所述第一设备基于所述密钥对所述第三随机字符串进行加密得到;通过所述密钥对所述第三加密数据进行解密,得到第四随机字符串;如果所述第三随机字符串与所述第四随机字符串相同,则通过对所述第一设备的认证。

在本申请的一些实施例中,基于前述方案,所述发送单元504还用于:如果所述第三随机字符串与所述第四随机字符串不相同,则拒绝对所述第一设备的认证。

基于同一发明构思,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序指令,所述至少一条计算机程序指令由处理器加载并执行以实现如前所述的方法所执行的操作。

基于同一发明构思,本申请实施例还提供了一种车辆。

图6示出了适于用来实现本申请实施例的车辆的计算机系统的结构示意图。

需要说明的是,图6示出的车辆的计算机系统600仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图6所示,计算机系统600包括中央处理单元(Central Processing Unit,CPU)601,其可以根据存储在只读存储器(Read-Only Memory,ROM)602中的程序或者从储存部分608加载到随机访问存储器(Random Access Memory,RAM)603中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 603中,还存储有系统操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(Input/Output,I/O)接口605也连接至总线604。

以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分607;包括硬盘等的储存部分608;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入储存部分608。

特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的系统中限定的各种功能。

需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。

作为另一方面,本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面或者第一方面的各种可选实现方式中提供的方法。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的车辆中所包含的;也可以是单独存在,而未装配入该车辆中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该车辆执行时,使得该车辆实现上述实施例中所述的方法。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。

本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

相关技术
  • 一种车辆诊断软件预置方法、车辆诊断系统及相关设备
  • 一种车辆定位方法、设备及自动驾驶车辆
  • 一种车辆管理方法、设备及存储设备
  • 一种车辆安全充电的方法、系统、终端设备及车载设备
  • 一种制造机动车辆设备的部件的方法和设备的相关部件
  • 用于执行认证的车辆电子设备、用于车辆认证的移动设备、车辆认证系统和车辆认证方法
  • 一种车辆的防盗认证系统、车辆及车辆的防盗认证方法
技术分类

06120116503411