修改密码的方法、系统及客户端、服务器和智能设备与流程

文档序号:12278109阅读:295来源:国知局
修改密码的方法、系统及客户端、服务器和智能设备与流程

本发明属于通信技术领域,尤其涉及一种修改密码的方法、系统及客户端、服务器和智能设备。



背景技术:

用户密码是用来对操作者的身份进行确认的,一般能够提供正确的用户密码即被认为是合法用户,可以获得与用户密码对应的操作权限。在使用过程中,用户可以根据自己的需要将预先设置的旧密码修改为新密码。

然而,在实现本发明过程中,发明人发现现有技术提供的修改密码的方法至少存在如下问题:

用户注册时,将用户设置的旧密码明文或者旧密码密文保存在服务器。客户端将用户输入的新密码对应的新密码明文或者新密码密文通过线路传输给服务器后,服务器用所述新密码明文或者所述新密码密文替换掉旧密码明文或者旧密码密文。

该种修改密码的方式,旧密码明文或者旧密码密文保存在服务器数据库,而服务器的数据库管理上的漏洞或者是存储的不安全,可能导致数据库数据泄露,发生旧密码明文或者旧密码密文泄露事件,并且,在修改密码时,在线路上传输的是新密码明文或者新密码对应的新密钥数据,因此新密码容易被窃取。总之,现有技术提供的修改密码的方法可能导致密码泄露事件的发生。



技术实现要素:

有鉴于此,本发明实施例提供一种修改密码的方法、系统及客户端、服务器和智能设备,以解决现有技术提供的修改密码的方法可能导致密码泄露事件的问题。

第一方面,提供一种修改密码的方法,旧密码数据或者旧密钥数据存储在智能设备中,所述方法包括:

客户端发送获取随机数请求至服务器;

服务器根据所述获取随机数请求生成获取随机数的命令,并通过客户端转发所述获取随机数的命令至智能设备;

智能设备根据所述获取随机数的命令生成随机数,缓存所述随机数,生成包含所述随机数的随机数响应数据,并通过客户端转发所述随机数响应数据至服务器;

服务器从所述随机数响应数据中解析出所述随机数,并发送所述随机数至客户端;

客户端获取新密码数据或新密钥数据和旧密码数据或新密钥数据,并根据所述旧密码数据或旧密钥数据、所述随机数和所述新密码数据或新密钥数据,得到新密码数据密文或新密钥数据密文,并将包括所述新密码数据密文或新密钥数据密文的第一新密码数据密文或第一新密钥数据密文发送至服务器;

服务器根据所述第一新密码数据密文或第一新密钥数据密文生成第一修改密码的命令报文,并将所述第一修改密码的命令报文通过客户端转发至智能设备;

智能设备根据所述旧密码数据或旧密钥数据对所述第一修改密码的命令报文进行解密,得到解密得到的新密码数据或新密钥数据,用所述解密得到的新密码数据替换所述旧密码数据或者用所述解密得到的新密钥数据替换所述旧密钥数据。

进一步地,在所述客户端获取新密码数据或新密钥数据和旧密码数据或旧密钥数据之后,还包括:

客户端将所述新密码数据转换成新密钥数据,将所述旧密码数据转换成旧密钥数据。

进一步地,所述客户端根据所述旧密码数据或旧密钥数据、所述随机数和所述新密码数据或新密钥数据,得到新密码数据密文或新密钥数据密文包括:

客户端用旧密码数据或旧密钥数据与随机数分散,得到第一临时密钥数据;

客户端用所述第一临时密钥数据加密所述新密码数据或新密钥数据,得到所述新密码数据密文或新密钥数据密文。

进一步地,在所述客户端根据所述旧密码数据或旧密钥数据、所述随机数和所述新密码数据或新密钥数据,得到新密码数据密文或新密钥数据密文之后,还包括:

客户端用所述第一临时密钥数据加密所述随机数得到随机数密文;和/或

客户端用所述第一临时密钥数据对所述新密码数据密文或新密钥数据密文进行消息鉴权计算得到第一Mac结果;

所述第一新密码数据密文或第一新密钥数据密文还包括随机数密文,和/或,第一Mac结果;

