一种双因子认证方法

文档序号:7928252阅读:289来源:国知局
专利名称:一种双因子认证方法
技术领域
本发明涉及身份认证技术领域,尤其涉及一种双因子认证方法。
背景技术
虚随着互联网技术的飞速发展,网络服务与人们的日常生活、工作密不可分,典型的有网上购物、网上银行、网络游戏。网络不仅给人们提供了便利,也带来了烦恼,病毒、木马大肆传播,大量客户的账号密码信息被窃取,网络安全问题日益突出地显现出来。网络安全中的身份认证技术也越发重要。 身份认证是一方(如自然人或系统)向另一方声明自身的身份并被验证的过程。认证过程可以包含一种或多种认证机制。认证机制是某个体证明对一个认证因子的认知与占有的流程。 目前,身份认证方法主要包括两种单因子认证和双因子认证。双因子认证使用两个认证因子,安全性得到很大提高。 目前使用用户口令认证和TLS (Transport Layer Security Protocol,安全传输层协议)证书认证的双因子认证方法,都是先进行TLS证书认证,证书认证成功后再进行用户口令认证,这样就需要较多的认证报文交互次数,从而使得认证效率低,认证速度慢。

发明内容
鉴于上述的分析,本发明目的在于提供一种双因子认证方法,用以解决现有技术
中的双因子认证方法效率低、速度慢的问题。 本发明的目的主要是通过以下技术方案实现的 本发明提供了一种双因子认证方法,所述方法包括 步骤A:客户端以用户设定的口令作为密钥,以客户端随机数和用户名作为数据,通过预定算法运算得到用户口令认证的校验值,并将由所述校验值和用户名组成的认证请求信息、客户端随机数携带在安全传输层协议报文中发送给服务器; 步骤B :服务器对接收到的安全传输层协议报文中的认证请求信息进行解析,并根据解析到的用户名获取数据库中预存储的用户口令; 步骤C:服务器通过同样的算法对获取到的预存储的用户口令进行运算,将运算得到的校验值与认证请求信息中的校验值进行比较,当确认二者相同时,用户口令认证成功; 步骤D :用户口令认证成功后,服务器和客户端继续进行安全传输层协议证书认
证,直到安全传输层协议证书认证完成。
进一步地,所述步骤B具体包括 服务器根据用户名查询数据库,如果无法获取该用户的用户口令,则用户口令认证失败;如果获取了用户口令,则执行步骤C。
进一步地,所述步骤C具体包括
3
CI :服务器通过同样的算法对获取到的预存储的用户口令进行运算,将运算得到 的用户口令的校验值与认证请求信息中的校验值进行比较,如果不同,则执行步骤C2,否则 执行步骤C3 ; 步骤C2 :用户口令认证失败,将认证结果信息携带在安全传输层协议响应报文中 发送给该用户,并终止认证; 步骤C3 :用户口令认证成功,服务器继续分析安全传输层协议报文的其余部分, 并将认证结果信息携带在安全传输层协议响应报文中发送给该用户。
进一步地,所述步骤D具体包括 客户端收到安全传输协议响应报文后,根据其中的认证结果信息进行分析,如果 用户口令认证失败,则终止认证;如果用户口令认证成功,则继续分析报文的其余部分,生 成安全传输协议响应报文,发送给服务器; 客户端和服务器继续TLS证书认证,直到TLS认证完成。
其中,所述认证请求信息至少包括以下字段中的一个或多个 安全传输协议扩展类型、数据长度、校验值长度、校验值、用户名长度和用户名。所 述认证结果信息至少包括以下字段中的一个或多个 安全传输协议扩展类型、数据长度、认证结果值和失败原因类型。
本发明有益效果如下 本发明通过对标准的TLS报文进行扩展,在TLS证书认证过程中同时传输用户口 令认证信息,从而能够避免TLS证书认证后再次传递用户口令认证信息,减少了认证报文 交互次数,认证效率高,提高了认证速度。 本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变 得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明 书、权利要求书、以及附图中所特别指出的结构来实现和获得。


