一种认证方法及系统与流程

文档序号:16977428发布日期:2019-02-26 19:09阅读:218来源:国知局
一种认证方法及系统与流程

本发明涉及信息安全技术领域,特别是涉及一种认证方法及系统。



背景技术:

ssl(securesocketslayer,安全套接层)协议及tls(transportlayersecurity,传输层安全)协议,是确保设备端与服务器之间通信安全的一种安全协议。ssl协议/tls协议提供的服务主要有:设备端和服务器之间的身份认证,以确保通信数据发送到正确的设备端和服务器;加密设备端和服务器之间所传输的通信数据,以防止数据被窃取;维护设备端和服务器之间所传输的通信数据的完整性,确保通信数据不被篡改。

设备端和服务器之间利用上述ssl协议/tls协议进行双向身份认证的流程中,设备端和服务器之间需要通过认证对方的数字证书,来认证对方的身份,即设备端通过认证服务器的数字证书,认证服务器的身份,服务器通过认证设备端的数字证书,认证设备端的身份。此时对于设备端来说,其本地需一定的存储空间,用来存储可以表明设备端自身的身份的数字证书;并且,得到上述可以表明设备端身份的数字证书,是需要花费一定费用向ca(certificateauthority,证书授权)中心申请的,这在一定程度上增加了设备端的生产成本。



技术实现要素:

本发明实施例的目的在于提供一种认证方法及系统,以实现在一定程度上降低对设备端的存储空间的要求,并在一定程度上降低设备端的生产成本。具体技术方案如下:

一方面,本发明实施例提供了一种认证方法,应用于设备端,所述方法包括:

向服务器发送第一认证请求,其中,所述第一认证请求中包括:所述设备端的第一标识和第一随机数,所述第一随机数为:所述设备端随机生成的字符串;

接收所述服务器发送的第二认证请求,其中,所述第二认证请求为:所述服务器基于所述第一标识,对所述设备端进行认证并认证通过后所发送的请求,所述第二认证请求中包括:所述第一随机数和第二随机数,所述第二随机数为:所述服务器随机生成的字符串;

判断所述第二认证请求中的第一随机数与本地存储的第一随机数是否相同;

当判断所述第二认证请求中的第一随机数与本地存储的第一随机数相同时,向所述服务器发送第一认证回复,以通知所述服务器已认证通过。

可选地,所述第一认证请求中还包括有第一加密数据,所述第一加密数据为:利用预设密码数据对所述第一标识和第一随机数进行加密所生成的数据;

所述第二认证请求中还包括有第二加密数据,所述第二加密数据为:利用所述预设密码数据对所述第一随机数和所述第二随机数进行加密所生成的数据;

在所述判断所述第二认证请求中的第一随机数与本地存储的第一随机数是否相同的步骤之前,所述方法还包括:

利用所述预设密码数据,解密所述第二加密数据,获得解密后的第一随机数和解密后的第二随机数;

判断解密后的第一随机数与所述第二认证请求中的第一随机数是否相同,并判断解密后的第二随机数与所述第二认证请求中的第二随机数是否相同;

当判断均相同时,执行所述判断所述第二认证请求中的第一随机数与本地存储的第一随机数是否相同的步骤。

可选地,所述第一认证回复中包括所述第二随机数和第三随机数,所述第三随机数为:所述设备端随机生成的字符串;

在所述向所述服务器发送第一认证回复的步骤之后,所述方法还包括:

接收所述服务器发送的第二认证回复,所述第二认证回复为:所述服务器判断所述第一认证回复中的第二随机数与本地存储的第二随机数相同后所发送的回复,所述第二认证回复中包括:所述第三随机数、第四随机数以及加密密钥数据,其中,所述加密密钥数据为:所述服务器利用第一主密钥对会话密钥进行加密后生成的数据,所述第一主密钥为:所述服务器利用所述第一标识对应的预设密钥生成规则生成的密钥,所述会话密钥为:所述服务器随机生成的、用于对发送至所述设备端的通信数据进行加密的密钥;所述预设密钥生成规则为:利用所述第一随机数、所述第二随机数、所述第三随机数、第四随机数以及预设密码数据中的至少一个生成密钥的规则;

判断所述第二认证回复中的第三随机数与本地存储的第三随机数是否相同;

当判断所述第二认证回复中的第三随机数与本地存储的第三随机数相同时,利用所述预设密钥生成规则生成第二主密钥;

利用所述第二主密钥解密所述加密密钥数据,获得解密后的会话密钥,所述解密后的会话密钥为:用于对发送至所述服务器的通信数据进行加密的密钥。

可选地,所述第一认证回复中还包括第三加密数据,所述第三加密数据为:利用所述预设密码数据对所述第二随机数和所述第三随机数进行加密所生成的数据;

所述第二认证回复还包括第四加密数据,所述第四加密数据为:利用所述预设密码数据对所述第三随机数、所述第四随机数以及所述加密密钥数据进行加密所生成的数据;

在所述判断所述第二认证回复中的第三随机数与本地存储的第三随机数是否相同的步骤之前,所述方法还包括:

利用所述预设密码数据解密所述第四加密数据,获得解密后的第三随机数、解密后的第四随机数以及解密后的加密密钥数据;

判断解密后的第三随机数与所述第二认证回复中的第三随机数是否相同,且解密后的第四随机数与所述第二认证回复中的第四随机数是否相同,且解密后的加密密钥数据与所述第二认证回复中的加密密钥数据是否相同;

当判断均相同时,执行所述判断所述第二认证回复中的第三随机数与本地存储的第三随机数是否相同的步骤。

可选地,在所述利用所述第二主密钥解密所述加密密钥数据,获得解密后的会话密钥的步骤之后,所述方法还包括:

获得待发送的通信数据;

利用所述解密后的会话密钥加密所述待发送的通信数据,获得加密通信数据;

向所述服务器发送所述加密通信数据。

可选地,在所述向所述服务器发送所述加密通信数据的步骤之后,所述方法还包括:

接收所述服务器发送的第一过期信息,其中,所述第一过期信息为:所述服务器在确定解密后的会话密钥为无效后所发送的信息;

向所述服务器发送会话密钥生成请求,其中,所述会话密钥生成请求中包括:所述第一标识以及第五加密数据,其中,所述第五加密数据为:利用所述第二主密钥加密第五随机数所生成的数据,所述第五随机数为:所述设备端随机生成的字符串;

接收所述服务器发送的会话密钥生成回复,其中,所述会话密钥生成回复为:所述服务器确定所述第一标识对应的第一主密钥为有效后所发送的回复,所述会话密钥生成回复中包括第六加密数据,所述第六加密数据为:利用所述第一主密钥加密所述第五随机数、第六随机数及新的会话密钥所生成的数据,所述第六随机数为:所述服务器随机生成的字符串,所述新的会话密钥为:所述服务器随机生成的、且用于对发送至所述设备端的通信数据进行加密的密钥;

利用所述第二主密钥解密所述第六加密数据,获得解密后的第五随机数、解密后的第六随机数以及解密后的新的会话密钥;

判断所述解密后的第五随机数与本地存储的第五随机数是否相同;

当判断相同时,将本地存储的会话密钥,更新为所述解密后的新的会话密钥;

向所述服务器发送会话密钥获得回复,以通知所述服务器自身已获得所述新的会话密钥,所述会话密钥获得回复中包含:所述第一标识和第七加密数据,所述第七加密数据为:利用所述第二主密钥加密所述第六随机数所生成的数据。

可选地,在所述向所述服务器发送会话密钥生成请求的步骤之后,所述方法还包括:

接收所述服务器发送的第二过期信息,所述第二过期信息为:所述服务器确定所述第一标识对应的第一主密钥为无效后所发送的信息;重新执行所述向服务器发送第一认证请求的步骤。

另一方面,本发明实施例提供了一种认证方法,应用于服务器,所述方法包括:

接收设备端发送的第一认证请求,其中,所述第一认证请求中包括:所述设备端的第一标识和第一随机数,所述第一随机数为:所述设备端随机生成的字符串;

判断本地是否存储有所述第一标识;

当判断本地存储有所述第一标识时,向所述设备端发送第二认证请求,其中,所述第二认证请求中包括:所述第一随机数和第二随机数,所述第二随机数为:所述服务器随机生成的字符串;

接收所述设备端发送的第一认证回复,以确认自身已认证通过,其中,所述第一认证回复为:所述设备端基于所述第二认证请求中的第一随机数,对所述服务器进行认证并认证通过后所发送的回复。

可选地,所述第一认证请求中还包括有第一加密数据,所述第一加密数据为:利用预设密码数据对所述第一标识和第一随机数进行加密所生成的数据;

所述第二认证请求中还包括有第二加密数据,所述第二加密数据为:利用所述预设密码数据对所述第一随机数和所述第二随机数进行加密所生成的数据;

在所述向所述设备端发送第二认证请求的步骤之前,所述方法还包括:

确定所述第一标识对应的预设密码数据;

利用所确定的预设密码数据解密所述第一认证请求中的第一加密数据,获得解密后的第一标识和解密后的第一随机数;

判断解密后的第一标识与所述第一认证请求中的第一标识是否相同,且判断解密后的第一随机数与所述第一认证请求中的第一随机数是否相同;

当判断均为相同时,执行所述向所述设备端发送第二认证请求的步骤。

可选地,所述第一认证回复中包括所述第二随机数和第三随机数,所述第三随机数为:所述设备端随机生成的字符串;

在所述接收所述设备端发送的第一认证回复的步骤之后,所述方法还包括:

判断所述第一认证回复中的第二随机数与本地存储的第二随机数是否相同;

当判断所述第一认证回复中的第二随机数与本地存储的第二随机数相同时,利用所述第一标识对应的预设密钥生成规则生成第一主密钥,其中,所述预设密钥生成规则为:利用所述第一随机数、所述第二随机数、所述第三随机数、第四随机数以及预设密码数据中的至少一个生成密钥的规则,所述第四随机数为:所述服务器随机生成的字符串,所述预设密码数据为:所述第一标识对应的预设密码数据;

利用所述第一主密钥对会话密钥进行加密,生成加密密钥数据,其中,所述会话密钥为:所述服务器随机生成的、用于对发送至所述设备端的通信数据进行加密的密钥;

向所述设备端发送第二认证回复,其中,所述第二认证回复中包括:所述第三随机数、所述第四随机数以及所述加密密钥数据。

可选地,所述第一认证回复中还包括第三加密数据,所述第三加密数据为:利用所述预设密码数据对所述第二随机数和所述第三随机数进行加密所生成的数据;

所述第二认证回复还包括第四加密数据,所述第四加密数据为:利用所述预设密码数据对所述第三随机数、所述第四随机数以及所述加密密钥数据进行加密所生成的数据;

在所述利用所述第一标识对应的预设密钥生成规则生成第一主密钥的步骤之前,所述方法还包括:

利用所述预设密码数据解密所述第三加密数据,获得解密后的第二随机数和解密后的第三随机数;

判断解密后的第二随机数与所述第一认证回复中的第二随机数是否相同,且判断解密后的第三随机数与所述第一认证回复中的第三随机数是否相同;

当判断均相同时,执行所述利用所述第一标识对应的预设密钥生成规则生成第一主密钥的步骤。

可选地,在所述向所述设备端发送第二认证回复的步骤之后,所述方法还包括:

接收所述设备端发送的加密通信数据,其中,所述加密通信数据为:所述设备端利用所述会话密钥对通信数据进行加密后生成的数据;

利用所述设备端对应的会话密钥解密所述加密通信数据,获得解密后的通信数据。

可选地,在所述利用所述设备端对应的会话密钥解密所述加密通信数据,获得解密后的通信数据的步骤之前,所述方法还包括:

确定接收所述加密通信数据的第一接收时间;

判断所述第一接收时间是否位于所述设备端对应的会话密钥的有效期限内;

当判断所述接收时间位于所述设备端对应的会话密钥的有效期限内,表明所述设备端对应的会话密钥为有效,执行所述利用所述设备端对应的会话密钥解密所述加密通信数据,获得解密后的通信数据的步骤;

当判断所述接收时间不位于所述设备端对应的会话密钥的有效期限内,表明所述设备端对应的会话密钥为无效,向所述设备端发送第一过期信息,以通知所述设备端所述会话密钥为无效;

接收所述设备端发送的会话密钥生成请求,其中,所述会话密钥生成请求中包括:所述第一标识以及第五加密数据,其中,所述第五加密数据为:利用所述设备端的第二主密钥加密第五随机数所生成的数据,所述第五随机数为:所述设备端随机生成的字符串,所述第二主密钥为:所述设备端利用所述预设密钥生成规则生成的密钥;

确定接收所述会话密钥生成请求的第二接收时间;

判断所述第二接收时间是否位于所述第一标识对应的第一主密钥的有效期限内;

当判断所述第二接收时间位于所述第一标识对应的第一主密钥的有效期限内时,表明所述第一标识对应的第一主密钥为有效,利用所述第一标识对应的第一主密钥解密所述第五加密数据,获得解密后的第五随机数;

利用所述第一标识对应的第一主密钥加密所述第五随机数、第六随机数及新的会话密钥,生成第六加密数据,所述第六随机数为:所述服务器随机生成的字符串,所述新的会话密钥为:所述服务器随机生成的、且用于对发送至所述设备端的通信数据进行加密的密钥;

向所述设备端发送会话密钥生成回复,其中,所述会话密钥生成回复中包括所述第六加密数据;

接收所述设备端发送的会话密钥获得回复,其中,所述会话密钥获得回复为:所述设备端将本地存储的会话密钥更新为所述新的会话密钥后所发送的回复。

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

当判断所述第二接收时间不位于所述第一标识对应的第一主密钥的有效期限内时,向所述设备端发送第二过期信息,以使所述设备端接收所述第二过期信息后,确定自身的第二主密钥为无效。

另一方面,本发明实施例提供了一种认证系统,所述系统包括设备端和服务器;

所述设备端,用于向所述服务器发送第一认证请求,其中,所述第一认证请求中包括:所述设备端的第一标识和第一随机数,所述第一随机数为:所述设备端随机生成的字符串;

所述服务器,用于接收所述设备端发送的第一认证请求;判断本地是否存储有所述第一标识;当判断本地存储有所述第一标识时,向所述设备端发送第二认证请求,其中,所述第二认证请求中包括:所述第一随机数和第二随机数,所述第二随机数为:所述服务器随机生成的字符串;

所述设备端,还用于接收所述服务器发送的第二认证请求,判断所述第二认证请求中的第一随机数与本地存储的第一随机数是否相同;当判断所述第二认证请求中的第一随机数与本地存储的第一随机数相同时,向所述服务器发送第一认证回复,以通知所述服务器已认证通过。

可选地,所述第一认证请求中还包括有第一加密数据,所述第一加密数据为:利用预设密码数据对所述第一标识和第一随机数进行加密所生成的数据;

所述第二认证请求中还包括有第二加密数据,所述第二加密数据为:利用所述预设密码数据对所述第一随机数和所述第二随机数进行加密所生成的数据;

所述服务器,还用于在所述向所述设备端发送第二认证请求之前,确定所述第一标识对应的预设密码数据;利用所确定的预设密码数据解密所述第一认证请求中的第一加密数据,获得解密后的第一标识和解密后的第一随机数;判断解密后的第一标识与所述第一认证请求中的第一标识是否相同,且判断解密后的第一随机数与所述第一认证请求中的第一随机数是否相同;当判断均为相同时,执行所述向所述设备端发送第二认证请求;

所述设备端,还用于在所述判断所述第二认证请求中的第一随机数与本地存储的第一随机数是否相同之前,利用所述预设密码数据,解密所述第二加密数据,获得解密后的第一随机数和解密后的第二随机数;判断解密后的第一随机数与所述第二认证请求中的第一随机数是否相同,并判断解密后的第二随机数与所述第二认证请求中的第二随机数是否相同;当判断均相同时,执行所述判断所述第二认证请求中的第一随机数与本地存储的第一随机数是否相同。

可选地,所述第一认证回复中包括所述第二随机数和第三随机数,所述第三随机数为:所述设备端随机生成的字符串;

所述服务器,还用于在所述接收所述设备端发送的第一认证回复之后,判断所述第一认证回复中的第二随机数与本地存储的第二随机数是否相同;当判断所述第一认证回复中的第二随机数与本地存储的第二随机数相同时,利用所述第一标识对应的预设密钥生成规则生成第一主密钥;利用所述第一主密钥对会话密钥进行加密,生成加密密钥数据;向所述设备端发送第二认证回复;其中,所述预设密钥生成规则为:利用所述第一随机数、所述第二随机数、所述第三随机数、第四随机数以及预设密码数据中的至少一个生成密钥的规则,所述第四随机数为:所述服务器随机生成的字符串,所述预设密码数据为:所述第一标识对应的预设密码数据;所述会话密钥为:所述服务器随机生成的、用于对发送至所述设备端的通信数据进行加密的密钥;所述第二认证回复中包括:所述第三随机数、所述第四随机数以及所述加密密钥数据;

所述设备端,还用于在所述向所述服务器发送第一认证回复之后,接收所述服务器发送的第二认证回复,判断所述第二认证回复中的第三随机数与本地存储的第三随机数是否相同;当判断所述第二认证回复中的第三随机数与本地存储的第三随机数相同时,利用所述预设密钥生成规则生成第二主密钥;利用所述第二主密钥解密所述加密密钥数据,获得解密后的会话密钥,所述解密后的会话密钥为:用于对发送至所述服务器的通信数据进行加密的密钥。

可选地,所述第一认证回复中还包括第三加密数据,所述第三加密数据为:利用所述预设密码数据对所述第二随机数和所述第三随机数进行加密所生成的数据;

所述第二认证回复还包括第四加密数据,所述第四加密数据为:利用所述预设密码数据对所述第三随机数、所述第四随机数以及所述加密密钥数据进行加密所生成的数据;

所述服务器,还用于在所述利用所述第一标识对应的预设密钥生成规则生成第一主密钥之前,利用所述预设密码数据解密所述第三加密数据,获得解密后的第二随机数和解密后的第三随机数;判断解密后的第二随机数与所述第一认证回复中的第二随机数是否相同,且判断解密后的第三随机数与所述第一认证回复中的第三随机数是否相同;当判断均相同时,执行所述利用所述第一标识对应的预设密钥生成规则生成第一主密钥;

所述设备端,还用于在所述判断所述第二认证回复中的第三随机数与本地存储的第三随机数是否相同之前,利用所述预设密码数据解密所述第四加密数据,获得解密后的第三随机数、解密后的第四随机数以及解密后的加密密钥数据;判断解密后的第三随机数与所述第二认证回复中的第三随机数是否相同,且解密后的第四随机数与所述第二认证回复中的第四随机数是否相同,且解密后的加密密钥数据与所述第二认证回复中的加密密钥数据是否相同;当判断均相同时,执行所述判断所述第二认证回复中的第三随机数与本地存储的第三随机数是否相同。

可选地,所述设备端,还用于在所述利用所述第二主密钥解密所述加密密钥数据,获得解密后的会话密钥之后,获得待发送的通信数据;利用所述解密后的会话密钥加密所述待发送的通信数据,获得加密通信数据;向所述服务器发送所述加密通信数据;

所述服务器,还用于在所述向所述设备端发送第二认证回复之后,接收所述设备端发送的加密通信数据,其中,所述加密通信数据为:所述设备端利用所述会话密钥对通信数据进行加密后生成的数据;利用所述设备端对应的会话密钥解密所述加密通信数据,获得解密后的通信数据。

可选地,所述服务器,还用于在所述利用所述设备端对应的会话密钥解密所述加密通信数据,获得解密后的通信数据之前,确定接收所述加密通信数据的第一接收时间;判断所述第一接收时间是否位于所述设备端对应的会话密钥的有效期限内;当判断所述接收时间位于所述设备端对应的会话密钥的有效期限内,表明所述设备端对应的会话密钥为有效,执行所述利用所述设备端对应的会话密钥解密所述加密通信数据,获得解密后的通信数据;当判断所述接收时间不位于所述设备端对应的会话密钥的有效期限内,表明所述设备端对应的会话密钥为无效,向所述设备端发送第一过期信息,以通知所述设备端所述会话密钥为无效;

所述设备端,还用于在所述向所述服务器发送所述加密通信数据之后,接收所述服务器发送的第一过期信息;向所述服务器发送会话密钥生成请求,其中,所述会话密钥生成请求中包括:所述第一标识以及第五加密数据,其中,所述第五加密数据为:利用所述第二主密钥加密第五随机数所生成的数据,所述第五随机数为:所述设备端随机生成的字符串;

所述服务器,还用于接收所述设备端发送的会话密钥生成请求;确定接收所述会话密钥生成请求的第二接收时间;判断所述第二接收时间是否位于所述第一标识对应的第一主密钥的有效期限内;当判断所述第二接收时间位于所述第一标识对应的第一主密钥的有效期限内时,表明所述第一标识对应的第一主密钥为有效,利用所述第一标识对应的第一主密钥解密所述第五加密数据,获得解密后的第五随机数;利用所述第一标识对应的第一主密钥加密所述第五随机数、第六随机数及新的会话密钥,生成第六加密数据;向所述设备端发送会话密钥生成回复,其中,所述第六随机数为:所述服务器随机生成的字符串,所述新的会话密钥为:所述服务器随机生成的、且用于对发送至所述设备端的通信数据进行加密的密钥,所述会话密钥生成回复中包括所述第六加密数据;

所述设备端,还用于接收所述服务器发送的会话密钥生成回复;利用所述第二主密钥解密所述第六加密数据,获得解密后的第五随机数、解密后的第六随机数以及解密后的新的会话密钥;判断所述解密后的第五随机数与本地存储的第五随机数是否相同;当判断相同时,将本地存储的会话密钥,更新为所述解密后的新的会话密钥;向所述服务器发送会话密钥获得回复,以通知所述服务器自身已获得所述新的会话密钥,所述会话密钥获得回复中包含:所述第一标识和第七加密数据,所述第七加密数据为:利用所述第二主密钥加密所述第六随机数所生成的数据

