一种白盒密码双向身份认证方法、终端、服务端及系统与流程

文档序号:12693855阅读:577来源:国知局
一种白盒密码双向身份认证方法、终端、服务端及系统与流程

本申请涉及安全加密技术领域,具体涉及一种白盒密码双向身份认证方法、终端、服务端及系统。



背景技术:

传统的基于对称密码体制的网络身份认证方法,是运用计算机、密码和网络技术,在客户机和网络服务端两端,分别设置一对相同的对称密码算法,用客户端的加密算法,对一组有限长的明文进行加密生成密文,将该密文作为认证码,与用户号、时间戳和随机码一并经网络传给服务端进行认证。

在白盒攻击环境中,在当前的攻击手段中,很容易通过对二进制文件的反汇编、静态分析,对运行环境的控制结合使用控制CPU断点、观测寄存器、内存分析等来获取密码。基于对称密码体制身份认证就不能安全使用,甚至显得极度脆弱,密钥成为任何使用密码技术实施保护系统的单一故障点。在已有的案例中我们看到,在未受保护的软件中,密钥提取攻击通常可以在几个小时内成功提取以文字数据阵列方式存放的密钥代码。



技术实现要素:

鉴于现有技术中的上述缺陷或不足,期望提供一种利用对称白盒加密算法在服务端和终端之间进行双向身份认证以保障身份认证过程在白盒攻击环境下的安全性的双向身份认证方法、终端、服务端及系统。

第一方面,本发明提供一种适用于终端的白盒密码双向身份认证方法,该方法包括:

根据所持有的第一白盒密钥和第一白盒库,通过预配置的对称白盒加密算法对第一识别码进行加密,得到第一密文;

通过预配置的第二加密算法对所述第一密文和预配置的随机数进行加密运算,得到第二密文;

按预配置的划分方式将所述第二密文划分为第一部分和第二部分,将所述第一识别码、所述第一密文和所述第一部分发送至服务端,以供所述服务端进行以下验证:

根据所持有的第二白盒密钥和第二白盒库,通过所述对称白盒加密算法对所述第一密文进行解密,得到第二识别码并与所述第一识别码进行比对验证,得到第一验证结果;以及,在所述第一验证结果为验证成功时,

通过所述第二加密算法对所接收的第一密文和所述随机数进行加密运算,得到第三密文,按所述划分方式将所述第三密文划分为第三部分和第四部分,返回所述第四部分,并对所接收的第一部分和所述第三部分进行比对验证,得到并返回第二验证结果;

接收所述第四部分并与所述第二部分进行比对验证,得到第三验证结果,并发送至服务端,以供所述服务端判定身份认证结果;

接收所述第二验证结果,若所述第二验证结果和所述第三验证结果均验证成功,则判定身份认证通过。

其中,所述第一白盒密钥、第一白盒库、第二白盒密钥和第二白盒库根据所述对称白盒加密算法生成。

第二方面,本发明提供一种适用于服务端的白盒密码双向身份认证方法,该方法包括:

接收终端发送的第一识别码、第一密文,以及第二密文的第一部分;

根据所持有的第二白盒密钥和第二白盒库,通过预配置的对称白盒加密算法对所述第一密文进行解密,得到第二识别码;

对所述第二识别码和所述第一识别码进行比对验证,得到第一验证结果:若验证失败,则身份认证失败;

通过预配置的第二加密算法对所接收的第一密文和预配置的随机数进行加密运算,得到第三密文;

按预配置的划分方式将所述第三密文划分为第三部分和第四部分,将所述第四部分发送至所述终端,以供所述终端对所述第四部分并与所述第二密文的第二部分进行比对验证,得到第三验证结果并返回;

对所述第一部分和所述第三部分进行比对验证,得到第二验证结果并发送至所述终端,以供所述终端判定身份认证结果;

接收所述第三验证结果,若所述第二验证结果和所述第三验证结果均验证成功,则判定身份认证通过。