在所述将所述第一新密码数据密文或第一新密钥数据密文发送至服务器之后,还包括:

服务器根据所述新密码数据密文或新密钥数据密文、所述随机数密文和/或所述第一Mac结果生成第二修改密码的命令报文,并将所述第二修改密码的命令报文通过客户端转发至智能设备。

进一步地,在所述智能设备根据所述旧密码数据或旧密钥数据和所述随机数对所述第一修改密码的命令报文进行解密,得到解密得到的新密码数据或新密钥数据之后,还包括:

智能设备用所述旧密码数据或旧密钥数据与缓存的所述随机数分散,得到第二临时密钥数据;

智能设备用所述第二临时密钥数据对所述第二修改密码的命令报文中包括的随机数密文进行解密,得到所述解密得到的随机数;和/或

智能设备用所述第二临时密钥数据对所述第二修改密码的命令报文中包括的新密码数据密文或新密钥数据密文进行消息鉴别,得到所述第二Mac结果。

进一步地,所述智能设备根据所述旧密码数据或旧密钥数据和所述随机数对所述第一修改密码的命令报文进行解密,得到解密得到的新密码数据或新密钥数据包括:

智能设备用所述第二临时密钥数据解密所述第一修改密码的命令报文中包括的新密文密码或新密钥数据密文,得到所述解密得到的新密码数据或新密钥数据。

进一步地,在所述智能设备根据所述旧密码数据或旧密钥数据和所述随机数对所述第一修改密码的命令报文进行解密,得到解密得到的新密码数据或新密钥数据之后,还包括:

智能设备将所述解密得到的随机数与缓存的所述随机数进行比较和/或将所述第二Mac结果与所述第一Mac结果进行比较,如果一致,则用所述解密得到的新密码数据替换所述新密码数据或者用所述解密得到的新密钥数据替换所述旧密钥数据。

进一步地,所述旧密码数据或旧密钥数据存储在智能设备的安全芯片中。

另一方面,提供一种客户端,旧密码数据或者旧密钥数据存储在智能设备中,所述客户端包括:

随机数请求发送模块,用于发送获取随机数请求至服务器;

获取随机数命令发送模块,用于转发服务器生成的获取随机数的命令至智能设备,所述获取随机数的命令是根据客户端发送的获取随机数请求生成的;

随机数响应数据转发模块,用于转发随机数响应数据至服务器,其中,智能设备根据所述获取随机数的命令生成随机数,缓存所述随机数后,生成包含所述随机数的随机数响应数据;

随机数接收模块,用于接收服务器从所述随机数响应数据中解析出的所述随机数;

新密码或密钥数据密文发送模块,用于根据所述旧密码数据或旧密钥数据、所述随机数和所述新密码数据或新密钥数据,得到新密码数据或新密钥数据密文,并将所述包括所述新密码数据密文或新密钥数据密文的第一新密码数据密文或第一新密钥数据密文发送至服务器;

第一修改密码报文转发模块,用于将第一修改密码的命令报文转发至智能设备,以由智能设备根据所述旧密码数据或旧密钥数据和所述随机数对所述第一修改密码的密令报文进行解密,得到解密得到的新密码数据或新密钥数据,用所述解密得到的新密码数据替换所述旧密码数据或者用所述解密得到的新密钥数据替换所述旧密钥数据,其中,服务器根据所述新密码数据密文或新密钥数据密文生成第一修改密码的命令报文。

进一步地,所述客户端还包括:

转换模块,用于将所述新密码数据转换成新密钥数据,将所述旧密码数据转换成旧密钥数据。

进一步地,新密码或密钥数据密文发送模块包括:

分散单元,用于用旧密码数据或旧密钥数据与随机数分散,得到第一临时密钥数据;

加密单元,用于用所述第一临时密钥数据加密所述新密码数据或新密钥数据,得到新密码数据密文或新密钥数据密文。

进一步地,所述客户端还包括:

随机数密文生成模块,用于用所述第一临时密钥数据加密所述随机数得到随机数密文;和/或

第一Mac结果生成模块,用于用所述第一临时密钥数据对所述新密码数据密文或新密钥数据密文进行消息鉴权计算得到第一Mac结果;