所述服务器,还用于接收所述设备端发送的会话密钥获得回复。

可选地,所述服务器,还用于当判断所述第二接收时间不位于所述第一标识对应的第一主密钥的有效期限内时,向所述设备端发送第二过期信息;

所述设备端,还用于接收所述服务器发送的第二过期信息,以确定自身的第二主密钥为无效;重新执行所述向服务器发送第一认证请求。

另一方面,本发明实施例提供了一种设备端,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的计算机程序时,实现本发明实施例所提供的任一所述的认证方法步骤。

另一方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例所提供的设备端的任一所述的认证方法步骤。

另一方面,本发明实施例提供了一种服务器,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的计算机程序时,实现本发明实施例所提供的任一所述的认证方法步骤。

另一方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例所提供的服务器的任一所述的认证方法步骤。

本发明实施例中,设备端向服务器发送第一认证请求,第一认证请求中包括:设备端的第一标识和第一随机数,第一随机数为:所述设备端随机生成的字符串;接收服务器发送的第二认证请求,第二认证请求为:服务器基于第一标识,对设备端进行认证并认证通过后所发送的请求,第二认证请求中包括:第一随机数和第二随机数,第二随机数为:所述服务器随机生成的字符串;判断第二认证请求中的第一随机数与本地存储的第一随机数是否相同;当判断第二认证请求中的第一随机数与本地存储的第一随机数相同时,向服务器发送第一认证回复,以通知服务器已认证通过。

可见,服务器可以通过设备端所发送的第一认证请求中的第一标识,对设备端进行认证;设备端可以通过服务器所发送的第二认证请求中的第一随机数,对服务器进行认证,进而实现设备端与服务器之间的双向认证。在整个认证过程中无需用到设备端和服务器的数字证书,即设备端本地无需提供存储空间,以用于存储表明自身身份的数字证书,且服务器本地也无需提供存储空间,以用于存储表明自身身份的数字证书,实现了在一定程度上降低对设备端以及服务器的存储空间的要求。另外的,无需花费费用向ca(certificateauthority,证书授权)中心申请数字证书,在一定程度上降低了设备端的生产成本,以及降低了服务器的生产成本。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例所提供的一种认证方法的流程示意图;

图2为本发明实施例所提供的一种认证方法的另一流程示意图;

图3为本发明实施例所提供的一种认证方法的另一流程示意图;

图4为本发明实施例所提供的另一种认证方法的流程示意图;

图5为本发明实施例所提供的另一种认证方法的另一流程示意图;

图6为本发明实施例所提供的另一种认证方法的另一流程示意图;

图7为本发明实施例所提供的一种认证系统的结构示意图;

图8为本发明实施例所提供的设备端的结构示意图;

图9为本发明实施例所提供的服务器的结构示意图。

具体实施方式

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

本发明实施例提供了一种认证方法及系统,以实现在一定程度上降低对设备端的存储空间的要求,并在一定程度上降低设备端的生产成本。

可以理解的是,本发明实施例所提供的一种认证方法可以应用于任一可以与服务器进行通信连接,并基于上述通信连接进行数据通信的设备端,例如:手机、电脑、摄像头、传感器等等电子设备。在一种实现方式中,上述设备端可以通过浏览器、应用程序等,实现与服务器的通信连接。

如图1所示,本发明实施例提供了一种认证方法,可以包括如下步骤:

s101:向服务器发送第一认证请求,其中,第一认证请求中包括:设备端的第一标识和第一随机数,第一随机数为:设备端随机生成的字符串;

当设备端需要与服务器进行通信连接时,设备端与服务器之间需要首先进行身份认证,当设备端与服务器之间身份均认证通过后,才建立通信连接,并后续的基于所建立的通信连接,进行通信。

当设备端需要与服务器进行通信连接时,设备端首先向服务器发送包括设备端的第一标识和第一随机数的认证请求,此处可以称为第一认证请求,服务器接收到上述第一认证请求后,可以基于上述设备端的第一标识,对设备端进行认证,当对设备端认证通过后,可以向设备端发送第二认证请求,以进行后续的认证流程。

在一种实现方式中,上述服务器基于上述设备端的第一标识,对设备端进行认证的过程可以为:服务器将所接收的第一认证请求中的第一标识与本地存储的各标识进行比对,当服务器确定本地存储有与上述第一标识相同的标识,即服务器确定本地存储有上述第一标识时,可以确定对设备端认证通过。

上述第一标识可以为设备端的设备序列号、名称等等可以唯一确定设备端的信息。上述设备序列号也可以理解为:设备端出厂时所被分配的具有唯一性的识别码。

可以理解的是,上述第一随机数为设备端随机生成的一串字符串,具有唯一性,设备端在生成上述第一随机数后,可以将上述第一随机数存储于本地。

s102:接收服务器发送的第二认证请求,其中,第二认证请求为:服务器基于第一标识,对设备端进行认证并认证通过后所发送的请求,第二认证请求中包括:第一随机数和第二随机数,第二随机数为:服务器随机生成的字符串;

s103:判断第二认证请求中的第一随机数与本地存储的第一随机数是否相同;

设备端接收到服务器发送的认证请求后,此处称上述服务器发送的认证请求为第二认证请求,从上述第二认证请求中获得第一随机数和第二随机数,并判断第二认证请求中的第一随机数与本地存储的第一随机数是否相同,当设备端判断第二认证请求中的第一随机数与本地存储的第一随机数相同,可以确定上述服务器为自身所需要进行通信连接的服务器,此时,可以继续执行后续的认证流程,当设备端判断第二认证请求中的第一随机数与本地存储的第一随机数不相同,则可以确定上述服务器不为自身所需要进行通信连接的服务器,此时可以结束流程。

s104:当判断第二认证请求中的第一随机数与本地存储的第一随机数相同时,向服务器发送第一认证回复,以通知服务器已认证通过。

本步骤中,当设备端设备端判断第二认证请求中的第一随机数与本地存储的第一随机数相同时,需要向服务器发送认证回复,此处称为第一认证回复,以通知服务器以认证通过,即此时可以确定设备端与服务器之间已双向确认对方的身份。后续的,在一种实现方式中,设备端与服务器可以建立通信连接,并可以基于所建立的通信连接进行通信。

在设备端判断第二认证请求中的第一随机数与本地存储的第一随机数相同后,设备端可以将从第二认证请求中获得的第二随机数存储于本地。

应用本发明实施例,服务器可以通过设备端所发送的第一认证请求中的第一标识,对设备端进行认证;设备端可以通过服务器所发送的第二认证请求中的第一随机数,对服务器进行认证,进而实现设备端与服务器之间的双向认证。在整个认证过程中无需用到设备端和服务器的数字证书,即设备端本地无需提供存储空间,以用于存储表明自身身份的数字证书,且服务器本地也无需提供存储空间,以用于存储表明自身身份的数字证书,实现了在一定程度上降低对设备端以及服务器的存储空间的要求。另外的,无需花费费用向ca中心申请数字证书,在一定程度上降低了设备端的生产成本,以及降低了服务器的生产成本。

在一种实现方式中,为了避免在设备端与服务器的认证过程中,所传输的信息被篡改,其中,上述所传输的信息可以包括第一认证请求、第二认证请求;并为了更好的保障设备端与服务器的设备安全。具体的,所述第一认证请求中还可以包括有第一加密数据,第一加密数据为:利用预设密码数据对第一标识和第一随机数进行加密所生成的数据;

所述第二认证请求中还可以包括有第二加密数据,所述第二加密数据为:利用预设密码数据对第一随机数和第二随机数进行加密所生成的数据;

如图2所示,本发明实施例所提供的认证方法可以包括如下步骤:

s201:向服务器发送第一认证请求,其中,第一认证请求中包括:设备端的第一标识和第一随机数,第一随机数为:设备端随机生成的字符串;

s202:接收服务器发送的第二认证请求,其中,第二认证请求为:服务器基于第一标识,对设备端进行认证并认证通过后所发送的请求,第二认证请求中包括:第一随机数和第二随机数,第二随机数为:服务器随机生成的字符串;

其中,上述s201与图1中所示的s101相同,上述s202与图1中所示的s102相同。

s203:利用预设密码数据,解密第二加密数据,获得解密后的第一随机数和解密后的第二随机数;

s204:判断解密后的第一随机数与第二认证请求中的第一随机数是否相同,并判断解密后的第二随机数与第二认证请求中的第二随机数是否相同;当判断均相同时,执行s205;

上述预设密码数据为设备端与服务器共知的,且与设备端对应的密码数据,上述预设密码数据可以是随机生成的一具有唯一性的数据,也可以是通过预定生成规则所生成的数据。

在一种实现方式中,上述预定生成规则可以标识为:md5(md5(设备序列号+设备验证码)+混淆码)。具体的,可以理解为:首先对设备端所对应的设备序列号和设备验证码进行md5运算,获得一中间结果,然后再对所获得的中间结果以及设备端所对应的混淆码进行md5运算,获得最终结果,上述所获得的最终结果即为上述预设密码数据。其中,上述设备序列号可以为:设备端出厂时所被分配的具有唯一性的识别码,可以为一串字符串;上述设备验证码可以为:设备端出厂时,生产商内置于设备端的加密芯片中的,与上述设备序列号对应的一串字符串,具有唯一性;上述混淆码可以为:设备端出厂时,生产商为设备端所分配的一串具有唯一性的字符串。需要强调的是,上述设备序列号和设备验证码可以对外可见,上述混淆码对外不可见,上述“外”是相对于设备端的生产商而言的,设备端的生厂商可以认为为“内”。

设备端向服务器发送的第一认证请求中还包括第一加密数据,此时,当服务器接收到上述还包括第一加密数据的第一认证请求后,可以首先将第一认证请求中的第一标识与本地存储的标识进行比对,以判断本地是否存储有上述第一标识,当判断本地存储有上述第一标识时,可以确定上述第一标识对应的预设密码数据,并利用上述预设密码数据解密上述第一加密数据,获得解密后的第一标识和解密后的第一随机数,进一步的,服务器判断解密后的第一标识与第一认证请求中的第一标识是否相同,并判断解密后的第一随机数与第一认证请求中的第一随机数是否相同,当判断均相同时,确认第一认证请求中的信息未被篡改,此时,服务器可以继续执行后续认证流程,向设备端发送包括第一随机数、第二随机数以及上述第二加密数据的第二认证请求。

可以理解的是,服务器中可以存储有多个预设密码数据,每一预设密码数据对应一设备端,即设备端与预设密码数据存在一一对应关系。服务器利用设备端的第一标识确定出预设密码数据后,并利用所确定的预设密码数据对第一加密数据解密成功,可以认为服务器对设备端进行了一次认证,发送上述第一认证请求的设备端为真正的设备端发送的,上述真正的设备端即为:服务器中存储有该设备端的第一标识,且第一标识对应的预设密码数据能解密成功第一加密数据。

