一种基于零知识证明的身份验证方法及设备技术

技术编号:39650595 阅读:9 留言:0更新日期:2023-12-09 11:18
本申请的目的是提供一种基于零知识证明的身份验证方法及设备,通过在客户端和服务端初始化构建该客户端与该服务端之间的零知识证明电路;客户端生成证明密钥,获取当前输入操作的次数和接口调用参数;运行零知识证明电路,生成证明;客户端向服务端发起验证请求;服务端调用验证密钥和请求计数,在请求计数与当前输入操作的次数一致时,运行零知识证明电路,对证明验证,在验证通过时返回的用于指示验证通过的响应信息

【技术实现步骤摘要】
一种基于零知识证明的身份验证方法及设备


[0001]本申请涉及计算机
,尤其涉及一种基于零知识证明的身份验证方法及设备


技术介绍

[0002]目前在客户端与服务端进行数据传输时,客户端在接收用户输入用户名和密码的操作后,将用户名和密码发送至服务端;服务端接收来自客户端的用户名和密码时,将对用户名和密码进行校验,并在校验成功情况下返回客户端用于后续操作请求的指令,以及用于客户端用户证明自己身份的
token
凭证

[0003]但是在上述常规的数据传输模式下,服务端必须以直接或间接的方式获取客户端输入密码,导致客户端密码不安全;并且,一旦将
token
凭证泄漏,相当于直接泄露客户端密码,不但给客户端带来危害,服务端也同样处于不安全状态,同时,服务端无法提供任何证明来说明是按照客户端的要求进行了数据的修改时,即客户端的操作是可以被伪造的,将为客户端和服务端带来损失


技术实现思路

[0004]本申请的一个目的是提供一种基于零知识证明的身份验证方法及设备,解决传统数据传输过程中用户信息不安全,且易被伪造等情况的发生,实现基于零知识证明,在客户端和服务端完成安全且稳定的数据交互,搭建身份验证的良好环境

[0005]根据本申请的一个方面,提供了一种基于零知识证明的身份验证方法,其中,应用于客户端,所述方法包括:
[0006]初始化构建客户端与服务端之间的零知识证明电路;
[0007]获取所述客户端对应的用户当前输入操作的输入密码并基于所述输入密码生成证明密钥,同时获取当前输入操作的次数和接口调用参数;
[0008]使用所述证明密钥

所述当前输入操作的次数和所述接口调用参数,运行所述零知识证明电路,生成所述客户端的证明;
[0009]携带所述用户的用户标识

所述当前输入操作的次数

所述接口调用参数和所述证明,向所述服务端发起验证请求,以使所述服务端调用所述服务端存储的

与所述用户标识对应的用户的验证密钥和请求计数,并在所述请求计数与所述当前输入操作的次数一致时,使用所述验证密钥

所述请求计数和所述接口调用参数,运行所述零知识证明电路,对所述证明进行验证;
[0010]若验证通过,接收所述服务端返回的用于指示验证通过的响应信息

[0011]进一步地,上述基于零知识证明的身份验证方法中,所述基于所述输入密码生成证明密钥,包括:
[0012]利用哈希函数,对所述输入密码进行对应哈希值计算,得到证明密钥

[0013]进一步地,上述基于零知识证明的身份验证方法中,所述方法还包括:
[0014]获取所述客户端对应的用户初次设置操作的初始密码或修改操作的修改密码,并基于所述初始密码或所述修改密码生成用于所述服务端进行用户身份验证的验证密钥;
[0015]携带所述用户标识和所述验证密钥,向所述服务端发起初始化请求,以使所述服务端存储所述用户标识和所述验证密钥并初始化请求计数

[0016]进一步地,上述基于零知识证明的身份验证方法中,所述基于所述初始密码或所述修改密码生成用于所述服务端进行用户身份验证的验证密钥,包括:
[0017]利用哈希函数,对所述初始密码或所述修改密码进行哈希计算,得到用于所述服务端进行用户身份验证的验证密钥

[0018]进一步地,上述基于零知识证明的身份验证方法中,所述基于所述输入密码生成证明密钥,包括:
[0019]采用哈希函数对所述输入密码进行哈希计算,得到所述证明密钥

[0020]进一步地,上述基于零知识证明的身份验证方法中,所述方法还包括:
[0021]若验证未通过,接收所述服务端返回的用于指示验证未通过的响应信息

[0022]根据本申请的另一个方面,还提供了一种基于零知识证明的身份验证方法,其中,应用于服务端,所述方法包括:
[0023]初始化构建客户端与服务端之间的零知识证明电路;
[0024]接收所述客户端携带用户标识

当前输入操作的次数

