安全认证系统及方法与流程

文档序号:13696556阅读:463来源:国知局
技术领域本发明涉及一种认证系统,尤其涉及一种安全认证系统及方法。

背景技术:
MD5(Message-DigestAlgorithm5,信息-摘要算法5)是计算器安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。在一些轻量级的网络用户认证中,MD5也常常被使用来验证用户的身份。通常情况下,使用者认证由客户端发起,将用户名和密码发送给服务器,为了使密码不使用明文,所述客户端将密码使用MD5-Hash(哈希值计算工具)处理,发送到服务器。当服务器收到用户名和密码的MD5值后,利用服务器存储的该客户端对应的MD5值来验证这个用户是否是合法的,如果是合法的,则返回认证成功至该客户端,否则返回认证失败至该客户端。上述认证方法虽然可以实现服务器对客户端的用户的认证,但是,这种认证方法却非常容易被非法用户冒充,非法用户通过截获用户名和密码的MD5消息以冒充合法身份登陆到服务器。此外,上述认证方法只能实现服务器对客户端的认证,但是客户端却不能证明服务器是否合法。

技术实现要素:
鉴于以上内容,有必要提供一种安全认证系统,其可以简单有效地使客户端对服务器的合法性进行检验,同时让服务器对客户端的合法性进行检验。还有必要提供一种安全认证方法,其可以简单有效地使客户端对服务器的合法性进行检验,同时让服务器对客户端的合法性进行检验。一种安全认证系统,该系统运行于一客户端中,并包括:生成模块,用于当所述客户端以一个用户名向一服务器发起认证时,生成随机数Nonce1;第一发送模块,用于将所述用户名以及生成的随机数Nonce1发送至所述服务器以向所述服务器发送认证请求;校验模块,用于当接收到服务器发送的包括一随机数Nonce2与一第一Hash值的认证响应时,对所述第一Hash值进行校验以确定所述服务器的合法性;所述第二发送模块,用于当确定所述服务器合法时,以所接收的所述随机数Nonce2以及客户端中对应于所述用户名的密码作运算产生第二Hash值,并将所述用户名与第二Hash值发送至服务器以向服务器发送接入请求。一种安全认证系统,其特征在于,该系统运行于所述服务器中,并包括:生成模块,用于当接收到一客户端发送的包括随机数Nonce1和用户名的认证请求时,生成随机数Nonce2;第一发送模块,用于以服务器中存储的对应于所述用户名的密码与所接收到的Nonce1作运算产生第一Hash值,并将所述产生的第一Hash值与所生成的随机数Nonce2发送至该客户端;校验模块,用于当接收到所述客户端发送的包括用户名与第二Hash值的接入请求时,对所述第二Hash值时进行校验,以判断该客户端的合法性;第二发送模块用于当确定所述客户端合法时,发送认证成功的应答至所述客户端中或当确定所述客户端不合法时,发送认证失败的应答至所述客户端中。一种安全认证方法,该方法包括如下步骤:生成步骤:当一客户端以一个用户名向一服务器发起认证时,生成随机数Nonce1;第一发送步骤:将所述用户名以及生成的随机数Nonce1发送至所述服务器以向所述服务器发送认证请求;校验步骤:当接收到服务器发送的包括一随机数Nonce2与一第一Hash值的认证响应时,对所述第一Hash值进行校验以确定所述服务器的合法性;第二发送步骤一:当确定所述服务器合法时,以所接收的所述随机数Nonce2以及客户端中对应于所述用户名的密码作运算产生第二Hash值,并将所述用户名与第二Hash值发送至服务器以向服务器发送接入请求。一种安全认证方法,该方法还包括:生成步骤:当一服务器接收到一客户端发送的包括所述随机数Nonce1和用户名的认证请求时,生成随机数Nonce2;第一发送步骤:以服务器中存储的对应于所述用户名的密码与所接收到的Nonce1作运算产生第一Hash值,并将所述产生的第一Hash值与所生成的随机数Nonce2发送至该客户端;校验模块步骤:当接收到所述客户端发送的包括用户名与第二Hash值的接入请求时,对所述第二Hash值时进行校验,以判断该客户端的合法性;第二发送步骤:当确定所述客户端合法时,发送认证成功的应答至所述客户端中或当确定所述客户端不合法时,发送认证失败的应答至所述客户端中。相较于现有技术,所述的安全认证系统及方法,其可以简单有效地使客户端对服务器的合法性进行检验,同时让服务器对客户端的合法性进行检验,达到双向认证。同时所述安全认证系统及方法算法简单,不需要过于复杂的运算,非常实用。附图说明图1是本发明安全认证系统较佳实施例的运行环境示意图。图2是本发明安全认证系统较佳实施例的功能模块图。图3是本发明安全认证系统中所采用的封包的结构示意图。图4是本发明安全认证系统中所采用的认证选项示意图。图5是本发明安全认证方法较佳实施例的作业流程图。图6是本发明安全认证方法中客户端与服务器之间数据交互的示意图。主要元件符号说明客户端1服务器2安全认证系统10处理器11,21存储装置12,22生成模块100第一发送模块101校验模块102第二发送模块103如下具体实施方式将结合上述附图进一步说明本发明。具体实施方式如图1所示,是本发明安全认证系统较佳实施例的运行环境示意图。该安全认证系统10同时运行于一客户端1及一服务器2中以实现客户端1与服务器端2之间的相互安全认证。所述客户端1与服务器端2可以通过网络3进行数据通信。所述客户端1至少还包括处理器11与存储装置12,以及所述服务器2至少还包括处理器21与存储装置22,以存储并执行安全认证系统10中的各功能模块。所述处理器11,21用于执行安全认证系统10中的各功能模块。所述的存储装置12用于存储客户端1的各类数据。所述存储装置22用于存储服务器2的各类数据。在本较佳实施例中,所述安全认证系统10以软件程序或指令的形式安装在存储装置12,22中,并由对应的处理器11,21执行。如图2所示,是本发明安全认证系统较佳实施例的功能模块图。该安全认证系统10包括生成模块100、第一发送模块101、校验模块102、以及第二发送模块103。本发明所称的模块是完成一特定功能的客户端程序段,比程序更适合于描述软件在客户端中的执行过程,因此本发明以下对软件描述都以模块描述。在本较佳实施例中,所述的客户端1为发起认证的装置,即作为认证发起方。所述的服务器2为确认认证的装置,即为认证确认方。当所述安全认证系统10运行于认证发起方的装置(例如客户端1)中时,上述模块101-103执行以下功能:所述生成模块100用于当客户端1以一个用户名向服务器2发起认证时,生成随机数Nonce1,所述用户名可以是登陆服务器2的ID号;所述第一发送模块101用于将所述用户名以及生成的随机数Nonce1发送至所述服务器2以向该服务器2发送认证请求;所述校验模块102用于当接收到服务器2发送的包括一随机数Nonce2与一第一Hash值的认证响应时,对所述第一Hash值进行校验以确定所述服务器2的合法性。应说明的是,所述校验模块102将生成模块100生成的随机数Nonce1与客户端1中对应于所述用户名的密码作MD5-Hash运算产生一Hash值(即利用利用哈希值计算工具来计算对应的Hash值),如果该运算的Hash值与接收到的服务器2的第一Hash值相同,所述校验模块102判定该服务器2合法;如果该计算的Hash值与接收到的服务器2的第一Hash值不相同,所述校验模块102判定该服务器2不合法;所述第二发送模块103用于当确定所述服务器2合法时,以所接收的服务器2的随机数Nonce2以及客户端1中对应于所述用户名的所述密码作MD5-Hash运算产生第二Hash值,并将所述用户名与第二Hash值发送至服务器2以向服务器2发送接入请求。所述第二发送模块103还用于当确定所述服务器2不合法时,向客户端1提示所述服务器2不合法。当所述安全认证系统10运行于认证确认方的装置(例如服务器2)中时,上述模块101-103执行以下功能:所述生成模块100用于当接收到客户端1发送的包括随机数Nonce1和用户名的认证请求时,生成随机数Nonce2;所述第一发送模块101用于以服务器2存储的对应于所述用户名的密码与所接收到的Nonce1作MD5-Hash运算产生第一Hash值,并将所述产生的第一Hash值与所生成的随机数Nonce2发送至该客户端1;所述校验模块102用于当接收到所述客户端1发送的包括用户名与第二Hash值的接入请求时,对所述第二Hash值时进行校验,以判断该客户端1的合法性。应说明的是,所述校验模块102将生成模块100生成的随机数Nonce2与服务器2上存储的对应于所述用户名的密码作MD5-Hash运算产生一Hash值,如果该计算的Hash值与接收到的客户端1的第二Hash值相同,所述校验模块102判定该客户端1合法;如果该计算的Hash值与接收到的客户端1的第二Hash值不相同,所述校验模块102判定该客户端1不合法;所述第二发送模块103用于当确定所述客户端1合法时,发送认证成功的应答至所述客户端1中;以及当确定所述客户端1不合法时,发送认证失败的应答至所述客户端1中。在本较佳实例中,所述安全认证系统10发送数据时所采用的封包格式如图3所示。所述封包包括标头(Header)、保留(Rev)、长度(Length)以及认证选项四个部分。所述的标头部分利用不同的数值表示不同的信息类型。如图4所示,是图3中所示的封包中的认证选项部分所采用的格式。所述认证选项部份采用TLV格式。所述的认证选项部分包括Type(类型)、保留(Rev)长度(Length)以及Type对应的对应值。其中,当类型type为04时,所述的code为认证成功值或认证失败值。参阅图5所示,是本发明安全认证方法较佳实施例的流程图。应该了解,图5的流程图为客户端1与服务器2之间完整的认证流程图。然而,本发明所述安全认证方法并不限于图5所示流程图中的步骤及顺序。根据不同的实施例,图5所示流程图中的步骤可以增加、移除、或者改变顺序。步骤S501,当客户端1以一个用户名向服务器2发起认证时,客户端1中的生成模块100生成随机数Nonce1,以及第一发送模块101将所述用户名以及生成的随机数Nonce1发送至所述服务器2以向该服务器2发送认证请求。其中,所述用户名可以是登陆服务器2的ID号。步骤S502,所述服务器2接收所述客户端1发送的包括随机数Nonce1和用户名的认证请求,所述服务器2中的生成模块100生成随机数Nonce2,以及第一发送模块101以服务器2存储的对应于所述用户名的密码与所接收到的Nonce1作MD5-Hash运算产生第一Hash值,并将所述产生的第一Hash值与所生成的随机数Nonce2发送至该客户端1。步骤S503,所述客户端1接收所述服务器2发送的包括一随机数Nonce2与一第一Hash值的认证响应,所述客户端1中的校验模块102对所述第一Hash值进行校验以确定所述服务器2的合法性,以及当确定所述服务器2合法时以所接收的服务器2的随机数Nonce2以及客户端1中对应于所述用户名的所述密码作MD5-Hash运算产生第二Hash值,并将所述用户名与第二Hash值发送至服务器2以向服务器2发送接入请求。应说明的是,所述校验模块102将所述生成的随机数Nonce1与客户端1中对应于所述用户名的密码作MD5-Hash运算产生一Hash值,如果该运算的Hash值与接收到的服务器2的第一Hash值相同,所述校验模块102判定该服务器2合法;如果该计算的Hash值与接收到的服务器2的第一Hash值不相同,所述校验模块102判定该服务器2不合法。当确定所述服务器2不合法时,所述第二发送模块103向客户端1提示所述服务器2不合法。步骤S504,所述服务器2接收所述客户端1发送的包括用户名与第二Hash值的接入请求,所述服务器2中的校验模块102对所述第二Hash值时进行校验,以判断该客户端1的合法性,以及所述第二发送模块103发送认证成功或认证失败的结果向所述客户端1应答。在本较佳实施例中,所述校验模块102将所述生成的随机数Nonce2与服务器2上存储的对应于所述用户名的密码作MD5-Hash运算产生一Hash值,如果该计算的Hash值与接收到的客户端1的第二Hash值相同,所述校验模块102判定该客户端1合法;如果该计算的Hash值与接收到的客户端1的第二Hash值不相同,所述校验模块102判定该客户端1不合法。当确定所述客户端1合法时,发送认证成功的应答至所述客户端1中;当确定所述客户端1不合法时,发送认证失败的应答至所述客户端1中。图6是本发明安全认证方法中客户端与服务器之间数据交互的示意图。在整个认证流程中,在认证请求时,客户端1向服务器2发送的数据包括用户名和随机数Nonce1;在认证响应时,服务器2项客户端发送的数据包括用户名,随机数Nonce2,以及以服务器2存储的所述用户名对应的密码与Nonce1作运算产生的第一Hash值;在接入请求时,客户端1向服务器2发送的数据包括用户名,以及以客户端1中对应于所述用户名的密码与Nonce2作运算产生的第二Hash值;在应答时,服务器2向客户端1发送的数据包括用户名,和认证成功值/失败值。最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照以上较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1