身份验证方法、装置及系统与流程

文档序号:20875607发布日期:2020-05-26 16:28阅读:153来源:国知局
身份验证方法、装置及系统与流程

本申请涉及数据加密领域,特别涉及一种身份验证方法、装置及系统。



背景技术:

客户端在向服务器申请服务时,需要先进行身份验证,认证通过后才能获取具体服务。

相关技术中,客户端可以向服务器提交用户的用户敏感信息,例如身份证号,手机号或生物特征信息等。服务器可以采用预设的加密算法对用户敏感信息进行加密得到密文,并将密文存储在数据库中。当客户端需要向服务器申请服务时,可以提交用户的用户敏感信息,服务器采用该加密算法对客户端提交的用户敏感信息进行加密后,可以与数据库中存储的密文进行对比,若两者一致则可以确定身份验证通过,反之则验证失败。

但是,相关技术中的身份验证方法中,服务器需要存储大量的密文,对服务器的存储性能和安全性能的要求较高。



技术实现要素:

本申请提供了一种身份验证方法、装置及系统,可以解决相关技术中的身份验证方法对对服务器的存储性能和安全性能的要求较高。所述技术方案如下:

一方面,提供了一种身份验证方法,所述方法包括:

认证服务器响应于客户端发送的认证请求,向所述客户端发送加密参数,所述加密参数包括:盐值、椭圆曲线的曲线参数、所述椭圆曲线上的基点的基点坐标以及第一随机数;

所述客户端根据所述盐值以及用户敏感信息生成检验值;

所述客户端根据所述检验值、第二随机数、所述曲线参数以及所述基点坐标,确定所述椭圆曲线上第一参考点的第一参考坐标,以及第二参考点的第二参考坐标;

所述客户端根据所述第一随机数、所述第二随机数以及所述检验值,生成验证凭证;

所述客户端将所述第一参考坐标、所述第二参考坐标和所述验证凭证发送至所述认证服务器;

所述认证服务器基于所述基点坐标、所述第一随机数、所述第一参考坐标和所述第二参考坐标对所述验证凭证进行验证。

另一方面,提供了一种身份验证方法,应用于客户端,所述方法包括:

向认证服务器发送认证请求;

接收所述认证服务器响应于所述认证请求发送的加密参数,所述加密参数包括:盐值、椭圆曲线的曲线参数、所述椭圆曲线上的基点的基点坐标以及第一随机数;

根据所述盐值以及用户敏感信息生成检验值;

根据所述检验值、第二随机数、所述曲线参数以及所述基点坐标,确定所述椭圆曲线上第一参考点的第一参考坐标,以及第二参考点的第二参考坐标;

根据所述第一随机数、所述第二随机数以及所述检验值,生成验证凭证;

将所述第一参考坐标、所述第二参考坐标和所述验证凭证发送至所述认证服务器;

接收所述认证服务器发送的验证结果,所述验证结果为所述认证服务器基于所述基点坐标、所述第一随机数、所述第一参考坐标和所述第二参考坐标对所述验证凭证进行验证的结果。

又一方面,提供了一种身份验证方法,应用于认证服务器,所述方法包括:

接收客户端发送的发送认证请求;

响应于所述认证请求向所述客户端发送加密参数,所述加密参数包括:盐值、椭圆曲线的曲线参数、所述椭圆曲线上的基点的基点坐标以及第一随机数;

接收所述客户端发送的第一参考坐标、第二参考坐标和验证凭证,其中,所述第一参考坐标和所述第二参考坐标根据检验值、第二随机数、所述曲线参数以及所述基点坐标生成,所述检验值基于所述盐值以及用户敏感信息生成;

基于所述基点坐标、所述第一随机数、所述第一参考坐标和所述第二参考坐标对所述验证凭证进行验证;

将验证结果发送至所述客户端。

再一方面,提供了一种客户端,所述客户端包括:

第一发送模块,用于向认证服务器发送认证请求;

第一接收模块,用于接收所述认证服务器响应于所述认证请求发送的加密参数,所述加密参数包括:盐值、椭圆曲线的曲线参数、所述椭圆曲线上的基点的基点坐标以及第一随机数;

