[0049] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
[0050] 为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
[0051] 在本发明的一个实施例中,如图1所示,本发明一种安全的用户交互认证方法,包括如下步骤:
[0052] 步骤101,服务器端获取客户机传输的用户账号。当用户欲通过客户机进行安全认证时,用户在客户机上输入用户名、密码,客户机会在本地内存中临时保存该用户的用户名、密码,同时客户机将用户的账号通过开放网络上传输给服务器端。
[0053] 步骤102,服务器端根据用户账号获得用户密码,并产生一认证通过授信票据与验证密码,将该验证密码和认证通过授信票据组合,利用获得的用户密码对其加密,将加密信息传送至客户机。
[0054] 具体地,步骤102进一步包括:
[0055] 步骤S21,服务器端根据用户账号查询出用户密码,并根据网络中传输协议包中发送方地址解析出发送方IP;
[0056] 步骤S22,服务器端生成一随机字符串作为服务器端密码,将客户机用户名、客户机IP、有效期、时间戳组成一串,利用该服务器端密码进行加密,生成的密文作为认证通过授信票据;
[0057] 步骤S23,服务器端生成一个随机的验证密码,将该验证密码和认证通过授信票据组成一串,利用查询出的用户密码加密,并将该加密信息传输给客户机。
[0058] 步骤103,服务器端接收客户机传送的包含利用验证密码加密的验证串、认证通过授信票据以及交互信息的用户认证信息。具体地,当客户机接收到服务器端发送的加密信息后,则利用其临时存储的用户密码对该加密信息进行解密,获得验证密码与认证通过授信票据,当客户机与服务器端通信时,产生验证信息并利用该验证密码加密得到验证串,并将该验证串、认证通过授权票据以及交互信息作为用户认证信息发送至服务器端,在本发明具体实施例中,该验证信息包括客户机用户名、客户机IP地址、时间戳、基于时间戳的有效期。
[0059] 步骤104,服务器端根据接收到的用户认证信息对用户的认证进行处理。具体地,步骤104进一步包括:
[0060] 步骤S41,验证该用户认证信息中是否存在认证通过授信票据,若存在,则进入步骤S42,否则认证失败;
[0061] 步骤S42,利用验证密码对用户认证信息中的验证串进行解密,验证该用户认证信息是否合法有效,若合法有效,则进入步骤S43,否则认证失败,在本发明具体实施例中,可根据验证串中的时间戳与基于时间戳的有效期判断该用户认证信息是否合法有效,假设基于时间戳的有效期为两分钟,则根据时间戳的时间以及两分钟的有效期来确定当前的用户认证信息是否合法有效。
[0062] 步骤S43,对用户认证信息中的交互信息进行处理。
[0063] 在本发明的另一个实施例中,如图2所示,本发明一种安全的用户交互认证设备,应用于服务器端,其包括:用户账号获取单元201、加密信息生成单元202、用户认证信息接收单元203以及认证处理单元204。
[0064] 其中,用户账号获取单元201,用于获取客户机传输的用户账号。也就是说,当用户欲通过客户机进行安全认证时,用户需在客户机上输入用户名、密码,客户机则会在本地内存中临时保存该用户的用户名、密码,同时客户机将用户的账号通过开放网络上传输给服务器端。
[0065] 加密信息生成单元202,用于根据用户账号获得用户密码,并产生一认证通过授信票据与验证密码,将该验证密码和认证通过授信票据组合,利用获得的用户密码对其加密,将加密信息传送至客户机。
[0066] 具体地,如图3所示,加密信息生成单元202进一步包括:
[0067] 协议解析单元2021,用于根据用户账号查询出用户密码,并根据网络中传输协议包中发送方地址解析出发送方IP;
[0068] 授信票据生成单元2022,用于生成一随机字符串作为服务器端密码,将客户机用户名、客户机IP、有效期、时间戳组成一串,利用该服务器端密码进行加密,将生成的密文作为认证通过授信票据;
[0069] 加密传输单元2023,用于生成一个随机的验证密码,将该验证密码和认证通过授信票据组成一串,利用查询出的用户密码加密,并将该加密信息传输给客户机。
[0070] 用户认证信息接收单元203,用于接收客户机传送的包含利用验证密码加密的验证串、认证通过授信票据以及交互信息的用户认证信息。具体地,当客户机接收到服务器端发送的加密信息后,则利用其临时存储的用户密码对该加密信息进行解密,获得验证密码与认证通过授信票据,当客户机与服务器端通信时,产生验证信息并利用该验证密码加密得到验证串,并将该验证串、认证通过授权票据以及交互信息作为用户认证信息发送至服务器端,在本发明具体实施例中,该验证信息包括客户机用户名、客户机IP地址、时间戳、基于时间戳的有效期。
[0071] 认证处理单元204,用于根据接收到的用户认证信息对用户的认证进行处理。具体地,如图4所示,认证处理单元204进一步包括:
[0072] 授信票据验证单元2041,用于验证该用户认证信息中是否存在认证通过授信票据,若存在,则启动验证串验证单元2042,否则认证失败;
[0073] 验证串验证单元2042,用于利用验证密码对用户认证信息中的验证串进行解密,验证该用户认证信息是否合法有效,若合法有效,则进入交互信息处理单元2043,否则认证失败,在本发明具体实施例中,可根据验证串中的时间戳与基于时间戳的有效期判断该用户认证信息是否合法有效,假设基于时间戳的有效期为两分钟,则根据时间戳的时间以及两分钟的有效期来确定当前的用户认证信息是否合法有效。
[0074] 交互信息处理单元2043,用于对用户认证信息中的交互信息进行处理。
[0075] 在本发明的又一个实施例中,如图5所示,本发明一种安全的用户交互认证系统,包括:客户机50以及用户交互认证设备51
[0076] 客户机50,于获得用户账号时,将用户账号传送至用户交互认证设备,接收该用户交互认证设备传送的加密信息,利用用户密码对该加密信息进行解密,获得验证密码与认证通过授信票据,于客户机与该用户交互认证设备通信51时,产生验证信息并利用该验证密码加密得到验证串,并将该验证串、认证通过授权票据以及交互信息作为用户认证信息发送至用户交互认证设备51,在本发明具体实施例中,该验证信息包括客户机用户名、客户机IP地址、时间戳、基于时间戳的有效期。
[0077] 用户交互认证设备51,应用于服务器端,用于获取客户机传输的用户账号,根据用户账号获得用户密码,并产生一认证通过授信票据与验证密码,将该验证密码和认证通过授信票据组合,利用获得的用户密码对其加密,将加密信息传送至客户机,接收客户机传送的包含利用验证密码加密的验证串、认证通过授信票据以及交互信息的用户认证信息,并根据接收到的用户认证信息对用户的认证进行处理。
[0078] 具体地,如图6所示,客户机50进一步包括:用户账号获取传送单元501、加密信息获取及处理单元502以及用户认证信息生成单元503。
[0079] 用户账号获取传送单元501,用于获取用户输入的用户账号及密码,并将用户账号传送至用户交互认证设备。也就是说,当用户欲通过客户机进行安全认证时,用户需在客户机上输入用户名(用户账号)、密码,客户机则会在本地内存中临时保存该用户的用户名、密码,同时客户机将用户账号通过开放网络上传输给用户交互认证设备(即服务器端);
[0080] 加密信息获取及处理单元502,用于接收用户交互设备传送的加密信息,并利用用户密码对该加密信息进行解密,获得验证密码与认证通过授信票据;
[0081] 用户认证信息生成单元503,于该客户机与该用户交互认证设备通信时,产生一验证信息并利用该验证密码加密得到验证串,将该验证串、认证通过授权票据以及交互信息作为用户认证信息发送至该用户交互认证设备。
[0082] 以下将通过一具体实施例来进一步说明本发明:
[0083] 1、用户在客户机上输入用户名、密码,客户机在本地内存中临时保存该用户的用户名、密码。
[0084] 2、客户机将用户的账号(用户名)在开放网络上传输给服务端。
[0085] 3、服务端由用户的账号查询出用户的密码,同时根据网络中传输协议包中发送方地址解析发送方IP。
[0086] 4、服务端生成一个随机字符串作为服务端密码,将客户端用户名、客户端IP、有效期、时间戳,组成一串,利用该服务端密码加密,生成的密文作为认证通过授信票据。
[0087] 5、服务端再生成一个随机验证密码,将该验证密码和认证通过授信票据组成一串,利用查询出的用户密码加密,将该加密信息传给客户机。
[0088] 6、客户机接收该加密信息后,利用内存中的用户密码解密,得到验证密码和认证通过授信票据。
[0089] 7、之后客户机与服务端通信时,先由用户名、IP地址、时间戳、基于时间戳的两分钟有效期组成的信息,利用验证密码加密,得到验证串,再将验证串、认证通过授信票据、交互信息一起传给服务端。
[0090] 8、服务端接收到交互信息后,首先需要验证认证通过授信票据是否存在,如果存在,再利用验证密码,解密验证串,验证用户认证是否合法、有效,最后才处理交互信息。
[0091] 综上所述,本发明一种安全的用户交互认证方法、设备及系统通过服务器端获取客户机传输的用户账号,根据用户账号获得用户密码,并产生一认证通过授信票据与验证密码,将该验证密码和认证通过授信票据组合,利用获得的用户密码对其加密,将加密信息传送至该客户机,由服务器端接收该客户机传送的包含利用该验证密码加密的验证串、认证通过授信票据以及交互信息的用户认证信息,并根据接收到的用户认证信息对用户的认证进行处理,以实现不需要可信的第三方介入,就能保证用户认证信息在开放网络环境下传输的安全性的目的。
[0092] 应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。