一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

访问鉴权方法、装置、电子设备和存储介质与流程

2022-11-28 14:13:36 来源:中国专利 TAG:


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.第三发送模块,用于将所述验证因子和所述工作量证明参数发送至所述服务端,以使所述服务端对所述验证因子和所述工作量证明参数进行验证,并在验证通过后,受理所述访问请求。
50.第六方面,本技术实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
51.所述存储器,用于存储计算机程序;
52.所述处理器,用于执行所述存储器中所存储的程序,实现第一方面或第二方面所述的访问鉴权方法。
53.第七方面,本技术实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面或第二方面所述的访问鉴权方法。
54.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:本技术实施例提供的该方法,通过获取客户端发送的访问请求;向所述客户端发送验证因子,以使所述客户端基于所述验证因子计算得到工作量证明参数,并将所述验证因子和所述工作量证明参数发送至所述服务端;获取所述客户端发送的所述验证因子和所述工作量证明参数;对所述验证因子和所述工作量证明参数进行验证,若验证通过,受理所述访问请求。如此,能够在客户端发起访问请求后,基于验证因子对客户端进行鉴权,通过客户端对验证因子的计算,并在计算结果验证通过后,再受理其访问请求,一方面,该验证因子的计算量不大,对普通客户端访问影响较小,另一方面,在客户端进行高速反复的恶意访问时,通过计算量增加客户端的访问成本。
附图说明
55.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
56.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
57.图1为本技术一实施例提供的访问鉴权系统的结构图;
58.图2为本技术一实施例提供的访问鉴权方法的流程图;
59.图3为本技术另一实施例提供的访问鉴权方法的流程图;
60.图4为本技术一实施例提供的访问鉴权装置的结构图;
61.图5为本技术另一实施例提供的访问鉴权装置的结构图;
62.图6为本技术一实施例提供的电子设备的结构图。
具体实施方式
63.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
64.根据本技术一实施例提供了一种访问鉴权系统。可选地,在本技术实施例中,上述访问鉴权系统可以应用于如图1所示的由客户端101和服务端102所构成的硬件环境中。如图1所示,服务端通过网络与客户端进行连接,可用于为客户端提供服务(如视频服务、应用服务等),可在服务端设置数据库,用于为服务端提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,客户端并不限定于pc、手机、平板电脑等。
65.其中,所述客户端,用于向服务端发送访问请求;
66.所述服务端,用于获取客户端发送的访问请求;向所述客户端发送验证因子;
67.所述客户端,还用于基于所述验证因子计算得到工作量证明参数;将所述验证因子和所述工作量证明参数发送至所述服务端;
68.所述服务端,还用于获取所述客户端发送的所述验证因子和所述工作量证明参数;对所述验证因子和所述工作量证明参数进行验证,若验证通过,受理所述访问请求。
69.本技术实施例还提供了一种访问鉴权方法,该方法可以由服务端来执行,也可以由客户端来执行。
70.以服务端执行本技术实施例的访问鉴权方法为例,图2是根据本技术实施例的一种可选的访问鉴权方法的流程示意图,如图2所示,该方法的流程可以包括以下步骤:
71.步骤201、获取客户端发送的访问请求。
72.一些实施例中,客户端发送的访问请求可以是对某一界面、某一视频或者对某一信息系统等的访问请求。
73.步骤202、向所述客户端发送验证因子,以使所述客户端基于所述验证因子计算得到工作量证明参数,并将所述验证因子和所述工作量证明参数发送至所述服务端。
74.一些实施例中,验证因子可以是预先生成存储在数据库中,也可以是在服务端接收到访问请求后生成的。其中,验证因子可以是按照预设的生成规则生成的,从而在发送到客户端后,客户端可以基于该生成规则进行逆运算,从而得到工作量证明参数。
75.一般的,在服务端生成验证因子后,还会基于上述方式再生成至少一个备用验证因子。如果备用验证因子的数量超过预设阈值,则不再生成,如此,可以限制验证因子的膨胀速度,并避免存储空间被过度占用。
76.在一个可选实施例中,所述生成所述验证因子,包括:
77.获取工作量难度系数和所述服务端的工作参数;基于所述工作量难度系数和所述工作参数生成工作量证明参数;基于所述工作量证明参数、所述工作量难度系数和所述工作参数,计算得到所述验证因子。
78.一些实施例中,工作量难度系数用于表征工作量证明参数的计算过程的难易程度,工作量难度系数越大,工作量证明参数的计算过程越难。其中,工作量难度系数可以是设置一初始值,在后续根据客户端的访问行为进行增加。该初始值可以但不限于设置为1。进一步的,还可以对工作量难度系数设置最大值,以避免普通客户端计算难度过大。
79.其中,服务端的工作参数有多种,本实施例中,以服务端为区块链服务端为例,工作参数可以是区块链中任一区块blocki上的交易时长,包括最长交易时长和最短交易时长。
80.示例性的,以所述工作量证明参数为z,所述工作量难度系数为p,所述工作参数为最长交易时长ri和最短交易时长li为例,生成的验证因子可以是,先基于上述参数生成一字符串j,j=z str li ri p,即该字符串j通过上述参数拼接得到。
81.其中,str为服务端生成的以随机字符,i为区块链中区块的编号,z为整数区间[li×
p,ri×
p]内部的一个随机数。
[0082]
进一步的,再基于该字符串j进行哈希运算后,与上述参数共同生成验证因子h,h=hash(j) str li ri p。
[0083]
其中,hash函数可以为任意一种哈希函数,比如md5等。
[0084]
相应的,在将验证因子发送到客户端后,客户端对该验证因子进行逆运算。基于上述相关实施例,验证因子h=hash(j) str li ri p,在其进行运算时,按照每个参数所占的字符的位数,对验证因子进行分解,得到hash(j)、str、li、ri和p,用户端通过对hash(j)中的z在[li×
p,ri×
p]区间中进行枚举,确定最终得到的z即工作量证明参数。通过枚举z,将z代入j的计算公式中进行哈希运算,并将得到的哈希结果与hash(j)进行比较,在二者一致时,确定对应的z为客户端计算得到的工作量证明参数,可知p在过程中是控制难度的作用,p越大,客户端枚举出z的时间越长。
[0085]
可以理解的是,上述的j的表达式以及h的表达式中,各字符的顺序可以基于实际情况进行设置,或者基于实际情况设置新的字符。在j的表达式以及h的表达式设置完毕后,存储其字符的位置关系,以在后续进行运算时,能够基于该位置关系解析得到相应字符。
[0086]
步骤203、获取所述客户端发送的所述验证因子和所述工作量证明参数。
[0087]
一些实施例中,在客户端计算得到工作量证明参数后,将该工作量证明参数和验证因子均发送至服务端,以由服务端对二者进行验证。
[0088]
步骤204、对所述验证因子和所述工作量证明参数进行验证,若验证通过,受理所述访问请求。
[0089]
一些实施例中,通过对验证因子和工作量证明参数进行验证,能够提高鉴权过程的安全性,避免客户端随意生成验证因子和工作量证明参数也能实现访问的情况。在验证通过后,表示该客户端能够对服务端进行访问,则受理该访问请求,若验证不通过,则服务端重新向客户端发送验证因子,还可以向客户端发送提示信息,以对该客户端进行告警。
[0090]
在一个可选实施例中,所述对所述验证因子和所述工作量证明参数进行验证,包括:
[0091]
判断本地是否存在所述验证因子;若存在,判断所述验证因子和所述工作量证明参数是否正确;若正确,确定所述验证因子和所述工作量证明参数验证通过。
[0092]
一些实施例中,可以但不限于通过布隆过滤器,判断客户端发送的验证因子是否存在与服务端中。布隆过滤器具有空间效率高和查询时间短的特征,基于布隆过滤其可以快速判断验证因子的存在性,而避免系统的大量计算。
[0093]
在服务器中存在该验证因子时,可以进一步对验证因子和工作量证明参数的正确性进行验证,判断客户端发送的验证因子对应的工作量证明参数与服务端存储的验证因子与工作量证明参数是否一致,在二者一致时,确定验证通过。
[0094]
在一个可选实施例中,生成验证因子的参数中包括工作量难度系数,本技术的访问鉴权方法还包括:
[0095]
基于获取的所述访问请求确定第一访问频次;在监测到第一访问频次超过预设频次阈值时,增加所述工作量难度系数,并重新生成所述验证因子。
[0096]
在检测到访问频次较快时,表征当前服务端访问接口的访问量较大,通过提高工作量难度系数,重新生成验证因子,以提高用户端基于验证因子计算工作量证明参数的计算量,以达到增加攻击者成本的目的。
[0097]
在一个可选实施例中,生成验证因子的参数中包括工作量难度系数,本技术的访问鉴权方法还包括:
[0098]
基于每个所述客户端的访问请求,确定每个所述客户端的第二访问频次;在检测到目标客户端的所述第二访问频次高于其他客户端的访问频次时,增加所述工作量难度系数,并基于增加后的工作量难度系数生成发送至所述目标客户端的验证因子。
[0099]
一些实施例中,在监测到某一客户端的访问频次较高时,可以通过提高该客户端的工作量难度系数的方式,增加该客户端的计算量,以分离出可疑的攻击者,对其设置特定的工作量难度系数,提高其攻击成本。
[0100]
在一个可选实施例中,所述服务端为区块链服务端,所述方法还包括:
[0101]
每间隔预设时长,对存储的区块进行清理,以使所述区块的数量不超过预设区块阈值。
[0102]
一些实施例中,在区块链服务端中会产生很多交易,通过对存储的区块进行清理,可以降低区块链的存储压力,同时提高区块链上信息的随机性,防止信息被预测。
[0103]
本技术的访问鉴权方法,提供了一种新的基于区块链的工作量证明的方式,通过增大攻击者或者恶意用户的计算成本,大大缓解了信息系统会承受的恶意访问,同时正常用户几乎不会受到影响。并且,基于区块链系统可以对访问者留痕,以便于进行追踪处理。访问难度可自动或者手动调节,难度可弹性控制,提高了鉴权过程的便捷性。哈希的计算导致分布式攻击者攻击成本大大提高,乃至无法攻击。
[0104]
基于同一构思,本技术实施例中提供了另一种访问鉴权方法,以客户端执行本技术实施例的访问鉴权方法为例,该方法的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图3所示,该方法主要包括:
[0105]
步骤301、向服务端发送访问请求,以使所述服务端向所述客户端发送验证因子。
[0106]
步骤302、基于所述验证因子计算得到工作量证明参数。
[0107]
步骤303、将所述验证因子和所述工作量证明参数发送至所述服务端,以使所述服务端对所述验证因子和所述工作量证明参数进行验证,并在验证通过后,受理所述访问请求。
[0108]
在一个可选实施例中,所述服务端为区块链服务端,所述向服务端发送访问请求之前,还包括:
[0109]
向区块链上发送交易信息,以使所述区块链生成交易哈希并发送至所述客户端;
[0110]
所述向服务端发送访问请求,包括:
[0111]
在所述访问请求中添加所述交易哈希后发送至所述服务端,以使所述服务端验证所述交易哈希是否存在。
[0112]
一些实施例中,客户端在访问服务端前,需要在区块链上发送普通交易,交易内容可以随机任意,获取交易哈希之后,每次发起访问息之前,需要附带上本交易哈希。如此,可
以为区块链提供随机信息。进一步的,由服务端验证交易哈希的存在性,以提高鉴权过程的安全性。
[0113]
基于同一构思,本技术实施例中提供了一种访问鉴权装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图4所示,该装置主要包括:
[0114]
第一获取模块401,用于获取客户端发送的访问请求;
[0115]
第一发送模块402,用于向所述客户端发送验证因子,以使所述客户端基于所述验证因子计算得到工作量证明参数,并将所述验证因子和所述工作量证明参数发送至所述服务端;
[0116]
第二获取模块403,用于获取所述客户端发送的所述验证因子和所述工作量证明参数;
[0117]
验证模块404,用于对所述验证因子和所述工作量证明参数进行验证,若验证通过,受理所述访问请求。
[0118]
基于同一构思,本技术实施例中提供了一种访问鉴权装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图5所示,该装置主要包括:
[0119]
第二发送模块501,用于向服务端发送访问请求,以使所述服务端向所述客户端发送验证因子;
[0120]
计算模块502,用于基于所述验证因子计算得到工作量证明参数;
[0121]
第三发送模块503,用于将所述验证因子和所述工作量证明参数发送至所述服务端,以使所述服务端对所述验证因子和所述工作量证明参数进行验证,并在验证通过后,受理所述访问请求。
[0122]
基于同一构思,本技术实施例中还提供了一种电子设备,如图6所示,该电子设备主要包括:处理器601、存储器602和通信总线603,其中,处理器601和存储器602通过通信总线603完成相互间的通信。其中,存储器602中存储有可被处理器601执行的程序,处理器601执行存储器602中存储的程序,实现如下步骤:
[0123]
获取客户端发送的访问请求;
[0124]
向所述客户端发送验证因子,以使所述客户端基于所述验证因子计算得到工作量证明参数,并将所述验证因子和所述工作量证明参数发送至所述服务端;
[0125]
获取所述客户端发送的所述验证因子和所述工作量证明参数;
[0126]
对所述验证因子和所述工作量证明参数进行验证,若验证通过,受理所述访问请求。或,
[0127]
向服务端发送访问请求,以使所述服务端向所述客户端发送验证因子;
[0128]
基于所述验证因子计算得到工作量证明参数;
[0129]
将所述验证因子和所述工作量证明参数发送至所述服务端,以使所述服务端对所述验证因子和所述工作量证明参数进行验证,并在验证通过后,受理所述访问请求。
[0130]
上述电子设备中提到的通信总线603可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线603可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0131]
存储器602可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器601的存储装置。
[0132]
上述的处理器601可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等,还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0133]
在本技术的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述的访问鉴权方法。
[0134]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本技术实施例所述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如dvd)或者半导体介质(例如固态硬盘)等。
[0135]
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0136]
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献