CN111740982B - 一种基于算力证明的服务器防攻击方法和系统 - Google Patents
一种基于算力证明的服务器防攻击方法和系统 Download PDFInfo
- Publication number
- CN111740982B CN111740982B CN202010561378.4A CN202010561378A CN111740982B CN 111740982 B CN111740982 B CN 111740982B CN 202010561378 A CN202010561378 A CN 202010561378A CN 111740982 B CN111740982 B CN 111740982B
- Authority
- CN
- China
- Prior art keywords
- server
- random value
- client
- computing power
- checking
- 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
-
- 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/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于算力证明的服务器防攻击方法和系统,方法包括:当客户端尝试访问服务器时,将访问请求导向至服务器的算力证明验证点;所述算力证明验证点将访问者的信息加入对应的访问计数器中,根据算力转换函数,产生参数M和R,并产生第一随机值;然后将所述参数M和R以及第一随机值进行保存,并返回给客户端;所述客户端产生一个第二随机值,并与所述第一随机值合并,然后执行哈希算法队列,再执行结果检查算法,如果检查失败,则重复此步骤,直到检查成功;将第二随机值提交给服务器;所述算力证明验证点进行检查,检查成功,则返回成功信息至客户端。本发明使用统一的方法,动态的应对两类攻击,且可以兼容人工与非人工访问。
Description
技术领域
本发明涉及网络安全领域,特别涉及一种基于算力证明的服务器防攻击方法和系统。
背景技术
一般而言,公用服务器部署在广域网,公用服务器的程序接口直接暴露在公众可访问的网络中。因此需要应对可能的攻击。这些攻击通常分为两种:1为了瘫痪服务发起的攻击,例如密集的提交访问请求,使服务器过载而无法同时对其他正常用户提供服务。2使用随机值或者字典作为密码生成器,频繁尝试登录系统,以猜出特定用户的密码。
对于第1类攻击,目前通常采用的是防火墙策略。防火墙会尝试分类不同请求,根据分类的不同,分别限制访问的密度。但由于分类本身依赖于规则,当攻击者发动分布式攻击或者同时对服务的多个位置攻击时,分类策略有效性会降低,从而导致防御策略失效。
对于第2类攻击,目前通常采用的是基于验证码的验证策略。即要求用户在访问敏感信息时附带一个验证码以阻挡自动化提交尝试。但由于部分接口是用于非人工访问的,这些接口则无法使用验证码来做出缓解。一旦攻击者对这些接口发起攻击,此种防御便失去效果。
发明内容
本发明的目的是提供一种基于算力证明的服务器防攻击方法和系统,旨在解决现有服务器防攻击方法无法有效应对攻击的问题。
本发明实施例提供一种基于算力证明的服务器防攻击方法,其包括:
当客户端尝试访问服务器时,将客户端的访问请求导向至服务器的算力证明验证点;
所述算力证明验证点将访问者的信息加入对应的访问计数器中,根据预先定义的算力转换函数,产生两个参数M和R,并产生一个第一随机值;然后将所述参数M和R以及第一随机值进行保存,并返回给客户端;
所述客户端产生一个第二随机值,并与所述第一随机值合并,然后执行哈希算法队列,再执行结果检查算法,如果检查失败,则重复此步骤,直到检查成功;
其中,所述结果检查算法为:将哈希算法队列得到的哈希结果与M进行逻辑与运算,并将运算结果与R比较,如果相同则检查成功,否则检查失败;其中M和R的长度均与哈希结果相同;
将检查成功对应的第二随机值提交给服务器的算力证明验证点;
所述算力证明验证点读取保存的第一随机值,并与第二随机值合并,然后执行哈希算法队列,再执行结果检查算法,如果检查成功,则返回成功信息至客户端,如果检查失败,则返回失败信息至客户端;
所述客户端接收到服务器返回的成功信息后,继续访问服务器的其他功能点。
进一步,所述将所述参数M和R以及第一随机值进行保存,包括:
算力证明验证点将所述参数M和R以及第一随机值保存在客户端对应的会话中;
所述基于算力证明的服务器防攻击方法,还包括:
当所述算力证明验证点检查成功时,则在客户端对应的会话中添加成功标记。
进一步,所述客户端接收到服务器返回的成功信息后,继续访问服务器的其他功能点之后,包括:
服务器的其他功能点检查客户端对应的会话中是否有成功标记,若是则允许访问,若否则拒绝访问。
进一步,所述将哈希算法队列得到的哈希结果与M进行逻辑与运算,并将运算结果与R比较,如果相同则检查成功,否则检查失败,包括:
令M从第0位到第n位分别表示为M0、M1、M2、...、Mn,令R从第0 位到第n位分别表示为R0、R1、R2、...、Rn,令哈希结果S从第0位到第n位分别表示为S0、S1、S2、...、Sn;
令x从0至n进行遍历,当Mx为1时,Sx等于Rx;且当Mx为0时,Rx 为0,则判定检查成功;否则判定检查失败。
进一步,所述根据预先定义的算力转换函数,产生两个参数M和R,包括:
所述算力证明验证点根据访问计数器生成一个算力复杂度值c;
根据所述算力复杂度值c自动产生两个参数M和R,其中,M中前c位均为1,后续位均为0;R值所有位均为0。
进一步,所述算力证明验证点将访问者的信息加入对应的访问计数器中,包括:
分类获取访问者的信息,得到多个类别的访问者的信息;
将分类后的访问者的信息加入到与之对应类别的访问计数器中。
进一步,所述根据预先定义的算力转换函数,产生两个参数M和R,包括:
根据防攻击的类型为各个类别的访问计数器设置不同的权重;
将各类别的访问计数器的数值和权重输入算力转换函数,产生两个参数M 和R。
进一步,所述哈希算法队列包含多个哈希算法。
本发明实施例提供一种基于算力证明的服务器防攻击系统,其包括客户端和服务器;
所述客户端用于当尝试访问服务器时,将客户端的访问请求导向至服务器的算力证明验证点;
所述算力证明验证点用于将访问者的信息加入对应的访问计数器中,根据预先定义的算力转换函数,产生两个参数M和R,并产生一个第一随机值;然后将所述参数M和R以及第一随机值进行保存,并返回给客户端;
所述客户端用于产生一个第二随机值,并与所述第一随机值合并,然后执行哈希算法队列,再执行结果检查算法,如果检查失败,则重复此步骤,直到检查成功;
其中,所述结果检查算法为:将哈希算法队列得到的哈希结果与M进行逻辑与运算,并将运算结果与R比较,如果相同则检查成功,否则检查失败;其中M和R的长度均与哈希结果相同;
所述客户端用于将检查成功对应的第二随机值提交给服务器的算力证明验证点;
所述算力证明验证点用于读取保存的第一随机值,并与第二随机值合并,然后执行哈希算法队列,再执行结果检查算法,如果检查成功,则返回成功信息至客户端,如果检查失败,则返回失败信息至客户端;
所述客户端用于接收到服务器返回的成功信息后,继续访问服务器的其他功能点。
进一步,所述服务器包括分类单元、添加单元:
所述分类单元,用于分类获取访问者的信息,得到多个类别的访问者的信息;
所述添加单元,用于将分类后的访问者的信息加入到与之对应类别的访问计数器中。
本发明实施例提供了一种基于算力证明的服务器防攻击方法和系统,方法包括:当客户端尝试访问服务器时,将客户端的访问请求导向至服务器的算力证明验证点;所述算力证明验证点将访问者的信息加入对应的访问计数器中,根据预先定义的算力转换函数,产生两个参数M和R,并产生一个第一随机值;然后将所述参数M和R以及第一随机值进行保存,并返回给客户端;所述客户端产生一个第二随机值,并与所述第一随机值合并,然后执行哈希算法队列,再执行结果检查算法,如果检查失败,则重复此步骤,直到检查成功;将检查成功对应的第二随机值提交给服务器的算力证明验证点;所述算力证明验证点读取保存的第一随机值,并与第二随机值合并,然后执行哈希算法队列,再执行结果检查算法,如果检查成功,则返回成功信息至客户端,如果检查失败,则返回失败信息至客户端。本发明实施例使用统一的方法,动态的应对两类攻击,且可以兼容人工与非人工访问。由于算力证明均由客户端代码与服务器代码实现,并不需要人工干预,因此不需要人工回答类似验证码的问题,所以避免了给用户带来的操作困扰。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于算力证明的服务器防攻击方法的流程示意图;
图2为本发明实施例提供的一种基于算力证明的服务器防攻击系统的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/ 或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1,图1为本发明实施例提供的一种基于算力证明的服务器防攻击方法的流程示意图,如图所示,其包括:
S101、当客户端尝试访问服务器时,将客户端的访问请求导向至服务器的算力证明验证点;
S101、所述算力证明验证点将访问者的信息加入对应的访问计数器中,根据预先定义的算力转换函数,产生两个参数M和R,并产生一个第一随机值;然后将所述参数M和R以及第一随机值进行保存,并返回给客户端;
S102、所述客户端产生一个第二随机值,并与所述第一随机值合并,然后执行哈希算法队列,再执行结果检查算法,如果检查失败,则重复此步骤,直到检查成功;
其中,所述结果检查算法为:将哈希算法队列得到的哈希结果与M进行逻辑与运算,并将运算结果与R比较,如果相同则检查成功,否则检查失败;其中M和R的长度均与哈希结果相同;
S103、将检查成功对应的第二随机值提交给服务器的算力证明验证点;
S104、所述算力证明验证点读取保存的第一随机值,并与第二随机值合并,然后执行哈希算法队列,再执行结果检查算法,如果检查成功,则返回成功信息至客户端,如果检查失败,则返回失败信息至客户端;
S105、所述客户端接收到服务器返回的成功信息后,继续访问服务器的其他功能点。
在所述步骤S101中,当客户端尝试访问服务器时,应首先访问服务器的算力证明验证点,即将客户端的访问请求导向至服务器的算力证明验证点。
在所述步骤S102中,所述算力证明验证点将访问者的信息加入对应的访问计数器中。
所述的访问计数器所计数的数据可以根据需要进行设置。
所述算力证明验证点将访问者的信息加入对应的访问计数器中,包括:
分类获取访问者的信息,得到多个类别的访问者的信息;
将分类后的访问者的信息加入到与之对应类别的访问计数器中。
也就是在客户端访问时,会分类获取访问者的信息,然后分别添加到对应类别的访问计数器中。
例如使用一个全局的时间队列(例如L=5分钟、C=30秒)定义一个全局计数器,统计在过去的一段时间(5分钟-5分30秒)内访问服务器的总次数C1;
例如使用时间队列字典定义单一来源IP地址(例如以IP地址为键、L=10 分钟、C=1分钟)的计数器,统计在过去一段时间(10-11分钟)内每个IP地址发起的请求次数C2;
例如使用时间队列字典定义单一用户名(例如以用户名为键、L=10分钟、 C=1分钟)的计数器,统计在过去一段时间(10-11分钟)内每个用户名尝试登录的次数C3。
各类别的访问计数器所统计的信息应具有计数的意义,例如全局计数器的意义在于衡量服务器总负载,按用户名建立的计数器意义在于防御用户密码爆破。同时,服务器上也可以获得访问者的信息,例如可以获得访问者IP,而不能获得访问者身份证号。显然,本发明实施例还可以根据需要增加其他类型的访问计数器,以便对其他信息进行统计,从而为对于的防攻击处理提供数据支持。
本发明实施例中,预先定义了两种数据结构:时间队列和时间队列字典。
所述时间队列是指一个以时间为内容的队列。构造此结构时,需要指定时间类型参数L与C。其中L表示时间队列的有效时间长度,C表示每隔C时刻对队列中超期的数据进行清理。
所述时间队列的结构有一个方法:加入。执行时,取当前系统时间加L后的值,写入队列末尾。
所述时间队列的结构有一个属性:数量。获取当前队列中的元素个数。
所述时间队列的结构有一个事件:已清空。在清理后并满足条件时被引发。
所述时间队列的结构每隔C时间,自动执行清理。清理会查看队列中最早的元素,如果元素的时间比当前系统时间更早,则将其移除,并重复这个过程,直到队列中最早的元素不满足上述条件为止。在清理完成后,如果时间队列中不包含任何元素,将引发“已清空”事件。
所述时间队列的“数量”属性,等价于在调用时之前的L至L+C的时间起 (起点不固定)、调用时止的时间段内,调用“加入”方法的次数。比如L=5 分钟、C=30秒,意味着L为5分钟,每隔30秒清理一次队列中的超期数据。因此每次获取队列长度时,获取到的是距离调用时刻5分至5分30秒起,到调用时刻为止的数据数量。
所述时间队列字典是一个以任意类型为键,以时间队列为值的字典。键的类型可以定义为泛型,并根据实际使用要求确定类型。
构造所述时间队列字典的结构时,需要指定时间类型参数L与C。L与C 的意义与时间队列内的定义相同。L与C将被用于构造时间队列字典内的时间队列对象。
所述时间队列字典的结构有两个方法:
(1)加入。带有一个参数,类型与键相同。逻辑为:
以参数为键,从字典中尝试取出对应的值(时间队列)。
如果找不到:以L与C为参数,创建新的时间队列,并以参数为键保存在字典中。
执行值(时间队列)的“加入”方法。
(2)数量。带有一个参数,类型与键相同。逻辑为:
以参数为键,从字典中尝试取出对应的值(时间队列)。
如果找不到:返回0。
返回值(时间队列)的“数量”属性值。
当某个值的“已清空”时间被引发时,结构将会将其从字典中删除。
此字典相当于按键分类,统计在调用时之前的L至L+C的时间起(起点不固定)、调用时止的时间段内,以每个键为参数,调用“加入”方法的次数。
本发明实施例需根据预先定义的算力转换函数,产生两个参数M和R,并产生一个第一随机值。
所述两个参数M和R与前述访问计数器的统计结果直接相关。
当访问计数器的值较低时,产生的算力要求较低(即产生的M、R的要求较低)。当访问计数器的值增大时,产生的算力要求也会增大。算力的下限可以为0,表示无算力要求。算力的上限应控制在合理的范围内,即访问终端在一个可以承受的范围内(比如10秒内)应可以在很大概率上完成要求的算力证明。如果访问压力超过一定条件时,增加算力可能不如直接停止服务效果好。由于 M中增加一个等于1的位(或者每c加1,c为算力复杂度值,在后文描述),会使得计算时间翻倍,算力函数的返回值与计数器的结果是有正相关性,但不应是一个线性关系。
计算时间指客户端访问过程3所需的时间。
算力转换函数的返回值与访问计数器的结果是有正相关性,但不是一个线性关系。
所述算力证明验证点会将所述参数M和R以及第一随机值保存,并且将这些值返回给客户端,返回给客户端的目的是提供给客户端进行算力证明,保存的目的是为了方便后续进行验证。对于哈希算法队列而言,一经选择通常长期不会修改,可以直接写于客户端代码中,当然也可根据需要通过将其一并返回给客户端。
在一实施例中,所述根据预先定义的算力转换函数,产生两个参数M和R,包括:
根据防攻击的类型为各个类别的访问计数器设置不同的权重;
将各类别的访问计数器的数值和权重输入算力转换函数,产生两个参数M 和R。
本发明实施例中,针对不同的检查,计数器的值反应在最终结果中的权重可以不同。例如为了防止服务器过载,可能更关注全局的时间队列;为了应对的攻击,可能在关注全局队列的同时,会对来源IP的计数器赋予更高的权重——即对访问数量较大的IP提供较高的算力要求;为了应对密码暴力破解,则对尝试登录用户名的计数器赋予更高的权重。
在所述步骤S103中,所述客户端会产生一个第二随机值,并与所述第一随机值合并,合并的方式可以是将第二随机值附在所述第一随机值后面。
具体的,合并的计算方法可以采用字符合并、数学相加等任何一种客户端与服务器约定的方法,只需做到客户端与服务器定义一致即可。
然后将合并后的值作为输入值,输入到哈希算法队列中进行哈希计算。
哈希计算的结果作为输入值,输入到结果检查算法中进行结果检查。检查结有两种:成功和失败。如果检查失败,则需要重新生成一个随机值,并重复执行上述过程,直至检查成功。通过上述过程可知,客户端需要不断生成随机值,并不断进行检查,从而迫使客户端付出一定的算力,得到防止攻击服务器的目的。
其中,所述哈希算法队列是指队列中包含有一系列的哈希算法,允许有重复项。
使用时,将输入值输入队列中第一个哈希算法,并将其返回值输入第二个哈希算法,以此类推,直至将倒数第二个哈希算法的返回值输入最后一个哈希算法,并得到最终结果。
例如,队列SHA256、SHA256表示为将原始数据进行一次SHA256哈希计算,并将结果再进行一次SHA256计算后返回。
本发明实施例可以采用SHA256单一值或者两个SHA256作为队列值,也可以使用其他算法组合。
所述结果检查算法为:将哈希算法队列得到的哈希结果与M进行逻辑与运算,并将运算结果与R比较,如果相同则检查成功,否则检查失败。
所述参数M和R的长度均与哈希结果相同。参数M和R均为字符数组或等价的二进制结构。例如,在使用SHA256作为哈希算法队列的最后一个算法时,其结果长度恒定为256位,因此M与R均为一个256位二进制结构,等价于一个长度为32的字节(byte)数组。
其中,“逻辑与”运算AND的含义如下:
1 AND 1=1
0 AND 1=0
1 AND 0=0
0 AND 0=0
也就是将一个值与预制的Mask值(遮盖值)进行与运算,用于抽取出Mask 值指定的位的情况,而忽略其它位的情况(在结果中均显示为0)。
进一步,所述结果检查算法,具体包括:
令M从第0位到第n位分别表示为M0、M1、M2、...、Mn,令R从第0 位到第n位分别表示为R0、R1、R2、...、Rn,令哈希结果S从第0位到第n位分别表示为S0、S1、S2、...、Sn;
令x从0至n进行遍历,当Mx为1时,Sx等于Rx;且当Mx为0时,Rx 为0,则判定检查成功;否则判定检查失败。
通过对M与R的合理定义,此检查可以用于确定哈希结果中多个(0至全部)位置的数据。
在一实施例中,所述根据预先定义的算力转换函数,产生两个参数M和R,包括:
所述算力证明验证点根据访问计数器生成一个算力复杂度值c;
根据所述算力复杂度值c自动产生两个参数M和R,其中,M中前c位均为1,后续位均为0;R值所有位均为0。
通过上述实施例,可以简化结果检查算法,即采用一个算力复杂度值c生成M与R。当M与R长度已知时,c表示M中前c位均为1,后续位均为0;而R值所有位均为0。此时表示对应的S值的前c位需要为0,而对后续位没有要求。R的作用为确认S的前c位均为0。
在所述步骤S104中,当检查成功时,客户端将对应的第二随机值提交给服务器的算力证明验证点进行验证。
在所述步骤S105中,所述算力证明验证点接收到所述第二随机值后,会读取之前已保存的第一随机值,然后将第一随机值与第二随机值合并。合并的方式应该与客户端合并的方式相同,例如将第二随机值附在第一随机值之后。也就是说,合并后的值应与客户端合并后的值相同。
然后执行哈希算法队列,再执行结果检查算法。该哈希算法队列与客户端执行的哈希算法队列相同,该结果检查算法与客户端执行的结果检查算法相同。如果检查成功,则返回成功信息至客户端,如果检查失败,则返回失败信息至客户端。实际上,如果客户端返回的第二随机值是正确的,那么检查结果必然是成功的,此步骤的目的是为了确认客户端返回了正确的第二随机值。
在一实施例中,所述将所述参数M和R以及第一随机值进行保存,包括:
算力证明验证点将所述参数M和R以及第一随机值保存在客户端对应的会话中;
所述基于算力证明的服务器防攻击方法,还包括:
当所述算力证明验证点检查成功时,则在客户端对应的会话中添加成功标记。
本发明实施例中,为了方便保存信息,可直接将生成的参数M和R以及第一随机值保存在客户端对应的会话中,当算力证明验证点收到客户端发送的第二随机值,并且检查成功时,则可以在客户端对应的会话中添加成功标记。当算力证明验证点收到客户端发送的第二随机值,并且检查失败或者在会话中未查询到对应的M、R和第一随机值中的任何一个,则可以返回失败信息。
在一实施例中,所述客户端接收到服务器返回的成功信息后,继续访问服务器的其他功能点之后,包括:
服务器的其他功能点检查客户端对应的会话中是否有成功标记,若是则允许访问,若否则拒绝访问。
客户端访问服务器其他功能点时,其他功能点只需要检查客户端对应的会话中是否有成功标记即可,如果有则证明客户端已经付出过算力并且成功,所以允许访问,否则拒绝访问。
本发明实施例中,由于采用了哈希算法,确保了无法通过M、R快速推算出满足其要求的原始数据,因此客户端只能通过反复生成第二随机值并进行后续的过程来尝试“恰巧满足”要求,从而提高服务器防攻击能力。
对于密集的提交访问请求这类攻击:当访问密度加大后,来自攻击发起方的IP的用户将被分配一个较高的算力要求,因此攻击者需要更多的设备分布在不同的网络中以应对访问密度过低的情况才可以继续攻击,所以本发明实施例增大了攻击所需的成本。
对于使用随机值或者字典作为密码生成器,频繁尝试这类攻击:当尝试密码的次数累积一定后,尝试登录此用户的请求会被分配一个较高的算力要求,因此攻击者需要更多的设备才可以维持一个高速的密码尝试,所以本发明实施例增大了攻击所需的成本。
本发明实施例中,通过服务器提出一个问题,客户端尝试解答问题(找到符合问题要求的解)的过程,客户端需要付出大量计算,从而拖慢客户端的访问频率。服务器快速验证客户端提交的解,快速验证客户端的解是正确的,从而证明客户端付出了相应的计算算力。
本发明实施例提供一种基于算力证明的服务器防攻击系统,如图2所示,其包括客户端202和服务器201;
所述客户端202用于当尝试访问服务器201时,将客户端202的访问请求导向至服务器201的算力证明验证点;
所述算力证明验证点用于将访问者的信息加入对应的访问计数器中,根据预先定义的算力转换函数,产生两个参数M和R,并产生一个第一随机值;然后将所述参数M和R以及第一随机值进行保存,并返回给客户端202;
所述客户端202用于产生一个第二随机值,并与所述第一随机值合并,然后执行哈希算法队列,再执行结果检查算法,如果检查失败,则重复此步骤,直到检查成功;
其中,所述结果检查算法为:将哈希算法队列得到的哈希结果与M进行逻辑与运算,并将运算结果与R比较,如果相同则检查成功,否则检查失败;其中M和R的长度均与哈希结果相同;
所述客户端202用于将检查成功对应的第二随机值提交给服务器201的算力证明验证点;
所述算力证明验证点用于读取保存的第一随机值,并与第二随机值合并,然后执行哈希算法队列,再执行结果检查算法,如果检查成功,则返回成功信息至客户端,如果检查失败,则返回失败信息至客户端202;
所述客户端202用于接收到服务器201返回的成功信息后,继续访问服务器201的其他功能点。
在一实施例中,所述服务器201包括分类单元、添加单元:
所述分类单元,用于分类获取访问者的信息,得到多个类别的访问者的信息;
所述添加单元,用于将分类后的访问者的信息加入到与之对应类别的访问计数器中。
关于上述系统实施例的技术细节,可参考前述方法实施例的描述,此处不再赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种基于算力证明的服务器防攻击方法,其特征在于,包括:
当客户端尝试访问服务器时,将客户端的访问请求导向至服务器的算力证明验证点;
所述算力证明验证点将访问者的信息加入对应的访问计数器中,根据预先定义的算力转换函数,产生两个参数M和R,并产生一个第一随机值;然后将所述参数M和R以及第一随机值进行保存,并返回给客户端;
所述客户端产生一个第二随机值,并与所述第一随机值合并,然后执行哈希算法队列,再执行结果检查算法,如果检查失败,则重复此步骤,直到检查成功;
其中,所述结果检查算法为:将哈希算法队列得到的哈希结果与M进行逻辑与运算,并将运算结果与R比较,如果相同则检查成功,否则检查失败;其中M和R的长度均与哈希结果相同;
将检查成功对应的第二随机值提交给服务器的算力证明验证点;
所述算力证明验证点读取保存的第一随机值,并与第二随机值合并,然后执行哈希算法队列,再执行结果检查算法,如果检查成功,则返回成功信息至客户端,如果检查失败,则返回失败信息至客户端;
所述客户端接收到服务器返回的成功信息后,继续访问服务器的其他功能点。
2.根据权利要求1所述的基于算力证明的服务器防攻击方法,其特征在于,所述将所述参数M和R以及第一随机值进行保存,包括:
算力证明验证点将所述参数M和R以及第一随机值保存在客户端对应的会话中;
所述基于算力证明的服务器防攻击方法,还包括:
当所述算力证明验证点检查成功时,则在客户端对应的会话中添加成功标记。
3.根据权利要求2所述的基于算力证明的服务器防攻击方法,其特征在于,所述客户端接收到服务器返回的成功信息后,继续访问服务器的其他功能点之后,包括:
服务器的其他功能点检查客户端对应的会话中是否有成功标记,若是则允许访问,若否则拒绝访问。
4.根据权利要求1所述的基于算力证明的服务器防攻击方法,其特征在于,所述将哈希算法队列得到的哈希结果与M进行逻辑与运算,并将运算结果与R比较,如果相同则检查成功,否则检查失败,包括:
令M从第0位到第n位分别表示为M0、M1、M2、...、Mn,令R从第0位到第n位分别表示为R0、R1、R2、...、Rn,令哈希结果S从第0位到第n位分别表示为S0、S1、S2、...、Sn;
令x从0至n进行遍历,当Mx为1时,Sx等于Rx;且当Mx为0时,Rx为0,则判定检查成功;否则判定检查失败。
5.根据权利要求1所述的基于算力证明的服务器防攻击方法,其特征在于,所述根据预先定义的算力转换函数,产生两个参数M和R,包括:
所述算力证明验证点根据访问计数器生成一个算力复杂度值c;
根据所述算力复杂度值c自动产生两个参数M和R,其中,M中前c位均为1,后续位均为0;R值所有位均为0。
6.根据权利要求1所述的基于算力证明的服务器防攻击方法,其特征在于,所述算力证明验证点将访问者的信息加入对应的访问计数器中,包括:
分类获取访问者的信息,得到多个类别的访问者的信息;
将分类后的访问者的信息加入到与之对应类别的访问计数器中。
7.根据权利要求6所述的基于算力证明的服务器防攻击方法,其特征在于,所述根据预先定义的算力转换函数,产生两个参数M和R,包括:
根据防攻击的类型为各个类别的访问计数器设置不同的权重;
将各类别的访问计数器的数值和权重输入算力转换函数,产生两个参数M和R。
8.根据权利要求1所述的基于算力证明的服务器防攻击方法,其特征在于,所述哈希算法队列包含多个哈希算法。
9.一种基于算力证明的服务器防攻击系统,其特征在于,包括客户端和服务器;
所述客户端用于当尝试访问服务器时,将客户端的访问请求导向至服务器的算力证明验证点;
所述算力证明验证点用于将访问者的信息加入对应的访问计数器中,根据预先定义的算力转换函数,产生两个参数M和R,并产生一个第一随机值;然后将所述参数M和R以及第一随机值进行保存,并返回给客户端;
所述客户端用于产生一个第二随机值,并与所述第一随机值合并,然后执行哈希算法队列,再执行结果检查算法,如果检查失败,则重复此步骤,直到检查成功;
其中,所述结果检查算法为:将哈希算法队列得到的哈希结果与M进行逻辑与运算,并将运算结果与R比较,如果相同则检查成功,否则检查失败;其中M和R的长度均与哈希结果相同;
所述客户端用于将检查成功对应的第二随机值提交给服务器的算力证明验证点;
所述算力证明验证点用于读取保存的第一随机值,并与第二随机值合并,然后执行哈希算法队列,再执行结果检查算法,如果检查成功,则返回成功信息至客户端,如果检查失败,则返回失败信息至客户端;
所述客户端用于接收到服务器返回的成功信息后,继续访问服务器的其他功能点。
10.根据权利要求9所述的基于算力证明的服务器防攻击系统,其特征在于,所述服务器包括分类单元、添加单元:
所述分类单元,用于分类获取访问者的信息,得到多个类别的访问者的信息;
所述添加单元,用于将分类后的访问者的信息加入到与之对应类别的访问计数器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010561378.4A CN111740982B (zh) | 2020-06-18 | 2020-06-18 | 一种基于算力证明的服务器防攻击方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010561378.4A CN111740982B (zh) | 2020-06-18 | 2020-06-18 | 一种基于算力证明的服务器防攻击方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111740982A CN111740982A (zh) | 2020-10-02 |
CN111740982B true CN111740982B (zh) | 2022-02-11 |
Family
ID=72649847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010561378.4A Active CN111740982B (zh) | 2020-06-18 | 2020-06-18 | 一种基于算力证明的服务器防攻击方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111740982B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112637160A (zh) * | 2020-12-14 | 2021-04-09 | 杭州趣链科技有限公司 | 登陆验证方法、装置、设备和存储介质 |
CN113590282A (zh) * | 2021-07-19 | 2021-11-02 | 海宁奕斯伟集成电路设计有限公司 | 算力调度方法、系统、电子设备及计算机可读存储介质 |
CN114584310A (zh) * | 2021-12-31 | 2022-06-03 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 身份验证方法、装置、设备、介质及产品 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006180245A (ja) * | 2004-12-22 | 2006-07-06 | Hitachi Software Eng Co Ltd | ネットワークアクセス制御システム、ネットワークアクセス制御方法 |
CN101350719A (zh) * | 2007-07-18 | 2009-01-21 | 康佳集团股份有限公司 | 新型的身份认证方法 |
US7600255B1 (en) * | 2004-04-14 | 2009-10-06 | Cisco Technology, Inc. | Preventing network denial of service attacks using an accumulated proof-of-work approach |
CN102196432A (zh) * | 2011-06-10 | 2011-09-21 | 西安电子科技大学 | 基于二次同余方程的抵抗无线网络拒绝服务攻击的方法 |
JP2012019511A (ja) * | 2010-07-09 | 2012-01-26 | Tata Consultancy Services Ltd | 無線通信機器とサーバとの間でのデータの安全なトランザクションのためのシステムおよび方法 |
CN102904883A (zh) * | 2012-09-25 | 2013-01-30 | 上海交通大学 | 在线交易系统的中间人攻击防御方法 |
CN104333580A (zh) * | 2014-10-23 | 2015-02-04 | 张勇平 | 一种基于云服务的账户管理系统及其方法 |
CN106789850A (zh) * | 2015-11-24 | 2017-05-31 | 中国移动通信集团公司 | 信息处理方法、登录服务器的方法、装置、服务器及终端 |
CN106921640A (zh) * | 2015-12-28 | 2017-07-04 | 航天信息股份有限公司 | 身份认证方法、认证装置及认证系统 |
KR20200024426A (ko) * | 2018-08-28 | 2020-03-09 | 주식회사 이와이엘 | 사용자 패턴인증과 양자난수를 조합한 사용자 인증 시스템 및 방법 |
-
2020
- 2020-06-18 CN CN202010561378.4A patent/CN111740982B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7600255B1 (en) * | 2004-04-14 | 2009-10-06 | Cisco Technology, Inc. | Preventing network denial of service attacks using an accumulated proof-of-work approach |
JP2006180245A (ja) * | 2004-12-22 | 2006-07-06 | Hitachi Software Eng Co Ltd | ネットワークアクセス制御システム、ネットワークアクセス制御方法 |
CN101350719A (zh) * | 2007-07-18 | 2009-01-21 | 康佳集团股份有限公司 | 新型的身份认证方法 |
JP2012019511A (ja) * | 2010-07-09 | 2012-01-26 | Tata Consultancy Services Ltd | 無線通信機器とサーバとの間でのデータの安全なトランザクションのためのシステムおよび方法 |
CN102196432A (zh) * | 2011-06-10 | 2011-09-21 | 西安电子科技大学 | 基于二次同余方程的抵抗无线网络拒绝服务攻击的方法 |
CN102904883A (zh) * | 2012-09-25 | 2013-01-30 | 上海交通大学 | 在线交易系统的中间人攻击防御方法 |
CN104333580A (zh) * | 2014-10-23 | 2015-02-04 | 张勇平 | 一种基于云服务的账户管理系统及其方法 |
CN106789850A (zh) * | 2015-11-24 | 2017-05-31 | 中国移动通信集团公司 | 信息处理方法、登录服务器的方法、装置、服务器及终端 |
CN106921640A (zh) * | 2015-12-28 | 2017-07-04 | 航天信息股份有限公司 | 身份认证方法、认证装置及认证系统 |
KR20200024426A (ko) * | 2018-08-28 | 2020-03-09 | 주식회사 이와이엘 | 사용자 패턴인증과 양자난수를 조합한 사용자 인증 시스템 및 방법 |
Non-Patent Citations (2)
Title |
---|
Zero Knowledge Protocol with RSA Cryptography Algorithm for Authentication in Web Browser Login System (Z-RSA);Vikash Mainanwal;《 2015 Fifth International Conference on Communication Systems and Network Technologies》;20151001;全文 * |
一种网络间可信连接协议;赖英旭等;《软件学报》;20191215(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111740982A (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111740982B (zh) | 一种基于算力证明的服务器防攻击方法和系统 | |
US11122063B2 (en) | Malicious domain scoping recommendation system | |
Dantas et al. | A selective defense for application layer ddos attacks | |
US9124431B2 (en) | Evidence-based dynamic scoring to limit guesses in knowledge-based authentication | |
US8001582B2 (en) | Cross-network reputation for online services | |
US8806591B2 (en) | Authentication risk evaluation | |
US8959644B2 (en) | Use of popularity information to reduce risk posed by guessing attacks | |
US8819769B1 (en) | Managing user access with mobile device posture | |
US20030105959A1 (en) | System and method for providing answers in a personal entropy system | |
Agrawal et al. | Defense schemes for variants of distributed denial-of-service (DDoS) attacks in cloud computing: A survey | |
US20020120853A1 (en) | Scripted distributed denial-of-service (DDoS) attack discrimination using turing tests | |
CN111371813B (zh) | 一种基于边缘计算的大数据网络数据防护方法及系统 | |
WO2008151321A2 (en) | Systems, methods, and media for enforcing a security policy in a network including a plurality of components | |
CN110602135B (zh) | 网络攻击处理方法、装置以及电子设备 | |
CN104899482B (zh) | 限制批量请求服务的方法和装置 | |
US10362055B2 (en) | System and methods for active brute force attack protection | |
CN110430062B (zh) | 登录请求处理方法、装置、设备及介质 | |
CN114928452A (zh) | 访问请求验证方法、装置、存储介质及服务器 | |
CN112738104B (zh) | 一种弱口令设备的扫描方法及装置 | |
CN111935133A (zh) | 白名单生成方法及装置 | |
RU2179738C2 (ru) | Способ обнаружения удаленных атак в компьютерной сети | |
CN111314496A (zh) | 注册请求拦截方法、装置、计算机设备和存储介质 | |
CN113055362A (zh) | 异常行为的预防方法、装置、设备及存储介质 | |
Mathew et al. | Genetic algorithm based layered detection and defense of HTTP botnet | |
Gritzalis et al. | A zero knowledge probabilistic login protocol |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |