一种用于认证用户身份的方法和装置的制作方法

文档序号:7709183阅读:126来源:国知局
专利名称:一种用于认证用户身份的方法和装置的制作方法
技术领域
本发明涉及一种用于认证用户身份的方法和装置。
背景技术
通常,当用户想要访问服务器以获取服务时,服务器需要先进行用户身份认证以 确定用户的身份是真的。在常规的用户身份认证方法中,服务器通常通过比较用户提供的 用户名和密码与先存储的用户的用户名和密码是否相同来确定用户的身份的真伪。在这种常规的用户身份认证方法中,用户的密码被重复使用,换言之,每次进行用 户身份认证时,用户总是使用同一密码。从而,其他人很容易通过密码猜测、应用通用密码 字典、肩窥(shoulder surfing)和键盘记录等方式来获取用户的密码,因此,这种常规的用 户身份认证方法存在安全问题。为了消除这种常规的用户身份认证方法存在的安全问题,人们提出了一种基于一 次性密码(OTP =One Time Password)的用户身份认证方法。这种基于一次性密码的用户身 份认证方法在每次进行用户身份认证时使用不同的密码,从而其他人通过密码猜测、应用 通用密码字典、肩窥和键盘记录等方式来获取用户的密码变得没有意义。然而,现有的基于一次性密码的用户身份认证方法需要使用硬件形式的一次性密 码产生器(例如,智能卡等)来生成一次性密码,而硬件形式的一次性密码产生器将会产生 成本,这可能会阻碍基于一次性密码的用户身份认证方法的应用。

发明内容
考虑到现有技术的上述缺陷,本发明提供一种用于认证用户身份的方法和装置, 利用该方法和装置,不需要使用硬件形式的一次性密码产生器来产生一次性密码。按照本发明的一种用于认证用户身份的方法,包括步骤当一个用户的身份需要 被认证时,向所述用户的终端发送一个方程式,其中,所述方程式是利用预定数量的参数中 的至少一个参数构造而成的;根据所存储的所述用户指派给所述预定数量的参数的参数 值,计算所述方程式的值,作为计算的密码;比较从所述终端接收到的所述用户提供的密码 与所述计算的密码是否相同;以及,当比较结果为肯定时,确定所述用户的身份是真的。按照本发明的一种用于认证用户身份的方法,包括当从服务器接收到一个方程 式时,向用户显示所述接收的方程式,其中,所述方程式是利用预定数量的参数中的至少一 个参数构造而成的;从所述用户接收所述用户提供的密码;以及,向所述服务器发送所述 用户提供的密码和所述用户的标识。按照本发明的一种用于认证用户身份的装置,包括发送模块,用于当一个用户的 身份需要被认证时,向所述用户的终端发送一个方程式,其中,所述方程式是利用预定数量 的参数中的至少一个参数构造而成的;计算模块,用于根据所存储的所述用户指派给所述 预定数量的参数的参数值,计算所述方程式的值,作为计算的密码;比较模块,用于比较从 所述终端接收到的所述用户提供的密码与所述计算的密码是否相同;以及,确定模块,用于
4当比较结果为肯定时,确定所述用户的身份是真的。按照本发明的一种用于认证用户身份的装置,包括显示模块,用于当从服务器接 收到一个方程式时,向用户显示所述接收的方程式,其中,所述方程式是利用预定数量的参 数中的至少一个参数构造而成的;接收模块,用于从所述用户接收所述用户提供的密码; 以及,发送模块,用于向所述服务器发送所述用户提供的密码和所述用户的标识。


本发明的其他特点、特征和优点通过以下结合附图的详细描述将变得更加显而易 见。其中图1是示出按照本发明一个实施例的应用架构的示意图;图2示出了按照本发明第一实施例的用户参数值库的一个例子;图3是示出按照本发明第一实施例的用户注册过程的示意图;图4是示出按照本发明第一实施例的用于认证用户身份的方法的示意图;图5示出了按照本发明第一实施例的用户注册页面的示例;图6示出了按照本发明第一实施例的用户登录页面的示例;以及图7示出了按照本发明第一实施例的用户认证页面的示例。
具体实施例方式下面,将结合附图详细描述本发明的各个实施例。按照本发明第一实施例的用于认证用户身份的方案,预先指定预定数量的参数和 预定数量的方程式,其中,该预定数量的方程式中的每一个方程式由该预定数量的参数中 的至少一个参数构造而成;各个用户各自指派给该预定数量的参数的参数值和该预定数量 的方程式存储在服务器中;当一个用户的身份需要被认证时,服务器从该预定数量的方程 式中选择一个方程式并发送给该用户,该用户根据其指派给该预定数量的参数的参数值来 计算该选择的方程式的值,作为该用户提供的密码,同时,服务器也根据其所存储的该用户 指派给该预定数量的参数的参数值来计算该选择的方程式的值,作为计算的密码,然后,服 务器比较该计算的密码与该用户提供的密码是否相同,当两者相同时,服务器确定该用户 的身份是真的,否则确定该用户的身份是假的。图1是示出按照本发明第一实施例的应用架构的示意图。图1所示的应用架构包 括终端100、服务器200和通信媒介300。终端100由用户持有,用于辅助该用户访问服务器200,使得该用户可以获取服务 器200提供的各种服务,例如网页、数据库服务等。服务器200用于对想访问其的用户的身份进行认证并在确定该用户的身份是真 的之后向该用户提供服务。服务器200包括有用于存储已注册用户的用户名(用户的标 识)的已注册用户库SK。此外,为了实现对用户的身份进行认证,服务器200还包括有用户 参数值库CK和方程式库Π(。用户参数值库CK用于存储各个用户各自指派给预定数量的参数的参数值,其中, 用户参数值库CK中所存储的各个用户各自指派给该预定数量的参数的参数值是在下面将 要描述的用户注册过程中由用户指派的。为了标识出各个用户所指派的参数值,把各个用户的用户名(用户的标识)与各个用户各自指派给该预定数量的参数的参数值关联地存储 在用户参数值库CK中。方程式库用于存储预定数量的方程式,其中,该预定数量的方程式中的每一个 方程式由该预定数量的参数中的至少一个参数构造而成。通信媒介300用作终端100和服务器200的通信中介。其中,通信媒介300可以
是无线通信网络或有线通信网络等。图2示出了按照本发明第一实施例的用户参数值库的一个例子。在图2所示的例 子中,该预定数量的参数是a、b、c、x、y和d,并且在用户参数值库CK中,用户名“Allen”与 用户名为“Allen”的用户指派给该预定数量的参数a、b、c、χ、y和d的参数值a = 1、b = 30,c = 7、x = 9、y = 18和ζ = 49被关联地存储,用户名“John”与用户名为“John”的用 户指派给该预定数量的参数a、b、c、χ、y和d的参数值a = 100、b = 80、c = 68、χ = 23、 y = i禾日ζ = 4被关联地存储,以及,用户名“David”与用户名为“David”的用户指派给该 预定数量的参数a、b、c、χ、y禾口 d的参数值a = 45、b = 67、c = 91、χ = 223、y = 112和 ζ = 8被关联地存储。图3是示出按照本发明第一实施例的用户注册过程的示意图。下面,以用户T为 例来说明本实施例的用户注册过程。如图3所示,当用户T向服务器200进行用户注册时,终端100提示用户T输入用 户τ的用户名(用户T的标识)和用户T指派给预定数量的参数的参数值(步骤S300)。在收到用户T输入的用户T指派给该预定数量的参数的参数值和用户T的用户名 后,终端100经由通信媒介300向服务器200发送一个用户注册请求消息(步骤S310)。其 中,该用户注册请求消息包括用户T指派给该预定数量的参数的参数值和用户T的用户名。在经由通信媒介300接收到来自终端100的用户注册请求消息后,服务器200把 该用户注册请求消息中所包括的用户T的用户名存储在已注册用户库SK中,以注册用户 T (步骤 S320)。然后,服务器200把该用户注册请求消息中所包括的用户T的用户名和用户T指 派给该预定数量的参数的参数值关联地存储在用户参数值库CK中(步骤S330)。接着,服务器200经由通信媒介300向终端100发送一个表示用户注册成功的用 户注册响应消息(步骤S340)。在经由通信媒介300接收到来自服务器200的用户注册响应消息后,终端100通 知用户τ用户注册成功(步骤S350)。图4是示出按照本发明第一实施例的用于认证用户身份的方法的示意图。下面, 以用户T为例来描述本实施例的方法。如图4所示,当用户T想访问服务器200时,终端100经由通信媒介300向服务器 200发送一个表示用户T请求登录的登录请求消息(步骤S400)。其中,该登录请求消息包 含作为用户T的标识的用户T的用户名。在经由通信媒介300接收到来自终端100的登录请求消息后,服务器200检查用 户参数值库CK中是否存在与该接收的登录请求消息中所包含的用户T的用户名关联地存 储的预定数量的参数的参数值(步骤S410)。如果步骤S410的检查结果为否定,则服务器200经由通信媒介300向终端100发送一个表示登录失败的登录响应消息(步骤S420)。在经由通信媒介300接收到来自服务器200的表示登录失败的登录响应消息后, 终端100通知用户T登录失败(步骤S430)。如果步骤S410的检查结果为肯定,则服务器200从方程式库中选择一个方程 式,作为用于认证用户T的身份的方程式F (步骤S440)。服务器200经由通信媒介300向终端100发送一个包含方程式F和用户T的用户 名的认证指示消息(步骤S450)。服务器200把用户T的用户名与方程式F关联地存储在临时存储区中(步骤 S460)。在经由通信媒介300接收到来自服务器200的认证指示消息后,终端100向用户 T显示该接收的认证指示消息所包含的方程式F和用户T的用户名(步骤S470)。用户T利用其之前指派给该预定数量的参数的参数值来计算该方程式F的值,并 把该计算的值作为用户T提供的密码输入给终端100。在接收到用户T所输入的用户T提供的密码后,终端100经由通信媒介300向服 务器200发送一个认证响应消息(步骤S480)。其中,该认证响应消息包含用户T提供的密 码和该认证指示消息包含的用户T的用户名。在经由通信媒介300接收到来自终端100的认证响应消息后,服务器200分别从 用户参数值库CK和临时存储区中检索出与该接收的认证响应消息所包含的用户T的用户 名关联地存储的该预定数量的参数的参数值和方程式(步骤S490)。由前述可知,该检索出 的方程式是方程式F。服务器200利用所检索的该预定数量的参数的参数值来计算所检索的方程式F的 值,作为计算的密码(步骤S500)。服务器200比较该计算的密码与该接收的认证响应消息中所包含的用户T提供的 密码是否相同(步骤S510)。服务器200根据步骤S510的比较结果来确定用户T的身份的真伪,否则确定用户 T的身份是真的(步骤S520)。具体的,当步骤S510的比较结果为否定时,确定用户T的身 份是假的,而当步骤S510的比较结果为肯定时,确定用户T的身份是真的。服务器200经由通信媒介300向终端100发送一个登录响应消息(步骤S530)。 其中,当用户T的身份被确定为假的时,该登录响应消息表示登录失败,而用户T的身份被 确定为真的时,该登录响应消息表示登录成功。在经由通信媒介300接收到来自服务器200的登录响应消息后,终端100根据该 接收的登录响应消息向用户τ显示相应的登录结果,即登录失败或登录成功(步骤S540)。下面,描述按照本发明第一实施例的用户注册和认证用户身份的一个具体示例。 在这个具体示例中,假设预定数量的参数是a、b、C、χ、y和ζ。当用户名为“Arm”的用户T向服务器200进行用户注册时,终端100显示出图5 所示的用户注册页面P。用户τ在用户注册页面P中输入其用户名“Arm”以及用户T指派 给预定数量的参数a、b、c、x、y和ζ的参数值a = 13、b = 29、c = 8、χ = 6、y = 3和ζ = 2。当用户T点击用户注册页面P上的“保存”按钮时,终端100经由通信媒介300向服务 器200发送一个用户注册请求消息,其中,该用户注册请求消息包括用户T的用户名“Arm”和用户T指派给该预定数量的参数a、b、C、χ、y和ζ的参数值a=13、b = 29、c = 8、x = 6、y = 3 禾口 ζ = 2。服务器200收到来自终端100的用户注册请求消息后,把该用户注册请求消息所 包含的用户τ的用户名“Arm”存储在已注册用户库SK中,以及把用户T的用户名“Arm”和 参数值a = 13、b = 29、c = 8、χ = 6、y = 3和ζ = 2关联地存储在用户参数值库CK中。当用户T想访问服务器200时,终端100显示出图6所示的用户登录页面D。用户 T在用户登录页面D中输入其用户名“Arm”。当用户T点击用户登录页面D上的“确定”按 钮时,终端100经由通信媒介300向服务器200发送一个登录请求消息,其中,该登录请求 消息包括用户T的用户名“Arm”。服务器200收到来自终端100的登录请求消息后,检查在用户参数值库CK中是否 存在与该接收的登录请求消息所包括的用户名“Arm”关联地存储的参数值。在这里,由于 用户参数值库CK中已经关联地存储了用户名“Arm”与参数值a = 13、b = 29、c = 8、x = 6、y = 3和ζ = 2,所以检查结果为肯定。服务器200从方程式库中选择了一个方程式“a+b* I (c-χ) |+y~14+z”作为用于验 证用户T的身份的方程式F。服务器200经由通信媒介300向终端100发送一个包含方程 式F“a+b*| (c-x) I+y~14+z”和用户名“Arm”的认证指示消息,同时把用户T的用户名“Arm” 和方程式F “a+b*| (c-x) |+y~14+z”关联地存储在临时存储区中。终端100收到来自服务器200的认证指示消息后,显示图7所示的用户认证页面 R0用户认证页面R包括有用户T的用户名“Arm”和方程式F “a+b* (c-χ) |+y~14+z”,同 时,为了方便计算,用户认证页面R还包括一个计算器。用户T根据其在用户注册时指派给该预定数量的参数a、b、c、X、y和ζ的参数值a =13、b = 29、c = 8、x = 6、y = 3和 ζ = 2,计算方程式 F "a+b* (c-χ) |+y~14+z” 的值, 即 a+b* (c-χ) +y"14+z = 13+29* (8-6) +3" 14+2 = 4783042,作为用户 T 提供的密码,并 输入到用户认证页面R上的密码输入框中。当用户T在用户认证页面R上的密码输入框中输入了密码“4783042”并点击用户 认证页面R上的“确定”按钮之后,终端100经由通信媒介300向服务器200发送一个包括 用户T提供的密码“4783042”和用户T的用户名“Arm”的认证响应消息。服务器200收到来自终端100的认证响应消息后,从用户参数值库CK中检索出 与该接收的认证响应消息所包含的用户名“Arm”关联地存储的参数值a = 13、b = 29、c =8、χ = 6、y = 3和ζ = 2,以及从临时存储区中检索出与该接收的认证响应消息所包 含的用户名“Arm”关联地存储的方程式F “a+b* (c-χ) |+y~14+z”。然后,服务器200利 用所检索的参数值a = 13、b = 29、c = 8、χ = 6、y = 3和ζ = 2来计算所检索的方程 式 F “a+b* I (c-χ) |+y"14+z” 的值,a+b* | (c_x) |+y"14+z = 13+29* | (8-6) +3" 14+2 = 4783042,作为计算的密码。接着,服务器200比较该计算的密码“4783042”与该接收的认 证响应消息所包含的用户T提供的密码“4783042”是否相同。在这里,显然两者是相同的, 所以服务器200确定用户T的身份是真的。其它变型本领域技术人员应当理解,虽然在第一实施例中,服务器200在经由通信媒介300 接收到来自终端100的包含用户T提供的密码的认证响应消息后,才计算方程式F的值作为计算的密码,然而,本发明并不局限于此。在本发明的其他一些实施例中,也可以在经由 通信媒介300接收到来自终端100的包含用户T提供的密码的认证响应消息之前,服务器 200就计算出方程式F的值作为计算的密码。例如,在本发明的其他一些实施例中,在步骤S450所描述的服务器200经由通信 媒介300向终端100发送一个包含该选择的方程式F和用户T的用户名的认证指示消息之 后,服务器200从用户参数值库CK检索出与用户T的用户名关联地存储的该预定数量的参 数的参数值;接着,服务器200利用所检索的该预定数量的参数的参数值来计算方程式F的 值,作为计算的密码;然后,服务器200把用户T的用户名与该计算的密码关联地存储在临 时存储区中;再接着,当经由通信媒介300接收到来自终端100的认证响应消息后,服务器 200从临时存储区中检索出与该接收的认证响应消息所包含的用户T的用户名关联地存储 的该计算的密码;然后,服务器200比较该计算的密码与该接收的认证响应消息中所包含 的用户T提供的密码是否相同。本领域技术人员应当理解,虽然在第一实施例中,服务器200获取计算的密码时 所使用的方程式F是与用户T的用户名关联地存储在临时存储区中的方程式F,然而,本发 明并不局限于此。在本发明的其他一些实施例中,服务器200获取计算的密码时所使用的 方程式F也可以来自终端100。例如,在本发明的其他一些实施例中,终端100经由通信媒介300向服务器200发 送的认证响应消息除了包含用户T提供的密码和用户T的用户名之外,还包括方程式F。在 经由通信媒介300接收到来自终端100的认证响应消息后,服务器200从用户参数值库CK 中检索出与该接收的认证响应消息所包含的用户T的用户名关联地存储的该预定数量的 参数的参数值。然后,服务器200利用所检索的该预定数量的参数的参数值,来计算该接收 的认证响应消息所包含的的方程式F的值,作为计算的密码。本领域技术人员应当理解,虽然在第一实施例中,用于认证用户T的身份的方程 式F是从预先存储在方程式库Π(中的预定数量的方程式中选择得到,然而,本发明并不局 限于此。在本发明的其他一些实施例中,用于认证用户T的身份的方程式F也可以由服务 器200实时生成。本领域技术人员应当理解,虽然在第一实施例中,当服务器200从终端100收到用 户T的登陆请求消息时,用户T的身份才需要被认证,然而,本发明并不局限于此。例如,在 本发明的其他一些实施例中,也可以在用户T访问服务器200想获取重要的服务时,用户T 的身份需要被认证。本领域技术人员应当理解,虽然在第一实施例中,在用户T向服务器200进行用户 注册的用户注册过程中用户T给该预定数量的参数指派参数值,然而,本发明并不局限于 此。在本发明的其他一些实施例中,也可以在用户T向服务器200进行用户注册的用户注 册过程之外,用户T给该预定数量的参数指派参数值,或者,用户T也可以通过打电话等这 样的其它方式来给该预定数量的参数指派参数值。本领域技术人员应当理解,虽然在第一实施例中,用户参数值库CK和方程式库 被包括在服务器200中,然而,本发明并不局限于此。在本发明的其他一些实施例中,用户 参数值库CK和方程式库也可以位于服务器200的外部。本领域技术人员应当理解,上面各个实施例所描述的由终端100和服务器200各自所执行的各个步骤,可以利用软件、硬件或者软硬件相结合的方式来实现。
本领域技术人员应当理解,本发明的各个实施例可以在不偏离发明实质的情况下 做出各种变型和改变,并且这些变型和改变都落入本发明的保护范围之内。因此,本发明的 保护范围由所附的权利要求书来定义。
权利要求
一种用于认证用户身份的方法,包括步骤当一个用户的身份需要被认证时,向所述用户的终端发送一个方程式,其中,所述方程式是利用预定数量的参数中的至少一个参数构造而成的;根据所存储的所述用户指派给所述预定数量的参数的参数值,计算所述方程式的值,作为计算的密码;比较从所述终端接收到的所述用户提供的密码与所述计算的密码是否相同;以及当比较结果为肯定时,确定所述用户的身份是真的。
2.如权利要求1所述的方法,其中,所述计算步骤进一步包括在从所述终端接收到所述用户提供的密码和所述用户的标识后,根据所述用户的标 识,从所存储的各个用户指派给所述预定数量的参数的参数值中,检索出所述用户指派给 所述预定数量的参数的参数值;以及根据所检索的参数值,计算所述方程式的值,作为所述计算的密码。
3.如权利要求1所述的方法,其中,所述方程式是从预定数量的方程式中选择的。
4.如权利要求1所述的方法,其中,还包括步骤在所述用户的身份需要被认证之前,从所述终端接收所述用户指派给所述预定数量的 参数的参数值和所述用户的标识;以及关联地存储所接收的所述用户指派给所述预定数量的参数的参数值和所述用户的标识。
5.一种用于认证用户身份的方法,包括当从服务器接收到一个方程式时,向用户显示所述接收的方程式,其中,所述方程式是 利用预定数量的参数中的至少一个参数构造而成的; 从所述用户接收所述用户提供的密码;以及 向所述服务器发送所述用户提供的密码和所述用户的标识。
6.如权利要求5所述的方法,其中,还包括在从所述服务器接收到所述方程式之前,从所述用户接收所述用户指派给所述预定数 量的参数的参数值和所述用户的标识;以及向所述服务器发送所接收的所述用户指派给所述预定数量的参数的参数值和所述用 户的标识。
7.一种用于认证用户身份的装置,包括发送模块,用于当一个用户的身份需要被认证时,向所述用户的终端发送一个方程式, 其中,所述方程式是利用预定数量的参数中的至少一个参数构造而成的;计算模块,用于根据所存储的所述用户指派给所述预定数量的参数的参数值,计算所 述方程式的值,作为计算的密码;比较模块,用于比较从所述终端接收到的所述用户提供的密码与所述计算的密码是否 相同;以及确定模块,用于当比较结果为肯定时,确定所述用户的身份是真的。
8.如权利要求7所述的装置,其中,所述计算模块进一步包括检索单元,用于在从所述终端接收到所述用户提供的密码和所述用户的标识后,根据所述用户的标识,从所存储的各个用户指派给所述预定数量的参数的参数值中,检索出所 述用户指派给所述预定数量的参数的参数值;以及计算单元,用于根据所检索的参数值,计算所述方程式的值,作为所述计算的密码。
9.如权利要求7所述的装置,其中,所述方程式是从预定数量的方程式中选择的。
10.如权利要求7所述的装置,其中,所述装置是服务器。
11.一种用于认证用户身份的装置,包括显示模块,用于当从服务器接收到一个方程式时,向用户显示所述接收的方程式,其 中,所述方程式是利用预定数量的参数中的至少一个参数构造而成的; 接收模块,用于从所述用户接收所述用户提供的密码;以及 发送模块,用于向所述服务器发送所述用户提供的密码和所述用户的标识。
12.如权利要求11所述的装置,其中,所述装置是终端。
13.一种机器可读介质,其上存储有指令集合,当所述指令集合被执行时,使得机器执 行权利要求1至6中任意一个权利要求所述的步骤。
全文摘要
本发明涉及一种用于认证用户身份的方法和装置,其中,用于认证用户身份的方法包括当一个用户的身份需要被认证时,向所述用户的终端发送一个方程式,其中,所述方程式是利用预定数量的参数中的至少一个参数构造而成的;根据所存储的所述用户指派给所述预定数量的参数的参数值,计算所述方程式的值,作为计算的密码;比较从所述终端接收到的所述用户提供的密码与所述计算的密码是否相同;以及,当比较结果为肯定时,确定所述用户的身份是真的。利用该方法和装置,不需要使用硬件形式的一次性密码产生器就能产生一次性密码。
文档编号H04L9/32GK101938356SQ20091014847
公开日2011年1月5日 申请日期2009年6月30日 优先权日2009年6月30日
发明者刘康, 刘彦 申请人:西门子(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1