其中,所述第一白盒密钥、第一白盒库、第二白盒密钥和第二白盒库根据所述对称白盒加密算法生成,所述第一密文由所述终端根据所持有的第一白盒密钥和第一白盒库,通过所述对称白盒加密算法对所述第一识别码进行加密得到;所述第二密文由所述终端通过所述第二加密算法对所述第一密文和所述随机数进行加密运算得到。

第三方面,本发明提供一种终端,包括:

第一加密单元,配置用于根据所持有的第一白盒密钥和第一白盒库,通过预配置的对称白盒加密算法对第一识别码进行加密,得到第一密文;

第二加密单元,配置用于通过预配置的第二加密算法对所述第一密文和预配置的随机数进行加密运算,得到第二密文,以及,按预配置的划分方式将所述第二密文划分为第一部分和第二部分;

第一通信单元,配置用于将所述第一识别码、所述第一密文和所述第一部分发送至服务端,以供所述服务端进行以下验证:

根据所持有的第二白盒密钥和第二白盒库,通过所述对称白盒加密算法对所述第一密文进行解密,得到第二识别码并与所述第一识别码进行比对验证,得到第一验证结果;以及,在所述第一验证结果为验证成功时,

通过所述第二加密算法对所接收的第一密文和所述随机数进行加密运算,得到第三密文,按所述划分方式将所述第三密文划分为第三部分和第四部分,返回所述第四部分,并对所接收的第一部分和所述第三部分进行比对验证,得到并返回第二验证结果;

接收所述服务端返回的所述第四部分和所述第二验证结果,以及,将第三验证结果发送至服务端,以供所述服务端判定身份认证结果;

第三验证单元,配置用于对所述第四部分和所述第二部分进行比对验证,得到第三验证结果;

第一身份认证单元,配置用于判断所述第二验证结果和所述第三验证结果是否均验证成功:是,则判定身份认证通过。

其中,所述第一白盒密钥、第一白盒库、第二白盒密钥和第二白盒库根据所述对称白盒加密算法生成。

第四方面,本发明提供一种服务端,包括:

第二通信单元,配置用于接收终端发送的第一识别码、第一密文,以及第二密文的第一部分,将第三密文的第四部分发送至所述终端,以供所述终端对所述第四部分并与所述第二密文的第二部分进行比对验证,得到第三验证结果并返回,将第二验证结果并发送至所述终端,以供所述终端判定身份认证结果,以及,接收所述第三验证结果;

解密单元,配置用于根据所持有的第二白盒密钥和第二白盒库,通过预配置的对称白盒加密算法对所述第一密文进行解密,得到第二识别码;

第一验证单元,配置用于对所述第二识别码和所述第一识别码进行比对验证,得到第一验证结果:若验证失败,则身份认证失败;

第三加密单元,配置用于通过预配置的第二加密算法对所接收的第一密文和预配置的随机数进行加密运算,得到第三密文,以及,按预配置的划分方式将所述第三密文划分为第三部分和第四部分;

第二验证单元,配置用于对所述第一部分和所述第三部分进行比对验证,得到第二验证结果;

第二身份认证单元,配置用于判断所述第二验证结果和所述第三验证结果是否均验证成功:是,则判定身份认证通过。

其中,所述第一白盒密钥、第一白盒库、第二白盒密钥和第二白盒库根据所述对称白盒加密算法生成,所述第一密文由所述终端根据所持有的第一白盒密钥和第一白盒库,通过所述对称白盒加密算法对所述第一识别码进行加密得到;所述第二密文由所述终端通过所述第二加密算法对所述第一密文和所述随机数进行加密运算得到。

第五方面,本发明提供一种双向身份认证系统,该系统包括若干上述第三方面提供的终端,以及上述第四方面提供的服务端。

第六方面,本发明还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本发明各实施例提供的双向身份认证方法。

第七方面,本发明还提供一种存储有计算机程序的计算机可读存储介质,该计算机程序使计算机执行根据本发明各实施例提供的双向身份认证方法。

本发明诸多实施例提供的双向身份认证方法、终端、服务端及系统通过在终端和服务端分别配置由对称白盒加密算法生成的第一白盒密钥和第一白盒库,以及第二白盒密钥和第二白盒库,并进行二轮验证以完成双向身份认证,保障了身份认证过程在白盒攻击环境下的安全性。

