一种客户端认证方法及装置与流程

文档序号:32334742发布日期:2022-11-25 23:25阅读:34来源:国知局
一种客户端认证方法及装置与流程

1.本技术涉及通信领域,特别是涉及一种客户端认证方法及装置。


背景技术:

2.当前,对客户端进行授权之前,通常由服务器对该客户端进行认证。在认证时,服务器判断预先存储的、具有相关权限的设备的信息中,是否包含该客户端的信息,如果存在,则说明该客户端能够被授权。由于此种方法依赖于服务器对各个客户端进行验证,因此,当服务器出现故障时,便无法对客户端进行验证,可能影响客户端的正常使用,用户体验不好。


技术实现要素:

3.本技术所要解决的技术问题是,提供一种客户端认证方法及装置,以解决当前,对客户端进行授权之前,由服务器对该客户端进行认证,当服务器出现故障时,便无法对客户端进行验证,可能影响客户端的正常使用,用户体验不好的问题。
4.本技术实施例提供了一种客户端认证方法,所述方法包括:
5.接收客户端发来的特征信息,所述特征信息为区分所述客户端与其他客户端的信息;
6.根据所述特征信息,在区块链中查询所述客户端是否具有权限,其中,所述区块链预先存有具有所述权限的客户端的特征信息;
7.若所述客户端具有所述权限,向所述客户端发送认证通过消息。
8.可选的,所述接收客户端发来的特征信息之前,所述方法还包括:
9.接收所述客户端发来的标识符,所述客户端发来的标识符为区分所述客户端与其他客户端的符号;
10.根据所述标识符,生成所述标识符对应的私钥和第一公钥;
11.将所述标识符与所述第一公钥进行拼接,得到第一拼接结果,计算所述第一拼接结果的哈希值;
12.将所述第一拼接结果的哈希值上传至所述区块链,所述第一拼接结果的哈希值用于确定所述客户端具有所述权限。
13.可选的,所述将所述第一拼接结果的哈希值上传至所述区块链之后,所述方法还包括:
14.判断预设时间内,是否接收到所述区块链发送的确认信息,所述确认信息用于表示所述区块链成功记录所述第一拼接结果的哈希值;
15.若接收到,则将所述私钥发送至所述客户端。
16.可选的,所述接收客户端发来的特征信息包括:
17.接收所述客户端发来的所述标识符以及特征签名,所述特征签名由所述私钥对所述标识符执行签名算法得到;
18.所述根据所述特征信息,在区块链中查询所述客户端是否具有权限包括:
19.对所述特征签名执行恢复公钥算法,得到第二公钥;
20.将所述标识符与所述第二公钥进行拼接,得到第二拼接结果,计算所述第二拼接结果的哈希值;
21.判断所述区块链中是否存在所述第二拼接结果的哈希值;
22.所述若所述客户端具有所述权限,向所述客户端发送认证通过消息包括:
23.若所述区块链中存在所述第二拼接结果的哈希值,向所述客户端发送认证通过消息。
24.可选的,所述签名算法为非对称加密算法。
25.可选的,所述恢复公钥算法为非对称加密算法。
26.第二方面,本技术实施例提供了一种客户端认证装置,其特征在于,所述装置包括:
27.第一接收模块,用于:接收客户端发来的特征信息,所述特征信息为区分所述客户端与其他客户端的信息;
28.查询模块,用于:根据所述特征信息,在区块链中查询所述客户端是否具有权限,其中,所述区块链预先存有具有所述权限的客户端的特征信息;
29.第一发送模块,用于:若所述客户端具有所述权限,向所述客户端发送认证通过消息。
30.可选的,所述装置还包括:
31.第二接收模块,用于:在接收客户端发来的特征信息之前,接收所述客户端发来的标识符,所述客户端发来的标识符为区分所述客户端与其他客户端的符号;
32.生成模块,用于:根据所述标识符,生成所述标识符对应的私钥和第一公钥;
33.计算模块,用于:将所述标识符与所述第一公钥进行拼接,得到第一拼接结果,计算所述第一拼接结果的哈希值;
34.上传模块,用于:将所述第一拼接结果的哈希值上传至所述区块链,所述第一拼接结果的哈希值用于确定所述客户端具有所述权限。
35.可选的,所述装置还包括:
36.判断模块,用于:在将所述第一拼接结果的哈希值上传至所述区块链后,判断预设时间内,是否接收到所述区块链发送的确认信息,所述确认信息用于表示所述区块链成功记录所述第一拼接结果的哈希值;
37.第二发送模块,用于:若接收到所述区块链发送的确认信息,则将所述私钥发送至所述客户端。
38.可选的,所述第一接收模块,用于:
39.接收所述客户端发来的所述标识符以及特征签名,所述特征签名由所述私钥对所述标识符执行签名算法得到;
40.所述查询模块,用于:
41.对所述特征签名执行恢复公钥算法,得到第二公钥;
42.将所述标识符与所述第二公钥进行拼接,得到第二拼接结果,计算所述第二拼接结果的哈希值;
43.判断所述区块链中是否存在所述第二拼接结果的哈希值;
44.所述第一发送模块,用于:
45.若所述区块链中存在所述第二拼接结果的哈希值,向所述客户端发送认证通过消息。
46.与现有技术相比,本技术实施例具有以下优点:
47.本技术实施例提供了一种客户端认证方法,该方法的执行装置是例如计算机、手机、服务器、物联网终端等具有网络请求能力的装置,所述执行装置首先接收客户端发来的特征信息,所述特征信息为区分所述客户端与其他客户端的信息;接着,根据所述特征信息,所述执行装置在区块链中查询所述客户端是否具有权限,所述区块链预先存有具有所述权限的客户端的特征信息;若所述客户端具有所述权限,向所述客户端发送认证通过消息。由此可见,本技术实施例中在对客户端进行认证时,是通过具有网络请求能力的装置在区块链中查询该客户端是否具有权限,无需服务器在其自身数据库中进行确定。由于区块链自身的特性,验证信息能够全程留痕,并且可以追溯、公开透明,多个设备能够对验证信息集体维护,采用本方法,当服务器出现故障时,不会影响对客户端进行验证,提升用户体验。
附图说明
48.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
49.图1为本技术实施例中一种客户端认证方法的流程示意图;
50.图2为本技术实施例中一种客户端认证装置的结构示意图。
具体实施方式
51.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
52.本技术的发明人经过研究发现,当前,对客户端进行授权之前,通常由服务器对该客户端进行认证。在认证时,服务器判断预先存储的、具有相关权限的设备的信息中,是否包含该客户端的信息,如果存在,则说明该客户端能够被授权。由于此种方法依赖于服务器对各个客户端进行验证,因此,当服务器出现故障时,便无法对客户端进行验证,可能影响客户端的正常使用,用户体验不好。
53.为了解决上述问题,在本技术实施例中,执行装置首先接收客户端发来的特征信息,所述特征信息为区分所述客户端与其他客户端的信息;接着,根据所述特征信息,所述执行装置在区块链中查询所述客户端是否具有权限,所述区块链预先存有具有所述权限的客户端的特征信息;若所述客户端具有所述权限,向所述客户端发送认证通过消息。由此可见,本技术实施例中在对客户端进行认证时,是通过具有网络请求能力的装置在区块链中
查询该客户端是否具有权限,无需服务器在其自身数据库中进行确定。由于区块链自身的特性,验证信息能够全程留痕,并且可以追溯、公开透明,多个设备能够对验证信息集体维护,采用本方法,当服务器出现故障时,不会影响对客户端进行验证,提升用户体验。
54.下面结合附图,详细说明本技术的各种非限制性实施方式。
55.示例性方法
56.参见图1,示出了本技术实施例中一种客户端认证方法的流程示意图。图1所示的方法,在一种实现方式中,例如可以由计算机、手机、服务器、物联网终端等具有网络请求能力的装置执行。
57.在本实施例中,图1所示的方法例如可以通过以下步骤s101-s103实现。
58.s101:接收客户端发来的特征信息,所述特征信息为区分所述客户端与其他客户端的信息;
59.考虑到当前,对客户端进行授权之前,通常由服务器对该客户端进行认证。此种认证方法依赖于服务器,当服务器出现故障时,便无法对客户端进行验证。因此,本技术实施例中,采用具有网络请求能力的装置,例如计算机、手机、服务器、物联网终端等装置,在区块链中确定相关客户端是否具有相应的权限。在进行验证时,以计算机为例,计算机首先接收客户端发来的特征信息,所述特征信息为区分所述客户端与其他客户端的信息,例如可以是标识符,所述特征信息用于对所述客户端进行验证。
60.s102:根据所述特征信息,在区块链中查询所述客户端是否具有权限,其中,所述区块链预先存有具有所述权限的客户端的特征信息;
61.可以理解的是,所述计算机在接收到所述特征信息后,可以根据所述特征信息在所述区块链中查询所述客户端是否具有权限,其中,所述区块链预先存有具有所述权限的客户端的特征信息。
62.在一个示例中,为将具有所述权限的客户端的特征信息上传至所述区块链,在接收所述客户端发来的所述特征信息之前,所述计算机可以首先接收具有所述权限的客户端发来的标识符,所述标识符为区分所述客户端与其他客户端的符号。在接收所述标识符后,所述计算机可以根据所述标识符,生成其对应的私钥和第一公钥。其中,所述私钥用于所述客户端在发起验证时生成特征签名,所述特征签名由所述私钥对所述标识符执行签名算法得到,在一个示例中,所述签名算法可以是非对称加密算法。需要说明的是,为执行所述签名算法,本示例中的执行设备,例如所述计算机,应为具有算法执行能力的设备。所述第一公钥用于增加上传至所述区块链的数据的复杂性,确保上传至所述区块链的数据的唯一性。
63.在生成所述私钥和所述第一公钥后,所述计算机将所述标识符与所述第一公钥进行拼接,得到第一拼接结果,之后,用sha256算法计算所述第一拼接结果的哈希值。在得到所述第一拼接结果的哈希值后,将其上传至所述区块链。换言之,在本示例中,对于具有所述权限的客户端,所述计算机可以计算其哈希值,将各个哈希值上传至所述区块链,所述第一拼接结果的各个哈希值用于确定客户端具有所述权限。
64.为确保哈希值成功上传至所述区块链,在一个示例中,在将所述第一拼接结果的哈希值上传至所述区块链之后,可以判断预设时间内,是否接收到所述区块链发送的确认信息,所述确认信息用于表示所述区块链成功记录所述第一拼接结果的哈希值。如果所述
计算机接收到所述确认信息,则将所述私钥发送至所述客户端。
65.需要说明的是,在进行验证时,所述客户端向所述计算机发送的所述特征信息,可以是所述标识符以及根据所述私钥生成的所述特征签名。在一个示例中,所述计算机在接收到所述标识符和所述特征签名后,对所述特征签名执行恢复公钥算法,以得到第二公钥,在一个示例中,所述恢复公钥算法可以是非对称加密算法,本示例中的执行设备,例如所述计算机,同样应为具有算法执行能力的设备。在得到所述第二公钥后,将所述标识符与所述第二公钥进行拼接,得到第二拼接结果,进而用sha256算法计算所述第二拼接结果的哈希值。可以理解的是,若所述客户端具有所述权限,则所述区块链中应具有所述第二拼接结果的哈希值,所述第二拼接结果的哈希值应等于将具有所述权限的客户端的特征信息上传至所述区块链时,上传的所述第一拼接结果的哈希值。
66.s103:若所述客户端具有所述权限,向所述客户端发送认证通过消息。
67.在本实施例中,若确定所述客户端具有所述权限,所述计算机可以向所述客户端发送认证通过消息。在一个示例中,所述确定所述客户端是否具有所述权限,可以是确定所述区块链中是否具有所述第二拼接结果的哈希值,若存在,则向所述客户端发送认证通过消息。由此可见,本技术实施例中在对客户端进行认证时,是通过具有网络请求能力的装置在区块链中查询该客户端是否具有权限,无需服务器在其自身数据库中进行确定。由于区块链自身的特性,验证信息能够全程留痕,并且可以追溯、公开透明,多个设备能够对验证信息集体维护,采用本方法,当服务器出现故障时,不会影响对客户端进行验证,提升用户体验。
68.示例性设备
69.基于以上实施例提供的方法,本技术实施例还提供了一种装置,以下结合附图介绍该装置。
70.参见图2,示出了本技术实施例中一种客户端认证装置的结构示意图。所述装置200例如可以具体包括:
71.第一接收模块201:用于接收客户端发来的特征信息,所述特征信息为区分所述客户端与其他客户端的信息;
72.查询模块202:用于根据所述特征信息,在区块链中查询所述客户端是否具有权限,其中,所述区块链预先存有具有所述权限的客户端的特征信息;
73.第一发送模块203:用于当所述客户端具有所述权限,向所述客户端发送认证通过消息。
74.采用本装置,无需服务器在其自身数据库中进行确定。由于区块链自身的特性,验证信息能够全程留痕,并且可以追溯、公开透明,多个设备能够对验证信息集体维护,采用本方法,当服务器出现故障时,不会影响对客户端进行验证,提升用户体验。
75.在一种可能的实现方式中,所述装置还包括:
76.第二接收模块,用于:在接收客户端发来的特征信息之前,接收所述客户端发来的标识符,所述客户端发来的标识符为区分所述客户端与其他客户端的符号;
77.生成模块,用于:根据所述标识符,生成所述标识符对应的私钥和第一公钥;
78.计算模块,用于:将所述标识符与所述第一公钥进行拼接,得到第一拼接结果,计算所述第一拼接结果的哈希值;
79.上传模块,用于:将所述第一拼接结果的哈希值上传至所述区块链,所述第一拼接结果的哈希值用于确定所述客户端具有所述权限。
80.在一种可能的实现方式中,所述装置还包括:
81.判断模块,用于:在将所述第一拼接结果的哈希值上传至所述区块链后,判断预设时间内,是否接收到所述区块链发送的确认信息,所述确认信息用于表示所述区块链成功记录所述第一拼接结果的哈希值;
82.第二发送模块,用于:若接收到所述区块链发送的确认信息,则将所述私钥发送至所述客户端。
83.在一种可能的实现方式中,所述第一接收模块,用于:
84.接收所述客户端发来的所述标识符以及特征签名,所述特征签名由所述私钥对所述标识符执行签名算法得到;
85.所述查询模块,用于:
86.对所述特征签名执行恢复公钥算法,得到第二公钥;
87.将所述标识符与所述第二公钥进行拼接,得到第二拼接结果,计算所述第二拼接结果的哈希值;
88.判断所述区块链中是否存在所述第二拼接结果的哈希值;
89.所述第一发送模块,用于:
90.若所述区块链中存在所述第二拼接结果的哈希值,向所述客户端发送认证通过消息。
91.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由权利要求指出。
92.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
93.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求来限制。
94.以上所述仅为本技术的较佳实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1