第一确定模块,用于根据所述盐值以及用户敏感信息生成检验值;

第二确定模块,用于根据所述检验值、第二随机数、所述曲线参数以及所述基点坐标,确定所述椭圆曲线上第一参考点的第一参考坐标,以及第二参考点的第二参考坐标;

第三确定模块,用于根据所述第一随机数、所述第二随机数以及所述检验值,生成验证凭证;

第二发送模块,用于将所述第一参考坐标、所述第二参考坐标和所述验证凭证发送至所述认证服务器;

第二接收模块,用于接收所述认证服务器发送的验证结果,所述验证结果为所述认证服务器基于所述基点坐标、所述第一随机数、所述第一参考坐标和所述第二参考坐标对所述验证凭证进行验证的结果。

再一方面,提供了一种认证服务器,所述认证服务器包括:

第一接收模块,用于接收客户端发送的发送认证请求;

第一发送模块,用于响应于所述认证请求向所述客户端发送加密参数,所述加密参数包括:盐值、椭圆曲线的曲线参数、所述椭圆曲线上的基点的基点坐标以及第一随机数;

第二接收模块,用于接收所述客户端发送的第一参考坐标、第二参考坐标和验证凭证,其中,所述第一参考坐标和所述第二参考坐标根据检验值、第二随机数、所述曲线参数以及所述基点坐标生成,所述检验值基于所述盐值以及用户敏感信息生成;

认证模块,用于基于所述基点坐标、所述第一随机数、所述第一参考坐标和所述第二参考坐标对所述验证凭证进行验证;

第二发送模块,用于将验证结果发送至所述客户端。

再一方面,提供了一种身份验证设备,所述设备包括:存储器,处理器及存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序时实现如上述方面所提供的身份验证方法。

再一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述计算机可读存储介质在计算机上运行时,使得计算机执行如上述方面所提供的身份验证方法。

再一方面,提供了一种身份验证系统,所述系统包括:如上述方面所提供的客户端,以及如上述方面所提供的认证服务器。

本申请提供的技术方案带来的有益效果至少可以包括:

本申请实施例提供了一种身份验证方法、装置及系统,客户端可以基于认证服务器发送的加密参数,对用户敏感信息进行处理得到验证凭证、第一参考坐标和第二参考坐标,并将得到的验证凭证以及参考坐标发送至认证服务器,认证服务器进而可以对该验证凭证进行验证。由于认证过程中,客户端仅需发送对用户敏感信息进行处理后得到的验证凭证,而无需直接发送用户敏感信息,相应的,验证服务器也无需存储用户敏感信息,从而有效降低了对验证服务器存储性能和安全性能的要求,降低了用户敏感信息的泄露风险。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种身份验证方法所应用的身份验证系统的结构示意图;

图2是本申请实施例提供的一种身份验证方法的流程图;

图3是本申请实施例提供的另一种身份验证方法的流程图;

图4是本申请实施例提供的又一种身份验证方法的流程图;

图5是本申请实施例提供的一种第一数据格式的示意图;

图6是本申请实施例提供的再一种身份验证方法的流程图;

图7是本申请实施例提供的再一种身份验证方法的流程图;

图8是本申请实施例提供的一种客户端的结构示意图;

图9是本申请实施例提供的一种认证服务器的结构示意图;

图10是本申请实施例提供的一种身份验证设备的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

相关技术中,服务器在存储大量用户的用户敏感信息时,通常采用加盐哈希,或者是令牌(token)化的方式存储。其中,加盐哈希的方式是指将用户敏感信息与盐值相连接后做哈希运算,将得到的哈希值存储在服务器的数据库或者数仓中,盐值则存储在检验值管理服务器中,即哈希值和盐值二者分开存储。在token化的存储方式中,一般采取的是非对称密码的方式,用密码对中的公钥对用户敏感信息进行加密,加密后的密文存储在服务器的数据库或者数仓中,公钥所对应的私钥存储在检验值管理服务器中。

当验证用户提交的用户敏感信息时,需要客户端将用户敏感信息上传到服务器,服务器采用相同的处理方法对该用户敏感信息进行加工后,与存储在数据库中的脱敏信息相比对,比对一致则验证通过,反之验证失败。