本发明一些实施例提供的双向身份认证方法、终端、服务端及系统进一步通过将随机数配置为两端同步时间时配置的时间戳,进一步提高了安全性。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1为本发明一实施例提供的适用于终端的双向身份认证方法的流程图。

图2为图1所示方法中所采用的对称白盒加密算法的流程图。

图3为本发明一实施例提供的适用于服务端的双向身份认证方法的流程图。

图4为本发明一实施例提供的双向身份认证系统的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1为本发明一实施例提供的适用于终端的双向身份认证方法的流程图。

如图1所示,在本实施例中,本发明提供的一种双向身份认证方法包括:

S11:根据所持有的第一白盒密钥和第一白盒库,通过预配置的对称白盒加密算法对第一识别码进行加密,得到第一密文;

S13:通过预配置的第二加密算法对所述第一密文和预配置的随机数进行加密运算,得到第二密文;

S15:按预配置的划分方式将所述第二密文划分为第一部分和第二部分,将所述第一识别码、所述第一密文和所述第一部分发送至服务端,以供所述服务端进行以下验证:

根据所持有的第二白盒密钥和第二白盒库,通过所述对称白盒加密算法对所述第一密文进行解密,得到第二识别码并与所述第一识别码进行比对验证,得到第一验证结果;以及,在所述第一验证结果为验证成功时,

通过所述第二加密算法对所接收的第一密文和所述随机数进行加密运算,得到第三密文,按所述划分方式将所述第三密文划分为第三部分和第四部分,返回所述第四部分,并对所接收的第一部分和所述第三部分进行比对验证,得到并返回第二验证结果;

S17:接收所述第四部分并与所述第二部分进行比对验证,得到第三验证结果,并发送至服务端,以供所述服务端判定身份认证结果;

S19:接收所述第二验证结果,若所述第二验证结果和所述第三验证结果均验证成功,则判定身份认证通过。

其中,所述第一白盒密钥、第一白盒库、第二白盒密钥和第二白盒库根据所述对称白盒加密算法生成。

具体地,在本实施例中,上述预配置的对称白盒加密算法为专利申请201610853364.3中所提供的一种密钥不固定的对称白盒加密算法。图2为图1所示方法中所采用的对称白盒加密算法的流程图,如图2所示,该算法的具体实现方法如下:

步骤1:使用对称加密方法进行密钥扩展,得到多轮的加密密钥Kn;步骤2:对多轮的加密密钥Kn进行置换,得到置换后的密钥Kn′;步骤3:生成白盒库;步骤4:将白盒库和置换后的密钥Kn′传给用户;步骤5:用户利用置换后的密钥Kn′对待加密的数据进行白盒加密,白盒加密时利用白盒库进行查表,得到密文;其中,n表示对称加密方法的加密轮数。

优选的,步骤1、步骤2和步骤3在安全可控的环境下操作。

下面以SM4对称加密方法为例,来对该对称白盒加密算法的主要实现原理进行详细的阐述和说明。

SM4的密钥与白盒库结合的白盒加密过程如下:首先是密钥的扩展,将128比特的密钥扩展为32轮的轮密钥Kn,每轮的密钥长度还是128比特;其次,根据密钥生成白盒库,白盒库是白盒加密过程中的查找表集合,每轮密钥对应一个查找表,也就是对轮密钥Kn进行置换,设置换函数为Tn。查找表可以用矩阵Tn(Kn)表示(即白盒库),32轮查找表可以分别用T1(K1)、T2(K2)…T32(K32)表示;最后是白盒加密,先将白盒库发送给用户,再输入待加密数据,以字为单位对其进行加密运算,对其进行32轮变换,每轮变换包括非线性变换、32比特循环左移、32比特异或运算,也就是在白盒库中对每轮的查找表进行查找,找到的结果再进入下一轮变换,32轮变换后输出密文。

在这个过程中,白盒库是服务提供商先期制作好的,密钥包含在白盒库中,是固定的,不能由用户随意修改。

