首页 / 专利库 / 资料储存系统 / 工作量证明 / 基于工作量证明的连接方法、系统、客户端及服务器

基于工作量证明的连接方法、系统、客户端及服务器

阅读:759发布:2020-08-20

专利汇可以提供基于工作量证明的连接方法、系统、客户端及服务器专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于 工作量证明 的连接方法、客户端、 服务器 、基于工作量证明的连接系统及计算机存储介质。其中,方法包括:步骤S10,构建连接 请求 ,其中,连接请求携带有随机数;步骤S11,对构建的连接请求进行工作量证明;步骤S12,将通过证明的连接请求发送给服务器,以供服务器对连接请求进行工作量验证,若连接请求通过工作量验证,则响应连接请求与客户端建立连接,通过让客户端执行工作量证明操作,增加客户端连接的成本,服务器通过对连接请求进行工作量验证,来确定是否建立连接,从而能够有效地控制连接数量,对于恶意发起DDOS攻击者来说,其需要付出一定的工作量,增加了恶意发起DDOS者的成本,减少恶意发起的DDOS攻击建立的连接数量。,下面是基于工作量证明的连接方法、系统、客户端及服务器专利的具体信息内容。

1.一种基于工作量证明的连接方法,其特征在于,所述方法包括:
步骤S10,构建连接请求,其中,所述连接请求携带有随机数;
步骤S11,对构建的连接请求进行工作量证明;
步骤S12,将通过证明的连接请求发送给服务器,以供服务器对所述连接请求进行工作量验证,若所述连接请求通过工作量验证,则响应所述连接请求与客户端建立连接。
2.根据权利要求1所述的方法,其特征在于,所述步骤S11进一步包括:
步骤S110,对构建的连接请求进行哈希处理,得到对应的哈希值;
步骤S111,判断所述哈希值是否小于证明目标值;
步骤S112,若否,则更改连接请求携带的随机数,再次执行步骤S110;
步骤S113,若是,则将对应的连接请求发送给服务器。
3.一种基于工作量证明的连接方法,其特征在于,所述方法包括:
步骤S20,接收客户端发送的通过工作量证明的连接请求,其中,所述连接请求携带有随机数;
步骤S21,对所述连接请求进行工作量验证,若所述连接请求通过工作量验证,则响应所述连接请求与客户端建立连接。
4.一种客户端,其特征在于,所述客户端包括:
构建模,适于构建连接请求,其中,所述连接请求携带有随机数;
验证模块,适于对构建的连接请求进行工作量证明;
第一发送模块,适于将通过证明的连接请求发送给服务器,以供服务器对所述连接请求进行工作量验证,若所述连接请求通过工作量验证,则响应所述连接请求与客户端建立连接。
5.一种服务器,其特征在于,所述服务器包括:
第一接收模块,适于接收客户端发送的通过工作量证明的连接请求,其中,所述连接请求携带有随机数;
验证模块,适于对所述连接请求进行工作量验证;
响应模块,适于若所述连接请求通过工作量验证,则响应所述连接请求与客户端建立连接。
6.一种基于工作量证明的连接系统,其特征在于,所述系统包括:权利要求4所述的客户端以及权利要求5所述的服务器。
7.一种客户端,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1或2所述的基于工作量证明的连接方法对应的操作。
8.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1或2所述的基于工作量证明的连接方法对应的操作。
9.一种服务器,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求3所述的基于工作量证明的连接方法对应的操作。
10.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行如权利要求3所述的基于工作量证明的连接方法对应的操作。

说明书全文

基于工作量证明的连接方法、系统、客户端及服务器

技术领域

[0001] 本发明涉及互联网技术领域,具体涉及一种基于工作量证明的连接方法、客户端、服务器、基于工作量证明的连接系统及计算机存储介质。

背景技术

[0002] 诸如电子商务等网站具有非常高的并发连接数,在例如双11、618等电商购物节,并发连接数将非常高,很容易造成服务器崩溃,然而,黑客往往会利用同时发起成千上万的连接请求对这类网站进行DDOS攻击,若不对此类连接请求进行任何限制,将会迫使网站崩溃,进而会造成较大的经济损失。

发明内容

[0003] 鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于工作量证明的连接方法、客户端、服务器、基于工作量证明的连接系统及计算机存储介质。
[0004] 根据本发明的一个方面,提供了一种基于工作量证明的连接方法,方法包括:
[0005] 步骤S10,构建连接请求,其中,连接请求携带有随机数;
[0006] 步骤S11,对构建的连接请求进行工作量证明;
[0007] 步骤S12,将通过证明的连接请求发送给服务器,以供服务器对连接请求进行工作量验证,若连接请求通过工作量验证,则响应连接请求与客户端建立连接。
[0008] 可选地,步骤S11进一步包括:步骤S110,对构建的连接请求进行哈希处理,得到对应的哈希值;
[0009] 步骤S111,判断哈希值是否小于证明目标值;
[0010] 步骤S112,若否,则更改连接请求携带的随机数,再次执行步骤S110;
[0011] 步骤S113,若是,则将对应的连接请求发送给服务器。
[0012] 可选地,方法还包括:步骤S13,检测在预设时间内是否与服务器建立连接;
[0013] 步骤S14,若否,则减小证明目标值,再次执行步骤S10。
[0014] 可选地,方法还包括:步骤S15,向服务器发送证明目标值获取请求,以供服务器根据请求返回证明目标值。
[0015] 根据本发明的另一方面,提供了一种客户端,客户端包括:
[0016] 构建模,适于构建连接请求,其中,连接请求携带有随机数;
[0017] 验证模块,适于对构建的连接请求进行工作量证明;
[0018] 第一发送模块,适于将通过证明的连接请求发送给服务器,以供服务器对连接请求进行工作量验证,若连接请求通过工作量验证,则响应连接请求与客户端建立连接。
[0019] 可选地,验证模块进一步包括:处理单元,适于对构建的连接请求进行哈希处理,得到对应的哈希值;
[0020] 判断单元,适于判断哈希值是否小于证明目标值;
[0021] 更改单元,适于若哈希值大于或等于证明目标值,则更改连接请求携带的随机数,再次触发处理单元;
[0022] 第一发送模块进一步适于:若哈希值小于证明目标值,则将对应的连接请求发送给服务器。
[0023] 可选地,客户端还包括:检测模块,适于检测在预设时间内是否与服务器建立连接;
[0024] 修改模块,适于若检测在预设时间内未与服务器建立连接,则减小证明目标值,再次触发构建模块。
[0025] 可选地,客户端还包括:第二发送模块,适于向服务器发送证明目标值获取请求,以供服务器根据请求返回证明目标值。
[0026] 根据本发明的又一方面,提供了一种客户端,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
[0027] 存储器用于存放至少一可执行指令,可执行指令使处理器执行上述基于工作量证明的连接方法对应的操作。
[0028] 根据本发明的再一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行如上述基于工作量证明的连接方法对应的操作。
[0029] 根据本发明的一个方面,提供了一种基于工作量证明的连接方法,方法包括:
[0030] 步骤S20,接收客户端发送的通过工作量证明的连接请求,其中,连接请求携带有随机数;
[0031] 步骤S21,对连接请求进行工作量验证,若连接请求通过工作量验证,则响应连接请求与客户端建立连接。
[0032] 可选地,步骤S21进一步包括:步骤S210,对连接请求进行哈希处理,得到对应的哈希值;
[0033] 步骤S211,判断哈希值是否小于预先设置的验证目标值;
[0034] 步骤S212,若是,则确定连接请求通过工作量验证,响应连接请求与客户端建立连接。
[0035] 可选地,方法还包括:步骤S22,接收客户端发送的证明目标值获取请求,[0036] 步骤S23,根据请求向客户端返回证明目标值,其中,证明目标值与验证目标值一致。
[0037] 根据本发明的另一方面,提供了一种服务器,服务器包括:
[0038] 第一接收模块,适于接收客户端发送的通过工作量证明的连接请求,其中,连接请求携带有随机数;
[0039] 验证模块,适于对连接请求进行工作量验证;
[0040] 响应模块,适于若连接请求通过工作量验证,则响应连接请求与客户端建立连接。
[0041] 可选地,验证模块进一步包括:处理单元,适于对连接请求进行哈希处理,得到对应的哈希值;
[0042] 判断单元,适于判断哈希值是否小于预先设置的验证目标值;
[0043] 响应模块进一步适于:若哈希值小于预先设置的验证目标值,则确定连接请求通过工作量验证,响应连接请求与客户端建立连接。
[0044] 可选地,服务器还包括:第二接收模块,适于接收客户端发送的证明目标值获取请求,
[0045] 反馈模块,适于根据请求向客户端返回证明目标值,其中,证明目标值与验证目标值一致。
[0046] 根据本发明的又一方面,提供了一种服务器,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
[0047] 存储器用于存放至少一可执行指令,可执行指令使处理器执行上述基于工作量证明的连接方法对应的操作。
[0048] 根据本发明的再一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行如上述基于工作量证明的连接方法对应的操作。
[0049] 根据本发明的又一方面,提供了一种基于工作量证明的连接系统,系统包括:上述客户端以及上述服务器。
[0050] 根据本发明提供的方案,通过让客户端执行工作量证明操作,增加客户端连接的成本,服务器通过对连接请求进行工作量验证,来确定是否建立连接,从而能够有效地控制连接数量,对于恶意发起DDOS攻击者来说,其需要付出一定的工作量,增加了恶意发起DDOS者的成本,减少恶意发起的DDOS攻击建立的连接数量。
[0051] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。附图说明
[0052] 通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0053] 图1示出了根据本发明实施例一的一种基于工作量证明的连接方法的流程示意图;
[0054] 图2示出了根据本发明实施例二的一种基于工作量证明的连接方法的流程示意图;
[0055] 图3示出了根据本发明实施例三的一种基于工作量证明的连接方法的流程示意图;
[0056] 图4示出了根据本发明实施例四的一种客户端的结构示意图;
[0057] 图5示出了根据本发明实施例五的一种客户端的结构示意图;
[0058] 图6示出了根据本发明实施例七的一种客户端的结构示意图;
[0059] 图7示出了根据本发明实施例八的一种服务器的结构示意图;
[0060] 图8示出了根据本发明实施例九的一种服务器的结构示意图;
[0061] 图9示出了根据本发明实施例十一的一种服务器的结构示意图;
[0062] 图10示出了根据本发明实施例十二的一种基于工作量证明的连接系统的结构示意图。

具体实施方式

[0063] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0064] 实施例一
[0065] 图1示出了根据本发明实施例一的一种基于工作量证明的连接方法的流程示意图。如图1所示,该方法包括以下步骤:
[0066] 步骤S10,构建连接请求,其中,连接请求携带有随机数。
[0067] 具体地,客户端可以包含随机数生成器,利用该随机数生成器随机地生成随机数,然后利用所生成的随机数来构建连接请求,即该连接请求携带有随机数,其中,该连接请求可以是http请求。
[0068] 当然,客户端的本地可以存储有随机数集合,客户端可以每次从随机数集合中选取一随机数,然后利用所选取的随机数来构建连接请求,这里仅是举例说明,不具有任何限定作用。
[0069] 步骤S11,对构建的连接请求进行工作量证明。
[0070] 具体地,客户端在构建了连接请求之后,还需要对构建的连接请求进行工作量证明,而为了通过工作量证明,客户端可能需要进行多次的运算,也就是说,工作量证明的过程是一个复杂的过程,其中,工作量证明指使客户端通过做出一定难度的工作得出一个结果,服务器可以通过该结果来判断客户端是否做出了相应的工作。
[0071] 步骤S12,将通过证明的连接请求发送给服务器,以供服务器对连接请求进行工作量验证,若连接请求通过工作量验证,则响应连接请求与客户端建立连接。
[0072] 客户端对构建的连接请求进行工作量证明时,若检测到已通过工作量证明,则将通过工作量证明的连接请求发送给服务器,该连接请求携带有满足条件的随机数,服务器在接收到连接请求后,还需要对连接请求进行工作量验证,以避免客户端作弊行为,即客户端认为通过了工作量证明,就将连接请求发送给服务器,而实际上并没有达到建立连接所需的工作量,对于通过工作量验证的连接请求,服务器可以与对应的客户端建立连接,而对于未通过工作量验证的连接请求,服务器可以忽略对应的连接请求,从而能够有效的限制连接数量。
[0073] 需要说明的是,本发明实施例中所涉及的客户端可以包括但不限于手机、个人数字助理(Personal Digital Assistant,PDA)、平板电脑(Tablet Computer)、个人电脑(Personal Computer,PC)等。
[0074] 步骤S10~S12的执行主体的部分或全部可以为位于客户端的应用,或者还可以为设置在位于客户端的应用中的插件软件开发工具包(Software Development Kit,SDK)等功能单元,本实施例对此不进行特别限定。
[0075] 可以理解的是,应用可以是安装在客户端上的本地程序(nativeApp),或者还可以是客户端上的浏览器的一个网页程序(webApp),本实施例对此不进行特别限定。
[0076] 本发明实施例通过让客户端执行工作量证明操作,增加客户端连接的成本,服务器通过对连接请求进行工作量验证,来确定是否建立连接,从而能够有效地控制连接数量,对于恶意发起DDOS攻击者来说,其需要付出一定的工作量,增加了恶意发起DDOS者的成本,减少恶意发起的DDOS攻击建立的连接数量。
[0077] 实施例二
[0078] 图2示出了根据本发明实施例二的一种基于工作量证明的连接方法的流程示意图。该方法的执行主体为服务器,如图2所示,该方法包括以下步骤:
[0079] 步骤S20,接收客户端发送的通过工作量证明的连接请求,其中,连接请求携带有随机数。
[0080] 客户端对构建的连接请求进行工作量证明,为了通过工作量证明,客户端可能需要进行多次的运算,也就是说,工作量证明的过程是一个复杂的过程,若检测到已通过工作量证明,则将通过工作量证明的连接请求发送给服务器,该连接请求携带有满足工作量证明的随机数,服务器接收客户端发送的通过工作量证明的连接请求。
[0081] 步骤S21,对连接请求进行工作量验证,若连接请求通过工作量验证,则响应连接请求与客户端建立连接。
[0082] 服务器在接收到连接请求后,还需要对连接请求进行工作量验证,以避免客户端作弊行为,即客户端认为通过了工作量证明,就将连接请求发送给服务器,而实际上并没有达到建立连接所需的工作量,服务器对连接请求进行工作量验证,对于通过工作量验证的连接请求,服务器可以与对应的客户端建立连接,而对于未通过工作量验证的连接请求,服务器可以忽略对应的连接请求,从而能够有效的限制连接数量。
[0083] 本发明实施例通过让服务器对连接请求进行工作量验证,来确定是否建立连接,从而能够有效地控制连接数量,避免客户端作弊行为。
[0084] 实施例三
[0085] 图3示出了根据本发明实施例三的一种基于工作量证明的连接方法的流程示意图。如图3所示,该方法包括以下步骤:
[0086] 步骤S300,客户端构建连接请求,其中,连接请求携带有随机数。
[0087] 具体地,客户端可以包含随机数生成器,利用该随机数生成器随机地生成随机数,然后利用所生成的随机数来构建连接请求,即该连接请求携带有随机数,其中,该连接请求可以是http请求。
[0088] 当然,客户端的本地可以存储有随机数集合,客户端可以每次从随机数集合中选取一随机数,然后利用所选取的随机数来构建连接请求,这里仅是举例说明,不具有任何限定作用。
[0089] 步骤S301,客户端对构建的连接请求进行哈希处理,得到对应的哈希值。
[0090] 具体地,客户端对包含随机数的连接请求进行哈希处理,可以采用如下哈希算法,例如,RIPEMD160算法、MD2算法、MD4算法、MD5算法、SHA-1算法对包含随机数的连接请求进行哈希处理,得到对应的哈希值,这里仅是举例说明,不具有任何限定作用。
[0091] 步骤S302,客户端判断哈希值是否小于证明目标值,若否,执行步骤S303;若是,则执行步骤S304。
[0092] 该证明目标值是衡量客户端是否做出一定难度的工作的参数,在得到对应的哈希值之后,还需要判断所得到的哈希值是否小于证明目标值,如果哈希值小于证明目标值,则可以认定客户端做出了一定难度的工作,如此,可以将通过工作量证明的连接请求发送给服务器;如果哈希值大于或等于证明目标值,则可以认定客户端未做出一定难度的工作,则需要客户端更改随机数,再次对包含更改后的随机数的连接请求进行哈希处理,直到满足条件。其中,证明目标值可以是客户端预设的,也可以是根据先前经验进行设置的。
[0093] 步骤S303,客户端更改连接请求携带的随机数。
[0094] 在判断出哈希值大于或等于证明目标值的情况下,客户端需要更改连接请求携带的随机数,然后对包含更改后的随机数的连接请求进行哈希处理,判断哈希值是否小于证明目标值。
[0095] 步骤S304,客户端将对应的连接请求发送给服务器。
[0096] 在判断出哈希值小于证明目标值的情况下,客户端将对应的连接请求发送给服务器,其中,连接请求携带有哈希值小于证明目标值时对应的随机数。
[0097] 步骤S305,服务器接收客户端发送的通过工作量证明的连接请求,对连接请求进行哈希处理,得到对应的哈希值。
[0098] 服务器接收客户端发送的通过工作量证明的连接请求,利用预设哈希算法对连接请求进行哈希处理,例如,可以采用RIPEMD160算法、MD2算法、MD4算法、MD5算法、SHA-1算法对包含随机数的连接请求进行哈希处理,得到对应的哈希值,这里仅是举例说明,不具有任何限定作用。
[0099] 步骤S306,服务器判断哈希值是否小于预先设置的验证目标值,若是,则执行步骤S307。
[0100] 该验证目标值是衡量客户端是否做出了服务器所要求的一定难度的工作,以及是否与客户端建立连接的参数,服务器在得到对应的哈希值之后,还需要判断所得到的哈希值是否小于预先设置的验证目标值,如果哈希值小于验证目标值,则可以认定客户端做出了一定难度的工作,如此,可以响应连接请求,与客户端建立连接;如果哈希值大于或等于验证目标值,则可以认定客户端未做出一定难度的工作,则不能与客户端建立连接,忽略该连接请求,从而有效地控制了连接数量。
[0101] 步骤S307,服务器确定连接请求通过工作量验证,响应连接请求与客户端建立连接。
[0102] 在判断出哈希值小于预先设置的验证目标值的情况下,可以确定该连接请求通过了工作量验证,如此,服务器可以响应连接请求与客户端建立连接,从而使得客户端能够使用相应的业务。
[0103] 在本发明一种可选实施方式中,在发送了连接请求之后,客户端可以检测在预设时间内是否与服务器建立连接,以避免由于客户端工作量证明操作未达到服务器要求,而无法与服务器建立连接的缺陷,若检测到在预设时间段内客户端没有与服务器建立连接的情况下,则减少该证明目标值,然后再次执行步骤S300。
[0104] 通过减少证明目标值,客户端进行的工作量难度更大,变换随机数的次数更多,但是使得满足证明目标值的随机数更容易满足服务器端的验证目标值,从而在增加客户端工作量的基础上提高了随机数被服务器端接受的概率。
[0105] 在本发明一种可选实施方式中,证明目标值可以是客户端向服务器请求的,具体地,客户端向服务器发送证明目标值获取请求,服务器接收客户端发送的证明目标值获取请求,根据请求向客户端返回证明目标值,其中,证明目标值与验证目标值一致,如此,可以减少客户端较为盲目地设置证明目标值,提高客户端的效率。在证明目标值与验证目标值一致的情况下,则无需检测在预设时间内是否与服务器建立连接。
[0106] 本发明实施例通过让客户端执行工作量证明操作,增加客户端连接的成本,服务器通过对连接请求进行工作量验证,来确定是否建立连接,从而能够有效地控制连接数量,对于恶意发起DDOS攻击者来说,其需要付出一定的工作量,增加了恶意发起DDOS者的成本,减少恶意发起的DDOS攻击建立的连接数量。
[0107] 实施例四
[0108] 图4示出了根据本发明实施例四的一种客户端的结构示意图。如图4所示,该客户端400包括:构建模块410、验证模块420、第一发送模块430。
[0109] 构建模块410,适于构建连接请求,其中,连接请求携带有随机数。
[0110] 验证模块420,适于对构建的连接请求进行工作量证明。
[0111] 第一发送模块430,适于将通过证明的连接请求发送给服务器,以供服务器对连接请求进行工作量验证,若连接请求通过工作量验证,则响应连接请求与客户端建立连接。
[0112] 本发明实施例通过让客户端执行工作量证明操作,增加客户端连接的成本,服务器通过对连接请求进行工作量验证,来确定是否建立连接,从而能够有效地控制连接数量,对于恶意发起DDOS攻击者来说,其需要付出一定的工作量,增加了恶意发起DDOS者的成本,减少恶意发起的DDOS攻击建立的连接数量。
[0113] 实施例五
[0114] 图5示出了根据本发明实施例五的一种客户端的结构示意图。如图5所示,该客户端500包括:构建模块510、验证模块520、第一发送模块530。
[0115] 构建模块510,适于构建连接请求,其中,连接请求携带有随机数。
[0116] 验证模块520进一步包括:处理单元521,适于对构建的连接请求进行哈希处理,得到对应的哈希值;
[0117] 判断单元522,适于判断哈希值是否小于证明目标值;
[0118] 更改单元523,适于若哈希值大于或等于证明目标值,则更改连接请求携带的随机数,再次触发处理单元;
[0119] 第一发送模块530进一步适于:若哈希值小于证明目标值,则将对应的连接请求发送给服务器,以供服务器对连接请求进行工作量验证,若连接请求通过工作量验证,则响应连接请求与客户端建立连接。
[0120] 在本发明一种优选实施方式中,该客户端还可以包括:检测模块,适于检测在预设时间内是否与服务器建立连接。
[0121] 修改模块,适于若检测在预设时间内未与服务器建立连接,则减小证明目标值,再次触发构建模块。
[0122] 在本发明一种优选实施方式中,证明目标值可以是客户端向服务器请求的,具体地,该客户端还可以包括:第二发送模块,适于向服务器发送证明目标值获取请求,以供服务器根据请求返回证明目标值。此时,则无需检测在预设时间内是否与服务器建立连接。
[0123] 本发明实施例通过让客户端执行工作量证明操作,增加客户端连接的成本,服务器通过对连接请求进行工作量验证,来确定是否建立连接,从而能够有效地控制连接数量,对于恶意发起DDOS攻击者来说,其需要付出一定的工作量,增加了恶意发起DDOS者的成本,减少恶意发起的DDOS攻击建立的连接数量。
[0124] 实施例六
[0125] 本申请实施例六提供了一种非易失性计算机存储介质,计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于工作量证明的连接方法。
[0126] 实施例七
[0127] 图6示出了根据本发明实施例七的一种客户端的结构示意图,本发明具体实施例并不对客户端的具体实现做限定。
[0128] 如图6所示,该客户端可以包括:处理器(processor)602、通信接口(Communications Interface)604、存储器(memory)606、以及通信总线608。
[0129] 其中:
[0130] 处理器602、通信接口604、以及存储器606通过通信总线608完成相互间的通信。
[0131] 通信接口604,用于与其它设备比如客户端或其它服务器等的网元通信。
[0132] 处理器602,用于执行程序610,具体可以执行上述基于工作量证明的连接方法实施例中的相关步骤。
[0133] 具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。
[0134] 处理器602可能是中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。客户端包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
[0135] 存储器606,用于存放程序610。存储器606可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0136] 程序610具体可以用于使得处理器602执行实施例一中的方法以及实施例三中客户端所执行的方法。
[0137] 实施例八
[0138] 图7示出了根据本发明实施例八的一种服务器的结构示意图。如图7所示,该服务器700包括:第一接收模块710、验证模块720、响应模块730。
[0139] 第一接收模块710,适于接收客户端发送的通过工作量证明的连接请求,其中,连接请求携带有随机数。
[0140] 验证模块720,适于对连接请求进行工作量验证。
[0141] 响应模块730,适于若连接请求通过工作量验证,则响应连接请求与客户端建立连接。
[0142] 本发明实施例通过让服务器对连接请求进行工作量验证,来确定是否建立连接,从而能够有效地控制连接数量,避免客户端作弊行为。
[0143] 实施例九
[0144] 图8示出了根据本发明实施例九的一种服务器的结构示意图。如图8所示,该服务器800包括:第一接收模块810、验证模块820、响应模块830。
[0145] 第一接收模块810,适于接收客户端发送的通过工作量证明的连接请求,其中,连接请求携带有随机数;
[0146] 验证模块820进一步包括:处理单元821,适于对连接请求进行哈希处理,得到对应的哈希值;
[0147] 判断单元822,适于判断哈希值是否小于预先设置的验证目标值;
[0148] 响应模块830进一步适于:若哈希值小于预先设置的验证目标值,则确定连接请求通过工作量验证,响应连接请求与客户端建立连接。
[0149] 在本发明一种优选实施方式中,该服务器还可以包括:第二接收模块,适于接收客户端发送的证明目标值获取请求。
[0150] 反馈模块,适于根据请求向客户端返回证明目标值,其中,证明目标值与验证目标值一致。
[0151] 本发明实施例通过让服务器对连接请求进行工作量验证,来确定是否建立连接,从而能够有效地控制连接数量,避免客户端作弊行为。
[0152] 实施例十
[0153] 本申请实施例十提供了一种非易失性计算机存储介质,计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于工作量证明的连接方法。
[0154] 实施例十一
[0155] 图9示出了根据本发明实施例十一的一种服务器的结构示意图,本发明具体实施例并不对服务器的具体实现做限定。
[0156] 如图9所示,该服务器可以包括:处理器(processor)902、通信接口(Communications Interface)904、存储器(memory)906、以及通信总线908。
[0157] 其中:
[0158] 处理器902、通信接口904、以及存储器906通过通信总线908完成相互间的通信。
[0159] 通信接口904,用于与其它设备比如客户端或其它服务器等的网元通信。
[0160] 处理器902,用于执行程序910,具体可以执行上述基于工作量证明的连接方法实施例中的相关步骤。
[0161] 具体地,程序910可以包括程序代码,该程序代码包括计算机操作指令。
[0162] 处理器902可能是中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。服务器包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
[0163] 存储器906,用于存放第一数据集合、第二数据集合以及程序910。存储器906可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0164] 程序910具体可以用于使得处理器902执行实施例二中的方法以及实施例三中服务器所执行的方法。
[0165] 实施例十二
[0166] 图10示出了根据本发明实施例十二的一种基于工作量证明的连接系统的结构示意图。如图10所示,该系统1000包括:客户端500以及服务器800。
[0167] 本发明实施例通过让客户端执行工作量证明操作,增加客户端连接的成本,服务器通过对连接请求进行工作量验证,来确定是否建立连接,从而能够有效地控制连接数量,对于恶意发起DDOS攻击者来说,其需要付出一定的工作量,增加了恶意发起DDOS者的成本,减少恶意发起的DDOS攻击建立的连接数量。
[0168] 在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0169] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0170] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
[0171] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0172] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0173] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0174] 本发明公开了:
[0175] A1.一种基于工作量证明的连接方法,其特征在于,所述方法包括:
[0176] 步骤S10,构建连接请求,其中,所述连接请求携带有随机数;
[0177] 步骤S11,对构建的连接请求进行工作量证明;
[0178] 步骤S12,将通过证明的连接请求发送给服务器,以供服务器对所述连接请求进行工作量验证,若所述连接请求通过工作量验证,则响应所述连接请求与客户端建立连接。
[0179] A2.根据A1所述的方法,其特征在于,所述步骤S11进一步包括:
[0180] 步骤S110,对构建的连接请求进行哈希处理,得到对应的哈希值;
[0181] 步骤S111,判断所述哈希值是否小于证明目标值;
[0182] 步骤S112,若否,则更改连接请求携带的随机数,再次执行步骤S110;
[0183] 步骤S113,若是,则将对应的连接请求发送给服务器。
[0184] A3.根据A2所述的方法,其特征在于,所述方法还包括:步骤S13,检测在预设时间内是否与服务器建立连接;
[0185] 步骤S14,若否,则减小证明目标值,再次执行步骤S10。
[0186] A4.根据A2或A3所述的方法,其特征在于,所述方法还包括:步骤S15,向服务器发送证明目标值获取请求,以供服务器根据所述请求返回证明目标值。
[0187] B5.一种基于工作量证明的连接方法,其特征在于,所述方法包括:
[0188] 步骤S20,接收客户端发送的通过工作量证明的连接请求,其中,所述连接请求携带有随机数;
[0189] 步骤S21,对所述连接请求进行工作量验证,若所述连接请求通过工作量验证,则响应所述连接请求与客户端建立连接。
[0190] B6.根据B5所述的方法,其特征在于,所述步骤S21进一步包括:
[0191] 步骤S210,对所述连接请求进行哈希处理,得到对应的哈希值;
[0192] 步骤S211,判断所述哈希值是否小于预先设置的验证目标值;
[0193] 步骤S212,若是,则确定所述连接请求通过工作量验证,响应所述连接请求与客户端建立连接。
[0194] B7.根据B6所述的方法,其特征在于,所述方法还包括:
[0195] 步骤S22,接收客户端发送的证明目标值获取请求,
[0196] 步骤S23,根据所述请求向所述客户端返回证明目标值,其中,所述证明目标值与所述验证目标值一致。
[0197] C8.一种客户端,其特征在于,所述客户端包括:
[0198] 构建模块,适于构建连接请求,其中,所述连接请求携带有随机数;
[0199] 验证模块,适于对构建的连接请求进行工作量证明;
[0200] 第一发送模块,适于将通过证明的连接请求发送给服务器,以供服务器对所述连接请求进行工作量验证,若所述连接请求通过工作量验证,则响应所述连接请求与客户端建立连接。
[0201] C9.根据C8所述的客户端,其特征在于,所述验证模块进一步包括:
[0202] 处理单元,适于对构建的连接请求进行哈希处理,得到对应的哈希值;
[0203] 判断单元,适于判断所述哈希值是否小于证明目标值;
[0204] 更改单元,适于若所述哈希值大于或等于证明目标值,则更改连接请求携带的随机数,再次触发处理单元;
[0205] 所述第一发送模块进一步适于:若所述哈希值小于证明目标值,则将对应的连接请求发送给服务器。
[0206] C10.根据C9所述的客户端,其特征在于,所述客户端还包括:检测模块,适于检测在预设时间内是否与服务器建立连接;
[0207] 修改模块,适于若检测在预设时间内未与服务器建立连接,则减小证明目标值,再次触发构建模块。
[0208] C11.根据C9或C10所述的客户端,其特征在于,所述客户端还包括:第二发送模块,适于向服务器发送证明目标值获取请求,以供服务器根据所述请求返回证明目标值。
[0209] D12.一种服务器,其特征在于,所述服务器包括:
[0210] 第一接收模块,适于接收客户端发送的通过工作量证明的连接请求,其中,所述连接请求携带有随机数;
[0211] 验证模块,适于对所述连接请求进行工作量验证;
[0212] 响应模块,适于若所述连接请求通过工作量验证,则响应所述连接请求与客户端建立连接。
[0213] D13.根据D12所述的服务器,其特征在于,所述验证模块进一步包括:
[0214] 处理单元,适于对所述连接请求进行哈希处理,得到对应的哈希值;
[0215] 判断单元,适于判断所述哈希值是否小于预先设置的验证目标值;
[0216] 所述响应模块进一步适于:若哈希值小于预先设置的验证目标值,则确定所述连接请求通过工作量验证,响应所述连接请求与客户端建立连接。
[0217] D14.根据D13所述的服务器,其特征在于,所述服务器还包括:
[0218] 第二接收模块,适于接收客户端发送的证明目标值获取请求,
[0219] 反馈模块,适于根据所述请求向所述客户端返回证明目标值,其中,所述证明目标值与所述验证目标值一致。
[0220] E15.一种基于工作量证明的连接系统,其特征在于,所述系统包括:C8-C11中任一项所述的客户端以及D12-D14中任一项所述的服务器。
[0221] F16.一种客户端,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
[0222] 所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如A1-A4中任一项所述的基于工作量证明的连接方法对应的操作。
[0223] G17.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行如A1-A4中任一项所述的基于工作量证明的连接方法对应的操作。
[0224] H18.一种服务器,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
[0225] 所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如B5-B7中任一项所述的基于工作量证明的连接方法对应的操作。
[0226] I19.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行如B5-B7中任一项所述的基于工作量证明的连接方法对应的操作。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