虽然加盐哈希的存储方式和token化的存储方式,都可以将用户敏感信息脱敏地存储在服务器中,但是一方面,对每一条用户提交的用户敏感信息进行脱敏处理,导致服务提供商需要承担大量的数据加工处理工作和高昂的数据安全管理成本。另一方面,一但检验值服务器的检验值或者盐值管理或保存不妥当,导致泄漏,之前加工处理过的用户敏感信息是很容易被还原出来的,存在用户敏感信息泄露的风险。

本申请实施例提供了一种身份验证方法,该身份验证方法采用了零知识证明(zero-knowledgeproof)的原理,可以降低对服务器存储性能和安全性能的要求,降低用户敏感信息泄露的风险。零知识证明是指证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。即证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。

图1是本申请实施例提供的一种身份验证方法所应用的身份验证系统的结构示意图,该系统可以是客户端/服务器(client/server,c/s)架构的系统。如图1所示,该系统可以包括:一个或多个客户端01,以及认证服务器02。例如,图1中仅示例性的示出了一个客户端01。

其中,每个客户端01可以为浏览器或者其他具备指定功能的客户端,且该客户端01可以安装在用户设备中。该用户设备可以为手机、平板电脑、笔记本电脑或计算机等智能设备。该认证服务器02可以为一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。

每个客户端01可以通过有线或无线网络与认证服务器02建立通信连接,且该客户端01可以在与认证服务器02完成身份验证之后,获取该认证服务器02提供的服务。例如,可以获取该认证服务器02提供的信息查询服务、定位服务或者导航服务等。

图2是本申请实施例提供的一种身份验证方法的流程图,该方法可以应用于如图1所示的系统中,参考图2,该方法可以包括:

步骤101、认证服务器响应于客户端发送的认证请求,向该客户端发送加密参数。

该加密参数可以包括:盐值(salt)、椭圆曲线的曲线参数、该椭圆曲线上的基点(basepoint)的基点坐标以及第一随机数。其中,该盐值和第一随机数可以均由认证服务器随机生成。该椭圆曲线的曲线参数可以为认证服务器中预先存储的,该基点可以是认证服务器从该椭圆曲线上随机选取的一点。

步骤102、客户端根据该盐值以及用户敏感信息生成检验值。

其中,该用户敏感信息可以为客户端获取到的用户的身份证号、手机号、银行卡号、个人健康状况、财务状况或生物特征信息等。

步骤103、客户端根据该检验值、第二随机数、曲线参数以及基点坐标,确定椭圆曲线上第一参考点的第一参考坐标,以及第二参考点的第二参考坐标。

该第二随机数可以为客户端随机生成的。客户端可以基于该检验值、该曲线参数以及该基点坐标,确定第一参考点的第一参考坐标,并可以基于该第二随机数、该曲线参数以及该基点坐标,确定第二参考点的第二参考坐标。

步骤104、客户端根据该第一随机数、该第二随机数以及该检验值,生成验证凭证。

在本申请实施例中,客户端可以采用预先存储的凭证生成算法对该第一随机数、该第二随机数以及该检验值进行计算,以生成验证凭证。

步骤105、客户端将该第一参考坐标、该第二参考坐标和该验证凭证发送至该认证服务器。

步骤106、认证服务器基于该基点坐标、该第一随机数、该第一参考坐标和该第二参考坐标对该验证凭证进行验证。

认证服务器可以采用预先存储的验证算法,基于该基点坐标、该第一随机数、该第一参考坐标和该第二参考坐标对该验证凭证进行验证。该验证算法可以是根据该凭证生成算法,以及第一参考坐标和该第二参考坐标的确定算法设计的。

综上所述,本申请实施例提供了一种身份验证方法,客户端可以基于认证服务器发送的加密参数,对用户敏感信息进行处理得到验证凭证、第一参考坐标和第二参考坐标,并将得到的验证凭证以及参考坐标发送至认证服务器,认证服务器进而可以对该验证凭证进行验证。由于认证过程中,客户端仅需发送对用户敏感信息进行处理后得到的验证凭证,而无需直接发送用户敏感信息,相应的,验证服务器也无需存储用户敏感信息,从而有效降低了对验证服务器存储性能和安全性能的要求,降低了用户敏感信息的泄露风险。