为了使得白盒加密的应用更加广泛,可以不绑定密钥与白盒库,由用户自己设定密钥。具体方法如下:

步骤1:首先服务器端接收用户输入的密钥,在安全可控的环境下,扩展轮密钥Kn(n表示轮数,此处为1-32),可以直接使用对称加密方法自带的扩展方法。

步骤2:扩展后的轮密钥不直接用于加密,而是先进行变换,变换包括线性变换和非线性变换等数学运算,变换处理时的数据块大小可以是32比特,也可以是16比特或其他,变换后的轮密钥为Kn′。

步骤3:生成白盒库,对SM4生成时使用的置换函数P进行变换,设变换矩阵为A1、A2…A32,则白盒库为:

T1=A1P′

T2=A1-1PA2

T3=A2-1PA3

T32=A31-1PA32

T33=A32-1P

这与原SM4密钥与白盒库结合的白盒加密对应的操作相比,白盒库仅对原算法的置换函数进行混淆变换,而没有对轮密钥进行变换(这一步留在服务端等安全环境下实现)。

除此之外,为了防止白盒攻击遭受相关能量攻击,可以在进行变换时采用非线性变换和线性变换相结合的方式,而不是采用单纯的线性变换。第33轮操作是本实施例新增的操作,为的是还原第32轮的操作。

置换函数P也可以为多个或每轮一个,那么相应的,

T1=A1P1

T2=A1-1P2A2

T3=A2-1P3A3

T32=A31-1P32A32

T33=A32-1P32

步骤4:将白盒库和变换后的轮密钥Kn′传送给用户,利用SM4密钥与白盒库不结合的白盒加密算法对用户端的待加密数据进行加密,加密过程中输入明文和变换的轮密码通过查找白盒库完成加密,得到最终的密文。

在对称加密中,SM4进行32轮操作(第33轮算作第32轮的一部分,不单独算作一轮),第1轮和第32轮的操作稍微有些变化,第2轮到第32轮SM4每轮操作包括异或、非线性变换和线性变换组成的合成置换,非线性变换是8比特输入,8比特输出。

为了提高加密的速度和信息的隐藏,白盒加密的操作通过查表完成。在SM4白盒加密操作中,可以将非线性变换和线性变换合成一个表,异或操作通过查表得到。

An可以是线性变换,可以是非线性变换,也可以是线性变换和非线性变换合成的变换。以往的变换中没有过合成变换,合成变换的优点:隐藏变换中涉及的变换,增加变换的多样性,提高密钥破解的难度

为了减少查找表的存储大小,轮密钥加AddRoundKey和字节代替SubBytes不会像chow提出的固定密钥白盒一样组合变成一个查找表,而是将字节替换SubBytes、列混淆MixColumns以及行移位ShiftRows组合变成一个表,轮密钥加AddRoundKey单独变成一个表,整个白盒加密过程采用的还是查表的方式进行。置换函数Pn在每轮中至少表示两种变换,一种是与轮密钥加的变换,一种是与字节替换SubBytes、列混淆MixColumns以及行移位ShiftRows的组合的变换。

对于白盒库的变换函数(或称变换矩阵)An,可以是具有逆的非线性函数。

对于不同的加密算法,轮数可以不同,也可以根据对应的轮数增加或减少相应的操作。

在该对称白盒加密算法的另一种实施方式中,为了防止差分计算分析(Differential Computation Analysis,DCA),进行外部编码,外部编码是在明文的输入和输出中进行编码,如把标准的SM4变为G(SM4(F-1(input),key)),F和G对攻击者是未知的。对于明文的输入(没有密钥)的情况,也要使用白盒库进行混淆操作,即省略上述的步骤1和2而直接生成白盒库,利用白盒库对待加密数据加密,进而生成密文,这种方法有可能使得DCA,不能直接进行统计分析,所以这种方法对明文操作也有很好的加密作用。

密钥不固定的对称白盒加密算法与chow等人提出的密钥固定的白盒对称算法相比,不仅实现了白盒加密的密钥隐藏,而且能让用户自己设定密钥,方便灵活,整个加密算法的加密引擎部分可以是相同的,只有加密密钥扩展生成的加密轮密钥不同,这符合物联网设备对加密算法烧制要求——大部分内容是相同,小部分不同。在烧制时,考虑到物联网设备的存储空间的限制,可以根据存储空间的大小选择对应安全性强度的白盒加密算法。

在更多实施例中,还可根据实际需求将对称白盒加密算法配置为本领域常用的其它对称白盒加密算法。

在本实施例中,第二加密算法为哈希算法,在更多实施例中,还可根据实际需求将第二加密算法配置为本领域常用的各类不同加密算法,可实现相同的技术效果。

在本实施例中,所述预配置的划分方式为将密文划分为前半部分和后半部分,在更多实施例中还可根据实际需求任意配置不同的划分方式,只要两端配置的划分方式一致,即可实现相同的技术效果。

在本实施例中,所述随机数为与所述服务端进行时间同步时配置的时间戳(Time Stamp),在更多实施例中,还可根据实际需求将改随机数配置为通过各类不同的随机函数生成的随机数,并在两端建立通信时同步配置,即可实现相同的技术效果。

图3为本发明一实施例提供的适用于服务端的双向身份认证方法的流程图。图3所示方法与图1所示方法可分别对应配置在进行双向身份认证的终端和服务端中。

如图3所示,在本实施例中,本发明提供的另一种双向身份认证方法包括:

S21:接收终端发送的第一识别码、第一密文,以及第二密文的第一部分;

S22:根据所持有的第二白盒密钥和第二白盒库,通过预配置的对称白盒加密算法对所述第一密文进行解密,得到第二识别码;

S23:对所述第二识别码和所述第一识别码进行比对验证,得到第一验证结果:若验证失败,则身份认证失败;

S24:通过预配置的第二加密算法对所接收的第一密文和预配置的随机数进行加密运算,得到第三密文;

S25:按预配置的划分方式将所述第三密文划分为第三部分和第四部分,将所述第四部分发送至所述终端,以供所述终端对所述第四部分并与所述第二密文的第二部分进行比对验证,得到第三验证结果并返回;

S26:对所述第一部分和所述第三部分进行比对验证,得到第二验证结果并发送至所述终端,以供所述终端判定身份认证结果;

S27:接收所述第三验证结果,若所述第二验证结果和所述第三验证结果均验证成功,则判定身份认证通过。

其中,所述第一白盒密钥、第一白盒库、第二白盒密钥和第二白盒库根据所述对称白盒加密算法生成,所述第一密文由所述终端根据所持有的第一白盒密钥和第一白盒库,通过所述对称白盒加密算法对所述第一识别码进行加密得到;所述第二密文由所述终端通过所述第二加密算法对所述第一密文和所述随机数进行加密运算得到。

与图1所示方法类似地,在上述图3所示的方法中,第二加密算法为哈希算法,随机数为与所述终端进行时间同步时配置的时间戳,在更多实施例中,还可根据实际需求采用不同配置。

在一优选实施例中,步骤S21还包括:对接收的第一识别码进行验证:若验证失败,则中止认证,返回认证失败信息。

图4为本发明一实施例提供的双向身份认证系统的结构示意图。

如图4所示,本发明提供一种终端10,该终端10可对应执行图1所示的方法。

具体地,该终端10包括:

第一加密单元11,配置用于根据所持有的第一白盒密钥和第一白盒库,通过预配置的对称白盒加密算法对第一识别码进行加密,得到第一密文;

第二加密单元13,配置用于通过预配置的第二加密算法对所述第一密文和预配置的随机数进行加密运算,得到第二密文,以及,按预配置的划分方式将所述第二密文划分为第一部分和第二部分;

第一通信单元15,配置用于将所述第一识别码、所述第一密文和所述第一部分发送至服务端20,以供服务端20进行以下验证:

根据所持有的第二白盒密钥和第二白盒库,通过所述对称白盒加密算法对所述第一密文进行解密,得到第二识别码并与所述第一识别码进行比对验证,得到第一验证结果;以及,在所述第一验证结果为验证成功时,