设备端接收到上述第二认证请求后,利用预设密码数据解密第二加密数据,获得解密后的第一随机数和解密后的第二随机数,后续的,设备端通过判断解密后的第一随机数与第二认证请求中的第一随机数是否相同,并判断解密后的第二随机数与第二认证请求中的第二随机数是否相同,来确定第二认证请求是否未被篡改,当判断均相同时,设备端则可以确认第二认证请求未被篡改,此时,设备端可以继续执行后续的认证流程。

s205:判断第二认证请求中的第一随机数与本地存储的第一随机数是否相同;

s206:当判断第二认证请求中的第一随机数与本地存储的第一随机数相同时,向服务器发送第一认证回复,以通知服务器已认证通过。

其中,上述s205与图1中所示的s103相同,上述s206与图1中所示的s104相同。

本发明实施例中,上述第一加密数据、第二加密数据、以及后续提到的第三加密数据、第四加密数据生成时,所利用的加密算法均为对称加密算法,例如:aes(advancedencryptionstandard,高级加密标准)加密算法,des(dataencryptionalgorithm,数据加密算法),3des(tripledataencryptionalgorithm)加密算法。可以理解的是,对称密钥算法具有加密处理简单,加解密速度快等特点,对设备端的运算资源要求较小,在一定程度上对设备端的配置要求也较低。

为了更好的保证设备端与服务器之间通信的安全性,即通信过程中所传输的通信数据安全性,不被窃取、篡改。在一种实现方式中,在设备端与服务器之间双向认证通过后,设备端与服务器之间还需要协商通信过程中所需要使用的通信密钥,即后续提到的会话密钥,当会话密钥协商成功后,再建立通信连接,以确保通信安全。

具体的,所述第一认证回复中可以包括第二随机数和第三随机数,第三随机数为:设备端随机生成的字符串;

在所述向服务器发送第一认证回复(s104)的步骤之后,如图3所示,所述方法还可以包括:

s301:接收服务器发送的第二认证回复;第二认证回复为:服务器判断第一认证回复中的第二随机数与本地存储的第二随机数相同后所发送的回复,第二认证回复中包括:第三随机数、第四随机数以及加密密钥数据,其中,加密密钥数据为:服务器利用第一主密钥对会话密钥进行加密后生成的数据,第一主密钥为:服务器利用第一标识对应的预设密钥生成规则生成的密钥,会话密钥为:服务器随机生成的、用于对发送至设备端的通信数据进行加密的密钥;预设密钥生成规则为:利用第一随机数、第二随机数、第三随机数、第四随机数以及预设密码数据中的至少一个生成密钥的规则;

s302:判断第二认证回复中的第三随机数与本地存储的第三随机数是否相同;

s303:当判断第二认证回复中的第三随机数与本地存储的第三随机数相同时,利用预设密钥生成规则生成第二主密钥;

s304:利用第二主密钥解密加密密钥数据,获得解密后的会话密钥,解密后的会话密钥为:用于对发送至服务器的通信数据进行加密的密钥。

可以理解的是,设备端将包括第二随机数和第三随机数的第一认证回复发送至服务器后,服务器首先需要判断第一认证回复中的第二随机数与本地存储的第二随机数是否相同,以确定设备端的身份,即对设备端进行认证;当服务器判断第一认证回复中的第二随机数与本地存储的第二随机数相同时,即确认设备端认证通过,此时,服务器可以利用设备端对应的预设密钥生成规则,即第一标识对应的预设密钥生成规则生成第一主密钥,并利用第一主密钥对会话密钥进行加密,生成加密密钥数据,继而,向设备端发送包括第三随机数、第四随机数以及加密密钥数据第二认证回复。

设备端接收服务器发送的第二认证回复后,判断第二认证回复中的第三随机数与本地存储的第三随机数是否相同,以对服务器进行认证。当设备端判断第二认证回复中的第三随机数与本地存储的第三随机数相同时,设备端即可确认服务器认证通过,此时,设备端可以利用预设密钥生成规则生成第二主密钥,并利用上述第二主密钥解码上述加密密钥数据,获得解密后的会话密钥,即服务器与设备端所协商的会话密钥。可以理解的是,上述会话密钥为服务器随机生成的一串字符串。在一种实现方式中,上述会话密钥可以为服务器随机生成的32位的字符串。后续的,设备端可以利用上述会话密钥加密所要发送至服务器的通信数据,以确保通信数据的安全。

可以理解的是,当设备端与服务器之间所发送的第一认证请求、第二认证请求、第一认证回复以及第二认证回复均未被篡改时,上述第二主密钥与上述第一主密钥为相同的密钥,本发明实施例中的“第一主密钥”中的“第一”和“第二主密钥”中的“第二”仅仅用于从命名上区分不同的主密钥,并不具有任何限定意义。可以理解的,在一种实现方式中,上述第一主密钥可以理解为是上述设备端的本地所存储的主密钥;上述第二主密钥可以理解为是上述服务器的本地所存储的且与设备端的第一标识对应的主密钥。

上述预设密钥生成规则可以为:利用第一随机数、第二随机数、第三随机数、第四随机数以及预设密码数据中的至少一个生成密钥的规则;在一种实现方式中,可以利用预设的加密算法,对第一随机数、第二随机数、第三随机数、第四随机数以及预设密码数据中的至少一个进行加密,以生成主密钥。较优的,可以利用预设的加密算法,对第一随机数、第二随机数、第三随机数、第四随机数以及预设密码数据进行加密,以生成主密钥,上述主密钥可以包括第一主密钥和第二主密钥。上述预设密钥生成规则为服务器与设备端共知的规则。

可以理解的是,上述预设的加密算法可以为sha256算法、sha384算法、aes256算法等等。本发明实施例并不对上述预设的加密算法算法类型进行限定,凡是可以实现对数据进行对称加密的加密算法,均可以应用在本发明实施例中。上述sha256算法为一种计算目标数据的哈希值的算法,所计算出的哈希值为256位;上述sha384算法也为一种计算目标数据的哈希值的算法,所计算出的哈希值为384位;上述aes256算法为一种密钥位数为256位的对称加密算法。本发明实施例中,上述目标数据可以为第一随机数、第二随机数、第三随机数、第四随机数以及预设密码数据中的至少一个。

在一种实现方式中,当利用主密钥对会话密钥进行加密时,可以使用对称加密算法,例如:可以采用aes128加密算法,利用主密钥对会话密钥进行加密,上述主密钥可以包括第一主密钥和第二主密钥。

本发明实施例中,设备端与服务器之间协商会话密钥的过程中,也在互相对对方进行认证,在一定程度上,提高了设备端与服务器之间的通信安全。

在一种实现方式中,可以防止设备端与服务器进行通信所使用的密钥,即会话密钥协商过程中的信息被篡改的情况,具体的,所述第一认证回复中还可以包括第三加密数据,第三加密数据为:利用预设密码数据对第二随机数和第三随机数进行加密所生成的数据;

所述第二认证回复还可以包括第四加密数据,第四加密数据为:利用预设密码数据对第三随机数、第四随机数以及加密密钥数据进行加密所生成的数据;

在所述判断第二认证回复中的第三随机数与本地存储的第三随机数是否相同(s302)的步骤之前,所述方法还可以包括:

利用预设密码数据解密第四加密数据,获得解密后的第三随机数、解密后的第四随机数以及解密后的加密密钥数据;

判断解密后的第三随机数与第二认证回复中的第三随机数是否相同,且解密后的第四随机数与第二认证回复中的第四随机数是否相同,且解密后的加密密钥数据与第二认证回复中的加密密钥数据是否相同;

当判断均相同时,执行所述判断第二认证回复中的第三随机数与本地存储的第三随机数是否相同的步骤。

可以理解的是,上述预设密码数据为:设备端与服务器共知的,且与设备端存在对应关系的密码数据,上述预设密码数据可以是随机生成的一具有唯一性的数据,也可以是通过预定生成规则所生成的数据。

上述预设密码数据可以是设备端生成的数据,然后设备端将所生成的预设密码数据发送至服务器,服务器对应设备端的标识进行存储;也可以是服务器生成的并对应设备端的标识进行存储的数据,然后服务器将所生成的预设密码数据发送至上述标识对应的设备端,设备端进行存储;也可以是出除上述设备端和服务器外的其他设备生成的数据,上述其他设备将所生成的预设密码数据分别发送至上述设备端和服务器,以使上述设备端和服务器分别进行存储,等等,这都是可以的。其中,上述预设密码数据可以用“sharekey”标识。

在一种实现方式中,上述预定生成规则可以标识为:md5(md5(设备序列号+设备验证码)+混淆码)。具体的,可以理解为:首先对设备端所对应的设备序列号和设备验证码进行md5运算,获得一中间结果,然后再对所获得的中间结果以及设备端所对应的混淆码进行md5运算,获得最终结果,上述所获得的最终结果即为上述预设密码数据。其中,上述设备序列号可以为:设备端出厂时所被分配的具有唯一性的识别码,可以为一串字符串;上述设备验证码可以为:设备端出厂时,生产商内置于设备端的加密芯片中的,与上述设备序列号对应的一串字符串,具有唯一性;上述混淆码可以为:设备端出厂时,生产商为设备端所分配的一串具有唯一性的字符串。需要强调的是,上述设备序列号和设备验证码可以对外可见,上述混淆码对外不可见,上述“外”是相对于设备端的生产商而言的,设备端的生厂商可以认为为“内”。

设备端向服务器所发送的第一认证回复中可以还包括第三加密数据,此时,当服务器接收到上述还包括第三加密数据的第一认证回复,可以首先利用该设备端对应的预设密码数据解密上述第三加密数据,获得解密后的第二随机数和解密后的第三随机数。后续的,服务器判断第一认证回复中的第二随机数与解密后的第二随机数是否相同,并判断第一认证回复中的第三随机数与解密后的第三随机数是否相同,以确定第一认证回复中的数据是否被篡改;当服务器判断第一认证回复中的第二随机数与解密后的第二随机数相同,并判断第一认证回复中的第三随机数与解密后的第三随机数相同时,可以确定第一认证回复中的数据未被篡改。此时,服务器可以利用第一标识对应的预设密钥生成规则生成第一主密钥,即利用设备端对应的预设密钥生成规则生成第一主密钥,并利用第一主密钥加密会话密钥,获得加密密钥数据;服务器利用预设密码数据对第三随机数、第四随机数以及加密密钥数据进行加密,生成第四加密数据。后续的,服务器将包括第三随机数、第四随机数、加密密钥数据以及第四加密数据的第二认证回复发送至设备端。

设备端接收到上述第二认证回复后,可以利用预设密码数据解密第四加密数据,获得解密后的第三随机数、解密后的第四随机数以及解密后的加密密钥数据,并判解密后的第三随机数与第二认证回复中的第三随机数是否相同,且解密后的第四随机数与第二认证回复中的第四随机数是否相同,且解密后的加密密钥数据与第二认证回复中的加密密钥数据是否相同;以确定第二认证回复中的数据是否被篡改,当均判断为相同时,设备端确定第二认证回复中的数据未被篡改。此时,设备端可以继续执行后续的流程。