图3是本申请实施例提供的另一种身份验证方法的流程图,该方法可以应用于如图1所示的系统中,参考图3,该方法可以包括:

步骤201、客户端向认证服务器发送认证请求。

在本申请实施例中,客户端可以在检测到用户触发的服务获取操作时,向认证服务器发送认证请求。该认证请求中可以携带有用户标识(userid,u_id)以及请求标识(requestid,r_id)。其中,该用户标识可以用于唯一标识登录该客户端的用户账号,该请求标识可以是客户端为该认证请求分配的用于唯一标识该认证请求的字符串。该服务获取操作可以为点击客户端显示界面中指定控件的操作,或者也可以为语音操作。

示例的,该客户端的显示界面中可以显示有服务获取控件,客户端在检测到用户针对该服务获取控件的点击操作时,可以向认证服务器发送认证请求。如图4中步骤s1所示,该认证请求中可以携带有u_id和rt_id。

步骤202、认证服务器响应于该认证请求,向该客户端发送加密参数。

该加密参数可以包括:盐值、椭圆曲线的曲线参数、该椭圆曲线上的基点的基点坐标以及第一随机数。在本申请实施例中,该盐值和第一随机数可以均为认证服务器随机生成的。该认证服务器中可以存储有多个椭圆曲线的曲线参数,认证服务器可以从存储的多个椭圆曲线的曲线参数中随机选取一个椭圆曲线的曲线参数。之后,认证服务器可以在该选取出的椭圆曲线中随机选取一点作为基点。其中,该椭圆曲线的曲线参数可以是基于椭圆曲线加密算法确定的,该椭圆曲线加密算法可以包括椭圆曲线密码学(ellipticcurvecryptography,ecc)国际密码算法和sm2国家密码算法等。

以ecc国际密码算法为例,二维坐标系中有限域fp内的椭圆曲线的方程可以表示为:y2=x3+ax+b(modp);

其中,a和b均为方程系数,p为大于1的素数,用于表示该有限域fp包括的元素的个数,mod表示取模运算。(x,y)为二维坐标系中的坐标,且x和y均为0到p-1间的整数。该椭圆曲线可以记为ep(a,b)。相应的,该椭圆曲线的曲线参数eccpara可以包括p、a和b。

示例的,假设认证服务器随机生成的盐值为s,第一随机数为m,获取到的椭圆曲线为ep(a,b),在该椭圆曲线上选取的基点为g,则认证服务器发送的加密参数可以包括:s,m,p,a,b以及g的坐标。

步骤203、客户端根据该盐值以及用户敏感信息生成检验值。

客户端接收到认证服务器发送的加密参数后,可以从该加密参数中获取盐值,并根据该盐值以及用户敏感信息生成检验值。其中,该用户敏感信息可以为客户端获取到的用户的身份证号、手机号、银行卡号、个人健康状况、财务状况或生物特征信息等隐私信息。并且,该用户敏感信息可以是用户输入至客户端的。

可选的,在本申请实施例中,该客户端可以将该盐值与该用户敏感信息进行拼接,得到拼接信息。然后,可以对该拼接信息进行哈希运算,得到检验值。其中,在生成拼接信息时,客户端还可以将用户标识与盐值和该用户敏感信息进行拼接。

示例的,如图4中步骤s4所示,客户端可以获取用户输入的用户敏感信息q。假设用户标识为u_id,盐值为s,则如图4中步骤s5所示,客户端生成的检验值h可以为:h=hash(u_id||s||q),其中,||表示数据拼接,hash表示哈希运算。该哈希运算采用的哈希算法可以为消息摘要算法第五版(messagedigestalgorithm,md5)或者安全散列算法(securehashalgorithm,sha)等。

需要说明的是,在本申请实施例中,客户端和服务器可以预先约定加密参数的第一数据格式,服务器可以基于该第一数据格式对加密参数进行封装。相应的,客户端接收到该封装好的加密参数后,即可基于该第一数据格式对封装后的加密参数进行解封装,并提取加密参数中的各个参数。