通过所述第二加密算法对所接收的第一密文和所述随机数进行加密运算,得到第三密文,按所述划分方式将所述第三密文划分为第三部分和第四部分,返回所述第四部分,并对所接收的第一部分和所述第三部分进行比对验证,得到并返回第二验证结果;

接收服务端20返回的所述第四部分和所述第二验证结果,以及,将第三验证结果发送至服务端20,以供服务端20判定身份认证结果;

第三验证单元17,配置用于对所述第四部分和所述第二部分进行比对验证,得到第三验证结果;

第一身份认证单元19,配置用于判断所述第二验证结果和所述第三验证结果是否均验证成功:是,则判定身份认证通过。

其中,所述第一白盒密钥、第一白盒库、第二白盒密钥和第二白盒库根据所述对称白盒加密算法生成。

同样如图4所示,本发明还提供一种服务端20,该服务端20可对应执行图3所示的方法。

具体地,服务端20包括:

第二通信单元21,配置用于接收终端10发送的第一识别码、第一密文,以及第二密文的第一部分,将第三密文的第四部分发送至终端10,以供终端10对所述第四部分并与所述第二密文的第二部分进行比对验证,得到第三验证结果并返回,将第二验证结果并发送至终端10,以供终端10判定身份认证结果,以及,接收所述第三验证结果;

解密单元23,配置用于根据所持有的第二白盒密钥和第二白盒库,通过预配置的对称白盒加密算法对所述第一密文进行解密,得到第二识别码;

第一验证单元25,配置用于对所述第二识别码和所述第一识别码进行比对验证,得到第一验证结果:若验证失败,则身份认证失败;

第三加密单元27,配置用于通过预配置的第二加密算法对所接收的第一密文和预配置的随机数进行加密运算,得到第三密文,以及,按预配置的划分方式将所述第三密文划分为第三部分和第四部分;

第二验证单元28,配置用于对所述第一部分和所述第三部分进行比对验证,得到第二验证结果;

第二身份认证单元29,配置用于判断所述第二验证结果和所述第三验证结果是否均验证成功:是,则判定身份认证通过。

其中,所述第一白盒密钥、第一白盒库、第二白盒密钥和第二白盒库根据所述对称白盒加密算法生成,所述第一密文由所述终端根据所持有的第一白盒密钥和第一白盒库,通过所述对称白盒加密算法对所述第一识别码进行加密得到;所述第二密文由所述终端通过所述第二加密算法对所述第一密文和所述随机数进行加密运算得到。

本实施例提供的双向身份认证系统包括若干终端10和服务端20,服务端20可根据实际需求配置成对应一个或多个终端10。

具体地,当服务端20对应于多个终端10时,服务端20中对应于各终端10分别配置有一组独立的第二白盒密钥、第二白盒库和随机数,对于不同的终端10可分别配置相同或不同的对称白盒加密算法和第二加密算法。

在一优选实施例中,第一验证单元25进一步配置用于对所述第一识别码进行验证:若验证失败,则中止认证。第二通信单元21进一步配置用于在中止认证时,向终端10返回认证失败信息。

以下通过一个具体的实施例对上述图1-2所示的各方法和图4所示的系统进行详细说明。

在本实施例中,终端10为车载机端T-BOX,服务端20为车联网的云端TSP。车辆A的T-BOX和TSP中分别配置有根据对称白盒加密算法生成的第一白盒密钥k1以及对应的第一白盒库sdk1、第二白盒密钥k2以及对应的第二白盒库sdk2。

具体地,车载机端T-BOX中所配置的第一白盒密钥k1以及第一白盒库sdk1可以由车主在智能移动终端安装的APP完成与TSP的身份认证后,再下发至T-BOX中,从而无需在生产过程中配置第一白盒密钥k1以及第一白盒库sdk1,对于各车辆的车载机端T-BOX可以实现统一烧制,简化设备部署的难度。

