掌桥专利:专业的专利平台
掌桥专利
首页

一种基于eToken及2FA验证的身份验证方法及系统

文献发布时间:2024-04-18 20:00:25


一种基于eToken及2FA验证的身份验证方法及系统

技术领域

本发明涉及身份验证技术领域,并且更具体地,涉及一种基于eToken及2FA验证的身份验证方法及系统。

背景技术

从进入计算机时代开始,密码是我们个人日常的重要保护。但是单独的密码保护可能已经不再适应当前的数字化时代。

今天,仅仅周期性地更改密码是不够的,根据2021年数据泄露调查报告,在61%的泄露中登录凭证是主要的风险因素。

仅仅依赖于密码等同于把访问敏感数据的钥匙的放到门口脚垫下一样,如同不锁门,你需要额外的安全保护来防止钥匙落入坏人之手。

这就是双因素认证(Two-factor authentication,简称2FA)的由来。除了传统的、基于密码的身份验证外,还根据第二个因素进行身份验证,用2道防线来提高安全性。

发明内容

针对上述问题,本发明提出了一种基于eToken及2FA验证的身份验证方法,包括:

在目标系统的客户端安装eToken插件;

所述eToken插件通过预设协议连接eToken硬件,所述eToken插件用于提供WebSocket接口,通过所述WebSocket接口与目标系统的网页端程序建立通讯连接;

在目标系统的服务端,通过所述eToken插件获取所述eToken硬件的硬件信息,并将用于用户登录所述目标系统、所述目标系统的网页及所述目标系统的程序的用户账号,与所述eToken插件获取的所述eToken硬件的硬件信息进行绑定;

在用户登录所述目标系统、网页或程序时,对所述用户输入至目标系统、网页及程序的用户账号和密码进行一次验证,若通过一次验证,则基于所述eToken硬件对所述用户账号进行2FA验证,所述2FA验证通过后,允许用户登录所述目标系统。

可选的,预设协议,包括:PKCS#11协议。

可选的,目标程序,包括:浏览器网页端程序或桌面程序。

可选的,eToken硬件的硬件信息,包括:所述eToken硬件的证书序列号信息及公钥信息。

可选的,通过目标系统的网页端程序对所述用户输入至目标系统、网页及程序的用户账号和密码进行一次验证。

可选的,基于所述eToken硬件对所述用户账号进行2FA验证,包括:

在一次验证通过后,通过目标系统的网页端程序触发2FA验证流程,当所述目标系统的网页端程序触发2FA验证流程后,所述目标系统的服务端,根据用于输入的用户账号,查询所述2FA的配置参数,并根据所述配置参数生成一个随机的验证码,并根据所述验证码构造第一返回值,并将所述第一返回值返回至所述目标系统的网页端程序;

通过所述目标系统的网页端程序,对所述返回值进行检查,得到第一检查结果,若所述第一检查结果符合第一预设要求,调用eToken插件获取eToken硬件证书,并对所述目标系统的服务端生成一个随机的验证码进行签名,以根据所述eToken插件签名的验证码构造第二返回值,并将所述第二返回值返回至所述目标系统的网页端程序;

通过所述目标系统的网页端程序对所述第二返回值进行检查,得到第二检查结果,若所述第二检查结果符合第二预设要求,获取所述eToken硬件证书的验证信息,将所述验证信息上传至所述目标系统的服务端,通过所述目标系统的服务端,对所述验证信息进行校验,若通过校验,则对所述eToken插件签名的验证码使用eToken硬件的公钥进行验签,得到验签结果,并基于所述验签结果构造第三返回值,并将所述第三返回值返回至所述目标系统的网页端程序,通过所述目标系统的网页端程序根据所述第三返回值,确定是否通过2FA验证。

可选的,第一返回值为用于描述2FA接口是否绑定用户账号的值。

可选的,第一返回值为描述2FA接口绑定用户账号的值时,满足第一预设要求。

可选的,第二返回值为用于描述eToken插件是否成功获取eToken硬件证书的值。

可选的,第二返回值为描述eToken插件成功获取eToken硬件证书的值时,满足第二预设要求。

可选的,验证信息,包括:证书序列号信息、证书有效期信息和证书签名信息。

可选的,对所述验证信息进行校验,当所述验证信息包括的证书序列号信息、证书有效期信息和证书签名信息,均通过校验时,为对所述验证信息通过校验。

可选的,第三返回值为用于描述是否通过2FA验证的值。

再一方面,本发明还提供了一种基于eToken及2FA验证的身份验证系统,包括:

初始单元,用于在目标系统的客户端安装eToken插件;

所述eToken插件通过预设协议连接eToken硬件,所述eToken插件用于提供WebSocket接口,通过所述WebSocket接口与目标系统的网页端程序建立通讯连接;

信息绑定单元,用于在目标系统的服务端,通过所述eToken插件获取所述eToken硬件的硬件信息,并将用于用户登录所述目标系统、所述目标系统的网页及所述目标系统的程序的用户账号,与所述eToken插件获取的所述eToken硬件的硬件信息进行绑定;

验证单元,用于在用户登录所述目标系统、网页或程序时,对所述用户输入至目标系统、网页及程序的用户账号和密码进行一次验证,若通过一次验证,则基于所述eToken硬件对所述用户账号进行2FA验证,所述2FA验证通过后,允许用户登录所述目标系统。

可选的,预设协议,包括:PKCS#11协议。

可选的,目标程序,包括:浏览器网页端程序或桌面程序。

可选的,eToken硬件的硬件信息,包括:所述eToken硬件的证书序列号信息及公钥信息。

可选的,通过目标系统的网页端程序对所述用户输入至目标系统、网页及程序的用户账号和密码进行一次验证。

可选的,基于所述eToken硬件对所述用户账号进行2FA验证,包括:

在一次验证通过后,通过目标系统的网页端程序触发2FA验证流程,当所述目标系统的网页端程序触发2FA验证流程后,所述目标系统的服务端,根据用于输入的用户账号,查询所述2FA的配置参数,并根据所述配置参数生成一个随机的验证码,并根据所述验证码构造第一返回值,并将所述第一返回值返回至所述目标系统的网页端程序;

通过所述目标系统的网页端程序,对所述返回值进行检查,得到第一检查结果,若所述第一检查结果符合第一预设要求,调用eToken插件获取eToken硬件证书,并对所述目标系统的服务端生成一个随机的验证码进行签名,以根据所述eToken插件签名的验证码构造第二返回值,并将所述第二返回值返回至所述目标系统的网页端程序;

通过所述目标系统的网页端程序对所述第二返回值进行检查,得到第二检查结果,若所述第二检查结果符合第二预设要求,获取所述eToken硬件证书的验证信息,将所述验证信息上传至所述目标系统的服务端,通过所述目标系统的服务端,对所述验证信息进行校验,若通过校验,则对所述eToken插件签名的验证码使用eToken硬件的公钥进行验签,得到验签结果,并基于所述验签结果构造第三返回值,并将所述第三返回值返回至所述目标系统的网页端程序,通过所述目标系统的网页端程序根据所述第三返回值,确定是否通过2FA验证。

可选的,第一返回值为用于描述2FA接口是否绑定用户账号的值。

可选的,第一返回值为描述2FA接口绑定用户账号的值时,满足第一预设要求。

可选的,第二返回值为用于描述eToken插件是否成功获取eToken硬件证书的值。

可选的,第二返回值为描述eToken插件成功获取eToken硬件证书的值时,满足第二预设要求。

可选的,验证信息,包括:证书序列号信息、证书有效期信息和证书签名信息。

可选的,对所述验证信息进行校验,当所述验证信息包括的证书序列号信息、证书有效期信息和证书签名信息,均通过校验时,为对所述验证信息通过校验。

可选的,第三返回值为用于描述是否通过2FA验证的值。

再一方面,本发明还提供了一种计算设备,包括:一个或多个处理器;

处理器,用于执行一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行时,实现如上述所述的方法。

再一方面,本发明还提供了一种计算机可读存储介质,其上存有计算机程序,所述计算机程序被执行时,实现如上述所述的方法。

与现有技术相比,本发明的有益效果为:

本发明提出了一种基于eToken及2FA验证的身份验证方法,包括:在目标系统的客户端安装eToken插件;所述eToken插件通过预设协议连接eToken硬件,所述eToken插件用于提供WebSocket接口,通过所述WebSocket接口与目标系统的网页端程序建立通讯连接;在目标系统的服务端,通过所述eToken插件获取所述eToken硬件的硬件信息,并将用于用户登录所述目标系统、所述目标系统的网页及所述目标系统的程序的用户账号,与所述eToken插件获取的所述eToken硬件的硬件信息进行绑定;在用户登录所述目标系统、网页或程序时,对所述用户输入至目标系统、网页及程序的用户账号和密码进行一次验证,若通过一次验证,则基于所述eToken硬件对所述用户账号进行2FA验证,所述2FA验证通过后,允许用户登录所述目标系统。本发明基于2FA验证可针对登录目标系统、网页及程序的用户账户进行二次身份验证,保证了系统等的安全性。

附图说明

图1为本发明方法的流程图;

图2为本发明方法具体案例实施的环境图;

图3为本发明方法具体案例的流程图;

图4为本发明系统的结构图。

具体实施方式

现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。

除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。

实施例1:

本发明提出了一种基于eToken及2FA验证的身份验证方法,如图1所示,包括:

步骤1、在目标系统的客户端安装eToken插件;

所述eToken插件通过预设协议连接eToken硬件,所述eToken插件用于提供WebSocket接口,通过所述WebSocket接口与目标系统的网页端程序建立通讯连接;

步骤2、在目标系统的服务端,通过所述eToken插件获取所述eToken硬件的硬件信息,并将用于用户登录所述目标系统、所述目标系统的网页及所述目标系统的程序的用户账号,与所述eToken插件获取的所述eToken硬件的硬件信息进行绑定;

步骤3、在用户登录所述目标系统、网页或程序时,对所述用户输入至目标系统、网页及程序的用户账号和密码进行一次验证,若通过一次验证,则基于所述eToken硬件对所述用户账号进行2FA验证,所述2FA验证通过后,允许用户登录所述目标系统。

其中,预设协议,包括:PKCS#11协议。

其中,目标程序,包括:浏览器网页端程序或桌面程序。

其中,eToken硬件的硬件信息,包括:所述eToken硬件的证书序列号信息及公钥信息。

其中,通过目标系统的网页端程序对所述用户输入至目标系统、网页及程序的用户账号和密码进行一次验证。

其中,基于所述eToken硬件对所述用户账号进行2FA验证,包括:

在一次验证通过后,通过目标系统的网页端程序触发2FA验证流程,当所述目标系统的网页端程序触发2FA验证流程后,所述目标系统的服务端,根据用于输入的用户账号,查询所述2FA的配置参数,并根据所述配置参数生成一个随机的验证码,并根据所述验证码构造第一返回值,并将所述第一返回值返回至所述目标系统的网页端程序;

通过所述目标系统的网页端程序,对所述返回值进行检查,得到第一检查结果,若所述第一检查结果符合第一预设要求,调用eToken插件获取eToken硬件证书,并对所述目标系统的服务端生成一个随机的验证码进行签名,以根据所述eToken插件签名的验证码构造第二返回值,并将所述第二返回值返回至所述目标系统的网页端程序;

通过所述目标系统的网页端程序对所述第二返回值进行检查,得到第二检查结果,若所述第二检查结果符合第二预设要求,获取所述eToken硬件证书的验证信息,将所述验证信息上传至所述目标系统的服务端,通过所述目标系统的服务端,对所述验证信息进行校验,若通过校验,则对所述eToken插件签名的验证码使用eToken硬件的公钥进行验签,得到验签结果,并基于所述验签结果构造第三返回值,并将所述第三返回值返回至所述目标系统的网页端程序,通过所述目标系统的网页端程序根据所述第三返回值,确定是否通过2FA验证。

其中,第一返回值为用于描述2FA接口是否绑定用户账号的值。

其中,第一返回值为描述2FA接口绑定用户账号的值时,满足第一预设要求。

其中,第二返回值为用于描述eToken插件是否成功获取eToken硬件证书的值。

其中,第二返回值为描述eToken插件成功获取eToken硬件证书的值时,满足第二预设要求。