示例的,如图5所示,该第一数据格式可以满足:盐值s,第一随机数为m,椭圆曲线参数p,a和b,以及基点g的基点坐标按序依次封装,其中盐值s占用前k1比特位,第一随机数m占用k2比特位,椭圆曲线参数p,a和b分别占用k3,k4和k5比特位,基点g的基点坐标占用k6比特位。需要说明的是,该加密参数中的各个参数所占用的比特位可以相等也可以不等,本申请实施例对此不做限定。

步骤204、客户端根据该检验值、该曲线参数以及该基点坐标,确定该椭圆曲线上第一参考点的第一参考坐标。

在本申请实施例中,客户端可以基于该曲线参数确定该检验值与该基点坐标的乘积,从而得到该椭圆曲线上第一参考点v的第一参考坐标。参考图4中步骤s5,该第一参考点v可以表示为:v=hg。

步骤205、客户端根据第二随机数、该曲线参数以及该基点坐标,确定该椭圆曲线上第二参考点的第二参考坐标。

在本申请实施例中,客户端可以随机生成第二随机数,进而可以基于该曲线参数确定该第二随机数与该基点坐标的乘积,得到该椭圆曲线上第二参考点w的第二参考坐标。例如,参考图4中步骤s5,假设客户端随机生成的第二随机数为n,则客户端计算得到的第二参考点w可以表示为:w=ng。

需要说明的是,在本申请实施例中,检验值与基点坐标的乘积,以及第二随机数与基点坐标的乘积,均是基于该曲线参数,按照椭圆曲线上的点的乘法运算规则计算得到的,而该乘法运算规则可以基于加法运算规则推导得到。椭圆曲线上的点的加法运算规则如下:

假设椭圆曲线ep(a,b)上基点g的坐标为(x1,y1),该椭圆曲线上另一点p的坐标为(x2,y2),则基于椭圆曲线的参数,将基点g与点p相加得到的椭圆曲线上的点r(即r=g+p)的坐标(x3,y3)满足:

x3≡k2-x1-x2(modp);

y3≡k(x1-x3)-y1(modp);

其中,若g=p,则若g≠p,则

步骤206、客户端根据该第一随机数、该第二随机数和该检验值,生成验证凭证。

在本申请实施例中,该客户端可以将该第一随机数m与该检验值h的乘积,与该第二随机数n相加,得到验证凭证z。即参考图4中步骤s8,该验证凭证z满足:z=n+m*h。

步骤207、客户端将该第一参考坐标、该第二参考坐标和该验证凭证发送至该认证服务器。

客户端可以按照第二数据格式对该第一参考坐标、该第二参考坐标和该验证凭证进行封装,并将封装好的数据发送至该认证服务器。

其中,该第二数据格式也可以是客户端和服务器预先约定的数据格式,该第二数据格式中约定了第一参考坐标、该第二参考坐标和该验证凭证的封装顺序,以及每个参数占用的比特位数。

步骤208、认证服务器基于该曲线参数,将该验证凭证与该基点坐标相乘,得到第一验证参数。

认证服务器接收到客户端发送的封装好的第一参考坐标、该第二参考坐标和该验证凭证后,可以基于该第二数据格式对该封装好的数据进行解封装,得到第一参考坐标、该第二参考坐标和该验证凭证。

进一步的,认证服务器可以将基于该曲线参数,计算该验证凭证z与该基点g的基点坐标的乘积,得到第一验证参数c1,该第一验证参数c1满足:c1=zg。

步骤209、认证服务器基于该曲线参数,将该第一随机数与该第一参考坐标的乘积,与该第二参考坐标相加,得到第二验证参数。

假设该第一随机数为m,第一参考坐标为w,该第二参考坐标为v,得到第二验证参数c2。该第二验证参数c2可以满足:c2=w+mv;

步骤210、认证服务器根据该第一验证参数和第二验证参数确定验证结果。

参考图4中步骤s7,认证服务器可以检测该第一验证参数c1=zg,与第二验证参数c2=w+mv是否相等。若该第一验证参数c1和第二验证参数c2相等,则该认证服务器可以确定验证结果为验证成功,若该第一验证参数c1和第二验证参数c2不等,则该认证服务器确定验证结果为验证失败。