接口调用参数和证明向所述服务端发起的验证请求,其中,所述证明由所述客户端使用证明密钥

所述当前输入操作的次数和所述接口调用参数,运行所述零知识证明电路生成的,所述证明密钥由所述客户端基于所述用户标识对应的用户的当前输入操作的输入密码生成的;
[0025]调用所述服务端存储的

与所述用户标识对应的用户的验证密钥和请求计数;
[0026]若所述请求计数与所述当前输入操作的次数一致,则使用所述验证密钥

所述请求计数和所述接口调用参数,运行所述零知识证明电路,对所述证明进行验证;
[0027]若验证通过,则向所述客户端返回用于指示验证通过的响应信息

[0028]进一步地,上述基于零知识证明的身份验证方法中,所述调用所述服务端存储的

与所述用户标识对应的用户的验证密钥和请求计数之后,还包括:
[0029]判断所述请求计数与所述当前输入操作的次数是否一致,
[0030]若一致,则执行所述使用所述验证密钥

所述请求计数和所述接口调用参数,运行所述零知识证明电路,对所述证明进行验证的步骤;
[0031]若不一致,则向所述客户端返回用于指示请求无效的响应信息

[0032]进一步地,上述基于零知识证明的身份验证方法中,所述方法还包括:
[0033]接收所述客户端携带所述用户标识和所述验证密钥发起的初始化请求;
[0034]对所述用户标识和所述验证密钥进行对应存储,并初始化请求计数

[0035]进一步地,上述基于零知识证明的身份验证方法中,所述方法还包括:
[0036]若验证未通过,则向所述客户端返回用于指示验证未通过的响应信息
[0037]根据本申请的另一方面,还提供了一种非易失性存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行时,使所述处理器实现如上述一种基于零知识证明的身份验证方法

[0038]根据本申请的另一方面,还提供了一种基于零知识证明的身份验证的客户端,其
中,该客户端包括:
[0039]一个或多个处理器;
[0040]计算机可读介质,用于存储一个或多个计算机可读指令,
[0041]当所述一个或多个计算机可读指令被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述客户端的一种基于零知识证明的身份验证方法

[0042]根据本申请的另一方面,还提供了一种基于零知识证明的身份验证的服务端,其中,该服务端包括:...

【技术保护点】

【技术特征摘要】
1.
一种基于零知识证明的身份验证方法,其中,应用于客户端,所述方法包括:初始化构建客户端与服务端之间的零知识证明电路;获取所述客户端对应的用户当前输入操作的输入密码并基于所述输入密码生成证明密钥,同时获取当前输入操作的次数和接口调用参数;使用所述证明密钥

所述当前输入操作的次数和所述接口调用参数,运行所述零知识证明电路,生成所述客户端的证明;携带所述用户的用户标识

所述当前输入操作的次数

所述接口调用参数和所述证明,向所述服务端发起验证请求,以使所述服务端调用所述服务端存储的

与所述用户标识对应的用户的验证密钥和请求计数,并在所述请求计数与所述当前输入操作的次数一致时,使用所述验证密钥

所述请求计数和所述接口调用参数,运行所述零知识证明电路,对所述证明进行验证;若验证通过,接收所述服务端返回的用于指示验证通过的响应信息
。2.
根据权利要求1所述的方法,其中,所述基于所述输入密码生成证明密钥,包括:利用哈希函数,对所述输入密码进行对应哈希值计算,得到证明密钥
。3.
根据权利要求1所述的方法,其中,所述方法还包括:获取所述客户端对应的用户初次设置操作的初始密码或修改操作的修改密码,并基于所述初始密码或所述修改密码生成用于所述服务端进行用户身份验证的验证密钥;携带所述用户标识和所述验证密钥,向所述服务端发起初始化请求,以使所述服务端存储所述用户标识和所述验证密钥并初始化请求计数
。4.
根据权利要求3所述的方法,其中,所述基于所述初始密码或所述修改密码生成用于所述服务端进行用户身份验证的验证密钥,包括:利用哈希函数,对所述初始密码或所述修改密码进行哈希计算,得到用于所述服务端进行用户身份验证的验证密钥
。5.
根据权利要求1所述的方法,其中,所述方法还包括:若验证未通过,接收所述服务端返回的用于指示验证未通过的响应信息
。6.
一种基于零知识证明的身份验证方法,其中,应用于服务端,所述方法包括:初始化构建客户端与服务端之间的零知识证明电路;接收所述客户端携带用户标识

当前输入操作的次数

接口调用参数和证明向所述服务端发起的验证...

【专利技术属性】
技术研发人员:颜宇辉
申请(专利权)人:上海焜耀网络科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1