由于云端TSP的白盒密钥和车载机端T-BOX的白盒密钥不同,拿到一方的白盒密钥无法解密数据,因此在TSP中无须对白盒密钥加密存储;此外,即便TSP中保存的第二白盒密钥k2泄露,没有第二白盒库sdk2也无法对数据进行解密。最后,当密钥丢失时,可以直接重新生成密钥转换成白盒密钥下发,就能解决安全问题。因此在密钥管理方面,基于对称白盒的身份认证与传统的基于对称的身份认证更简单,安全性高。

车辆A的T-BOX和TSP建立认证通信连接时,进行时间同步,同时分别配置时间戳TIMESTAMP。

该T-BOX依次执行步骤S11-S15:

在步骤S11中,T-BOX的第一加密单元11根据所持有的第一白盒密钥k1和第一白盒库sdk1,通过预配置的对称白盒加密算法对第一识别码VIN进行加密,得到第一密文C。

在步骤S13中,T-BOX的第二加密单元13通过哈希算法对第一密文C和预配置的时间戳TIMESTAMP进行加密运算,得到第二密文MAC。

在步骤S15中,T-BOX的第二加密单元13按预配置的划分方式将第二密文MAC划分为前半部分和后半部分,第一通信单元15将第一识别码VIN、第一密文C和MAC的前半部分发送至TSP。

T-BOX执行步骤S15后,TSP依次执行步骤S21-S26:

在步骤S21中,TSP的第二通信单元21接收上述T-BOX发送的第一识别码VIN、第一密文C和MAC的前半部分。第一验证单元25对第一识别码VIN进行验证,查找TSP中是否存有VIN,若未查找到,则中止认证,第二通信单元21向T-BOX返回认证失败信息;若查找到,则继续执行步骤S22。

在步骤S22中,TSP的解密单元23根据所持有的第二白盒密钥k2和第二白盒库sdk2,通过预配置的对称白盒加密算法对第一密文C进行解密,得到第二识别码M。

在步骤S23中,TSP的第一验证单元25对第二识别码M和第一识别码VIN进行比对验证,得到第一验证结果:若验证失败,则身份认证失败,不再执行后续步骤,第二通信单元21向T-BOX返回认证失败信息;若验证成功,则继续执行步骤S24。

在步骤S24中,TSP的第三加密单元27通过哈希算法对所接收的第一密文C和预配置的时间戳TIMESTAMP进行加密运算,得到第三密文MAC1。

在步骤S25中,TSP的第三加密单元27按预配置的划分方式将所述第三密文MAC1划分为前半部分和后半部分,第二通信单元21将MAC1的后半部分发送至上述T-BOX。

在步骤S26中,TSP的第二验证单元28对MAC的前半部分和MAC1的前半部分进行比对验证,得到第二验证结果,第二通信单元21将第二验证结果发送至上述T-BOX。

T-BOX在接收到上述TSP在步骤S25中发送的MAC1的后半部分时执行步骤S17,在接收到上述TSP在步骤S26中发送的第二验证结果时执行步骤S19:

在步骤S17中,T-BOX的第一通信单元15接收MAC1的后半部分,第三验证单元17将MAC1的后半部分与MAC的后半部分进行比对验证,得到第三验证结果,第一通信单元15将第三验证结果发送至TSP。

在步骤S19中,T-BOX的第一通信单元15接收所述第二验证结果,第一身份认证单元19判断所述第二验证结果和所述第三验证结果是否均验证成功:是,则判定身份认证通过。

TSP在接收到上述T-BOX在步骤S17中发送的第三验证结果时,执行步骤S27:

在步骤S27中,TSP的第二通信单元21接收所述第三验证结果,第二身份认证单元29判断所述第二验证结果和所述第三验证结果是否均验证成功:是,则判定身份认证通过。

上述实施例仅作示例性说明,本发明提供的双向身份认证方法、终端、服务端及系统不仅限于应用在车载系统的身份认证,同样可以应用于不同领域中进行身份认证。

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

描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,各所述单元可以是设置在计算机或移动智能设备中的软件程序,也可以是单独配置的硬件装置。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。

作为又一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例的装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,该程序被一个或者一个以上的处理器用来执行描述于本申请的双向身份认证方法。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

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