其中,验证第一验证参数c1=zg,与第二验证参数c2=w+mv是否相等的原理如下:c2=w+mv=ng+m(hg)=ng+(m*h)g=(n+m*h)g=zg=c1。

步骤211、认证服务器将该验证结果发送至客户端。

认证服务器确定验证结果后,即可将该验证结果发送至客户端。可选的,该验证结果可以采用指定位数的数字(例如二进制数)表示。示例的,该验证结果可以采用三位二进制数表示,其中001可以用于指示验证成功,010可以用于指示验证失败。

客户端接收到认证服务器发送的验证结果后,若验证结果为验证成功,则客户端可以获取认证服务器提供的服务。若验证结果为验证失败,则客户端可以确定无法获取服务。此时,客户端可以再次向认证服务器发送认证请求。

需要说明的是,在本申请实施例中,上述步骤202中,认证服务器还可以将加密参数分多次发送至客户端01。例如,参考图4中的步骤s3,认证服务器可以在接收到认证请求后,先向客户端发送盐值s、椭圆曲线的曲线参数eccpara以及该椭圆曲线上的基点g的基点坐标。之后,参考步骤s6至步骤s8,认证服务器可以在接收到该客户端发送的第一参考点v的第一参考坐标以及第二参考点w的该第二参考坐标之后,再生成该第一随机数m,并向该客户端发送该第一随机数m。

相应的,在上述步骤207中,客户端也可以分多次将该第一参考坐标、该第二参考坐标以及该验证凭证发送至认证服务器。例如。参考图4中的步骤s5,客户端可以先基于接收到的盐值s、椭圆曲线的曲线参数eccpara以及基点g的基点坐标,生成检验值h并确定第一参考点v的第一参考坐标以及第二参考点w的该第二参考坐标。如图4中步骤s6所示,客户端可以先发送该第一参考点v的第一参考坐标以及第二参考点w的该第二参考坐标。之后,客户端在上述步骤s8中接收到第一随机数m后,再执行步骤s9生成验证凭证z,并执行步骤s10发送该验证凭证z。

需要说明的是,本申请实施例提供的身份验证方法的步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。例如,步骤206可以在步骤205之前执行,步骤209可以在步骤208之前执行。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。

综上所述,本申请实施例提供了一种身份验证方法,客户端可以基于认证服务器发送的加密参数,对用户敏感信息进行处理得到验证凭证、第一参考坐标和第二参考坐标,并将得到的验证凭证以及参考坐标发送至认证服务器,认证服务器进而可以对该验证凭证进行验证。由于认证过程中,客户端仅需发送对用户敏感信息进行处理后得到的验证凭证,而无需直接发送用户敏感信息,相应的,验证服务器也无需存储用户敏感信息,从而有效降低了对验证服务器存储性能和安全性能的要求。

并且,本申请实施例提供的方案在验证过程中,验证服务器基于客户端发送的验证凭证和参考坐标无法反推出用户敏感信息,从而有效降低了用户敏感信息泄露的风险。进一步的,由于在验证过程中采用了椭圆曲线加密算法计算参考坐标,该椭圆曲线加密算法相比于其他非对称加密算法更为高效,因此可以减少验证过程所需的计算时间,提高验证效率。

图6是本申请实施例提供的另一种身份验证方法的流程图,该方法可以应用于如图1所示的系统中的客户端01。如图6所示,该方法可以包括:

步骤301、向认证服务器发送认证请求。

步骤302、接收该认证服务器响应于该认证请求发送的加密参数。

该加密参数包括:盐值、椭圆曲线的曲线参数、该椭圆曲线上的基点的基点坐标以及第一随机数。

步骤303、根据该盐值以及用户敏感信息生成检验值。

步骤304、根据该检验值、第二随机数、该曲线参数以及该基点坐标,确定该椭圆曲线上第一参考点的第一参考坐标,以及第二参考点的第二参考坐标。

步骤305、根据该第一随机数、该第二随机数以及该检验值,生成验证凭证。

步骤306、将该第一参考坐标、该第二参考坐标和该验证凭证发送至该认证服务器。

步骤307、接收该认证服务器发送的验证结果。

该验证结果为该认证服务器基于该基点坐标、该第一随机数、该第一参考坐标和该第二参考坐标对该验证凭证进行验证得到的结果。

