本发明专利技术提供一种基于零知识证明的用户身份安全检验方法,其特征在于,包括以下步骤:S1、用户在客户端输入用户名和密码进行注册,在服务端根据用户输入的用户名,基于零知识证明生成证明密钥和验证密钥;S2、用户在客户端输入已注册的用户名和用户密码,在客户端通过身份证明生成器对用户输入的密码、随机数和证明密钥生成身份证明结果,并通过身份验证器对用户输入的密码、随机数和验证密钥生成身份验证结果,比较身份证明结果和身份验证结果,得到用户身份验证结果。本发明专利技术利用了零知识证明,确保用户密码在不被泄露的情况下,保证了用户登录的安全性问题,即使泄露用户名和密码摘要,也不会导致用户身份被冒名顶替。也不会导致用户身份被冒名顶替。也不会导致用户身份被冒名顶替。
【技术实现步骤摘要】
一种基于零知识证明的用户身份安全检验方法及装置
[0001]本专利技术涉及信息安全
,具体涉及一种基于零知识证明的用户身份安全检验方法及装置。
技术介绍
[0002]随着互联网和移动设备的普及,以服务化的形式,通过Web和APP等形式的接口,向多个用户提供服务,成为一种十分常见的方式。因此,对于这种多租户的业务模式,对访问用户的身份进行验证,以提供差异化的服务和其自身独有的数据是必须要进行的一个过程。因此,在能够有效使用这些服务前,必须进行账号的登录。而登录的方式目前有多种形式,但最为基础和常见的一种方式是基于用户名和密码的登录方法,比如QQ,邮箱等应用都存在这种方式。但这种方式要求在服务提供方的服务器上存储用户的密码或其摘要信息。因此,其存在如下问题:(1)如果是以明文形式存储密码,则无论是在用户隐私还是安全性的影响范围上,都存在较大隐患;因此,通常服务方不会选用该形式;(2)如果以密码Hash方式存储,虽然解决了用户隐私,但目前使用密码Hash检验用户身份的处理方式,仍然面临其泄露后的安全问题,即非本人用户完成该用户的登录。
技术实现思路
[0003]本专利技术要解决的技术问题是提供一种基于零知识证明的用户身份安全检验方法及装置,利用了零知识证明,用户密码在不被泄露的情况下,保证服务端的安全性问题,即泄露用户名和密码摘要,不会导致用户身份被冒名顶替。
[0004]为解决上述技术问题,本专利技术的实施例提供一种基于零知识证明的用户身份安全检验方法,包括如下步骤:S1、用户在客户端输入用户名和密码进行注册,在服务端根据用户输入的用户名,基于零知识证明生成证明密钥和验证密钥;S2、用户在客户端输入已注册的用户名和用户密码,在客户端通过身份证明生成器对用户输入的密码、随机数和证明密钥生成身份证明结果,并在服务端通过身份验证器对用户已注册的密码、随机数和验证密钥生成身份验证结果,比较身份证明结果和身份验证结果,得到用户身份验证结果。
[0005]其中,步骤S1的具体步骤如下:S1.1、用户在客户端生成注册请求,通过客户端将用户名UserName发送至服务端;S1.2、服务端接收到注册请求,根据用户输入的用户名UserName和用户密码的哈希值,通过密钥管理器生成基于零知识证明的证明密钥PK和验证密钥VK,关联用户名UserName。
[0006]其中,步骤S2的具体步骤如下:S2.1、用户在客户端生成登录请求,并携带登录用户的用户名UserName,通过客户
端将用户名UserName发送至服务器;S2.2、服务端接收到登录请求时,为该用户生成登录时所用的随机数N,将随机数N和注册阶段所生成的基于零知识证明的证明密钥PK返回至客户端;S2.3、用户在客户端输入用户密码p,调用身份证明生成器Prover,对身份证明生成器Prover输入用户密码p、随机数N和证明密钥PK,生成身份证明结果ZKProof;S2.4、客户端向服务端发送身份凭证,所述身份凭证包括身份证明ZKProof和用户名UserName;S2.5、服务端收到身份凭证时,根据用户名UserName找到对应的验证密钥VK和随机数N;S2.6、服务端调用身份验证器Verifier,输入用户密码p的哈希值、随机数N和验证密钥VK,生成身份验证结果:若验证结果为True,则用户身份验证通过;若验证结果为False,则用户身份验证失败。
[0007]本专利技术的实施例还提供一种基于零知识证明的用户身份安全检验装置,包括:身份证明生成器,用于根据所述用户密码、随机数及证明密钥,生成登录所需的身份证明结果,其中,所述零知识证明信息生成方法包括:根据所述用户密码、随机数及证明密钥,生成登录所需的零知识证明信息;密钥管理器,用于生成和查询零知识证明密钥的密钥管理器,包括证明密钥和验证密钥;身份验证器,用于根据所述用户注册密码Hash、随机数及验证密钥,生成登录所需的身份验证结果,其中,所述零知识验证信息生成方法包括:根据所述用户注册密码Hash、随机数及验证密钥,生成登录所需的零知识验证信息。
[0008]其中,所述基于零知识证明的用户身份安全检验装置还包括:随机串生成模块,用于接收客户端发送的登录请求,向客户端返回生成的随机串;登录验证模块,用于根据所述身份证明结果和身份验证结果,生成验证结果,以确定客户端的登录是否成功。
[0009]本专利技术还提供一种计算机可读存储介质,所述计算机存储介质用于存储计算机指令,当其在计算机上运行时,使得计算机可以执行本专利技术提供的基于零知识证明的用户身份安全检验方法中所述的方法。
[0010]本专利技术上述技术方案的有益效果如下:本专利技术提供的检验方法以及相应的装置、电子设备,采用客户端向服务器发送登录请求,接收服务器返回的随机数和证明密钥,根据输入的用户密码、随机数和证明密钥,生成身份证明结果,根据用户注册密码的哈希值、随机数和验证密钥,生成身份验证结果,以使得服务器根据身份证明结果和身份验证结果生成验证结果。通过零知识证明方式进行登录,使得服务端能不存储密码的情况下,让服务器确认客户端的身份是正确的,且服务器在每次返回的随机数、证明密钥和验证密钥使得每次生成的零知识证明信息都不相同,保证用户密码在不被泄露的情况下,保证服务端的安全性问题,即使泄露用户名和密码摘要,也不会导致用户身份被冒名顶替。
附图说明
[0011]图1为本专利技术的实施例提供的基于零知识证明的用户身份安全检验方法的流程图一;图2为本专利技术的实施例提供的基于零知识证明的用户身份安全检验方法的流程图二;图3为本专利技术提供的基于零知识证明的用户身份安全检验装置的结构示意图。
具体实施方式
[0012]为使本专利技术要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
[0013]如图1所示,本专利技术的实施例提供一种基于零知识证明的用户身份安全检验方法,包括如下步骤:S1、用户在客户端输入用户名和密码进行注册,在服务端根据用户输入的用户名,基于零知识证明生成证明密钥和验证密钥:S1.1、用户在客户端生成注册请求,通过客户端将用户名UserName发送至服务端;S1.2、服务端接收到注册请求,根据用户输入的用户名UserName和用户密码的哈希值,通过密钥管理器生成基于零知识证明的证明密钥PK和验证密钥VK,关联用户名UserName。
[0014]S2、用户在客户端输入已注册的用户名和用户密码,在客户端通过身份证明生成器对用户输入的密码、随机数和证明密钥生成身份证明结果,并在服务端通过身份验证器对用户已注册的密码、随机数和验证密钥生成身份验证结果,比较身份证明结果和身份验证结果,得到用户身份验证结果:S2.1、用户在客户端生成登录请求,并携带登录用户的用户名UserName,通过客户端将用户名UserName发送至服务器;S2.2、服务端接收到登录请求时,为该用户生成登录时所用的随机数N,将随机数N和注册阶段所生成的基于零知识证明的证明密钥PK返回至客户端;S2.3、用户在客户端输入用户密本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于零知识证明的用户身份安全检验方法,其特征在于,包括以下步骤:S1、用户在客户端输入用户名和密码进行注册,在服务端根据用户输入的用户名,基于零知识证明生成证明密钥和验证密钥;S2、用户在客户端输入已注册的用户名和用户密码,在客户端通过身份证明生成器对用户输入的密码、随机数和证明密钥生成身份证明结果,并在服务端通过身份验证器对用户输入的密码、随机数和验证密钥生成身份验证结果,比较身份证明结果和身份验证结果,得到用户身份验证结果。2.根据权利要求1所述的基于零知识证明的用户身份安全检验方法,其特征在于,步骤S1的具体步骤如下:S1.1、用户在客户端生成注册请求,通过客户端将用户名UserName发送至服务端;S1.2、服务端接收到注册请求,根据用户输入的用户名UserName和用户密码p的哈希值,通过密钥管理器生成基于零知识证明的证明密钥PK和验证密钥VK,关联用户名UserName。3.根据权利要求1所述的基于零知识证明的用户身份安全检验方法,其特征在于,步骤S2具体步骤如下:S2.1、用户在客户端生成登录请求,并携带登录用户的用户名UserName,通过客户端将用户名UserName发送至服务器;S2.2、服务端接收到登录请求时,为该用户生成登录时所用的随机数N,将随机数N和注册阶段所生成的基于零知识证明的证明密钥PK返回至客户端;S2.3、用户在客户端输入用户密码p,调用身份证明生成器Prover,对身份证明生成器Prover输入用户密码p、随机数N和证明密钥PK,生成身份证明结果ZKProof;S2.4、...
【专利技术属性】
技术研发人员:崔建军,邹卓,许文波,高伟峻,蔡哲飚,李建红,崔瑞祺,
申请(专利权)人:上海特高信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。