其中,验证信息,包括:证书序列号信息、证书有效期信息和证书签名信息。

其中,对所述验证信息进行校验,当所述验证信息包括的证书序列号信息、证书有效期信息和证书签名信息,均通过校验时,为对所述验证信息通过校验。

其中,第三返回值为用于描述是否通过2FA验证的值。

下面结合具体实施案例对本发明进行进一步的说明:

实施案例在如图2所示的系统中进行实施,其具体实施流程,如图3所示,包括:

浏览器里的网页端程序可以通过WebSocket技术连接上“eToken插件”,随后“eToken插件”再通过PKCS#11协议连接eToken硬件,从而使网页端能够使用eToken,且本发明不仅可以给网页端使用,还能给桌面程序使用。

实例案例具有2个关键流程:eToken绑定、eToken登录验证。

下面将详细说明:

eToken绑定:

欲使用eToken登录验证的话,需要先进行eToken绑定,让用户帐号与eToken信息绑定起来。从而在登录验证时,能根据绑定信息来验证eToken。

用户可以在“用户信息维护”页面里进行eToken绑定操作。且管理员可以在“用户管理”页面里重置eToken绑定。

对于eToken绑定时,网页端程序会通过“eToken插件”来读取当前eToken的信息。随后将eToken中的证书序列号与公钥发送给服务端,服务端便会将这些信息与用户帐号绑定。

eToken登录验证:

当用户登录时,首先进行第一步的帐号、密码验证。密码验证通过后,便进入第二步的eToken登录验证。eToken登录验证也通过后,才允许进入系统。

为了保障安全性,本方案使用采用“私钥签名、公钥验签”的办法来做验证。

eToken登录验证,其具体,包括:

1、【Web Page】当密码验证通过后,Web Page会触发eToken登录验证的流程,于是它调用服务端的“获取2FA状态接口”。

2、【Web server】服务端根据帐号,查询得到了最新的2FA配置参数,并生成一个随机的验证码,构造好返回值(2FA状态)并返回。

3、【Web Page】网页端收到服务端发来的2FA状态,进行检查。若该用户没有绑定2FA,则跳到第17步结束;否则便按照下面的流程进行验证。

4、【Web Page】网页端调用eToken插件的“获取证书接口”。

5、【eToken插件】eToken插件检查eToken是否已打开。若已打开,可进行快速验证,无需用户再次输入密码,故跳到第9步。

6、【eToken插件】eToken插件展示密码输入框,让用户输入eToken的密码。

7、【User】用户输入eToken的密码。

8、【eToken插件】eToken根据eToken的密码,通过PKCS#11协议打开eToken。

9、【eToken插件】eToken插件从eToken获取了证书。若失败,跳到第11步构造失败时的返回值。

10、【eToken插件】eToken插件通过API,对验证码进行“私钥签名”的加密运算,得到验证码的签名。

11、【eToken插件】eToken插件构造返回值,将它返回给网页端。

12、【Web Page】网页端收到返回值,判断读取证书是否成功。若失败,便报告错误信息,结束。

13、【Web Page】网页端调用服务端的“2FA验证”接口,传递证书序列号、证书有效期、签名等信息。

14、【Web server】服务端首先对证书的基本信息进行校验。例如验证序列号(Serial number)是否与帐号绑定的一致、证书是否在有效期内、证书是否已被CRL(Certificate Revocation List,证书吊销列表)所吊销。中途若任一验证失败,便构造错误信息,跳到第16步。

15、【Web server】服务端根据帐号所绑定的公钥,对“验证码+签名”进行“公钥验签”运算。若验证失败,便构造错误信息,跳到第?步。

16、【Web server】服务端构造返回值,将它返回给网页端。

17、【Web Page】网页端判断2FA验证是否成功。若成功便进入系统;若失败便展示错误信息。

本发明使得用户的身份验证更加安全,且在具体方案中,将“私钥签名”与“获取证书接口”的操作进行了合并,减少了交互次数,降低延迟时间,提高了用户体验。

实施例2:

本发明还提出了一种基于eToken及2FA验证的身份验证系统200,如图4所示,包括:

初始单元201,用于在目标系统的客户端安装eToken插件;

所述eToken插件通过预设协议连接eToken硬件,所述eToken插件用于提供WebSocket接口,通过所述WebSocket接口与目标系统的网页端程序建立通讯连接;

信息绑定单元202,用于在目标系统的服务端,通过所述eToken插件获取所述eToken硬件的硬件信息,并将用于用户登录所述目标系统、所述目标系统的网页及所述目标系统的程序的用户账号,与所述eToken插件获取的所述eToken硬件的硬件信息进行绑定;

验证单元203,用于在用户登录所述目标系统、网页或程序时,对所述用户输入至目标系统、网页及程序的用户账号和密码进行一次验证,若通过一次验证,则基于所述eToken硬件对所述用户账号进行2FA验证,所述2FA验证通过后,允许用户登录所述目标系统。

其中,预设协议,包括:PKCS#11协议。

其中,目标程序,包括:浏览器网页端程序或桌面程序。

其中,eToken硬件的硬件信息,包括:所述eToken硬件的证书序列号信息及公钥信息。

其中,通过目标系统的网页端程序对所述用户输入至目标系统、网页及程序的用户账号和密码进行一次验证。

其中,基于所述eToken硬件对所述用户账号进行2FA验证,包括:

在一次验证通过后,通过目标系统的网页端程序触发2FA验证流程,当所述目标系统的网页端程序触发2FA验证流程后,所述目标系统的服务端,根据用于输入的用户账号,查询所述2FA的配置参数,并根据所述配置参数生成一个随机的验证码,并根据所述验证码构造第一返回值,并将所述第一返回值返回至所述目标系统的网页端程序;

通过所述目标系统的网页端程序,对所述返回值进行检查,得到第一检查结果,若所述第一检查结果符合第一预设要求,调用eToken插件获取eToken硬件证书,并对所述目标系统的服务端生成一个随机的验证码进行签名,以根据所述eToken插件签名的验证码构造第二返回值,并将所述第二返回值返回至所述目标系统的网页端程序;

通过所述目标系统的网页端程序对所述第二返回值进行检查,得到第二检查结果,若所述第二检查结果符合第二预设要求,获取所述eToken硬件证书的验证信息,将所述验证信息上传至所述目标系统的服务端,通过所述目标系统的服务端,对所述验证信息进行校验,若通过校验,则对所述eToken插件签名的验证码使用eToken硬件的公钥进行验签,得到验签结果,并基于所述验签结果构造第三返回值,并将所述第三返回值返回至所述目标系统的网页端程序,通过所述目标系统的网页端程序根据所述第三返回值,确定是否通过2FA验证。

其中,第一返回值为用于描述2FA接口是否绑定用户账号的值。

其中,第一返回值为描述2FA接口绑定用户账号的值时,满足第一预设要求。

其中,第二返回值为用于描述eToken插件是否成功获取eToken硬件证书的值。

其中,第二返回值为描述eToken插件成功获取eToken硬件证书的值时,满足第二预设要求。

其中,验证信息,包括:证书序列号信息、证书有效期信息和证书签名信息。

其中,对所述验证信息进行校验,当所述验证信息包括的证书序列号信息、证书有效期信息和证书签名信息,均通过校验时,为对所述验证信息通过校验。

其中,第三返回值为用于描述是否通过2FA验证的值。

本发明基于2FA验证可针对登录目标系统、网页及程序的用户账户进行二次身份验证,保证了系统等的安全性。

实施例3:

基于同一种发明构思,本发明还提供了一种计算机设备,该计算机设备包括处理器以及存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于执行所述计算机存储介质存储的程序指令。处理器可能是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor、DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其是终端的计算核心以及控制核心,其适于实现一条或一条以上指令,具体适于加载并执行计算机存储介质内一条或一条以上指令从而实现相应方法流程或相应功能,以实现上述实施例中方法的步骤。

实施例4:

基于同一种发明构思,本发明还提供了一种存储介质,具体为计算机可读存储介质(Memory),所述计算机可读存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。可由处理器加载并执行计算机可读存储介质中存放的一条或一条以上指令,以实现上述实施例中方法的步骤。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

技术分类

06120116526380