上述步骤301至步骤307的实现过程可以参考图3所示实施例中相关步骤的描述,此处不再赘述。

综上所述,本申请实施例提供了一种身份验证方法,客户端可以基于认证服务器发送的加密参数,对用户敏感信息进行处理得到验证凭证、第一参考坐标和第二参考坐标,并将得到的验证凭证以及参考坐标发送至认证服务器,认证服务器进而可以对该验证凭证进行验证。由于认证过程中,客户端仅需发送对用户敏感信息进行处理后得到的验证凭证,而无需直接发送用户敏感信息,相应的,验证服务器也无需存储用户敏感信息,从而有效降低了对验证服务器存储性能和安全性能的要求,降低了用户敏感信息的泄露风险。

图7是本申请实施例提供的另一种身份验证方法的流程图,该方法可以应用于如图1所示的系统中的认证服务器02。如图7所示,该方法可以包括:

步骤401、接收客户端发送的发送认证请求。

步骤402、响应于该认证请求向该客户端发送加密参数。

该加密参数包括:盐值、椭圆曲线的曲线参数、该椭圆曲线上的基点的基点坐标以及第一随机数。

步骤403、接收该客户端发送的第一参考坐标、第二参考坐标和验证凭证。

其中,该第一参考坐标和该第二参考坐标根据检验值、第二随机数、该曲线参数以及该基点坐标生成,该检验值基于该盐值以及用户敏感信息生成。

步骤404、基于该基点坐标、该第一随机数、该第一参考坐标和该第二参考坐标对该验证凭证进行验证。

步骤405、将验证结果发送至该客户端。

上述步骤401至步骤405的实现过程可以参考图3所示实施例中相关步骤的描述,此处不再赘述。

综上所述,本申请实施例提供了一种身份验证方法,认证服务器可以向客户端发送加密参数,使得客户端基于该加密参数对用户敏感信息进行处理得到验证凭证、第一参考坐标和第二参考坐标,并将得到的验证凭证以及参考坐标发送至认证服务器,认证服务器进而可以对该验证凭证进行验证。由于认证过程中,客户端仅需发送对用户敏感信息进行处理后得到的验证凭证,而无需直接发送用户敏感信息,相应的,验证服务器也无需存储用户敏感信息,从而有效降低了对验证服务器存储性能和安全性能的要求,降低了用户敏感信息的泄露风险。

图8是本申请实施例提供的一种客户端的结构示意图,如图8所示,该客户端01可以包括:

第一发送模块011,用于向认证服务器发送认证请求。

第一接收模块012,用于接收该认证服务器响应于该认证请求发送的加密参数。该加密参数包括:盐值、椭圆曲线的曲线参数、该椭圆曲线上的基点的基点坐标以及第一随机数。

第一确定模块013,用于根据该盐值以及用户敏感信息生成检验值。

第二确定模块014,用于根据该检验值、第二随机数、该曲线参数以及该基点坐标,确定该椭圆曲线上第一参考点的第一参考坐标,以及第二参考点的第二参考坐标。

第三确定模块015,用于根据该第二随机数、该检验值以及该第一随机数,生成验证凭证。

第二发送模块016,用于将该第一参考坐标、该第二参考坐标和该验证凭证发送至该认证服务器。

第二接收模块017,用于接收该认证服务器发送的验证结果。该验证结果为该认证服务器基于该基点坐标、该第一随机数、该第一参考坐标和该第二参考坐标对该验证凭证进行验证得到的结果。

可选的,该第二确定模块014可以用于:

根据该检验值、该曲线参数以及该基点坐标,确定该椭圆曲线上第一参考点的第一参考坐标;

根据随机生成的第二随机数、该曲线参数以及该基点坐标,确定该椭圆曲线上第二参考点的第二参考坐标。

可选的,该第一参考坐标为基于该曲线参数确定的该检验值与该基点坐标的乘积;该第二参考坐标为基于该曲线参数确定的该第二随机数与该基点坐标的乘积;该第三确定模块015可以用于:

将该第一随机数与该检验值的乘积与该第二随机数相加,得到验证凭证。