当设备端与服务器之间协商好会话密钥后,则设备端与服务器之间可以利用所协商的会话密钥加密所需发送的通信数据。在一种实现方式中,在所述利用主密钥解密加密密钥数据,获得解密后的会话密钥的步骤之后,所述方法还可以包括:

获得待发送的通信数据;

利用解密后的会话密钥加密待发送的通信数据,获得加密通信数据;

向服务器发送加密通信数据。

在一种实现方式中,为了保证设备端与服务器之间通信的安全性,服务器可以针对会话密钥设置有效期限,在有效期内,设备端与服务器之间通信可以使用上述会话密钥,当超过有效期后,设备端与服务器之间需要重新协商新的会话密钥。在一种实现方式中,在所述向服务器发送加密通信数据的步骤之后,所述方法还可以包括:

接收服务器发送的第一过期信息,其中,第一过期信息为:服务器在确定解密后的会话密钥为无效后所发送的信息;

向服务器发送会话密钥生成请求,其中,会话密钥生成请求中包括:第一标识以及第五加密数据,其中,第五加密数据为:利用第二主密钥加密第五随机数所生成的数据,第五随机数为:设备端随机生成的字符串;

接收服务器发送的会话密钥生成回复,其中,会话密钥生成回复为:服务器确定第一标识对应的第一主密钥为有效后所发送的回复,会话密钥生成回复中包括第六加密数据,第六加密数据为:利用主密钥加密第五随机数、第六随机数及新的会话密钥所生成的数据,第六随机数为:服务器随机生成的字符串,新的会话密钥为:服务器随机生成的、且用于对发送至设备端的通信数据进行加密的密钥;

利用第二主密钥解密第六加密数据,获得解密后的第五随机数、解密后的第六随机数以及解密后的新的会话密钥;

判断解密后的第五随机数与本地存储的第五随机数是否相同;

当判断相同时,将本地存储的会话密钥,更新为解密后的新的会话密钥;

向服务器发送会话密钥获得回复,以通知服务器自身已获得新的会话密钥,会话密钥获得回复中包含:第一标识和第七加密数据,第七加密数据为:利用第二主密钥加密第六随机数所生成的数据。

可以理解的是,当服务器接收到设备端发送的加密通信数据后,可以首先判断设备端对应的会话密钥是否为有效,当判断为有效时,可以利用设备端对应的会话密钥对加密通信数据进行解密,获得通信数据,并基于该通信数据与设备端进行后续通信过程。当判断为无效时,服务器向设备端发送第一过期信息,以通知设备端会话密钥无效。此时,设备端可以继续与服务器协商新的会话密钥。设备端向服务器发送携带第一标识以及第五加密数据的会话密钥生成请求。

在一种实现方式中,服务器可以在接收到会话密钥生成请求后,确定会话密钥生成请求的接收时间,对比上述接收时间与会话密钥的有效期限,确定上述接收时间是否位于有效期限内,当上述接收时间位于有效期限内,即可以确定会话密钥为有效,当上述接收时间不位于有效期限内,即可以确定会话密钥为无效。

服务器接收到上述会话密钥生成请求后,可以首先判断第一标识对应的第一主密钥是否有效,即判断设备端对应的第一主密钥是否有效,也即判断设备端的第二主密钥是否有效,当判断为有效时,服务器向设备端发送会话密钥生成回复,其中,会话密钥生成回复中包括第六加密数据,即加密后的第五随机数、第六随机数以及新的会话密钥。在一种实现方式中,上述第六加密数据可以是服务器采用aes128加密算法,利用设备端对应的第一主密钥对第五随机数、第六随机数以及新的会话密钥加密所生成的数据。

设备端接收到上述会话密钥生成回复后,利用第二主密钥对第六加密数据进行解密,例如,当服务器采用aes128加密算法对第六加密数据进行加密时,设备端利用第二主密钥对第六加密数据进行解密时,可以采用aes128加密算法对应的解密算法,利用第二主密钥对第六加密数据进行解密。获得解密后的第五随机数、解密后的第六随机数以及解密后的新的会话密钥。设备端首先判断解密后的第五随机数与本地存储的第五随机数是否相同,当判断相同时,可以确认服务器认证通过,此时,设备端可以将本地存储的会话密钥更新为新的会话密钥,并向服务器发送会话密钥获得回复,以通知服务器自身已获得新的会话密钥。

可以理解的是,上述会话密钥获得回复中需要携带第一标识和第七加密数据。在一种实现方式中,第七加密数据可以为:设备端采用aes128加密算法,利用第二主密钥加密第六随机数所生成的数据。当服务器接收到上述会话密钥获得回复后,服务器可以基于第一标识对应的第一主密钥解密上述第七加密数据,获得解密后的第六随机数,服务器判断解密后的第六随机数与本地存储的第六随机数是否相同,当判断为相同时,服务器可以确定对设备端认证通过。后续的,设备端与服务器之间可以利用上述新的会话密钥进行通信。

在一种实现方式中,服务器确定第一标识对应的第一主密钥为无效,即确定设备端对应的第一主密钥为无效,即确定设备端的第二主密钥时,设备端与服务器之间需要重新进行双向认证。具体的,在所述向服务器发送会话密钥生成请求的步骤之后,所述方法还可以包括:

接收服务器发送的第二过期信息,第二过期信息为:服务器确定第一标识对应的第一主密钥为无效后所发送的信息;重新执行所述向服务器发送第一认证请求的步骤。上述服务器确定第一标识对应的第一主密钥为无效,即为确定设备端的第二主密钥为无效。

在一种实现方式中,服务器可以在接收到会话密钥生成请求后,确定会话密钥生成请求的接收时间,对比上述接收时间与第一标识对应的第一主密钥的有效期限,确定上述接收时间是否位于有效期限内,当上述接收时间位于有效期限内,即可以确定第一标识对应的第一主密钥为有效,当上述接收时间不位于有效期限内,即可以确定第一标识对应的第一主密钥为无效。

在一种实现方式中,上述第一认证请求、第二认证请求、第一认证回复、第二认证回复中均可以包序号,用于防重放。可以理解的是,第一认证请求中还可以包括第一包序号,当服务器接收到上述第一认证请求后,可以对应设备端的第一标识存储上述第一包序号;当服务器基于上述第一认证请求,向设备端发送第二认证请求时,上述第二认证请求中还可以包括第二包序号,当设备端接收到上述第二认证请求后,存储上述第二包序号;后续的,当设备端基于上述第二认证请求,向服务器发送第一认证回复时,上述第一认证回复中还包括第三包序号,当服务器接收到上述第一认证回复后,可以判断第三包序号是否大于第一包序号,当判断大于时,再执行判断第一认证回复中的第二随机数与本地存储的第二随机数是否相同的步骤;后续的,当服务器基于上述第一认证回复向设备端发送第二认证回复时,第二认证回复中还可以包括第四包序号;当设备端接收上述第二认证回复后,可以首先判断第四包序号是否大于第二包序号,当判断大于时,再执行判断第二认证回复中的第三随机数与本地存储的第三随机数是否相同。

可以理解的是,本发明实施例中涉及到对数据加密的地方,均可以使用对称加密算法,以减少整个流程中对设备端与服务器的运算的负载压力。

相应于上述方法实施例,本发明实施例还提供了一种认证方法,可以应用于服务器,可以包括如下步骤:

s401:接收设备端发送的第一认证请求,其中,第一认证请求中包括:设备端的第一标识和第一随机数,第一随机数为:设备端随机生成的字符串;

当设备端需要与服务器进行通信连接时,设备端与服务器之间需要首先进行身份认证,当设备端与服务器之间身份均认证通过后,才建立通信连接,并后续的基于所建立的通信连接,进行通信。

当设备端需要与服务器进行通信连接时,设备端首先向服务器发送包括设备端的第一标识和第一随机数的认证请求,此处可以称为第一认证请求。

服务器接收设备端发送的第一认证请求,并基于上述第一认证请求执行后续认证流程。

上述第一标识可以为设备端的设备序列号、名称等等可以唯一确定设备端的信息。上述设备序列号也可以理解为:设备端出厂时所被分配的具有唯一性的识别码。

可以理解的是,上述第一随机数为设备端随机生成的一串字符串,具有唯一性,设备端在生成上述第一随机数后,可以将上述第一随机数存储于自身的本地。

s402:判断本地是否存储有第一标识;

服务器接收上述第一认证请求,将上述第一认证请求中的第一标识与本地存储的标识进行比对,当服务器确定本地存储有与上述第一标识相同的标识,即服务器确定本地存储有上述第一标识时,可以确定对设备端认证通过继续后续认证流程。当服务器确定本地未存储有与上述第一标识相同的标识,即服务器确定本地未存储有上述第一标识时,可以确定对设备端认证未通过,此时,可以直接结束认证流程。

s403:当判断本地存储有第一标识时,向设备端发送第二认证请求,其中,第二认证请求中包括:第一随机数和第二随机数,第二随机数为:服务器随机生成的字符串;

可以理解的是,当服务器判断本地存储有第一标识时,向设备端发送第二认证请求,以使设备端确定服务器已认证通过自身,并以使设备端可以基于上述第二认证请求对服务器进行认证。

在一种实现方式中,设备端可以通过判断第二认证请求中的第一随机数与本地存储的第一随机数是否相同,来对服务器进行认证。当设备端判断第二认证请求中的第一随机数与本地存储的第一随机数相同时,即确定服务器认证通过。此时,设备端可以继续向服务器发送第一认证回复,以通知服务器已认证通过。

上述第二随机数为服务器随机生成的一串字符串,具有唯一性,服务器在生成上述第二随机数后,可以将上述第二随机数存储于自身的本地。

s404:接收设备端发送的第一认证回复,以确认自身已认证通过,其中,第一认证回复为:设备端基于第二认证请求中的第一随机数,对服务器进行认证并认证通过后所发送的回复。

当服务器接收到设备端发送的第一认证回复后,即可确定自身已被设备端认证通过。

应用本发明实施例,服务器可以通过设备端所发送的第一认证请求中的第一标识,对设备端进行认证;设备端可以通过服务器所发送的第二认证请求中的第一随机数,对服务器进行认证,进而实现设备端与服务器之间的双向认证。在整个认证过程中无需用到设备端和服务器的数字证书,即设备端本地无需提供存储空间,以用于存储表明自身身份的数字证书,且服务器本地也无需提供存储空间,以用于存储表明自身身份的数字证书,实现了在一定程度上降低对设备端以及服务器的存储空间的要求。另外的,无需花费费用向ca中心申请数字证书,在一定程度上降低了设备端的生产成本,以及降低了服务器的生产成本。

在一种实现方式中,为了避免在设备端与服务器的认证过程中,所传输的信息被篡改,其中,上述所传输的信息可以包括第一认证请求、第二认证请求;并为了更好的保障设备端与服务器的设备安全。具体的,所述第一认证请求中还可以包括有第一加密数据,第一加密数据为:利用预设密码数据对第一标识和第一随机数进行加密所生成的数据;

所述第二认证请求中还可以包括有第二加密数据,第二加密数据为:利用预设密码数据对第一随机数和第二随机数进行加密所生成的数据;

如图5所示,本发明实施例所提供的认证方法,可以包括如下步骤:

s501:接收设备端发送的第一认证请求,其中,第一认证请求中包括:设备端的第一标识和第一随机数,第一随机数为:设备端随机生成的字符串;

s502:判断本地是否存储有第一标识;当判断相同时,执行s503;

其中,上述s501与图4中的s401相同,上述s502与图4中的s402相同。

s503:确定第一标识对应的预设密码数据;

s504:利用所确定的预设密码数据解密第一认证请求中的第一加密数据,获得解密后的第一标识和解密后的第一随机数;

s505:判断解密后的第一标识与第一认证请求中的第一标识是否相同,且判断解密后的第一随机数与第一认证请求中的第一随机数是否相同;当判断均为相同时,执行s506;

上述预设密码数据为设备端与服务器共知的,且与设备端存在对应关系的密码数据,上述预设密码数据可以是随机生成的一具有唯一性的数据,也可以是通过预定生成规则所生成的数据。

上述预设密码数据可以是设备端生成的数据,然后设备端将所生成的预设密码数据发送至服务器,服务器对应设备端的标识进行存储;也可以是服务器生成的并对应设备端的标识进行存储的数据,然后服务器将所生成的预设密码数据发送至上述标识对应的设备端,设备端进行存储;也可以是出除上述设备端和服务器外的其他设备生成的数据,上述其他设备将所生成的预设密码数据分别发送至上述设备端和服务器,以使上述设备端和服务器分别进行存储,等等,这都是可以的。其中,上述预设密码数据可以用“sharekey”标识。

在一种实现方式中,上述预定生成规则可以标识为:md5(md5(设备序列号+设备验证码)+混淆码)。具体的,可以理解为:首先对设备端所对应的设备序列号和设备验证码进行md5运算,获得一中间结果,然后再对所获得的中间结果以及设备端所对应的混淆码进行md5运算,获得最终结果,上述所获得的最终结果即为上述预设密码数据。其中,上述设备序列号可以为:设备端出厂时所被分配的具有唯一性的识别码,可以为一串字符串;上述设备验证码可以为:设备端出厂时,生产商内置于设备端的加密芯片中的,与上述设备序列号对应的一串字符串,具有唯一性;上述混淆码可以为:设备端出厂时,生产商为设备端所分配的一串具有唯一性的字符串。需要强调的是,上述设备序列号和设备验证码可以对外可见,上述混淆码对外不可见,上述“外”是相对于设备端的生产商而言的,设备端的生厂商可以认为为“内”。

当服务器接收到上述第一认证请求后,首先将第一认证请求中的第一标识与本地存储的标识进行比对,以判断本地是否存储有上述第一标识。当判断本地存储有上述第一标识时,可以继续确定上述第一标识对应的预设密码数据,并利用上述预设密码数据解密上述第一加密数据,获得解密后的第一标识和解密后的第一随机数,进一步的,服务器判断解密后的第一标识与第一认证请求中的第一标识是否相同,并判断解密后的第一随机数与第一认证请求中的第一随机数是否相同。当判断均相同时,确认第一认证请求中的信息未被篡改,此时,服务器可以继续执行后续认证流程。

可以理解的是,服务器中可以存储有多个预设密码数据,每一预设密码数据可以对应一设备端,即设备端与预设密码数据可以存在一一对应关系。服务器利用设备端的第一标识确定出预设密码数据后,并利用所确定的预设密码数据对第一加密数据解密成功,此时,可以认为服务器对设备端进行了一次认证,发送上述第一认证请求的设备端为真正的设备端发送的,上述真正的设备端即为:服务器中存储有该设备端的第一标识,且第一标识对应的预设密码数据能解密成功第一加密数据。

s506:向设备端发送第二认证请求,其中,第二认证请求中包括:第一随机数和第二随机数,第二随机数为:服务器随机生成的字符串;

设备端接收到上述第二认证请求后,可以利用预设密码数据解密第二加密数据,获得解密后的第一随机数和解密后的第二随机数,后续的,设备端通过判断解密后的第一随机数与第二认证请求中的第一随机数是否相同,并判断解密后的第二随机数与第二认证请求中的第二随机数是否相同,来确定第二认证请求是否未被篡改,当判断均相同时,设备端则可以确认第二认证请求未被篡改,此时,设备端可以继续执行后续的认证流程,即判断第二认证请求中的第一随机数与本地存储的第一随机数是否相同,当判断相同时,向服务器发送用于通知服务器已认证通过的第一认证回复。

s507:接收设备端发送的第一认证回复,以确认自身已认证通过,其中,第一认证回复为:设备端基于第二认证请求中的第一随机数,对服务器进行认证并认证通过后所发送的回复。

服务器接收设备端发送的第一认证回复后,服务器可以确认自身已被设备端认证通过。可以理解的是,为了防止上述第一认证回复被篡改,设备端可以发送加密后的第一认证回复。此时,服务器可以利用与设备端加密上述第一认证回复的加密算法对应的解密算法,解密上述第一认证回复。

本发明实施例中,上述第一加密数据、第二加密数据、以及后续提到的第三加密数据、第四加密数据生成时,所利用的加密算法均可以为对称加密算法,例如:aes(advancedencryptionstandard,高级加密标准)加密算法,des(dataencryptionalgorithm,数据加密算法),3des(tripledataencryptionalgorithm)加密算法。可以理解的是,对称密钥算法具有加密处理简单,加解密速度快等特点,对设备端的运算资源要求较小,在一定程度上对设备端的配置要求也较低。

为了更好的保证设备端与服务器之间通信的安全性,即通信过程中所传输的通信数据安全性,不被窃取、篡改。在一种实现方式中,在设备端与服务器之间双向认证通过后,设备端与服务器之间还需要协商通信过程中所需要使用的密钥,即后续提到的会话密钥,当会话密钥协商成功后,再建立通信连接,以确保通信安全。

具体的,所述第一认证回复中可以包括第二随机数和第三随机数,第三随机数为:设备端随机生成的字符串;

在所述接收设备端发送的第一认证回复的步骤之后,如图6所示,所述方法还可以包括:

s601:判断第一认证回复中的第二随机数与本地存储的第二随机数是否相同;

s602:当判断第一认证回复中的第二随机数与本地存储的第二随机数相同时,利用第一标识对应的预设密钥生成规则生成第一主密钥,其中,预设密钥生成规则为:利用第一随机数、第二随机数、第三随机数、第四随机数以及预设密码数据中的至少一个生成密钥的规则,第四随机数为:服务器随机生成的字符串,预设密码数据为:第一标识对应的预设密码数据;

s603:利用第一主密钥对会话密钥进行加密,生成加密密钥数据,其中会话密钥为:服务器随机生成的、用于对发送至设备端的通信数据进行加密的密钥;

s604:向设备端发送第二认证回复,其中,第二认证回复中包括:第三随机数、第四随机数以及加密密钥数据。

本发明实施例中,服务器接收设备端发送的包括第二随机数和第三随机数的第一认证回复后,首先判断第一认证回复中的第二随机数与本地存储的第二随机数是否相同,以确定设备端的身份,即对设备端进行认证;当服务器判断第一认证回复中的第二随机数与本地存储的第二随机数相同时,即确认设备端认证通过,此时,服务器可以利用设备端对应的预设密钥生成规则,即第一标识对应的预设密钥生成规则生成第一主密钥,并利用第一主密钥对会话密钥进行加密,生成加密密钥数据,继而,向设备端发送包括第三随机数、第四随机数以及加密密钥数据第二认证回复。

上述预设密钥生成规则可以为:利用第一随机数、第二随机数、第三随机数、第四随机数以及预设密码数据中的至少一个生成密钥的规则;在一种实现方式中,可以利用预设的加密算法,对第一随机数、第二随机数、第三随机数、第四随机数以及预设密码数据中的至少一个进行加密,以生成主密钥。较优的,可以利用预设的加密算法,对第一随机数、第二随机数、第三随机数、第四随机数以及预设密码数据进行加密,以生成主密钥,上述主密钥可以包括第一主密钥和第二主密钥。

可以理解的是,上述预设的加密算法可以为sha256算法、sha384算法、aes256算法等等。本发明实施例并不对上述预设的加密算法算法类型进行限定,凡是可以实现对数据进行对称加密的加密算法,均可以应用在本发明实施例中。上述sha256算法为一种计算目标数据的哈希值的算法,所计算出的哈希值为256位;上述sha384算法也为一种计算目标数据的哈希值的算法,所计算出的哈希值为384位;上述aes256算法为一种密钥位数为256位的对称加密算法。本发明实施例中,上述目标数据可以为第一随机数、第二随机数、第三随机数、第四随机数以及预设密码数据中的至少一个。

在一种实现方式中,当服务器利用第一主密钥对会话密钥进行加密时,可以使用对称加密算法,例如:可以采用aes128加密算法,利用第一主密钥对会话密钥进行加密。在一种实现方式中,上述会话密钥可以为服务器随机生成的32位的字符串。

本发明实施例中,设备端与服务器之间协商会话密钥的过程中,也在互相对对方进行认证,在一定程度上,提高了设备端与服务器之间的通信安全。

可以理解的是,服务器中可以对应不同的设备端存储不同的预设密钥生成规则。可以理解的是,服务器对应设备端所存储的预设密钥生成规则与设备端自身所存储的预设密钥生成规则相同。另外的,服务器中可以对应不同的设备端存储不同的预设密码数据。可以理解的是,服务器对应设备端所存储的预设密码数据与设备端自身所存储的预设密码数据相同。

在一种实现方式中,可以防止设备端与服务器进行通信密钥协商过程中的信息被篡改的情况,具体的,所述第一认证回复中还可以包括第三加密数据,第三加密数据为:利用预设密码数据对第二随机数和第三随机数进行加密所生成的数据;

所述第二认证回复还可以包括第四加密数据,第四加密数据为:利用预设密码数据对第三随机数、第四随机数以及加密密钥数据进行加密所生成的数据;

在所述利用第一标识对应的预设密钥生成规则生成第一主密钥的步骤之前,所述方法还可以包括:

利用预设密码数据解密第三加密数据,获得解密后的第二随机数和解密后的第三随机数;

判断解密后的第二随机数与第一认证回复中的第二随机数是否相同,且判断解密后的第三随机数与第一认证回复中的第三随机数是否相同;

当判断均相同时,执行所述利用第一标识对应的预设密钥生成规则生成第一主密钥的步骤。

为了确定上述第二认证回复中的信息未被篡改,服务器接收到上述第二认证回复后,首先利用第一标识对应的预设密码数据解密第三加密数据,获得解密后的第二随机数和解密后的第三随机数。后续的,服务器判断解密后的第二随机数与第一认证回复中的第二随机数是否相同,且判断解密后的第三随机数与第一认证回复中的第三随机数是否相同;当判断均相同时,即确定上述第二认证回复中的信息未被篡改。后续的,再生成第一主密钥。