所述第一新密码数据密文或第一新密钥数据密文还包括随机数密文,和/或,第一Mac结果;

所述客户端还包括:

第二修改密码报文转发模块,用于将所述第二修改密码的命令报文转发至智能设备,由服务器根据所述新密码数据密文或新密钥数据密文、所述随机数密文和/或所述第一Mac结果生成第二修改密码的命令报文。

再一方面,提供一种服务器,旧密码数据或者旧密钥数据存储在智能设备中,所述服务器包括:

请求接收模块,用于接收客户端发送的获取随机数请求;

获取随机数命令发送模块,用于根据所述获取随机数请求生成获取随机数的命令,并通过客户端转发所述获取随机数的命令至智能设备;

随机数响应数据接收模块,用于接收客户端转发的随机数响应数据,其中,智能设备根据所述获取随机数的命令生成随机数,缓存所述随机数后,生成包含所述随机数的随机数响应数据;

随机数发送模块,用于从所述随机数响应数据中解析出所述随机数,并发送所述随机数至客户端;

新密码或密钥数据密文接收模块,用于接收客户端发送的新数据密码或新密钥数据密文,其中,客户端根据所述旧密码数据或旧密钥数据、所述随机数和所述新密码数据或新密钥数据,得到新密钥数据密文;

第一修改密码报文发送模块,用于根据所述新密码数据密文或新密钥数据密文生成第一修改密码的命令报文,并将所述第一修改密码的命令报文通过客户端转发至智能设备,以由智能设备根据所述旧密码数据或旧密钥数据和所述随机数对所述第一修改密码的密令报文进行解密,得到解密得到的新密码数据或新密钥数据,用所述解密得到的新密码数据替换所述旧密码数据或者用所述解密得到的新密钥数据替换所述旧密钥数据。

进一步地,所述第一新密码数据密文或第一新密钥数据密文还包括随机数密文,和/或,第一Mac结果,所述服务器还包括:

第二修改密码报文发送模块,用于根据所述新密码数据密文或新密钥数据密文、所述随机数密文和/或所述第一Mac结果生成第二修改密码的命令报文,并将所述第二修改密码的命令报文通过客户端转发至智能设备;

其中,客户端根据所述旧密码数据或旧密钥数据、所述随机数和所述新密码数据或新密钥数据,得到随机数密文和/或第一Mac结果。

又一方面,提供一种智能设备,旧密码数据或旧密钥数据存储在所述智能设备中,所述智能设备包括:

获取随机数命令接收模块,用于接收通过客户端转发的获取随机数的命令,其中,所述获取随机数的命令是服务器根据客户端发送的获取随机数请求生成的;

随机数响应数据发送模块,用于根据所述获取随机数的命令生成随机数,缓存所述随机数,生成包含所述随机数的随机数响应数据,并通过客户端转发所述随机数响应数据至服务器;

第一修改密码报文接收模块,用于接收服务器通过客户端转发的第一修改密码命令的报文,其中,服务器从所述随机数响应数据中解析出所述随机数,并发送所述随机数至客户端后,客户端根据所述旧密码数据或旧密钥数据、所述随机数和所述新密码数据或新密钥数据,得到新密码数据密文或新密钥数据密文,并将所述包括所述新密码数据密文或新密钥数据密文的第一新密码数据密文或第一新密钥数据密文发送至服务器,服务器根据所述新密码数据密文或新密钥数据密文生成所述第一修改密码的命令报文;

密码修改模块,用于根据所述旧密码数据或旧密钥数据对所述第一修改密码的命令报文进行解密,得到解密得到的新密码数据或新密钥数据,用所述解密得到的新密码数据替换所述旧密码数据或者用所述解密得到的新密钥数据替换所述旧密钥数据。

进一步地,所述第一新密码数据密文或第一新密钥数据密文还包括随机数密文,和/或,第一Mac结果,所述智能设备还包括:

第二修改密码报文接收模块,用于接收服务器通过客户端转发的第二修改密码命令的报文,其中,服务器从所述随机数响应数据中解析出所述随机数,并发送所述随机数至客户端后,客户端根据所述旧密码数据或旧密钥数据、所述随机数和所述新密码数据或新密钥数据,得到新密码数据密文或新密钥数据密文、随机数密文和/或第一Mac结果,并将所述新密码数据密文或新密钥数据密文、随机数密文和/或第一Mac结果发送至服务器,服务器根据所述新密码数据密文或新密钥数据密文生成所述第二修改密码的命令报文;

分散模块,用于用所述旧密码数据或旧密钥数据与缓存的所述随机数分散,得到第二临时密钥数据;

随机数解密模块,用于用所述第二临时密钥数据对第二修改密码的命令报文中包括的随机数密文进行解密,得到所述解密得到的随机数;和/或

消息鉴别模块,用于用所述第二临时密钥数据对所述第二修改密码的命令报文中包括的新密码数据或新密钥数据密文进行消息鉴别,得到所述第二Mac结果。

进一步地,所述密码修改模块包括:

新密钥数据解密单元,用于用所述第二临时密钥数据解密所述第一修改密码的命令报文中包括的新密码数据密文或新密钥数据密文,得到所述解密得到的新密码数据或新密钥数据。

进一步地,所述密码修改模块还包括:

比较单元,用于将所述解密得到的随机数与缓存的所述随机数进行比较和/或将所述第二Mac结果与所述第一Mac结果进行比较,如果一致,则用所述解密得到的新密码数据替换所述旧密码数据或者用所述解密得到的新密钥数据替换所述旧密钥数据。

进一步地,所述旧密码数据或者旧密钥数据存储在智能设备的安全芯片中。

再一方面,提供一种修改密码的系统,所述系统包括如上所述的客户端、如上所述的服务器和如上所述的智能设备。

本发明实施例与现有技术相比存在的有益效果是:本发明实施例通过将旧密码数据或旧密钥数据存储在智能设备中,不用存储在服务器中,且在线路上不用进行旧密码数据或旧密钥数据的传输,可以避免旧密码数据或旧密钥数据的泄露。另外,在修改密码时,使用随机数对新密码数据或新密钥数据进行加密,在线路上传输的是包含新密码数据或新密码数据对应的新密钥数据的随机数,因此新密码数据或新密钥数据是用密文的方式传输的,不容易被窃取,从而使得密码或密钥数据的传输更加安全,克服了现有技术提供的修改密码的方法可能导致密码泄露事件的问题。

附图说明

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

图1是本发明第一实施例提供的修改密码的方法的实现流程图;

图2是本发明第二实施例提供的客户端的结构框图;

图3是本发明第三实施例提供的服务器的结构框图;

图4是本发明第四实施例提供的智能设备的结构框图;

图5是本发明第五实施例提供的修改密码的系统的结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

需要说明的是,本发明实施例的执行主体包括服务器、客户端和智能设备。其中,客户端和服务器之间可以满足C/S(Client/Server)结构,即客户机和服务器结构,客户端和服务器之间也可以满足B/S(Browser/Server)结构,即浏览器和服务器结构,另外,客户端可以是手机,也可以是电脑等,在此均不作限定。

以下结合具体实施例对本发明的实现进行详细描述:

实施例一

图1示出了本发明实施例一提供的修改密码的方法的实现流程,详述如下:

在步骤S101中,客户端发送获取随机数请求至服务器。

在本发明实施例中,客户端可以生成一个获取随机数请求,并主动发送所述获取随机数请求至服务器。

在步骤S102中,服务器根据所述获取随机数请求生成获取随机数的命令,并通过客户端转发所述获取随机数的命令至智能设备。

在本发明实施例中,服务器可以根据步骤S101中客户端发送的获取随机数请求生成获取随机数的命令,并通过客户端转发所述获取随机数的命令至智能设备。

在步骤S103中,智能设备根据所述获取随机数的命令生成随机数,缓存所述随机数,生成包含所述随机数的随机数响应数据,并通过客户端转发所述随机数响应数据至服务器。

在本发明实施例中,智能设备可以根据步骤S102中客户端转发的获取随机数的命令生成随机数,缓存所述随机数,生成包含所述随机数的随机数响应数据,并通过客户端转发所述随机数响应数据至服务器。

在步骤S104中,服务器从所述随机数响应数据中解析出所述随机数,并发送所述随机数至客户端。

在本发明实施例中,服务器可以先从步骤S103中客户端转发的随机数响应数据中解析出步骤S103中智能设备生成的随机数,再发送所述随机数至客户端。

在步骤S105中,客户端获取新密码数据或新密钥数据和旧密码数据或旧密钥数据,并根据所述旧密码数据或旧密钥数据、所述随机数和所述新密码数据或新密钥数据,得到新密码数据密文或新密钥数据密文,并将包括所述新密码数据密文或新密钥数据密文的第一新密码数据密文或第一新密钥数据密文发送至服务器。

在本发明实施例中,用户通过客户端输入新密码数据,客户端接收到用户输入的新密码数据后,可以将所述新密码数据转换成与所述新密码数据对应的新密钥数据,具体所述转换的方法可以为加密运算或者Hash运算等,采用何种方式将所述新密码数据转换成与所述新密码数据对应的新密钥数据,本发明实施例中不做限制。

将新密码数据转换成与所述新密码数据对应的新密钥数据后,客户端获取旧密码数据或旧密钥数据,所述旧密码数据或旧密钥数据是用户在客户端输入的,存储在智能设备中。

获取到旧密码数据或旧密钥数据后,客户端根据所述旧密码数据或旧密钥数据、所述随机数和所述新密码数据或新密钥数据,得到新密码数据密文或新密钥数据密文,并将包括所述新密码数据密文或新密钥数据密文的第一新密码数据密文或第一新密钥数据密文发送至服务器。具体的,客户端根据所述旧密码数据、所述随机数和所述新密码数据,得到新密码数据密文;或者,客户端根据所述旧密钥数据、所述随机数和所述新密钥数据,得到新密钥数据密文的方式可以有多种选择。如用随机数作为密钥,加密所述旧密码数据和所述新密码数据,得到新密码数据密文;或者,用随机数和所述旧密码数据作为密钥,加密所述新密码数据,得到新密码数据密文;或者,用随机数作为密钥,加密所述旧密钥数据和所述新密钥数据,得到新密钥数据密文;或者,用随机数和所述旧密钥数据作为密钥,加密所述新密钥数据,得到新密钥数据密文。本实施例对得到新密码数据密文或者新密钥数据密文的方式不做限制。

优选地,获取到旧密码数据或旧密钥数据后,客户端先用旧密码数据或旧密钥数据与随机数分散,得到第一临时密钥数据;再用所述第一临时密钥数据加密所述新密码数据或新密钥数据,得到所述新密码数据密文或新密钥数据密文;然后用所述第一临时密钥数据加密所述随机数得到所述随机数密文和/或用所述第一临时密钥数据对所述新密码数据密文或新密钥数据密文进行消息鉴别计算得到所述第一Mac结果;最后将所述新密码数据密文或新密钥数据密文、所述随机数密文和/或所述第一Mac结果发送至服务器。

在步骤S106中,服务器根据所述新密码数据密文或新密钥数据密文生成第一修改密码的命令报文,并将所述第一修改密码的命令报文通过客户端转发至智能设备。

在本发明实施例中,服务器先根据所述新密码数据密文或新密钥数据密文生成第一修改密码的命令报文,然后将所述第一修改密码的命令报文通过客户端发送给智能设备。

优选地,服务器可以先根据所述第一新密码数据密文或第一新密钥数据密文中包括的新密码数据密文或新密钥数据密文、所述随机数密文和/或所述第一Mac结果生成第二修改密码的命令报文,然后将所述第二修改密码的命令报文通过客户端发送给智能设备。

在步骤S107中,智能设备根据所述旧密码数据或旧密钥数据和所述随机数对所述第一修改密码的命令报文进行解密,得到解密得到的新密码数据或新密钥数据,用所述解密得到的新密码数据替换所述旧密码数据或者用所述解密得到的新密钥数据替换所述旧密钥数据。

在本发明实施例中,智能设备先从本地获取旧密码数据或旧密钥数据,再用所述旧密码数据或旧密钥数据对所述第一修改密码的命令报文中包括的新密码数据密文或新密钥数据密文进行解密,得到所述解密得到的新密码数据或新密钥数据,并用所述解密得到的新密码数据替换所述旧密码数据或者用所述解密得到的新密钥数据替换所述旧密钥数据,以实现密码的修改。

优选地,智能设备先从本地获取旧密码数据或旧密钥数据,再用所述旧密码数据或旧密钥数据对所述第二修改密码的命令报文中包括的随机数密文进行解密,得到所述解密得到的随机数和/或智能设备先用所述旧密码数据或旧密钥数据与缓存的所述随机数分散,得到第二临时密钥数据,再用所述第二临时密钥数据对所述第二修改密码的命令报文中包括的新密码数据密文或新密钥数据密文进行消息鉴别,得到所述第二Mac结果。

在解密得到的随机数与缓存的所述随机数一致或者在第一Mac结果与第二Mac结果一致时,才可以用所述解密得到的新密码数据替换所述旧密码数据或者用所述解密得到的新密钥数据替换旧密钥数据,实现密码的修改。

其中,解密得到的随机数与缓存的所述随机数一致或者在第一Mac结果与第二Mac结果一致时,说明新密码数据或新密钥数据没有被修改,且旧密码数据或旧密钥数据正确,则可以用新密码数据替换旧密码数据或者用解密得到的新密钥数据替换旧密钥数据;否则说明新密码数据或新密钥数据被修改过了或者旧密码数据或旧密钥数据不正确。

需要说明的是,Mac结果是根据新密码数据密文或新密钥数据密文计算得到的,如果新密码数据密文或新密钥数据密文的值被修改了或者是不正确,得到的Mac结果也就不一样了,因此有防篡改功能。

优选地,旧密码数据或旧密钥数据存储在智能设备的安全芯片中,该安全芯片是经过国密认证及相关安全部门认证的安全芯片,旧密码数据或旧密钥数据存储在所述安全芯片的安全空间中,可以限制用户读取该安全空间的数据,用户只能通过认证的方式获取,而不能通过其它任何方式获取所述旧密码数据或旧密钥数据。

优选地,可以设置重试次数,当解密得到的随机数与缓存的所述随机数一致或者在第一Mac结果与第二Mac结果不一致时,智能设备可以递减密码的重试次数,并发送密码修改失败响应报文至服务器;否则,恢复重试次数,并进行下一步操作。

通过本发明实施例,可以将旧密码数据或旧密钥数据存储在智能设备中,不用存储在服务器中,且在线路上不用进行旧密码数据或旧密钥数据的传输,可以避免旧密码数据或旧密钥数据的泄露。另外,在修改密码时,使用随机数对新密码数据或新密钥数据进行加密,在线路上传输的是包含新密码数据或新密码数据对应的新密钥数据的随机数,因此新密码数据或新密钥数据是用密文的方式传输的,不容易被窃取,从而使得密码或密钥数据的传输更加安全,克服了现有技术提供的修改密码的方法可能导致密码泄露事件的问题。

另外,旧密码数据或旧密钥数据存储在智能设备的安全芯片中,使得用户不能通过修改密码的方式之外的其它任何方式获取到旧密钥数据,进一步提高了旧密码数据或旧密钥数据存储的安全性。

应理解,在本发明实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘或光盘等。

实施例二

图2示出了本发明实施例二提供的客户端的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。该客户端2和智能设备、服务器一起构成修改密码的系统,其中,旧密码数据或旧密钥数据存储在智能设备中,该客户端2包括:随机数请求发送模块21、获取随机数命令发送模块22、随机数响应数据转发模块23、随机数接收模块24、新密码或密钥数据密文发送模块25和第一修改密码报文转发模块26。

其中,随机数请求发送模块21,用于发送获取随机数请求至服务器;

获取随机数命令发送模块22,用于转发服务器生成的获取随机数的命令至智能设备,所述获取随机数的命令是根据客户端发送的获取随机数请求生成的;

随机数响应数据转发模块23,用于转发随机数响应数据至服务器,其中,智能设备根据所述获取随机数的命令生成随机数,缓存所述随机数后,生成包含所述随机数的随机数响应数据;

随机数接收模块24,用于接收服务器从所述随机数响应数据中解析出的所述随机数;

新密码或密钥数据密文发送模块25,用于获取新密码数据或新密钥数据和旧密码数据或旧密钥数据,并根据所述旧密码数据或旧密钥数据、所述随机数和所述新密码数据或新密钥数据,得到新密码数据密文或新密钥数据密文,并将包括所述新密码数据密文或新密钥数据密文的第一新密码数据密文或第一新密钥数据密文发送至服务器;

第一修改密码报文转发模块26,用于将第一修改密码的命令报文转发至智能设备,以由智能设备根据所述修改密码的密令报文用所述新密码数据替换所述旧密码数据或者用所述新密钥数据替换所述旧密钥数据,其中,服务器根据所述新密码数据密文或新密钥数据密文生成第一修改密码的命令报文。

所述客户端还包括:

转换模块,用于将所述新密码数据转换成新密钥数据,将所述旧密码数据转换成旧密钥数据。

具体的,所述新密钥数据发送模块25包括:

分散单元,用于用新密码数据或旧密钥数据与随机数分散,得到第一临时密钥数据;

加密单元,用于用所述第一临时密钥数据加密所述新密码数据或新密钥数据,得到新密码数据密文或新密钥数据密文。

进一步地,所述客户端2还包括:

随机数密文生成模块,用于用所述第一临时密钥数据加密所述随机数得到随机数密文;和/或

第一Mac结果生成模块,用于用所述第一临时密钥数据对所述新密码数据或新密钥数据密文进行消息鉴权计算得到第一Mac结果;

所述第一新密码数据密文或第一新密钥数据密文还包括随机数密文,和/或,第一Mac结果;

第二修改密码报文转发模块,用于将所述第二修改密码的命令报文转发至智能设备,其中,服务器根据所述新密码数据密文或新密钥数据密文、所述随机数密文和/或所述第一Mac结果生成第二修改密码的命令报文。

本发明实施例提供的客户端可以应用在前述对应的方法实施例一中,详情参见上述实施例一的描述,在此不再赘述。

实施例三

图3示出了本发明实施例三提供的服务器的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。该服务器3和客户端、智能设备一起构成修改密码的系统,其中,旧密码数据或者旧密钥数据存储在智能设备中,该服务器3包括:请求接收模块31、获取随机数命令发送模块32、随机数响应数据接收模块33、随机数发送模块34、新密码或密钥数据密文接收模块35和第一修改密码报文发送模块36。

其中,请求接收模块31,用于接收客户端发送的获取随机数请求;

获取随机数命令发送模块32,用于根据所述获取随机数请求生成获取随机数的命令,并通过客户端转发所述获取随机数的命令至智能设备;

随机数响应数据接收模块33,用于接收客户端转发的随机数响应数据,其中,智能设备根据所述获取随机数的命令生成随机数,缓存所述随机数后,生成包含所述随机数的随机数响应数据;

随机数发送模块34,用于从所述随机数响应数据中解析出所述随机数,并发送所述随机数至客户端;

新密码或密钥数据密文接收模块35,用于接收客户端发送的第一新密码数据密文或第一新密钥数据密文,其中,客户端根据所述旧密码数据或旧密钥数据、所述随机数和所述新密码数据或新密钥数据,得到包括所述新密码数据或新密钥数据的所述第一新密码数据密文或第一新密钥数据密文;

第一修改密码报文发送模块36,用于根据所述新密码数据密文或新密钥数据密文生成第一修改密码的命令报文,并将所述第一修改密码的命令报文通过客户端转发至智能设备,以由智能设备根据所述旧密码数据或旧密钥数据和所述随机数对所述第一修改密码的密令报文进行解密,得到解密得到的新密码数据或新密钥数据,用所述解密得到的新密码数据替换所述旧密码数据或者用所述解密得到的新密钥数据替换所述旧密钥数据。

进一步地,所述第一新密码数据密文或第一新密钥数据密文还包括随机数密文,和/或,第一Mac结果;

所述服务器3还包括:

第二修改密码报文发送模块,用于根据所述新密码数据密文或新密钥数据密文、所述随机数密文和/或所述第一Mac结果生成第二修改密码的命令报文,并将所述第二修改密码的命令报文通过客户端转发至智能设备。

本发明实施例提供的服务器可以应用在前述对应的方法实施例一中,详情参见上述实施例一的描述,在此不再赘述。

实施例四

图4示出了本发明实施例四提供的智能设备的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。该智能设备4和客户端、服务器一起构成修改密码的系统,其中,旧密钥数据存储在智能设备4中,该智能设备4包括:获取随机数命令接收模块41、随机数响应数据发送模块42、第一修改密码报文接收模块43和密码修改模块44。

其中,获取随机数命令接收模块41,用于接收通过客户端转发的获取随机数的命令,其中,所述获取随机数的命令是服务器根据客户端发送的获取随机数请求生成的;

随机数响应数据发送模块42,用于根据所述获取随机数的命令生成随机数,缓存所述随机数,生成包含所述随机数的随机数响应数据,并通过客户端转发所述随机数响应数据至服务器;

第一修改密码报文接收模块43,用于接收服务器通过客户端转发的第一修改密码命令的报文,其中,服务器从所述随机数响应数据中解析出所述随机数,并发送所述随机数至客户端后,客户端根据所述旧密码数据或旧密钥数据、所述随机数和所述新密码数据或新密钥数据,得到新密码数据密文或新密钥数据密文,并将所述包括所述新密码数据密文或新密钥数据密文的第一新密码数据密文或第一新密钥数据密文发送至服务器,服务器根据所述第一新密码数据密文或第一新密钥数据密文生成所述第一修改密码的命令报文;

密码修改模块44,用于根据所述旧密码数据或旧密钥数据和所述随机数对所述第一修改密码的命令报文进行解密,得到解密得到的新密码数据或新密钥数据,用所述解密得到的新密码数据替换所述旧密码数据或者用解密得到的新密钥数据替换所述旧密钥数据。

进一步地,所述智能设备4还包括:

第二修改密码报文接收模块,用于接收服务器通过客户端转发的第二修改密码命令的报文,其中,服务器从所述随机数响应数据中解析出所述随机数,并发送所述随机数至客户端后,客户端根据所述旧密码数据或旧密钥数据、所述随机数和新密码数据或新密钥数据,得到新密码数据密文或新密钥数据密文、随机数密文和/或第一Mac结果,并将所述新密码数据密文或新密钥数据密文、随机数密文和/或第一Mac结果发送至服务器,服务器根据所述新密码数据密文或新密钥数据密文、随机数密文和/或第一Mac结果生成所述第二修改密码的命令报文;

分散模块,用于用所述旧密码数据或旧密钥数据与缓存的所述随机数分散,得到第二临时密钥数据;

随机数解密模块,用于用所述第二临时密钥数据对第二修改密码的命令报文中包括的随机数密文进行解密,得到所述解密得到的随机数;和/或

消息鉴别模块,用于用所述第二临时密钥数据对所述第二修改密码的命令报文中包括的新密码数据密文或新密钥数据密文进行消息鉴别,得到所述第二Mac结果。

进一步地,所述密码修改模块包括:

新密钥数据解密单元,用于用所述第二临时密钥数据解密所述第一修改密码的命令报文中包括的新密码数据密文或新密钥数据密文,得到所述解密得到的新密码数据或新密钥数据。

进一步地,所述密码修改模块还包括:

比较单元,用于将所述解密得到的随机数与缓存的所述随机数进行比较和/或将所述第二Mac结果与所述第一Mac结果进行比较,如果一致,则用所述解密得到的新密码数据替换所述旧密码数据或者用所述解密得到的新密钥数据替换所述旧密钥数据。

进一步地,所述旧密码数据或者旧密钥数据存储在智能设备的安全芯片中。

本发明实施例提供的智能设备可以应用在前述对应的方法实施例一中,详情参见上述实施例一的描述,在此不再赘述。

实施例五

图5示出了本发明实施例五提供的修改密码的系统的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。该修改密码的系统5包括如实施例三中所述的服务器、实施例二中所述的客户端以及实施例四中所述的智能设备。其中,服务器与客户端连接,两者可以直接通信;智能设备和客户端连接,智能设备通过客户端与服务器进行通信。具体服务器、客户端和智能设备之间的工作交互可见实施例一至四中所述,在此不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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