可选的,该第一确定模块013可以用于:

将该盐值与该用户敏感信息进行拼接,得到拼接信息;对该拼接信息进行哈希运算,得到检验值。

综上所述,本申请实施例提供了一种客户端,该客户端可以基于认证服务器发送的加密参数,对用户敏感信息进行处理得到验证凭证、第一参考坐标和第二参考坐标,并将得到的验证凭证以及参考坐标发送至认证服务器,认证服务器进而可以对该验证凭证进行验证。由于认证过程中,客户端仅需发送对用户敏感信息进行处理后得到的验证凭证,而无需直接发送用户敏感信息,相应的,验证服务器也无需存储用户敏感信息,从而有效降低了对验证服务器存储性能和安全性能的要求,降低了用户敏感信息的泄露风险。

图9是本申请实施例提供的一种认证服务器的结构示意图,如图9所示,该认证服务器02可以包括:

第一接收模块021,用于接收客户端发送的发送认证请求。

第一发送模块022,用于响应于该认证请求向该客户端发送加密参数。该加密参数包括:盐值、椭圆曲线的曲线参数、该椭圆曲线上的基点的基点坐标以及第一随机数。

第二接收模块023,用于接收该客户端发送的第一参考坐标、第二参考坐标和验证凭证。其中,该第一参考坐标和该第二参考坐标根据检验值、第二随机数、该曲线参数以及该基点坐标生成,该检验值基于该盐值以及用户敏感信息生成。

认证模块024,用于基于该基点坐标、该第一随机数、该第一参考坐标和该第二参考坐标对该验证凭证进行验证。

第二发送模块025,用于将验证结果发送至该客户端。

可选的,该认证模块024可以用于:

基于该曲线参数,将该验证凭证与该基点坐标相乘,得到第一验证参数;

基于该曲线参数,将该第一随机数与该第一参考坐标的乘积与该第二参考坐标相加,得到第二验证参数;

若该第一验证参数与该第二验证参数相等,确定验证结果为验证成功,若该第一验证参数与该第二验证参数不等,确定验证结果为验证失败。

可选的,该第一发送模块022可以用于:

响应于该认证请求,向该客户端发送盐值、椭圆曲线的曲线参数以及该椭圆曲线上的基点的基点坐标;以及,在第二接收模块023接收到该客户端发送的该第一参考坐标和该第二参考坐标之后,再向该客户端发送第一随机数。

综上所述,本申请实施例提供了一种认证服务器,认证服务器可以向客户端发送加密参数,使得客户端基于该加密参数对用户敏感信息进行处理得到验证凭证、第一参考坐标和第二参考坐标,并将得到的验证凭证以及参考坐标发送至认证服务器,认证服务器进而可以对该验证凭证进行验证。由于认证过程中,客户端仅需发送对用户敏感信息进行处理后得到的验证凭证,而无需直接发送用户敏感信息,相应的,验证服务器也无需存储用户敏感信息,从而有效降低了对验证服务器存储性能和安全性能的要求,降低了用户敏感信息的泄露风险。

图10是本申请实施例提供的一种身份验证设备的结构示意图,如图10所示,该设备可以包括:存储器401,处理器402及存储在该存储器401上的计算机程序4011。

其中,当该身份验证设备为客户端01时,该处理器402执行该计算机程序4011时,可以实现上述实施例所提供的身份验证方法中由客户端执行的步骤。

当该身份验证设备为认证服务器02时,该处理器402执行该计算机程序4011时,可以实现上述实施例所提供的身份验证方法中由认证服务器执行的步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的客户端、认证服务器、身份验证设备和各模块的具体工作过程,均可以参考前述方法实施例中的对应过程,在此不再赘述。

本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在计算机上运行时,使得计算机执行如上述实施例提供的由客户端执行的身份验证方法,或者由认证服务器执行的身份验证方法。

本申请实施例还提供了一种身份验证系统,如图1所示,该系统可以包括:一个或多个客户端01,以及认证服务器02。

其中,每个客户端01可以为如图8或图10所示的客户端。该认证服务器02可以为如图9或图10所示的服务器。

在本申请中,术语“第一”和“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“多个”指两个或两个以上,除非另有明确的限定。

以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1