当设备端与服务器之间协商好会话密钥后,则设备端与服务器之间可以利用所协商的会话密钥加密所需发送的通信数据。在一种实现方式中,在所述向设备端发送第二认证回复的步骤之后,所述方法还可以包括:

接收设备端发送的加密通信数据,其中,加密通信数据为:设备端利用会话密钥对通信数据进行加密后生成的数据;

利用设备端对应的会话密钥解密加密通信数据,获得解密后的通信数据。

在一种情况中,服务器可以针对每一设备端的会话密钥设置有效期限,在有效期限内,会话密钥为有效,此时,服务器可以利用会话密钥解密加密通信数据;当不在有效期限内时,会话密钥为无效,此时,服务器会通知设备端会话密钥无效,此时,设备端与服务器之间需要重新协商新的会话密钥。在所述利用设备端对应的会话密钥解密加密通信数据,获得解密后的通信数据的步骤之前,所述方法还可以包括:

确定接收加密通信数据的第一接收时间;

判断第一接收时间是否位于设备端对应的会话密钥的有效期限内;

当判断接收时间位于设备端对应的会话密钥的有效期限内,表明设备端对应的会话密钥为有效,执行所述利用设备端对应的会话密钥解密加密通信数据,获得解密后的通信数据的步骤;

当判断接收时间不位于设备端对应的会话密钥的有效期限内,表明设备端对应的会话密钥为无效,向设备端发送第一过期信息,以通知设备端会话密钥为无效;

接收设备端发送的会话密钥生成请求,其中,会话密钥生成请求中包括:第一标识以及第五加密数据,其中,第五加密数据为:利用设备端的第二主密钥加密第五随机数所生成的数据,第五随机数为:设备端随机生成的字符串,第二主密钥为:设备端利用预设密钥生成规则生成的密钥;

确定接收会话密钥生成请求的第二接收时间;

判断第二接收时间是否位于第一标识对应的第一主密钥的有效期限内;

当判断第二接收时间位于第一标识对应的第一主密钥的有效期限内时,表明第一标识对应的第一主密钥为有效,利用第一标识对应的第一主密钥解密第五加密数据,获得解密后的第五随机数;

利用第一标识对应的第一主密钥加密第五随机数、第六随机数及新的会话密钥,生成第六加密数据,第六随机数为:服务器随机生成的字符串,新的会话密钥为:服务器随机生成的、且用于对发送至设备端的通信数据进行加密的密钥;

向设备端发送会话密钥生成回复,其中,会话密钥生成回复中包括第六加密数据;

接收设备端发送的会话密钥获得回复,其中,会话密钥获得回复为:设备端将本地存储的会话密钥更新为新的会话密钥后所发送的回复。

当服务器确定上述会话密钥无效时,会向设备端发送第一过期信息,以通知设备端会话密钥为无效;后续的,设备端接收到上述第一过期信息后,会向服务器发送会话密钥生成请求,其中,上述会话密钥生成请求中包括第一标识以及第五加密数据;上述第五加密数据为利用设备端的主密钥加密第五随机数所生成的数据。

服务器接收到上述会话密钥生成请求后,可以首先判断第一标识对应的第一主密钥是否有效,即会话密钥生成请求的第二接收时间是否位于第一标识对应的第一主密钥的有效期限内,当判断为有效,即第二接收时间位于第一标识对应的第一主密钥的有效期限内时,服务器向设备端发送会话密钥生成回复,其中,会话密钥生成回复中包括第六加密数据,即加密后的第五随机数、第六随机数以及新的会话密钥。在一种实现方式中,上述第六加密数据可以是服务器采用aes128加密算法,利用设备端对应的主密钥对第五随机数、第六随机数以及新的会话密钥加密所生成的数据。

可以理解的是,服务器判断第一标识对应的第一主密钥是否有效时,即在判断设备端的第二主密钥是否有效。当服务器判断第一标识对应的第一主密钥有效时,即判断设备端的第二主密钥有效;当服务器判断第一标识对应的第一主密钥无效时,即判断设备端的第二主密钥无效。

当设备端接收到上述会话密钥生成回复,并更新自身存储的会话密钥为上述新的会话密钥后,会向服务器发送会话密钥获得回复,以通知服务器自身已获得上述新的会话密钥。服务器接收上述会话密钥获得回复,并确定设备端已获得上述新的会话密钥。

当服务器确定第一标识对应的第一主密钥为无效,即会话密钥生成请求的第二接收时间不位于第一标识对应的第一主密钥的有效期限内,所述方法还包括:

当判断第二接收时间不位于第一标识对应的第一主密钥的有效期限内时,向设备端发送第二过期信息,以使设备端设备端接收第二过期信息后,确定自身的第二主密钥为无效。

后续的,当服务器重新接收到设备端发送的第一认证请求后,继续执行认证流程。

在一种实现方式中,上述第一认证请求、第二认证请求、第一认证回复、第二认证回复中均可以包序号,用于防重放。可以理解的是,第一认证请求中还可以包括第一包序号,当服务器接收到上述第一认证请求后,可以对应设备端存储上述第一包序号;当服务器基于上述第一认证请求,向设备端发送第二认证请求时,上述第二认证请求中还可以包括第二包序号,当设备端接收到上述第二认证请求后,存储上述第二包序号;后续的,当设备端基于上述第二认证请求,向服务器发送第一认证回复时,上述第一认证回复中还包括第三包序号,当服务器接收到上述第一认证回复后,可以判断第三包序号是否大于第一包序号,当判断大于时,再执行判断第一认证回复中的第二随机数与本地存储的第二随机数是否相同的步骤;后续的,当服务器基于上述第一认证回复向设备端发送第二认证回复时,第二认证回复中还可以包括第四包序号;当设备端接收上述第二认证回复后,可以判断第四包序号是否大于第二包序号,当判断大于时,再执行判断第二认证回复中的第三随机数与本地存储的第三随机数是否相同。

可以理解的是,本发明实施例中涉及到对数据加密的地方,均可以使用对称加密算法,以减少整个流程中对设备端与服务器的运算的负载压力。

相应于上述方法实施例,本发明实施例提供了一种认证系统,如图7所示,所述系统可以包括设备端710和服务器720;

所述设备端710,用于向所述服务器发送第一认证请求,其中,所述第一认证请求中包括:所述设备端的第一标识和第一随机数,所述第一随机数为:所述设备端随机生成的字符串;

所述服务器720,用于接收所述设备端发送的第一认证请求;判断本地是否存储有所述第一标识;当判断本地存储有所述第一标识时,向所述设备端发送第二认证请求,其中,所述第二认证请求中包括:所述第一随机数和第二随机数,所述第二随机数为:所述服务器随机生成的字符串;

所述设备端710,还用于接收所述服务器发送的第二认证请求,判断所述第二认证请求中的第一随机数与本地存储的第一随机数是否相同;当判断所述第二认证请求中的第一随机数与本地存储的第一随机数相同时,向所述服务器发送第一认证回复,以通知所述服务器已认证通过。

其中,上述服务器720可以与一个或多个设备端710进行通信连接,并且,上述服务器720可以同时与一个或多个设备端710进行认证。

应用本发明实施例,服务器可以通过设备端所发送的第一认证请求中的第一标识,对设备端进行认证;设备端可以通过服务器所发送的第二认证请求中的第一随机数,对服务器进行认证,进而实现设备端与服务器之间的双向认证。在整个认证过程中无需用到设备端和服务器的数字证书,即设备端本地无需提供存储空间,以用于存储表明自身身份的数字证书,且服务器本地也无需提供存储空间,以用于存储表明自身身份的数字证书,实现了在一定程度上降低对设备端以及服务器的存储空间的要求。另外的,无需花费费用向ca中心申请数字证书,在一定程度上降低了设备端的生产成本,以及降低了服务器的生产成本。

在一种实现方式中,所述第一认证请求中还包括有第一加密数据,所述第一加密数据为:利用预设密码数据对所述第一标识和第一随机数进行加密所生成的数据;

所述第二认证请求中还包括有第二加密数据,所述第二加密数据为:利用所述预设密码数据对所述第一随机数和所述第二随机数进行加密所生成的数据;

所述服务器720,还用于在所述向所述设备端发送第二认证请求之前,确定所述第一标识对应的预设密码数据;利用所确定的预设密码数据解密所述第一认证请求中的第一加密数据,获得解密后的第一标识和解密后的第一随机数;判断解密后的第一标识与所述第一认证请求中的第一标识是否相同,且判断解密后的第一随机数与所述第一认证请求中的第一随机数是否相同;当判断均为相同时,执行所述向所述设备端发送第二认证请求;

所述设备端710,还用于在所述判断所述第二认证请求中的第一随机数与本地存储的第一随机数是否相同之前,利用所述预设密码数据,解密所述第二加密数据,获得解密后的第一随机数和解密后的第二随机数;判断解密后的第一随机数与所述第二认证请求中的第一随机数是否相同,并判断解密后的第二随机数与所述第二认证请求中的第二随机数是否相同;当判断均相同时,执行所述判断所述第二认证请求中的第一随机数与本地存储的第一随机数是否相同。

在一种实现方式中,所述第一认证回复中包括所述第二随机数和第三随机数,所述第三随机数为:所述设备端随机生成的字符串;

所述服务器720,还用于在所述接收所述设备端发送的第一认证回复之后,判断所述第一认证回复中的第二随机数与本地存储的第二随机数是否相同;当判断所述第一认证回复中的第二随机数与本地存储的第二随机数相同时,利用所述第一标识对应的预设密钥生成规则生成第一主密钥;利用所述第一主密钥对会话密钥进行加密,生成加密密钥数据;向所述设备端发送第二认证回复;其中,所述预设密钥生成规则为:利用所述第一随机数、所述第二随机数、所述第三随机数、第四随机数以及预设密码数据中的至少一个生成密钥的规则,所述第四随机数为:所述服务器随机生成的字符串,所述预设密码数据为:所述第一标识对应的预设密码数据;所述会话密钥为:所述服务器随机生成的、用于对发送至所述设备端的通信数据进行加密的密钥;所述第二认证回复中包括:所述第三随机数、所述第四随机数以及所述加密密钥数据;

所述设备端710,还用于在所述向所述服务器发送第一认证回复之后,接收所述服务器发送的第二认证回复,判断所述第二认证回复中的第三随机数与本地存储的第三随机数是否相同;当判断所述第二认证回复中的第三随机数与本地存储的第三随机数相同时,利用所述预设密钥生成规则生成第二主密钥;利用所述第二主密钥解密所述加密密钥数据,获得解密后的会话密钥,所述解密后的会话密钥为:用于对发送至所述服务器的通信数据进行加密的密钥。

在一种实现方式中,所述第一认证回复中还包括第三加密数据,所述第三加密数据为:利用所述预设密码数据对所述第二随机数和所述第三随机数进行加密所生成的数据;

所述第二认证回复还包括第四加密数据,所述第四加密数据为:利用所述预设密码数据对所述第三随机数、所述第四随机数以及所述加密密钥数据进行加密所生成的数据;

