CN107528854B - 基于工作量证明的连接方法、系统、客户端及服务器 - Google Patents
基于工作量证明的连接方法、系统、客户端及服务器 Download PDFInfo
- Publication number
- CN107528854B CN107528854B CN201710855084.0A CN201710855084A CN107528854B CN 107528854 B CN107528854 B CN 107528854B CN 201710855084 A CN201710855084 A CN 201710855084A CN 107528854 B CN107528854 B CN 107528854B
- Authority
- CN
- China
- Prior art keywords
- connection request
- client
- connection
- server
- workload
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于工作量证明的连接方法、客户端、服务器、基于工作量证明的连接系统及计算机存储介质。其中,方法包括:步骤S10,构建连接请求,其中,连接请求携带有随机数;步骤S11,对构建的连接请求进行工作量证明;步骤S12,将通过证明的连接请求发送给服务器,以供服务器对连接请求进行工作量验证,若连接请求通过工作量验证,则响应连接请求与客户端建立连接,通过让客户端执行工作量证明操作,增加客户端连接的成本,服务器通过对连接请求进行工作量验证,来确定是否建立连接,从而能够有效地控制连接数量,对于恶意发起DDOS攻击者来说,其需要付出一定的工作量,增加了恶意发起DDOS者的成本,减少恶意发起的DDOS攻击建立的连接数量。
Description
技术领域
本发明涉及互联网技术领域,具体涉及一种基于工作量证明的连接方法、 客户端、服务器、基于工作量证明的连接系统及计算机存储介质。
背景技术
诸如电子商务等网站具有非常高的并发连接数,在例如双11、618等电 商购物节,并发连接数将非常高,很容易造成服务器崩溃,然而,黑客往往 会利用同时发起成千上万的连接请求对这类网站进行DDOS攻击,若不对此 类连接请求进行任何限制,将会迫使网站崩溃,进而会造成较大的经济损失。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分 地解决上述问题的基于工作量证明的连接方法、客户端、服务器、基于工作 量证明的连接系统及计算机存储介质。
根据本发明的一个方面,提供了一种基于工作量证明的连接方法,方法 包括:
步骤S10,构建连接请求,其中,连接请求携带有随机数;
步骤S11,对构建的连接请求进行工作量证明;
步骤S12,将通过证明的连接请求发送给服务器,以供服务器对连接请求 进行工作量验证,若连接请求通过工作量验证,则响应连接请求与客户端建 立连接。
可选地,步骤S11进一步包括:步骤S110,对构建的连接请求进行哈希 处理,得到对应的哈希值;
步骤S111,判断哈希值是否小于证明目标值;
步骤S112,若否,则更改连接请求携带的随机数,再次执行步骤S110;
步骤S113,若是,则将对应的连接请求发送给服务器。
可选地,方法还包括:步骤S13,检测在预设时间内是否与服务器建立连 接;
步骤S14,若否,则减小证明目标值,再次执行步骤S10。
可选地,方法还包括:步骤S15,向服务器发送证明目标值获取请求,以 供服务器根据请求返回证明目标值。
根据本发明的另一方面,提供了一种客户端,客户端包括:
构建模块,适于构建连接请求,其中,连接请求携带有随机数;
验证模块,适于对构建的连接请求进行工作量证明;
第一发送模块,适于将通过证明的连接请求发送给服务器,以供服务器 对连接请求进行工作量验证,若连接请求通过工作量验证,则响应连接请求 与客户端建立连接。
可选地,验证模块进一步包括:处理单元,适于对构建的连接请求进行 哈希处理,得到对应的哈希值;
判断单元,适于判断哈希值是否小于证明目标值;
更改单元,适于若哈希值大于或等于证明目标值,则更改连接请求携带 的随机数,再次触发处理单元;
第一发送模块进一步适于:若哈希值小于证明目标值,则将对应的连接 请求发送给服务器。
可选地,客户端还包括:检测模块,适于检测在预设时间内是否与服务 器建立连接;
修改模块,适于若检测在预设时间内未与服务器建立连接,则减小证明 目标值,再次触发构建模块。
可选地,客户端还包括:第二发送模块,适于向服务器发送证明目标值 获取请求,以供服务器根据请求返回证明目标值。
根据本发明的又一方面,提供了一种客户端,包括:处理器、存储器、 通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间 的通信;
存储器用于存放至少一可执行指令,可执行指令使处理器执行上述基于 工作量证明的连接方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,存储介质中存储 有至少一可执行指令,可执行指令使处理器执行如上述基于工作量证明的连 接方法对应的操作。
根据本发明的一个方面,提供了一种基于工作量证明的连接方法,方法 包括:
步骤S20,接收客户端发送的通过工作量证明的连接请求,其中,连接请 求携带有随机数;
步骤S21,对连接请求进行工作量验证,若连接请求通过工作量验证,则 响应连接请求与客户端建立连接。
可选地,步骤S21进一步包括:步骤S210,对连接请求进行哈希处理, 得到对应的哈希值;
步骤S211,判断哈希值是否小于预先设置的验证目标值;
步骤S212,若是,则确定连接请求通过工作量验证,响应连接请求与客 户端建立连接。
可选地,方法还包括:步骤S22,接收客户端发送的证明目标值获取请求,
步骤S23,根据请求向客户端返回证明目标值,其中,证明目标值与验证 目标值一致。
根据本发明的另一方面,提供了一种服务器,服务器包括:
第一接收模块,适于接收客户端发送的通过工作量证明的连接请求,其 中,连接请求携带有随机数;
验证模块,适于对连接请求进行工作量验证;
响应模块,适于若连接请求通过工作量验证,则响应连接请求与客户端 建立连接。
可选地,验证模块进一步包括:处理单元,适于对连接请求进行哈希处 理,得到对应的哈希值;
判断单元,适于判断哈希值是否小于预先设置的验证目标值;
响应模块进一步适于:若哈希值小于预先设置的验证目标值,则确定连 接请求通过工作量验证,响应连接请求与客户端建立连接。
可选地,服务器还包括:第二接收模块,适于接收客户端发送的证明目 标值获取请求,
反馈模块,适于根据请求向客户端返回证明目标值,其中,证明目标值 与验证目标值一致。
根据本发明的又一方面,提供了一种服务器,包括:处理器、存储器、 通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间 的通信;
存储器用于存放至少一可执行指令,可执行指令使处理器执行上述基于 工作量证明的连接方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,存储介质中存储 有至少一可执行指令,可执行指令使处理器执行如上述基于工作量证明的连 接方法对应的操作。
根据本发明的又一方面,提供了一种基于工作量证明的连接系统,系统 包括:上述客户端以及上述服务器。
根据本发明提供的方案,通过让客户端执行工作量证明操作,增加客户 端连接的成本,服务器通过对连接请求进行工作量验证,来确定是否建立连 接,从而能够有效地控制连接数量,对于恶意发起DDOS攻击者来说,其需 要付出一定的工作量,增加了恶意发起DDOS者的成本,减少恶意发起的 DDOS攻击建立的连接数量。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技 术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它 目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本 领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的, 而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示 相同的部件。在附图中:
图1示出了根据本发明实施例一的一种基于工作量证明的连接方法的流 程示意图;
图2示出了根据本发明实施例二的一种基于工作量证明的连接方法的流 程示意图;
图3示出了根据本发明实施例三的一种基于工作量证明的连接方法的流 程示意图;
图4示出了根据本发明实施例四的一种客户端的结构示意图;
图5示出了根据本发明实施例五的一种客户端的结构示意图;
图6示出了根据本发明实施例七的一种客户端的结构示意图;
图7示出了根据本发明实施例八的一种服务器的结构示意图;
图8示出了根据本发明实施例九的一种服务器的结构示意图;
图9示出了根据本发明实施例十一的一种服务器的结构示意图;
图10示出了根据本发明实施例十二的一种基于工作量证明的连接系统的 结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示 了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不 应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地 理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
图1示出了根据本发明实施例一的一种基于工作量证明的连接方法的流 程示意图。如图1所示,该方法包括以下步骤:
步骤S10,构建连接请求,其中,连接请求携带有随机数。
具体地,客户端可以包含随机数生成器,利用该随机数生成器随机地生 成随机数,然后利用所生成的随机数来构建连接请求,即该连接请求携带有 随机数,其中,该连接请求可以是http请求。
当然,客户端的本地可以存储有随机数集合,客户端可以每次从随机数 集合中选取一随机数,然后利用所选取的随机数来构建连接请求,这里仅是 举例说明,不具有任何限定作用。
步骤S11,对构建的连接请求进行工作量证明。
具体地,客户端在构建了连接请求之后,还需要对构建的连接请求进行 工作量证明,而为了通过工作量证明,客户端可能需要进行多次的运算,也 就是说,工作量证明的过程是一个复杂的过程,其中,工作量证明指使客户 端通过做出一定难度的工作得出一个结果,服务器可以通过该结果来判断客 户端是否做出了相应的工作。
步骤S12,将通过证明的连接请求发送给服务器,以供服务器对连接请求 进行工作量验证,若连接请求通过工作量验证,则响应连接请求与客户端建 立连接。
客户端对构建的连接请求进行工作量证明时,若检测到已通过工作量证 明,则将通过工作量证明的连接请求发送给服务器,该连接请求携带有满足 条件的随机数,服务器在接收到连接请求后,还需要对连接请求进行工作量 验证,以避免客户端作弊行为,即客户端认为通过了工作量证明,就将连接 请求发送给服务器,而实际上并没有达到建立连接所需的工作量,对于通过 工作量验证的连接请求,服务器可以与对应的客户端建立连接,而对于未通 过工作量验证的连接请求,服务器可以忽略对应的连接请求,从而能够有效的限制连接数量。
需要说明的是,本发明实施例中所涉及的客户端可以包括但不限于手机、 个人数字助理(Personal Digital Assistant,PDA)、平板电脑(Tablet Computer)、 个人电脑(Personal Computer,PC)等。
步骤S10~S12的执行主体的部分或全部可以为位于客户端的应用,或者 还可以为设置在位于客户端的应用中的插件或软件开发工具包(Software Development Kit,SDK)等功能单元,本实施例对此不进行特别限定。
可以理解的是,应用可以是安装在客户端上的本地程序(nativeApp), 或者还可以是客户端上的浏览器的一个网页程序(webApp),本实施例对此 不进行特别限定。
本发明实施例通过让客户端执行工作量证明操作,增加客户端连接的成 本,服务器通过对连接请求进行工作量验证,来确定是否建立连接,从而能 够有效地控制连接数量,对于恶意发起DDOS攻击者来说,其需要付出一定 的工作量,增加了恶意发起DDOS者的成本,减少恶意发起的DDOS攻击建 立的连接数量。
实施例二
图2示出了根据本发明实施例二的一种基于工作量证明的连接方法的流 程示意图。该方法的执行主体为服务器,如图2所示,该方法包括以下步骤:
步骤S20,接收客户端发送的通过工作量证明的连接请求,其中,连接请 求携带有随机数。
客户端对构建的连接请求进行工作量证明,为了通过工作量证明,客户 端可能需要进行多次的运算,也就是说,工作量证明的过程是一个复杂的过 程,若检测到已通过工作量证明,则将通过工作量证明的连接请求发送给服 务器,该连接请求携带有满足工作量证明的随机数,服务器接收客户端发送 的通过工作量证明的连接请求。
步骤S21,对连接请求进行工作量验证,若连接请求通过工作量验证,则 响应连接请求与客户端建立连接。
服务器在接收到连接请求后,还需要对连接请求进行工作量验证,以避 免客户端作弊行为,即客户端认为通过了工作量证明,就将连接请求发送给 服务器,而实际上并没有达到建立连接所需的工作量,服务器对连接请求进 行工作量验证,对于通过工作量验证的连接请求,服务器可以与对应的客户 端建立连接,而对于未通过工作量验证的连接请求,服务器可以忽略对应的 连接请求,从而能够有效的限制连接数量。
本发明实施例通过让服务器对连接请求进行工作量验证,来确定是否建 立连接,从而能够有效地控制连接数量,避免客户端作弊行为。
实施例三
图3示出了根据本发明实施例三的一种基于工作量证明的连接方法的流 程示意图。如图3所示,该方法包括以下步骤:
步骤S300,客户端构建连接请求,其中,连接请求携带有随机数。
具体地,客户端可以包含随机数生成器,利用该随机数生成器随机地生 成随机数,然后利用所生成的随机数来构建连接请求,即该连接请求携带有 随机数,其中,该连接请求可以是http请求。
当然,客户端的本地可以存储有随机数集合,客户端可以每次从随机数 集合中选取一随机数,然后利用所选取的随机数来构建连接请求,这里仅是 举例说明,不具有任何限定作用。
步骤S301,客户端对构建的连接请求进行哈希处理,得到对应的哈希值。
具体地,客户端对包含随机数的连接请求进行哈希处理,可以采用如下 哈希算法,例如,RIPEMD160算法、MD2算法、MD4算法、MD5算法、SHA-1 算法对包含随机数的连接请求进行哈希处理,得到对应的哈希值,这里仅是 举例说明,不具有任何限定作用。
步骤S302,客户端判断哈希值是否小于证明目标值,若否,执行步骤 S303;若是,则执行步骤S304。
该证明目标值是衡量客户端是否做出一定难度的工作的参数,在得到对 应的哈希值之后,还需要判断所得到的哈希值是否小于证明目标值,如果哈 希值小于证明目标值,则可以认定客户端做出了一定难度的工作,如此,可 以将通过工作量证明的连接请求发送给服务器;如果哈希值大于或等于证明 目标值,则可以认定客户端未做出一定难度的工作,则需要客户端更改随机 数,再次对包含更改后的随机数的连接请求进行哈希处理,直到满足条件。 其中,证明目标值可以是客户端预设的,也可以是根据先前经验进行设置的。
步骤S303,客户端更改连接请求携带的随机数。
在判断出哈希值大于或等于证明目标值的情况下,客户端需要更改连接 请求携带的随机数,然后对包含更改后的随机数的连接请求进行哈希处理, 判断哈希值是否小于证明目标值。
步骤S304,客户端将对应的连接请求发送给服务器。
在判断出哈希值小于证明目标值的情况下,客户端将对应的连接请求发 送给服务器,其中,连接请求携带有哈希值小于证明目标值时对应的随机数。
步骤S305,服务器接收客户端发送的通过工作量证明的连接请求,对连 接请求进行哈希处理,得到对应的哈希值。
服务器接收客户端发送的通过工作量证明的连接请求,利用预设哈希算 法对连接请求进行哈希处理,例如,可以采用RIPEMD160算法、MD2算法、 MD4算法、MD5算法、SHA-1算法对包含随机数的连接请求进行哈希处理, 得到对应的哈希值,这里仅是举例说明,不具有任何限定作用。
步骤S306,服务器判断哈希值是否小于预先设置的验证目标值,若是, 则执行步骤S307。
该验证目标值是衡量客户端是否做出了服务器所要求的一定难度的工 作,以及是否与客户端建立连接的参数,服务器在得到对应的哈希值之后, 还需要判断所得到的哈希值是否小于预先设置的验证目标值,如果哈希值小 于验证目标值,则可以认定客户端做出了一定难度的工作,如此,可以响应 连接请求,与客户端建立连接;如果哈希值大于或等于验证目标值,则可以 认定客户端未做出一定难度的工作,则不能与客户端建立连接,忽略该连接 请求,从而有效地控制了连接数量。
步骤S307,服务器确定连接请求通过工作量验证,响应连接请求与客户 端建立连接。
在判断出哈希值小于预先设置的验证目标值的情况下,可以确定该连接 请求通过了工作量验证,如此,服务器可以响应连接请求与客户端建立连接, 从而使得客户端能够使用相应的业务。
在本发明一种可选实施方式中,在发送了连接请求之后,客户端可以检 测在预设时间内是否与服务器建立连接,以避免由于客户端工作量证明操作 未达到服务器要求,而无法与服务器建立连接的缺陷,若检测到在预设时间 段内客户端没有与服务器建立连接的情况下,则减少该证明目标值,然后再 次执行步骤S300。
通过减少证明目标值,客户端进行的工作量难度更大,变换随机数的次 数更多,但是使得满足证明目标值的随机数更容易满足服务器端的验证目标 值,从而在增加客户端工作量的基础上提高了随机数被服务器端接受的概率。
在本发明一种可选实施方式中,证明目标值可以是客户端向服务器请求 的,具体地,客户端向服务器发送证明目标值获取请求,服务器接收客户端 发送的证明目标值获取请求,根据请求向客户端返回证明目标值,其中,证 明目标值与验证目标值一致,如此,可以减少客户端较为盲目地设置证明目 标值,提高客户端的效率。在证明目标值与验证目标值一致的情况下,则无 需检测在预设时间内是否与服务器建立连接。
本发明实施例通过让客户端执行工作量证明操作,增加客户端连接的成 本,服务器通过对连接请求进行工作量验证,来确定是否建立连接,从而能 够有效地控制连接数量,对于恶意发起DDOS攻击者来说,其需要付出一定 的工作量,增加了恶意发起DDOS者的成本,减少恶意发起的DDOS攻击建 立的连接数量。
实施例四
图4示出了根据本发明实施例四的一种客户端的结构示意图。如图4所 示,该客户端400包括:构建模块410、验证模块420、第一发送模块430。
构建模块410,适于构建连接请求,其中,连接请求携带有随机数。
验证模块420,适于对构建的连接请求进行工作量证明。
第一发送模块430,适于将通过证明的连接请求发送给服务器,以供服务 器对连接请求进行工作量验证,若连接请求通过工作量验证,则响应连接请 求与客户端建立连接。
本发明实施例通过让客户端执行工作量证明操作,增加客户端连接的成 本,服务器通过对连接请求进行工作量验证,来确定是否建立连接,从而能 够有效地控制连接数量,对于恶意发起DDOS攻击者来说,其需要付出一定 的工作量,增加了恶意发起DDOS者的成本,减少恶意发起的DDOS攻击建 立的连接数量。
实施例五
图5示出了根据本发明实施例五的一种客户端的结构示意图。如图5所 示,该客户端500包括:构建模块510、验证模块520、第一发送模块530。
构建模块510,适于构建连接请求,其中,连接请求携带有随机数。
验证模块520进一步包括:处理单元521,适于对构建的连接请求进行哈 希处理,得到对应的哈希值;
判断单元522,适于判断哈希值是否小于证明目标值;
更改单元523,适于若哈希值大于或等于证明目标值,则更改连接请求携 带的随机数,再次触发处理单元;
第一发送模块530进一步适于:若哈希值小于证明目标值,则将对应的 连接请求发送给服务器,以供服务器对连接请求进行工作量验证,若连接请 求通过工作量验证,则响应连接请求与客户端建立连接。
在本发明一种优选实施方式中,该客户端还可以包括:检测模块,适于 检测在预设时间内是否与服务器建立连接。
修改模块,适于若检测在预设时间内未与服务器建立连接,则减小证明 目标值,再次触发构建模块。
在本发明一种优选实施方式中,证明目标值可以是客户端向服务器请求 的,具体地,该客户端还可以包括:第二发送模块,适于向服务器发送证明 目标值获取请求,以供服务器根据请求返回证明目标值。此时,则无需检测 在预设时间内是否与服务器建立连接。
本发明实施例通过让客户端执行工作量证明操作,增加客户端连接的成 本,服务器通过对连接请求进行工作量验证,来确定是否建立连接,从而能 够有效地控制连接数量,对于恶意发起DDOS攻击者来说,其需要付出一定 的工作量,增加了恶意发起DDOS者的成本,减少恶意发起的DDOS攻击建 立的连接数量。
实施例六
本申请实施例六提供了一种非易失性计算机存储介质,计算机存储介质 存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例 中的基于工作量证明的连接方法。
实施例七
图6示出了根据本发明实施例七的一种客户端的结构示意图,本发明具 体实施例并不对客户端的具体实现做限定。
如图6所示,该客户端可以包括:处理器(processor)602、通信接口(Communications Interface)604、存储器(memory)606、以及通信总线608。
其中:
处理器602、通信接口604、以及存储器606通过通信总线608完成相互 间的通信。
通信接口604,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器602,用于执行程序610,具体可以执行上述基于工作量证明的连 接方法实施例中的相关步骤。
具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。
处理器602可能是中央处理器CPU,或者是特定集成电路ASIC (ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例 的一个或多个集成电路。客户端包括的一个或多个处理器,可以是同一类型 的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个 CPU以及一个或多个ASIC。
存储器606,用于存放程序610。存储器606可能包含高速RAM存储器, 也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存 储器。
程序610具体可以用于使得处理器602执行实施例一中的方法以及实施 例三中客户端所执行的方法。
实施例八
图7示出了根据本发明实施例八的一种服务器的结构示意图。如图7所 示,该服务器700包括:第一接收模块710、验证模块720、响应模块730。
第一接收模块710,适于接收客户端发送的通过工作量证明的连接请求, 其中,连接请求携带有随机数。
验证模块720,适于对连接请求进行工作量验证。
响应模块730,适于若连接请求通过工作量验证,则响应连接请求与客户 端建立连接。
本发明实施例通过让服务器对连接请求进行工作量验证,来确定是否建 立连接,从而能够有效地控制连接数量,避免客户端作弊行为。
实施例九
图8示出了根据本发明实施例九的一种服务器的结构示意图。如图8所 示,该服务器800包括:第一接收模块810、验证模块820、响应模块830。
第一接收模块810,适于接收客户端发送的通过工作量证明的连接请求, 其中,连接请求携带有随机数;
验证模块820进一步包括:处理单元821,适于对连接请求进行哈希处理, 得到对应的哈希值;
判断单元822,适于判断哈希值是否小于预先设置的验证目标值;
响应模块830进一步适于:若哈希值小于预先设置的验证目标值,则确 定连接请求通过工作量验证,响应连接请求与客户端建立连接。
在本发明一种优选实施方式中,该服务器还可以包括:第二接收模块, 适于接收客户端发送的证明目标值获取请求。
反馈模块,适于根据请求向客户端返回证明目标值,其中,证明目标值 与验证目标值一致。
本发明实施例通过让服务器对连接请求进行工作量验证,来确定是否建 立连接,从而能够有效地控制连接数量,避免客户端作弊行为。
实施例十
本申请实施例十提供了一种非易失性计算机存储介质,计算机存储介质 存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例 中的基于工作量证明的连接方法。
实施例十一
图9示出了根据本发明实施例十一的一种服务器的结构示意图,本发明 具体实施例并不对服务器的具体实现做限定。
如图9所示,该服务器可以包括:处理器(processor)902、通信接口(Communications Interface)904、存储器(memory)906、以及通信总线908。
其中:
处理器902、通信接口904、以及存储器906通过通信总线908完成相互 间的通信。
通信接口904,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器902,用于执行程序910,具体可以执行上述基于工作量证明的连 接方法实施例中的相关步骤。
具体地,程序910可以包括程序代码,该程序代码包括计算机操作指令。
处理器902可能是中央处理器CPU,或者是特定集成电路ASIC (ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例 的一个或多个集成电路。服务器包括的一个或多个处理器,可以是同一类型 的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个 CPU以及一个或多个ASIC。
存储器906,用于存放第一数据集合、第二数据集合以及程序910。存储 器906可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序910具体可以用于使得处理器902执行实施例二中的方法以及实施 例三中服务器所执行的方法。
实施例十二
图10示出了根据本发明实施例十二的一种基于工作量证明的连接系统的 结构示意图。如图10所示,该系统1000包括:客户端500以及服务器800。
本发明实施例通过让客户端执行工作量证明操作,增加客户端连接的成 本,服务器通过对连接请求进行工作量验证,来确定是否建立连接,从而能 够有效地控制连接数量,对于恶意发起DDOS攻击者来说,其需要付出一定 的工作量,增加了恶意发起DDOS者的成本,减少恶意发起的DDOS攻击建 立的连接数量。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固 有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描 述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何 特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的 内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本 发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未 详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个 或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时 被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开 的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求 中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映 的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循 具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自 适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以 把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可 以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者 单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴 随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或 者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴 随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相 似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其 它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组 合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权 利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使 用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制, 并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实 施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要 求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于 元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以 借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在 列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。 可将这些单词解释为名称。
Claims (8)
1.一种基于工作量证明的连接方法,其特征在于,所述方法包括:
步骤S10,构建连接请求,其中,所述连接请求携带有随机数;
步骤S11,对构建的连接请求进行工作量证明;
步骤S12,将通过证明的连接请求发送给服务器,以供服务器对所述连接请求进行工作量验证,若所述连接请求通过工作量验证,则响应所述连接请求与客户端建立连接;
所述步骤S11进一步包括:步骤S110,对构建的连接请求进行哈希处理,得到对应的哈希值;
步骤S111,判断所述哈希值是否小于证明目标值;
步骤S112,若否,则更改连接请求携带的随机数,再次执行步骤S110;
步骤S113,若是,则将对应的连接请求发送给服务器;
步骤S13,检测在预设时间内是否与服务器建立连接;
步骤S14,若否,则减小证明目标值,再次执行步骤S10;
其中,服务器对所述连接请求进行工作量验证,若所述连接请求通过工作量验证,则响应所述连接请求与客户端建立连接进一步包括:
对所述连接请求进行哈希处理,得到对应的哈希值;
判断所述哈希值是否小于预先设置的验证目标值;
若是,则确定所述连接请求通过工作量验证,响应所述连接请求与客户端建立连接。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:步骤S15,向服务器发送证明目标值获取请求,以供服务器根据所述请求返回证明目标值。
3.根据权利要求1所述的方法,其特征在于,服务器根据所述请求返回证明目标值进一步包括:
接收客户端发送的证明目标值获取请求,
根据所述请求向所述客户端返回证明目标值,其中,所述证明目标值与所述验证目标值一致。
4.一种基于工作量证明的连接系统,其特征在于,所述系统包括:客户端以及服务器;
其中,所述客户端包括:构建模块,适于构建连接请求,其中,所述连接请求携带有随机数;
验证模块,适于对构建的连接请求进行工作量证明;
第一发送模块,适于将通过证明的连接请求发送给服务器,以供服务器对所述连接请求进行工作量验证,若所述连接请求通过工作量验证,则响应所述连接请求与客户端建立连接;
所述验证模块进一步包括:处理单元,适于对构建的连接请求进行哈希处理,得到对应的哈希值;
判断单元,适于判断所述哈希值是否小于证明目标值;
更改单元,适于若所述哈希值大于或等于证明目标值,则更改连接请求携带的随机数,再次触发处理单元;
所述第一发送模块进一步适于:若所述哈希值小于证明目标值,则将对应的连接请求发送给服务器;
所述客户端还包括:检测模块,适于检测在预设时间内是否与服务器建立连接;
修改模块,适于若检测在预设时间内未与服务器建立连接,则减小证明目标值,再次触发构建模块;
所述服务器包括:第一接收模块,适于接收客户端发送的通过工作量证明的连接请求,其中,所述连接请求携带有随机数;
验证模块,适于对所述连接请求进行工作量验证;
响应模块,适于若所述连接请求通过工作量验证,则响应所述连接请求与客户端建立连接;
其中,所述验证模块进一步包括:处理单元,适于对所述连接请求进行哈希处理,得到对应的哈希值;
判断单元,适于判断所述哈希值是否小于预先设置的验证目标值;
所述响应模块进一步适于:若哈希值小于预先设置的验证目标值,则确定所述连接请求通过工作量验证,响应所述连接请求与客户端建立连接。
5.根据权利要求4所述的系统,其特征在于,所述客户端还包括:第二发送模块,适于向服务器发送证明目标值获取请求,以供服务器根据所述请求返回证明目标值。
6.根据权利要求4所述的系统,其特征在于,所述服务器还包括:
第二接收模块,适于接收客户端发送的证明目标值获取请求,
反馈模块,适于根据所述请求向所述客户端返回证明目标值,其中,所述证明目标值与所述验证目标值一致。
7.一种客户端,其特征在于,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-3中任一项所述的基于工作量证明的连接方法对应的操作。
8.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-3中任一项所述的基于工作量证明的连接方法对应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710855084.0A CN107528854B (zh) | 2017-09-20 | 2017-09-20 | 基于工作量证明的连接方法、系统、客户端及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710855084.0A CN107528854B (zh) | 2017-09-20 | 2017-09-20 | 基于工作量证明的连接方法、系统、客户端及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107528854A CN107528854A (zh) | 2017-12-29 |
CN107528854B true CN107528854B (zh) | 2020-11-13 |
Family
ID=60736062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710855084.0A Active CN107528854B (zh) | 2017-09-20 | 2017-09-20 | 基于工作量证明的连接方法、系统、客户端及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107528854B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108664221B (zh) * | 2018-05-11 | 2022-04-01 | 北京奇虎科技有限公司 | 一种数据持有证明方法、装置及可读存储介质 |
CN110855603B (zh) * | 2018-12-24 | 2021-11-09 | 互联网域名系统北京市工程研究中心有限公司 | 一种基于区块链技术的抗DoS攻击防护的方法 |
CN109905395B (zh) * | 2019-03-07 | 2021-09-07 | 武汉斗鱼鱼乐网络科技有限公司 | 一种验证客户端可信的方法及相关装置 |
CN111064565B (zh) * | 2019-12-31 | 2024-01-23 | 北京握奇智能科技有限公司 | 缓解DDoS攻击的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1630248A (zh) * | 2003-12-19 | 2005-06-22 | 北京航空航天大学 | 基于连接请求验证的SYN flooding攻击防御方法 |
CN102387069A (zh) * | 2011-10-08 | 2012-03-21 | 华为技术有限公司 | 客户端与服务端的连接方法及系统、客户端和服务端 |
US9202038B1 (en) * | 2013-04-08 | 2015-12-01 | Amazon Technologies, Inc. | Risk based authentication |
CN105245327A (zh) * | 2015-08-21 | 2016-01-13 | 北京比特大陆科技有限公司 | 比特币工作量证明哈希计算芯片优化的方法、装置和电路 |
CN106941404A (zh) * | 2017-04-25 | 2017-07-11 | 中国联合网络通信集团有限公司 | 密钥保护方法及装置 |
CN107005574A (zh) * | 2016-12-23 | 2017-08-01 | 深圳前海达闼云端智能科技有限公司 | 区块生成方法、装置和区块链网络 |
-
2017
- 2017-09-20 CN CN201710855084.0A patent/CN107528854B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1630248A (zh) * | 2003-12-19 | 2005-06-22 | 北京航空航天大学 | 基于连接请求验证的SYN flooding攻击防御方法 |
CN102387069A (zh) * | 2011-10-08 | 2012-03-21 | 华为技术有限公司 | 客户端与服务端的连接方法及系统、客户端和服务端 |
US9202038B1 (en) * | 2013-04-08 | 2015-12-01 | Amazon Technologies, Inc. | Risk based authentication |
CN105245327A (zh) * | 2015-08-21 | 2016-01-13 | 北京比特大陆科技有限公司 | 比特币工作量证明哈希计算芯片优化的方法、装置和电路 |
CN107005574A (zh) * | 2016-12-23 | 2017-08-01 | 深圳前海达闼云端智能科技有限公司 | 区块生成方法、装置和区块链网络 |
CN106941404A (zh) * | 2017-04-25 | 2017-07-11 | 中国联合网络通信集团有限公司 | 密钥保护方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107528854A (zh) | 2017-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107528854B (zh) | 基于工作量证明的连接方法、系统、客户端及服务器 | |
JP6585301B2 (ja) | Captchaチャレンジの動的な更新 | |
EP3647981B1 (en) | Security scanning method and apparatus for mini program, and electronic device | |
CN106779716B (zh) | 基于区块链账户地址的认证方法、装置及系统 | |
US9407661B2 (en) | Blocking via an unsolvable CAPTCHA | |
CN103384888A (zh) | 用于恶意软件的检测和扫描的系统和方法 | |
WO2015074443A1 (en) | An operation processing method and device | |
US20150143475A1 (en) | Operation Processing Method and Device | |
WO2017053494A1 (en) | Method, apparatus and system for preventing cross-site request forgery | |
CN105577602A (zh) | 基于开放的应用程序编程接口的数据推送方法和装置 | |
EP3799386A1 (en) | System and method for detecting and blocking malicious attacks on a network | |
JP2017215954A (ja) | アンチウイルススキャンを実行するために分散システムを構成する仮想マシン間でファイルを配布するシステム及び方法 | |
EP3252647B1 (en) | System and method of detecting malicious files on a virtual machine in a distributed network | |
CN105554085B (zh) | 一种基于服务器连接的动态超时处理方法和装置 | |
WO2015109912A1 (zh) | 缓冲区溢出攻击检测装置、方法和安全防护系统 | |
CN113518064B (zh) | 挑战黑洞攻击的防御方法、装置、计算机设备和存储介质 | |
CN108600145B (zh) | 一种确定DDoS攻击设备的方法及装置 | |
US11709900B2 (en) | Automated web page accessing | |
CN111478974B (zh) | 网络连接方法及装置、电子设备和可读存储介质 | |
EP3384660B1 (en) | Accelerating connections to a host server | |
WO2017215650A1 (zh) | 微端的自动登录方法、装置、程序及介质 | |
CN102510386B (zh) | 分布式攻击阻止方法及装置 | |
CN112804222B (zh) | 基于云部署的数据传输方法、装置、设备及存储介质 | |
EP3246842B1 (en) | System and method of distributing files between virtual machines forming a distributed system for performing antivirus scans | |
CN110943827B (zh) | 一种基于网络协议的数据获取方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201012 Address after: 4f, building C2, Suzhou 2.5 Industrial Park, 88 Dongchang Road, Suzhou Industrial Park, Jiangsu Province, 215000 Applicant after: JIANGSU PAY EGIS TECHNOLOGY Co.,Ltd. Applicant after: Jiangsu tongfudun blockchain Technology Co., Ltd Address before: Suzhou City, Jiangsu province 215021 East Road, Suzhou Industrial Park, No. 88 Suzhou 2.5 Industrial Park C2 building room 3F-301 Applicant before: JIANGSU PAY EGIS TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |