远程密码的安全认证机制的制作方法
【专利摘要】本发明公开了一种安全的密码认证方法,可用于C/S或B/S模式的用户密码认证中。按照本发明的密码认证方法采取了单字符输入、多次哈希的方式,同时结合验证码和本地预验证机制,大大保证了认证的安全性,同时对用户而言并不改变现有的用户体验。
【专利说明】远程密码的安全认证机制
【技术领域】
[0001]本发明涉及身份认证技术,特别涉及在分布式处理环境下对远程密码的安全认证方法以及实现该方法的服务器和终端。
【背景技术】
[0002]身份认证技术是信息安全体系的重要组成部分,其对信息系统用户身份的合法性和真实性进行检验,从而为用户访问权限的授予提供依据。对访问者物理身份与数字身份的一致性判断可基于口令、令牌或生物学特征,其中基于口令的方式最为常用。
[0003]在基于口令的方式中,当用户登录系统时需要输入用户名(也称为用户帐号)和相应的密码。为了防止利用字典文件暴力破解密码,登录时可能还需要输入随机的验证码。密码一般为由数字和字母组合而成的字符串,为了解决口令文件丢失或泄密问题,可以采用计算式口令,其中,口令不是直接存放在信息系统中,而是经过某种数学计算后才存放到系统中。在分布式处理环境下,用户通过终端经网络远程登录应用服务器。此时,用户输入的密码需要经网络传输到服务器,容易被非法用户截获,因此为了防止被破解,在传输之前需要对密码进行加密。在远程登录时,还需防范来自非法用户的重放攻击。为此采取的对策是保证密码密文的唯一性(例如每次传输时将密码与随机数或时间戳记一起加密)。
[0004]虽然在提高安全性方面已经有诸多的技术手段,但是在具体选择时常常会面临两难境地。例如,如果为了加强安全性而提高加密强度,则将增加资源开销并使得服务器与终端之间的交互过程变得迟缓,而如果为了提高效率和加快登录过程,则又不得不以降低安全性为代价。再者,密码泄露的风险同样也存在于终端处。例如,当用户输入密码时,密码一般以明文形式保存在内存中,因此有可能被预先植入终端的恶意软件窃取并发送给远程的非法用户。
[0005]由上可见,迫切需要一种兼具高安全性和高效率的远程密码认证机制。
【发明内容】
[0006]本发明的目的之一是提供一种在终端处对用户输入的认证密码进行加密的方法,其具有安全、高效的优点。
[0007]为实现上述目的,在按照本发明一个实施例的方法中,终端执行下列步骤:
检测是否接收到所述认证密码的第一个字符;
一旦检测到,则生成与所述第一个字符对应的哈希值;
依照接收的顺序,为所述认证密码的后续字符的每一个生成相应的哈希值,其方式为:根据与接收到的第(1-Ι)个字符对应的哈希值以及接收到的第i个字符生成与该第i个字符对应的哈希值;以及
向远程设备发送消息,所述消息包含与对应于最后一个接收的字符的哈希值相关联的认证密码信息。
[0008]在上述实施例中,以迭代方式对密码逐个字符地进行哈希运算,与对密码整体进行哈希运算相比,加密强度大大提高。
[0009]优选地,在上述实施例中,对于接收到的每个字符,其在生成对应的哈希值之后并且在生成下一字符的对应的哈希值之前即在终端处被删除。即时删除密码的字符使得终端处不再出现完整的明文密码,因此减少了恶意软件窃取密码的可能性。
[0010]优选地,在上述实施例中,为所述认证密码的后续字符的每一个生成相应的哈希值包括下列步骤:
将与接收到的第(1-Ι)个字符对应的哈希值以及接收到的第i个字符构建为一个字符串;以及
生成与该字符串对应的哈希值作为与第i个字符对应的哈希值。
[0011]优选地,在上述实施例中,在生成与最后一个接收的字符对应的哈希值之后并且在向所述远程设备发送所述消息之前,还包含下列步骤:根据与最后一个接收的字符对应的哈希值以及从所述远程设备接收的标识生成所述认证密码信息。通过根据最后一个接收的字符的哈希值与标识生成认证密码信息,可以有效防范重放攻击。
[0012]更好地,按照下列方式生成所述认证密码信息:
将与最后一个接收的字符对应的哈希值以及从所述远程设备接收的标识构建为一个字符串;以及
生成与该字符串对应的哈希值作为所述认证密码信息。
[0013]优选地,在上述实施例中,在生成与最后一个接收的字符对应的哈希值之后并且在生成所述认证密码信息之前,还包含下列步骤:
接收用户输入的验证码;以及
根据从所述远程设备接收的校验码确定所述验证码是否正确,如果正确,则进入生成所述认证密码信息的步骤。
[0014]由于用户输入的验证码在终端处进行预校验,因此与将预校验安排在服务器端完成的情形相比,大大减轻了服务器的负荷。
[0015]本发明的还有一个目的是提供一种终端,其可以安全、高效的方式对用户输入的认证密码进行加密。
[0016]为实现上述目的,按照本发明一个实施例的终端可包括:
用户输入设备;
与所述用户输入设备耦合的处理器,适于在所述用户输入设备接收到用户输入的所述认证密码的第一个字符时,生成与所述第一个字符对应的哈希值,并且随后依照接收的顺序,为所述认证密码的后续字符的每一个生成相应的哈希值,其方式为:根据与接收到的第(1-Ι)个字符对应的哈希值以及接收到的第i个字符生成与该第i个字符对应的哈希值;以及
与所述处理器耦合的通信接口,适于向远程设备发送消息,所述消息包含与对应于最后一个接收的字符的哈希值相关联的认证密码信息。
[0017]本发明的还有一个目的是提供一种在分布式处理环境下实现远程密码认证的方法,其具有安全、高效的优点。
[0018]为实现上述目的,在按照本发明一个实施例的方法中,服务器执行下列步骤: 经所述网络接收来自所述终端的认证消息,所述认证消息包括用户名和与该用户名相关联的第一认证密码信息;
生成第二认证密码信息;以及
将所述第一认证密码信息与第二认证密码信息进行比较,如果匹配,则确定认证成功,否则,则确定认证失败,
其中,所述第二认证密码信息基于与该用户名相关联的认证密码的最后一个字符的哈希值,所述最后一个字符的哈希值按照下列方式确定:
生成与所述认证密码的第一个字符对应的哈希值;
依照顺序,为所述认证密码的后续字符的每一个生成相应的哈希值,其方式为:根据与第(1-Ι)个字符对应的哈希值以及第i个字符生成与该第i个字符对应的哈希值。
[0019]优选地,在上述实施例中,通过访问所述服务器的存储装置或者从所述服务器外部获取与所述用户名相关联的认证密码的最后一个字符的哈希值。
[0020]本发明的还有一个目的是提供一种在分布式处理环境下实现远程密码认证的服务器,其可以安全、高效的方式完成用户身份的认证。
[0021]为实现上述目的,按照本发明一个实施例的服务器可包括:
通信单元,适于经所述网络接收来自终端的认证消息,所述认证消息包括用户名和与该用户名相关联的第一认证密码信息;
处理单元,适于生成第二认证密码信息并将所述第一认证密码信息与第二认证密码信息进行比较,如果匹配,则确定认证成功,否则,则确定认证失败,其中,所述第二认证密码信息基于与该用户名相关联的认证密码的最后一个字符的哈希值,所述最后一个字符的哈希值按照下列方式确定:生成与所述认证密码的第一个字符对应的哈希值,并且随后依照顺序,为所述认证密码的后续字符的每一个生成相应的哈希值,其方式为:根据与第(1-1)个字符对应的哈希值以及第i个字符生成与该第i个字符对应的哈希值。
[0022]由于只需对服务器端和客户端上运行的程序略做修改即可实现本发明的上述方法,因此本发明还具有实施成本低和不改变用户操作习惯等优点。
【专利附图】
【附图说明】
[0023]从结合附图的以下详细说明中,将会使本发明的上述和其它目的及优点更加完全清楚。
[0024]图1为一种典型的分布式处理环境的示意图。
[0025]图2为按照本发明一个实施例的在终端处对用户输入的认证密码进行加密的方法的流程图。
[0026]图3为按照本发明另一个实施例的在分布式处理环境下实现远程密码认证的方法的流程图。
[0027]图4为按照本发明另一个实施例的能够对用户输入的认证密码进行加密的终端的示意图。
[0028]图5为按照本发明另一个实施例的在分布式处理环境下实现远程密码认证的服务器的示意图。
【具体实施方式】[0029]图1为一种典型的分布式处理环境的示意图。如图1所示,分布式处理环境10包括网络110 (其例如可以是广域网城域网或局域网)、多个以有线或无线方式接入网络110的终端120A、120B、120C和120D (需要理解的是,这里所示终端的数量仅仅是示例性的)以及多个服务器130AU30B和130C (同样需要理解的是,这里所示服务器的数量仅仅是示例性的)。上述分布式处理环境可基于客户机/服务器架构,其中应用系统的逻辑功能包括显示逻辑、应用逻辑和数据处理逻辑,其中显示逻辑和应用逻辑在客户机端实现而数据处理逻辑在服务器端实现。另一方面,浏览器/服务器架构也可应用于图1所示的分布式应用处理环境。从下面的描述中将会认识到,本发明的实施不依赖于分布式处理环境的具体架构。
[0030]在典型的分布式应用中,用户通过终端,经网络向服务器发送登录请求。作为响应,服务器提示用户在终端上输入用户名和认证密码,可选地还可包括验证码。当服务器接收到包含用户名和认证密码的登录消息时,将检验认证密码是否与预先注册的密码一致或对应,如果一致或对应,则允许用户登录应用系统,否则,则拒绝用户登录。
[0031]按照本发明的实施例,当用户输入认证密码时,终端采用迭代方式,对认证密码逐个字符地进行哈希运算,并且后续输入字符的哈希值依赖于先前输入字符的哈希值。这种以相关方式多次施行哈希运算的加密操作使得从哈希值成功地反推出认证密码的可能性变得微乎其微。根据该加密操作方式,一旦检测到用户开始输入认证密码的第一个字符,即生成与该第一个字符对应的哈希值;对于接收到的认证密码的任一个后续字符(例如记为第i个字符),都按照下列方式生成相应的哈希值:根据与接收到的前一个字符(记为第(1-Ι)个字符)对应的哈希值以及接收到的第i个字符生成与第i个字符对应的哈希值。由此生成与接收的最后一个字符对应的哈希值并且可将其作为第一认证密码信息发送给远程设备(例如服务器)。
[0032]为了提高安全性,上述对逐个字符的哈希运算可以实时地进行,即,当得到每个字符的哈希值后即在终端处删除明文形式的该字符。
[0033]可选地,为了防止重放攻击,可以将对应于接收的最后一个字符的哈希值与服务器提供的标识组合在一起并进行加密以生成向发送的第一认证密码信息。对上述组合的加密可以利用各种加密算法,包括但不限于哈希算法。标识随服务器与终端之间的每次交互过程而变化,其例如包括但不限于随机数或时间戳记等。
[0034]相应地,在服务器端也以上述方式生成相应的认证密码信息。优选地,按照本发明的实施例,服务器首先根据用户名,从服务器内部的存储设备或服务器外部的存储设备获取相应的密码的最后一个字符的哈希值,并且可以将该哈希值作为第二认证密码信息与终端发送的第一认证密码信息进行比较,如果匹配,则允许用户登录,否则,则拒绝用户登录。显然,当终端根据接收的最后一个字符的哈希值与服务器传送的标识的组合来生成第一认证密码信息时,在服务器侧,也需要根据同样的组合规则,从与密码最后一个字符对应的哈希值和提供给终端的标识生成第二认证密码信息。与每次计算密码的最后一个字符的哈希值的方式相比,上述优选方式省去了每次计算哈希值的过程而且密码能够以密文形式保存,因此提高了计算效率和安全性。
[0035]以下参照附图描述本发明的实施例。
[0036]图2为按照本发明一个实施例的在终端处对用户输入的认证密码进行加密的方法的流程图。仅仅是示例性地,这里以图1所示的分布式处理环境作为图2所示方法的应用场景,并且假设服务器130A和130B构成一个应用系统,其中服务器130A和130B分别为鉴权机构和数据库,终端120A欲登录该应用系统。
[0037]如图1所示,在步骤S201,终端120A经网络110向服务器130A发送登录请求。随后进入步骤S203,终端120A判断是否接收到来自服务器130A的应答消息,如果未接收到,则进入步骤S205,否则则进入步骤S207。
[0038]从服务器130A返回的应答消息中包括标识r、验证码c和预校验码V,其中验证码c采用非文本形式(例如出现在背景图片中的数字、字母或者以声音播报的数字、字母等),预校验码V从验证码C生成,优选地,可以采用下列算法生成预校验码V:首先对验证码C的所有字符求和,然后对求和结果取16的模从而得到预校验码V。发明人经过研究发现,该算法可以屏蔽93.75%的错误输入,同时也不会降低验证码的安全性。需要指出的是,其它的预校验码生成算法也是可用的,本发明的原理不依赖于生成算法的具体形式和类型。
[0039]在本实施例中,优选地,可以将验证码c设计为通过利用对称密码算法或非对称密码算法对标识r施行加密操作而得到。由此,在服务器130A发送的应答消息中可以只包含非文本形式的验证码c和预校验码V,标识r则可由终端120A利用对其已知的密钥和解密算法,从验证码计算得到。在上述优选方式,标识r可以被视为被间接地发送给终端120A。在本说明书中,诸如从服务器或远程设备接收标识之类的表述应该广义地理解为包含终端从服务器接收标识的情形和终端从服务器接收可据此计算出标识的信息的情形。此夕卜,对于瘦客户端或无需在终端处进行预校验的情形,可简单地使标识r与校验码c相等。
[0040]在步骤S205,终端120A判断自发送登录请求开始所经历的时间是否超过预设的时间间隔,如果超过,则退出登录过程,否则则返回步骤S203。
[0041]回到步骤S203之后的另一分支,在步骤S207中,终端120A提示用户输入用户名和认证密码,可选地,还可提示输入验证码。随后进入步骤S209,终端120A等待用户输入认证密码。一旦检测到有字符输入,则进入步骤S211。而在步骤S211,终端120A判断该字符是否为接收到的第一个字符S1,如果是,则进入步骤S213,否则进入步骤S215。
[0042]在步骤S213,终端120A计算出接收的第一个字符S1的哈希值Ii1并且随后进入步骤 S217。
[0043]另一方面,在步骤S215,终端120A将当前接收到的字符SjP与接收到的前一个字符Sp1对应的哈希值Iv1构建为一个字符串Str(Sptvi)并且计算出该字符串Str(Sptvi)的哈希值作为与字符Sn对应的哈希值h”可以采用各种方式构建字符串Str (Sptvi),例如可以将字符Si拼接到哈希值hn的首部或尾部,或者可以将前者插入到后者中指定的位置。
[0044]优选地,在步骤S213和S215中,当计算得到每个字符的哈希值之后,终端120A即删除以明文形式存储的该字符。
[0045]在步骤S217,终端120A判断当前接收到的字符是否为认证密码的最后一个字符,如果是,则进入步骤S219 (如果在步骤S207未接收到用户输入的验证码c’ )或步骤S221(如果在步骤S207已接收到用户输入的验证码c’),否则则返回步骤S209。
[0046]在步骤S219,终端120A提示用户输入验证码,并且随后在步骤S221中,利用先前从服务器130A接收的应答消息中的预校验码V对用户输入的验证码c’进行校验。如果校验通过,则由步骤S221进入步骤S223,否则返回步骤S219,提示用户重新输入验证码。[0047]在步骤S223,终端120A根据与接收到的最后一个字符Sn对应的哈希值hn和先前从服务器130A接收的应答消息中包含的标识r生成相应的认证密码信息。有多种生成相应的认证密码信息的方式。例如可以将哈希值hn和标识r构建为一个字符串并且计算出该字符串的哈希值作为认证密码信息,其中标识r可以拼接到哈希值hn的首部或尾部,或者可以将前者插入到后者中指定的位置。另外,如上所述,用于生成认证密码信息的标识也可以由终端120A从用户输入的校验码c’计算得到。
[0048]最后进入步骤S225,终端120A向服务器130A发送包含用户名和认证密码信息的登录响应消息。
[0049]图3为按照本发明另一个实施例的在分布式处理环境下实现远程密码认证的方法的流程图。同样仅仅是示例性地,这里以图1所示的分布式处理环境作为图3所示方法的应用场景,并且假设服务器130A和130B构成一个应用系统,其中服务器130A和130B分别为鉴权机构和数据库,终端120A欲登录该应用系统。
[0050]如图3所示,在步骤S301,服务器130A响应于从终端120A接收的登录请求而生成一个标识r。随后进入步骤S303,服务器130A生成应答消息并向终端120A发送,该应答消息包括标识r、非文本形式的验证码c和从验证码c生成的预校验码V。优选地,可以将验证码c设计为通过利用对称密码算法或非对称密码算法对标识r施行加密操作而得到,因此在应答消息中可以只包含非文本形式的验证码c和预校验码V。
[0051]接着进入步骤S305,服务器130A判断是否接收到来自终端120A的登录响应消息,该登录响应消息可包括用户名和第一认证密码信息,其中第一认证密码信息可按照上面借助图2所述的方式生成。在步骤S305,如果判断未接收到登录响应消息,则进入步骤S307,否则则进入步骤S309。
[0052]在步骤S307,服务器130A判断自发送应答消息开始所经历的时间是否超过预设的时间间隔,如果超过,则退出登录过程,否则则返回步骤S305。
[0053]回到步骤S305之后的另一分支,在步骤S309中,服务器130A根据登录响应消息中的用户名获取相应的密码的最后一个字符S’ n的哈希值h’ n。该哈希值可以保存在服务器130A内部的存储设备内,或者也可以保存在服务器130A的外部(例如服务器130B的存储设备内)。
[0054]最后一个字符S’ ?的哈希值h’ n可以按照下列方式计算得到:服务器130A首先计算出密码的第一个字符S’ !的哈希值h’ !;随后,服务器130A根据下列方式计算后续每个字符的哈希值以得到最后一个字符的哈希值:将当前待处理的字符S’ i和与前一个字符S’ η对应的哈希值h’ η构建为一个字符串Str’(S’ i,h’ η)并且计算出该字符串Str’(S’ i,h’ η)的哈希值作为与字符S’ i对应的哈希值h’ it)同样可以采用各种方式构建字符串Str (Sptvi),例如上述的拼接或插入方式。
[0055]在步骤S311,服务器130A根据与密码的最后一个字符S’ n对应的哈希值h’ ?和在步骤S301中生成的标识r生成相应的第二认证密码信息。有多种生成第二认证密码信息的方式。例如可以将哈希值h’n和标识r构建为一个字符串并且计算出该字符串的哈希值作为第二认证密码信息,其中标识r可以拼接到哈希值h’n的首部或尾部,或者可以将前者插入到后者中指定的位置。
[0056]接着进入步骤S313,服务器130A判断第一认证密码信息与第二认证密码信息是否匹配,如果匹配,则进入步骤S315,生成认证成功的消息,否则则进入步骤S317,生成认证失败的消息。
[0057]步骤S315和S317之后都进入步骤S319,服务器130A向终端120A发送在步骤S315或S317中生成的消息。
[0058]图4为按照本发明另一个实施例的能够对用户输入的认证密码进行加密的终端的示意图。所示的终端适于实现上面借助图2所述实施例的方法。
[0059]如图4所示,这里所述的终端40包括用户输入设备410、存储器420、通信接口430、显示器440和与上述各个单元耦合的处理器450。
[0060]用户输入设备410作为终端40与用户之间的人机对话接口,其例如可以是键盘、触摸屏和鼠标,用于接收用户输入并提供给处理器450。存储器420存储有处理器450运行所需的应用程序以及与登录相关的数据。当上电开始工作时,处理器450将存储器420内的应用程序读取至内存中并开始运行。通信接口 430在处理器450的控制下,经网络与远程设备(例如图1中的服务器)通信以实现登录交互过程(例如通过执行步骤S201以发送登录请求,通过执行步骤S203接收来自服务器的应答消息和执行步骤S225以向远程设备发送登录响应消息等)以及终端应用程序的升级和维护等操作。在处理器450的控制下,显示器440向用户显示各种信息(例如通过执行步骤S207提示用户输入用户名、认证密码和验证码以及向用户显示认证成功或失败的消息等)。
[0061]以下描述图4所示终端的工作原理。
[0062]当终端40经网络与远程设备建立通信连接后,其通过通信接口 430向远程设备发送登录请求,并且将接收自远程设备的应答消息传送给处理器450。随后,处理器450指示显示器440提示用户输入用户名、认证密码和验证码,并且在用户输入设备410开始接收到用户输入的认证密码时,以如上所述的迭代方式,对用户输入的认证密码逐个字符地进行哈希运算,并且使后续输入字符的哈希值依赖于先前输入字符的哈希值(例如通过执行图2的步骤S207-S217)。在生成与接收的最后一个字符对应的哈希值之后,处理器450利用预校验码校验用户输入的验证码,如果校验未通过,则通过显示器440提示用户再次输入验证码,否则则生成第一认证密码信息并通过通信接口 430发送给远程设备。如上所述,处理器450可以将与接收的最后一个字符对应的哈希值作为第一认证密码信息,也可以根据与接收到的最后一个字符对应的哈希值和从远程设备接收的标识生成第一认证密码信息。
[0063]图5为按照本发明另一个实施例的在分布式处理环境下实现远程密码认证的服务器的示意图。所示的服务器适于实现上面借助图3所述实施例的方法。
[0064]如图5所示,这里所述的服务器50包括通信单元510、存储器520和与上述各个单元耦合的处理单元530。通信单元510在处理单元530的控制下,负责与服务器外部的装置(例如图4所示的终端)通信。存储器520用于存储用户名以及相应的认证密码。
[0065]以下描述图5所示服务器的工作原理。
[0066]当服务器40经网络与终端建立通信连接后,通信单元510接收来自终端的登录请求。随后,处理单元530生成一个标识r,从标识r生成验证码C,并且生成相应的预校验码V.接着,通信单元510经网络向终端发送包含验证码c和预校验码V的应答消息。当通信单元510接收到来自终端的登录响应消息后,处理单元530根据登录响应消息中包含的用户名,从存储器520中获取相应的密码的最后一个字符的哈希值。随后,处理单元530根据与最后一个字符对应的哈希值和之前生成的标识生成第二认证密码信息(例如执行步骤S311)并且将其与登录响应消息中的第一认证密码信息进行比较。如果二者匹配,则处理单元530经通信单元510向终端返回认证成功的消息,否则则经通信单元510向终端返回认证失败的消息。
[0067]由于可以在不背离本发明基本精神的情况下,以各种形式实施本发明,因此上面描述的【具体实施方式】仅是说明性的而不是限制性的。本发明的范围由所附权利要求定义,对上面描述方式所作的各种变化或变动都属于所附权利要求的保护范围。
【权利要求】
1.一种在终端处对用户输入的认证密码进行加密的方法,其特征在于,包括下列步骤: 检测是否接收到所述认证密码的第一个字符; 一旦检测到,则生成与所述第一个字符对应的哈希值; 依照接收的顺序,为所述认证密码的后续字符的每一个生成相应的哈希值,其方式为:根据与接收到的第(1-1)个字符对应的哈希值以及接收到的第i个字符生成与该第i个字符对应的哈希值;以及 向远程设备发送消息,所述消息包含与对应于最后一个接收的字符的哈希值相关联的认证密码信息。
2.如权利要求1所述的方法,其中,对于接收到的每个字符,其在生成对应的哈希值之后并且在生成下一字符的对应的哈希值之前即在终端处被删除。
3.如权利要求1所述的方法,其中,为所述认证密码的后续字符的每一个生成相应的哈希值包括下列步骤: 将与接收到的第(1-1)个字符对应的哈希值以及接收到的第i个字符构建为一个字符串;以及 生成与该字符串对应的哈希值作为与第i个字符对应的哈希值。
4.如权利要求1所述的方法,其中,在生成与最后一个接收的字符对应的哈希值之后并且在向所述远程设备发送所述消息之前,还包含下列步骤:根据与最后一个接收的字符对应的哈希值以及从所述远程设备接收的标识生成所述认证密码信息。
5.如权利要求4所述的方法,其中,按照下列方式生成所述认证密码信息: 将与最后一个接收的字符对应的哈希值以及从所述远程设备接收的标识构建为一个字符串;以及 生成与该字符串对应的哈希值作为所述认证密码信息。
6.如权利要求4所述的方法,其中,在生成与最后一个接收的字符对应的哈希值之后并且在生成所述认证密码信息之前,还包含下列步骤: 接收用户输入的验证码;以及 根据从所述远程设备接收的校验码确定所述验证码是否正确,如果正确,则进入生成所述认证密码信息的步骤。
7.—种能够对用户输入的认证密码进行加密的终端,其特征在于,包括: 用户输入设备; 与所述用户输入设备耦合的处理器,适于在所述用户输入设备接收到用户输入的所述认证密码的第一个字符时,生成与所述第一个字符对应的哈希值,并且随后依照接收的顺序,为所述认证密码的后续字符的每一个生成相应的哈希值,其方式为:根据与接收到的第(1-Ι)个字符对应的哈希值以及接收到的第i个字符生成与该第i个字符对应的哈希值;以及 与所述处理器耦合的通信接口,适于向远程设备发送消息,所述消息包含与对应于最后一个接收的字符的哈希值相关联的认证密码信息。
8.一种在分布式处理环境下实现远程密码认证的方法,所述分布式处理环境包括接入网络的服务器和终端,其特征在于,所述服务器执行下列步骤:经所述网络接收来自所述终端的认证消息,所述认证消息包括用户名和与该用户名相关联的第一认证密码信息; 生成第二认证密码信息;以及 将所述第一认证密码信息与第二认证密码信息进行比较,如果匹配,则确定认证成功,否则,则确定认证失败, 其中,所述第二认证密码信息基于与该用户名相关联的认证密码的最后一个字符的哈希值,所述最后一个字符的哈希值按照下列方式确定: 生成与所述认证密码的第一个字符对应的哈希值; 依照顺序,为所述认证密码的后续字符的每一个生成相应的哈希值,其方式为:根据与第(1-Ι)个字符对应的哈希值以及第i个字符生成与该第i个字符对应的哈希值。
9.如权利要求8所述的方法,其中,所述第一认证密码信息按照如权利要求1-3中任意一项所述的方法生成。
10.如权利要求8所述的方法,所述分布式处理环境基于客户机/服务器架构或者浏览器/服务器架构。
11.如权利要求8所述的方法,其中,为所述认证密码的后续字符的每一个生成相应的哈希值包括下列步骤: 将与第(1-Ι)个字符对应的哈希值以及第i个字符构建为一个字符串;以及 生成与该字符串对应的哈希值作为与第i个字符对应的哈希值。
12.如权利要求8所述的方法,其中,所述服务器响应于所述终端发送的认证请求而向所述终端发送标识,所述终端响应于所述标识而发送所述认证消息,所述第一认证密码信息按照如权利要求4或5所述的方法生成,并且所述第二认证信息按照下列方式生成:根据与最后一个字符对应的哈希值以及提供给所述终端的所述标识生成所述第二认证密码信肩、O
13.如权利要求8所述的方法,其中,通过访问所述服务器的存储装置或者从所述服务器外部获取与所述用户名相关联的认证密码的最后一个字符的哈希值。
14.一种在分布式处理环境下实现远程密码认证的服务器,其特征在于,包括: 通信单元,适于经所述网络接收来自终端的认证消息,所述认证消息包括用户名和与该用户名相关联的第一认证密码信息; 处理单元,适于生成第二认证密码信息并将所述第一认证密码信息与第二认证密码信息进行比较,如果匹配,则确定认证成功,否则,则确定认证失败,其中,所述第二认证密码信息基于与该用户名相关联的认证密码的最后一个字符的哈希值,所述最后一个字符的哈希值按照下列方式确定:生成与所述认证密码的第一个字符对应的哈希值,并且随后依照顺序,为所述认证密码的后续字符的每一个生成相应的哈希值,其方式为:根据与第(1-1)个字符对应的哈希值以及第i个字符生成与该第i个字符对应的哈希值。
【文档编号】H04L29/06GK104009963SQ201310059954
【公开日】2014年8月27日 申请日期:2013年2月26日 优先权日:2013年2月26日
【发明者】杨阳, 华锦芝 申请人:中国银联股份有限公司