所述服务器720,还用于在所述利用所述第一标识对应的预设密钥生成规则生成第一主密钥之前,利用所述预设密码数据解密所述第三加密数据,获得解密后的第二随机数和解密后的第三随机数;判断解密后的第二随机数与所述第一认证回复中的第二随机数是否相同,且判断解密后的第三随机数与所述第一认证回复中的第三随机数是否相同;当判断均相同时,执行所述利用所述第一标识对应的预设密钥生成规则生成第一主密钥;

所述设备端710,还用于在所述判断所述第二认证回复中的第三随机数与本地存储的第三随机数是否相同之前,利用所述预设密码数据解密所述第四加密数据,获得解密后的第三随机数、解密后的第四随机数以及解密后的加密密钥数据;判断解密后的第三随机数与所述第二认证回复中的第三随机数是否相同,且解密后的第四随机数与所述第二认证回复中的第四随机数是否相同,且解密后的加密密钥数据与所述第二认证回复中的加密密钥数据是否相同;当判断均相同时,执行所述判断所述第二认证回复中的第三随机数与本地存储的第三随机数是否相同。

在一种实现方式中,所述设备端710,还用于在所述利用所述第二主密钥解密所述加密密钥数据,获得解密后的会话密钥之后,获得待发送的通信数据;利用所述解密后的会话密钥加密所述待发送的通信数据,获得加密通信数据;向所述服务器发送所述加密通信数据;

所述服务器720,还用于在所述向所述设备端发送第二认证回复之后,接收所述设备端发送的加密通信数据,其中,所述加密通信数据为:所述设备端利用所述会话密钥对通信数据进行加密后生成的数据;利用所述设备端对应的会话密钥解密所述加密通信数据,获得解密后的通信数据。

在一种实现方式中,所述服务器720,还用于在所述利用所述设备端对应的会话密钥解密所述加密通信数据,获得解密后的通信数据之前,确定接收所述加密通信数据的第一接收时间;判断所述第一接收时间是否位于所述设备端对应的会话密钥的有效期限内;当判断所述接收时间位于所述设备端对应的会话密钥的有效期限内,表明所述设备端对应的会话密钥为有效,执行所述利用所述设备端对应的会话密钥解密所述加密通信数据,获得解密后的通信数据;当判断所述接收时间不位于所述设备端对应的会话密钥的有效期限内,表明所述设备端对应的会话密钥为无效,向所述设备端发送第一过期信息,以通知所述设备端所述会话密钥为无效;

所述设备端710,还用于在所述向所述服务器发送所述加密通信数据之后,接收所述服务器发送的第一过期信息;向所述服务器发送会话密钥生成请求,其中,所述会话密钥生成请求中包括:所述第一标识以及第五加密数据,其中,所述第五加密数据为:利用所述第二主密钥加密第五随机数所生成的数据,所述第五随机数为:所述设备端随机生成的字符串;

所述服务器720,还用于接收所述设备端发送的会话密钥生成请求;确定接收所述会话密钥生成请求的第二接收时间;判断所述第二接收时间是否位于所述第一标识对应的第一主密钥的有效期限内;当判断所述第二接收时间位于所述第一标识对应的第一主密钥的有效期限内时,表明所述第一标识对应的第一主密钥为有效,利用所述第一标识对应的第一主密钥解密所述第五加密数据,获得解密后的第五随机数;利用所述第一标识对应的第一主密钥加密所述第五随机数、第六随机数及新的会话密钥,生成第六加密数据;向所述设备端发送会话密钥生成回复,其中,所述第六随机数为:所述服务器随机生成的字符串,所述新的会话密钥为:所述服务器随机生成的、且用于对发送至所述设备端的通信数据进行加密的密钥,所述会话密钥生成回复中包括所述第六加密数据;

所述设备端710,还用于接收所述服务器发送的会话密钥生成回复;利用所述第二主密钥解密所述第六加密数据,获得解密后的第五随机数、解密后的第六随机数以及解密后的新的会话密钥;判断所述解密后的第五随机数与本地存储的第五随机数是否相同;当判断相同时,将本地存储的会话密钥,更新为所述解密后的新的会话密钥;向所述服务器发送会话密钥获得回复,以通知所述服务器自身已获得所述新的会话密钥,所述会话密钥获得回复中包含:所述第一标识和第七加密数据,所述第七加密数据为:利用所述第二主密钥加密所述第六随机数所生成的数据

所述服务器720,还用于接收所述设备端发送的会话密钥获得回复。

在一种实现方式中,所述服务器720,还用于当判断所述第二接收时间不位于所述第一标识对应的第一主密钥的有效期限内时,向所述设备端发送第二过期信息;

所述设备端710,还用于接收所述服务器发送的第二过期信息,以确定自身的第二主密钥为无效;重新执行所述向服务器发送第一认证请求。

本发明实施例还提供了一种设备端,如图8所示,包括处理器810、通信接口820、存储器830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信,

存储器830,用于存放计算机程序;

处理器810,用于执行存储器830上所存放的计算机程序时,实现本发明实施例所提供的上述任一认证方法,其中,该认证方法可以包括步骤:

向服务器发送第一认证请求,其中,所述第一认证请求中包括:所述设备端的第一标识和第一随机数,所述第一随机数为:所述设备端随机生成的字符串;

接收所述服务器发送的第二认证请求,其中,所述第二认证请求为:所述服务器基于所述第一标识,对所述设备端进行认证并认证通过后所发送的请求,所述第二认证请求中包括:所述第一随机数和第二随机数,所述第二随机数为:所述服务器随机生成的字符串;

判断所述第二认证请求中的第一随机数与本地存储的第一随机数是否相同;

当判断所述第二认证请求中的第一随机数与本地存储的第一随机数相同时,向所述服务器发送第一认证回复,以通知所述服务器已认证通过。

应用本发明实施例,服务器可以通过设备端所发送的第一认证请求中的第一标识,对设备端进行认证;设备端可以通过服务器所发送的第二认证请求中的第一随机数,对服务器进行认证,进而实现设备端与服务器之间的双向认证。在整个认证过程中无需用到设备端和服务器的数字证书,即设备端本地无需提供存储空间,以用于存储表明自身身份的数字证书,且服务器本地也无需提供存储空间,以用于存储表明自身身份的数字证书,实现了在一定程度上降低对设备端以及服务器的存储空间的要求。另外的,无需花费费用向ca中心申请数字证书,在一定程度上降低了设备端的生产成本,以及降低了服务器的生产成本。

上述设备端提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述设备端与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例所提供的上述任一认证方法,其中,该认证方法可以包括步骤:

向服务器发送第一认证请求,其中,所述第一认证请求中包括:所述设备端的第一标识和第一随机数,所述第一随机数为:所述设备端随机生成的字符串;

接收所述服务器发送的第二认证请求,其中,所述第二认证请求为:所述服务器基于所述第一标识,对所述设备端进行认证并认证通过后所发送的请求,所述第二认证请求中包括:所述第一随机数和第二随机数,所述第二随机数为:所述服务器随机生成的字符串;

判断所述第二认证请求中的第一随机数与本地存储的第一随机数是否相同;

当判断所述第二认证请求中的第一随机数与本地存储的第一随机数相同时,向所述服务器发送第一认证回复,以通知所述服务器已认证通过。

应用本发明实施例,服务器可以通过设备端所发送的第一认证请求中的第一标识,对设备端进行认证;设备端可以通过服务器所发送的第二认证请求中的第一随机数,对服务器进行认证,进而实现设备端与服务器之间的双向认证。在整个认证过程中无需用到设备端和服务器的数字证书,即设备端本地无需提供存储空间,以用于存储表明自身身份的数字证书,且服务器本地也无需提供存储空间,以用于存储表明自身身份的数字证书,实现了在一定程度上降低对设备端以及服务器的存储空间的要求。另外的,无需花费费用向ca中心申请数字证书,在一定程度上降低了设备端的生产成本,以及降低了服务器的生产成本。

本发明实施例还提供了一种服务器,如图9所示,包括处理器910、通信接口920、存储器930和通信总线940,其中,处理器910,通信接口920,存储器930通过通信总线940完成相互间的通信,

存储器930,用于存放计算机程序;

处理器910,用于执行存储器930上所存放的计算机程序时,实现本发明实施例所提供的上述任一认证方法,其中,该认证方法可以包括步骤:

接收设备端发送的第一认证请求,其中,所述第一认证请求中包括:所述设备端的第一标识和第一随机数,所述第一随机数为:所述设备端随机生成的字符串;

判断本地是否存储有所述第一标识;

当判断本地存储有所述第一标识时,向所述设备端发送第二认证请求,其中,所述第二认证请求中包括:所述第一随机数和第二随机数,所述第二随机数为:所述服务器随机生成的字符串;

接收所述设备端发送的第一认证回复,以确认自身已认证通过,其中,所述第一认证回复为:所述设备端基于所述第二认证请求中的第一随机数,对所述服务器进行认证并认证通过后所发送的回复。

应用本发明实施例,服务器可以通过设备端所发送的第一认证请求中的第一标识,对设备端进行认证;设备端可以通过服务器所发送的第二认证请求中的第一随机数,对服务器进行认证,进而实现设备端与服务器之间的双向认证。在整个认证过程中无需用到设备端和服务器的数字证书,即设备端本地无需提供存储空间,以用于存储表明自身身份的数字证书,且服务器本地也无需提供存储空间,以用于存储表明自身身份的数字证书,实现了在一定程度上降低对设备端以及服务器的存储空间的要求。另外的,无需花费费用向ca中心申请数字证书,在一定程度上降低了设备端的生产成本,以及降低了服务器的生产成本。

上述服务器提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述服务器与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例所提供的上述任一认证方法,其中,该认证方法可以包括步骤:

接收设备端发送的第一认证请求,其中,所述第一认证请求中包括:所述设备端的第一标识和第一随机数,所述第一随机数为:所述设备端随机生成的字符串;

判断本地是否存储有所述第一标识;

当判断本地存储有所述第一标识时,向所述设备端发送第二认证请求,其中,所述第二认证请求中包括:所述第一随机数和第二随机数,所述第二随机数为:所述服务器随机生成的字符串;

接收所述设备端发送的第一认证回复,以确认自身已认证通过,其中,所述第一认证回复为:所述设备端基于所述第二认证请求中的第一随机数,对所述服务器进行认证并认证通过后所发送的回复。

应用本发明实施例,服务器可以通过设备端所发送的第一认证请求中的第一标识,对设备端进行认证;设备端可以通过服务器所发送的第二认证请求中的第一随机数,对服务器进行认证,进而实现设备端与服务器之间的双向认证。在整个认证过程中无需用到设备端和服务器的数字证书,即设备端本地无需提供存储空间,以用于存储表明自身身份的数字证书,且服务器本地也无需提供存储空间,以用于存储表明自身身份的数字证书,实现了在一定程度上降低对设备端以及服务器的存储空间的要求。另外的,无需花费费用向ca中心申请数字证书,在一定程度上降低了设备端的生产成本,以及降低了服务器的生产成本。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包括”或者其任何其他变体意在涵盖非排他性的包括,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包括在本发明的保护范围内。

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