图1为本发明所述方法的流程示意图;
图2为本发明实施例所述方法的流程示意图。
具体实施例方式
本发明的核心思想为针对使用用户口令认证和TLS (Transport LayerSecurity Protocol,安全传输层协议)证书认证的双因子认证,在TLS证书认证过程中同时传输用户 口令认证信息,避免TLS证书认证后再次传递用户口令认证信息,减少了认证报文交互次 数,提高了认证速度。 下面结合附图来具体描述本发明的优先实施例,其中,附图构成本申请一部分,并 与本发明的实施例一起用于阐释本发明的原理。 如图1所示,图1为本发明所述方法的流程示意图,具体可以包括下列步骤
步骤101 :客户端产生TLS报文需要的客户端随机数,以用户的口令作为密钥,以 客户端随机数+用户名作为数据,进行HMAC(—种经加密的散列消息验证码,是一种使用加 密散列函数和密钥计算出来的一种消息验证码(MAC))运算得到用户口令认证的校验值。校验值和用户名组成认证请求信息,按照TLS扩展结构格式,编码认证请求信息,认证请求 信息数据结构为TLS扩展类型(2字节)+数据长度(l字节)+校验值长度(4字节)+校 验值+用户名长度(4字节)+用户名,其中TLS扩展类型值为2001 ,数据长度为其后所有字 段的字节数,长度编码使用网络字节序。然后该用户产生TLS报文需要的其他数据(TLS报 文中与证书认证有关的数据),与客户端随机数、认证请求信息一起组成完整的TLS报文, 发送给服务器。 步骤102 :服务器收到该用户的TLS报文后,读取其中的认证请求信息,分析得到
其中的用户名,然后根据用户名查询数据库中预存储的用户口令,如果无法获取用户口令,
说明此用户不存在,用户口令认证失败;如果获取了用户口令,则执行步骤103 ; 步骤103 :服务器进行同样的HMAC运算,将运算得到的用户口令的校验值与来自
该用户认证请求信息中的校验值进行比较。如果不同,说明用户口令认证失败;如果相同,
说明用户口令认证成功。 步骤103 :服务器按照TLS扩展结构格式编码认证结果信息,认证结果信息数据结 构为TLS扩展类型(2字节)+数据长度(l字节)+认证结果值(l字节)+失败原因类型 (2字节),其中TLS扩展类型值为2002,数据长度为其后所有字段的字节数,认证结果值1 代表认证成功,2代表认证失败;失败原因0代表无原因或不需要原因,1代表用户不存在,
2代表用户口令错误,长度编码使用网络字节序。如果用户口令认证失败,服务器生成TLS 响应报文,将认证结果信息嵌入TLS报文中,发送给该用户,然后服务器终止认证。如果用 户口令认证成功,服务器继续分析TLS报文的其余部分,生成TLS响应报文,并将认证结果 信息嵌入到TLS响应报文中,发送给该用户。 步骤104 :该用户收到TLS响应报文后,读取其中的认证结果信息,如果用户口令 认证失败,则终止认证;如果用户口令认证成功,则执行步骤105。 步骤105 :继续分析TLS响应报文的其余部分,生成TLS响应报文,发送给服务器; 该用户和服务器继续TLS证书认证,直到TLS认证完成。所述TLS证书认证的具体认证过 程可以采用现有技术中已有的成熟方案,此处不再赘述。 为了便于理解本发明,下面以SSLVPN(SSL,安全套接层;VPN,虚拟专用网;SSLVPN 即采用SSL协议来实现远程接入的一种VPN技术)系统身份认证为例作进一步说明。
用户启动SSLVPN的客户端软件,将用户名、用户口令配置在客户端软件中,同时 选择认证用的证书,如果证书需要密码,则配置证书密码。如果用户不愿意保存用户口令和 证书密码在客户端软件中,可以不配置,每次认证时候,客户端软件将弹出对话框要求用户 输入。SSLVPN网关需要配置好用户信息,证书信息。以下是每次用户使用SSLVPN客户端软 件与SSLVPN网关使用本发明所述方法进行身份认证时的交互过程,如图2所示,具体可以 包括以下步骤 步骤201 :SSLVPN客户端软件产生TLS报文需要的客户端随机数,以用户的口令 作为密钥,以客户端随机数+用户名作为数据,进行HMAC运算得到用户口令认证的校验 值。校验值和用户名组成认证请求信息,并按照TLS扩展结构格式,编码认证请求信息,然 后SSLVPN客户端软件产生TLS报文需要的其他数据,与客户端随机数、认证请求信息一起 组成完整的TLS报文,发送给SSLVPN网关。 步骤202 :SSLVPN网关收到来自SSLVPN客户端的TLS报文后,读取其中的认证请
5求信息,分析得到其中的用户名,然后根据用户名查询数据库获取用户口令。如果无法获取 用户口令,说明此用户不存在,用户口令认证失败。如果获取了用户口令,则执行步骤203.
步骤203 :进行同样的HMAC运算,将所得校验值与来自SSLVPN客户端认证请求信 息中的校验值进行比较。如果不同,说明用户口令认证失败。如果相同,说明用户口令认证 成功。SSLVPN网关按照TLS扩展结构格式编码认证结果信息。然后SSLVPN网关生成TLS 响应报文,将认证结果信息嵌入TLS报文中,发送给SSLVPN客户端,如果用户口令认证失 败,SSLVPN网关终止认证。 步骤204 :SSLVPN客户端软件收到TLS响应报文后,读取其中的认证结果信息, 如果用户口令认证失败,则终止认证,并弹出对话框,提示用户认证失败,并显示认证失败 原因。如果用户口令认证成功,则继续分析TLS报文其余部分,生成TLS响应报文,发送给 SSLVPN网关; 步骤205 :SSLVPN客户端软件和SSLVPN网关继续TLS证书认证,直到TLS认证完 成; 综上所述,本发明提供了一种双因子认证方法,通过对标准的TLS报文进行扩展, 在TLS证书认证过程中同时传输用户口令认证信息,从而能够避免TLS证书认证后再次传 递用户口令认证信息,减少了认证报文交互次数,认证效率高,提高了认证速度。并且,对于 用户口令错误或用户不存在的情况,通常的方法先进行TLS证书认证,不能快速的提示用 户错误,依照本发明实施例所述方法在TLS证书认证之前就可以进行用户口令认证,提示 用户错误,认证响应速度大大提高。 以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换, 都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范 围为准。
权利要求
一种双因子认证方法,其特征在于,所述方法包括步骤A客户端以用户设定的口令作为密钥,以客户端随机数和用户名作为数据,通过预定算法运算得到用户口令认证的校验值,并将由所述校验值和用户名组成的认证请求信息、客户端随机数携带在安全传输层协议报文中发送给服务器;步骤B服务器对接收到的安全传输层协议报文中的认证请求信息进行解析,并根据解析到的用户名获取数据库中预存储的用户口令;步骤C服务器通过同样的算法对获取到的预存储的用户口令进行运算,将运算得到的校验值与认证请求信息中的校验值进行比较,当确认二者相同时,用户口令认证成功;步骤D用户口令认证成功后,服务器和客户端继续进行安全传输层协议证书认证,直到安全传输层协议证书认证完成。
2. 根据权利要求1所述的方法,其特征在于,所述步骤B具体包括服务器根据用户名查询数据库,如果无法获取该用户的用户口令,则用户口令认证失败;如果获取了用户口令,则执行步骤C。
3. 根据权利要求1所述的方法,其特征在于,所述步骤C具体包括CI :服务器通过同样的算法对获取到的预存储的用户口令进行运算,将运算得到的用户口令的校验值与认证请求信息中的校验值进行比较,如果不同,则执行步骤C2,否则执行步骤C3 ;步骤C2 :用户口令认证失败,将认证结果信息携带在安全传输层协议响应报文中发送给该用户,并终止认证;步骤C3 :用户口令认证成功,服务器继续分析安全传输层协议报文的其余部分,并将认证结果信息携带在安全传输层协议响应报文中发送给该用户。
4. 根据权利要求3所述的方法,其特征在于,所述步骤D具体包括客户端收到安全传输协议响应报文后,根据其中的认证结果信息进行分析,如果用户口令认证失败,则终止认证;如果用户口令认证成功,则继续分析报文的其余部分,生成安全传输协议响应报文,发送给服务器;客户端和服务器继续TLS证书认证,直到TLS认证完成。
5. 根据权利要求1或3所述的方法,其特征在于,所述认证请求信息至少包括以下字段中的一个或多个安全传输协议扩展类型、数据长度、校验值长度、校验值、用户名长度和用户名。
6. 根据权利要求3或4所述的方法,其特征在于,所述认证结果信息至少包括以下字段中的一个或多个安全传输协议扩展类型、数据长度、认证结果值和失败原因类型。
全文摘要
本发明公开了一种双因子认证方法,包括客户端以用户设定的口令作为密钥,以客户端随机数和用户名作为数据,通过预定算法运算得到用户口令认证的校验值,并将由所述校验值和用户名组成的认证请求信息、客户端随机数携带在安全传输层协议报文中发送给服务器;服务器对接收到的认证请求信息进行解析,并根据解析到的用户名获取预存储的用户口令;通过同样的算法对获取到的预存储的用户口令进行运算,将运算得到的校验值与认证请求信息中的校验值进行比较,当确认二者相同时,用户口令认证成功;服务器和客户端继续进行安全传输层协议证书认证,直到安全传输层协议证书认证完成;本发明减少了认证报文交互次数,认证效率高,提高了认证速度。
文档编号H04L29/06GK101753303SQ200810227970
公开日2010年6月23日 申请日期2008年12月3日 优先权日2008年12月3日
发明者李志超 申请人:北京天融信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1