CN110855603A - 一种基于区块链技术的抗DoS攻击防护的方法 - Google Patents

一种基于区块链技术的抗DoS攻击防护的方法 Download PDF

Info

Publication number
CN110855603A
CN110855603A CN201811583159.5A CN201811583159A CN110855603A CN 110855603 A CN110855603 A CN 110855603A CN 201811583159 A CN201811583159 A CN 201811583159A CN 110855603 A CN110855603 A CN 110855603A
Authority
CN
China
Prior art keywords
block
request
server
client
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.)
Granted
Application number
CN201811583159.5A
Other languages
English (en)
Other versions
CN110855603B (zh
Inventor
陈超
陈政璋
吴琦
毛伟
邢志杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
INTERNET DOMAIN NAME SYSTEM BEIJING ENGINEERING RESEARCH CENTER LLC
Original Assignee
INTERNET DOMAIN NAME SYSTEM BEIJING ENGINEERING RESEARCH CENTER LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by INTERNET DOMAIN NAME SYSTEM BEIJING ENGINEERING RESEARCH CENTER LLC filed Critical INTERNET DOMAIN NAME SYSTEM BEIJING ENGINEERING RESEARCH CENTER LLC
Priority to CN201811583159.5A priority Critical patent/CN110855603B/zh
Publication of CN110855603A publication Critical patent/CN110855603A/zh
Application granted granted Critical
Publication of CN110855603B publication Critical patent/CN110855603B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Abstract

本发明公开了一种基于区块链技术的抗DoS攻击防护的方法,该方法包括:客户端向服务器发出域名解析请求;客户端通过计算得到的工作量证明数据向服务器证明其请求的合法性;服务器通过验证工作量证明来确定自客户端源地址的解析请求是否可以被处理,工作量证明验证成功的对应请求可以被处理,否则被忽略;服务器为每个请求的源地址建立区块链。服务器持续更新区块链,约束工作量证明的生成;服务器向客户端发送当前的区块信息;客户端保存从服务器同步的区块信息,并根据区块信息计算搜索工作量证明。本发明通过调节客户端请求在计算上的代价,实现对客户端行为的约束,达到一定程度上过滤恶意攻击的目的。

Description

一种基于区块链技术的抗DoS攻击防护的方法
技术领域
本发明属于计算机网络域名解析技术领域,具体地说,是涉及一种基于区块链技术与工作量证明相结合的互联网域名系统的抗DoS攻击防护的方法
背景技术
近年来随着网络的不断普及,流量攻击在互联网上的大肆泛滥,DOS攻击的危害性不断升级,面对各种潜在不可预知的攻击,越来越多的企业显的不知所措和力不从心。DoS攻击是指恶意的攻击网络协议实现的缺陷或直接通过野蛮手段残忍地耗尽被攻击对象的资源,目的是让目标计算机或网络无法提供正常的服务或资源访问,使目标系统服务系统停止响应甚至崩溃,而在此攻击中并不包括侵入目标服务器或目标网络设备。这些服务资源包括网络带宽,文件系统空间容量,开放的进程或者允许的连接。这种攻击会导致资源的匮乏,无论计算机的处理速度多快、内存容量多大、网络带宽的速度多快都无法避免这种攻击带来的后果。
在DNS系统中,很多不同形式的攻击正不断地威胁着它的运行。而对于服务器程序而言,缺乏对访问访问者的认证,使得攻击者可以较为顺利地实施攻击。
因此,如何有效地对DoS攻击进行过滤和防护,便成为了目前亟待解决的问题。
发明内容
本发明的目的是提供了一种基于区块链技术的抗DoS攻击防护的方法,通过调节客户端请求在计算上的代价,实现对客户端行为的约束,达到一定程度上过滤恶意攻击的目的。
为解决上述技术问题,本发明采用的技术方案如下:
一种基于区块链技术的抗DoS攻击防护的方法,所述方法包括:
客户端向服务器发出域名解析请求;
客户端通过计算得到的工作量证明数据向服务器证明其请求的合法性;
服务器通过验证工作量证明来确定自客户端源地址的解析请求是否可以被处理,工作量证明验证成功的对应请求可以被处理,否则被忽略;
服务器为每个请求的源地址建立区块链。
进一步地,所述方法还包括:
服务器持续更新区块链,约束工作量证明的生成;
服务器向客户端发送当前的区块信息;
客户端保存从服务器同步的区块信息,并根据区块信息计算搜索工作量证明。
进一步地,所述客户端在发起域名解析请求前,还包括区块信息的验证过程,包括:
先对本地与该服务器关联的区块信息进行检查,确认是否已存在记录的区块信息;
如果不存在区块信息,需要设定区块高度为1并进行请求,向服务器请求同步当前的区块状态,并等待服务器的响应,以更新得到的区块信息;
如果存在区块信息,根据当前的区块高度、难度、上一区块散列值及自身生成的请求编号,计算搜索得到一个随机码,进而生成工作量证明,填充到请求的各个字段中。
进一步地,在区块信息的验证之后,还包括:
客户端向服务器发送域名查询请求并等待应答;
如果超时未得到应答结果,则判断是否重试,若需要进行重试,则继续计算搜索得到一个随机码,生成工作量证明;如果不进行重试,则查询失败;
如果得到应答结果,则检查应答结果是否为区块不同步结果,如果区块不同步,则需要使用服务器提供的区块信息更新本地的区块状态,并判断是否需要重试;
如果区块已同步,则判断结果是否指示编号已被占用,如果已被占用,则重试,继续计算搜索得到一个随机码,生成工作量证明。
进一步地,DNS服务器维护一个基于IP地址划分的数据库,每个数据库中保存着一个有限长度的区块链数据结构,区块中保存着最近一个周期中该源IP地址请求对应的请求编号及服务器端记录的请求时间戳,请求编号由客户端在一个固定的范围内随机生成,并在EDNS中携带给服务器,每一个查询会占用对应的请求编号即一个编号对应每一个区块只能被使用1次,在该区块中也会去重保存。
进一步地,每个新的区块等待打包期间,服务器端会验证客户端请求在EDNS中携带的,结合了区块高度,当前周期难度,上一区块散列值,请求编号和随机码得到的工作量证明,来确定请求是否可被接受;唯有验证通过且请求编号没有被占用的请求可以被接受;接受后,对应的编号会被放到服务器的编号池中作为当前等待被打包区块数据的一部分;如果验证通过但请求编号已被占用,则会给客户端返回refused结果并在EDNS中返回结果码指示该编号已被占用;之后,客户端需要尝试新的随机码并重新请求,如果验证过程得到未通过验证的结果,则会丢弃请求。
进一步地,当服务器端可以打包到区块中的编号数达到一定数目后,会打包生成一个区块,并在后面接受新的请求时,按照新的区块对应的请求进行处理;当服务器收到的请求中携带的区块高度,当前难度值及上一区块散列值与服务器当前的对应数据不符时,会返回refused结果并携带正确的相应信息,以便客户端进行重试。
进一步地,上一区块打包完成后,只需保留其散列值,并根据它的区块高度对当前新区块进行的高度进行设置,在区块高度增加一定数量后,根据区块生成的速度调整难度值;如果一段时间内没有得到填满一个区块的请求编号,需要在超出时间限制时强制打包一个区块,而如果之前的1个限定的周期或更久内没有任何请求被验证成功,需要由服务器端随机生成一个请求编号,并作为编号打包到区块中,然后调整难度,并给请求客户端返回新的区块信息。
进一步地,在没有源IP对应的任何区块时,先由服务器建立创世区块,该区块包含的请求编号数据是服务器随机生成的伪请求编号,此外,创世区块的区块高度为1,作为一个特殊的保留值,计算得到上一区块散列后,向客户端返回refused结果并携带区块信息,当前难度使用预设的初始值。
与现有技术相比,本发明所述的一种基于区块链技术的抗DoS攻击防护的方法,达到了如下技术效果:
1、服务器加入了根据客户端提供的特定信息(工作量证明)对其请求的合法性验证的机制,通过验证工作量证明得到的合法性检查结果,可以决定域名解析请求是否应该被处理;如果合法,服务器会正常处理解析请求,如果不合法,服务器会忽略该请求。
2、客户端会保存从服务器接收到的区块状态信息,并根据它计算搜索一个合法的工作量证明数据,携带在域名解析请求中,证明其请求的合法性。
3、本发明通过加入了工作量证明,以确保服务与资源是被真正的需求所使用。
附图说明
图1为本发明实施例所述的一种基于区块链技术的抗DoS攻击防护的方法的流程原理示意图。
图2为本发明实施例所述的一种基于区块链技术的抗DoS攻击防护的方法的客户端的工作流程图。
图3为本发明实施例所述的一种基于区块链技术的抗DoS攻击防护的方法的服务器端的工作流程图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。
参照图1所示,本发明实施例所公开的一种基于区块链技术的抗DoS攻击防护的方法,包括如下步骤:
客户端向服务器发出域名解析请求;
客户端通过计算得到的工作量证明数据向服务器端证明其请求的合法性;由于服务器加入了根据客户端提供的特定信息(工作量证明)对其请求的合法性验证的机制,
首先,服务器通过验证工作量证明来确定自客户端源地址的解析请求是否可以被处理,工作量证明验证成功的对应请求可以被处理,否则,该请求被忽略;其中,工作量证明(Proof of Work),是一种对应服务与资源滥用、或是阻断服务攻击的经济对策。一般是要求用户进行一些耗时适当的复杂运算,并且答案能被服务方快速验算,以此耗用的时间、设备与能源做为担保成本,以确保服务与资源是被真正的需求所使用。工作量证明最常用的技术原理是散列函数。由于输入散列函数h()的任意值n,会对应到一个h(n)结果,而n只要变动一个比特,就会引起雪崩效应,所以几乎无法从h(n)反推回n,因此借由指定查找h(n)的特征,让用户进行大量的穷举运算,就可以达成工作量证明。
其次,服务器为每个请求的源地址建立区块链;区块链(Blockchain),是借由密码学串接并保护内容的串连交易记录(又称区块)。每一个区块包含了前一个区块的加密散列、相应时间戳记以及交易数据(通常用默克尔树算法计算的散列值表示),这样的设计使得区块内容具有难以篡改的特性。用区块链所串接的分布式账本能让两方有效纪录交易,且可永久查验此交易。
然后,服务器持续更新区块链,约束工作量证明的生成;服务器会在客户端被处理的请求达到一定数目,或者请求间隔达到一定的时间后,更新区块链的状态。区块链的状态会影响客户端对工作量证明数据的计算;
再然后,服务器会向客户端发送当前的区块信息;服务器会想客户端发送当前的区块状态信息,使客户端的区块同步到最新状态,进而使得客户端根据匹配的区块信息,计算得到可以被验证为合法的工作量证明;
最后,客户端保存从服务器同步的区块信息,并根据区块信息计算搜索工作量证明,该工作量证明数据携带在域名解析请求中,证明其请求的合法性。
本发明实施例的上述方法基于区块链技术和工作量证明技术实现,为了实现基于区块链和工作量证明的DNS安全防护,本发明实施例提供的实现方法如下:
1)DNS服务器维护一个基于IP地址划分的数据库,每个数据库中保存着一个有限长度的区块链数据结构。
2)区块中保存着最近一个周期中该源IP地址请求对应的请求编号及服务器端记录的请求时间戳。请求编号由客户端在一个固定的范围内随机生成,并在EDNS中携带给服务器。
3)每一个查询会占用对应的请求编号,即一个编号对应每一个区块只能被使用1次,在该区块中也会去重保存。
4)每个新的区块等待打包期间,服务器端会验证客户端请求在EDNS(EDNS就是在遵循已有的DNS消息格式的基础上增加一些字段,来支持更多的DNS请求业务)中携带的,结合了区块高度,当前周期难度,上一区块散列值,请求编号和随机码得到的工作量证明,来确定请求是否可被接受。唯有验证通过且请求编号没有被占用的请求可以被接受。接受后,对应的编号会被放到服务器的编号池中作为当前等待被打包区块数据的一部分。而如果验证通过但请求编号已被占用,则会给客户端返回refused结果并在EDNS中返回结果码指示该编号已被占用。之后,客户端需要尝试新的随机码并重新请求。如果验证过程得到未通过验证的结果,则会丢弃请求。
5)当服务器端可以打包到区块中的编号数达到一定数目后,会打包生成一个区块,并在后面接受新的请求时,按照新的区块对应的请求进行处理。
6)当服务器收到的请求中携带的区块高度,当前难度值及上一区块散列值与服务器当前的对应数据不符时,会返回refused结果并携带正确的相应信息,以便客户端进行重试。
7)区块链不必保存完整的全部数据,只需要逻辑上存在这条区块链。即上一区块打包完成后,只需保留其散列值,并根据它的区块高度对当前新区块进行的高度进行设置,而不必存储实际的历史数据。
8)在区块高度增加一定数量n(区块周期,可以设为1)后,可以根据区块生成的速度调整难度值。难度值决定客户端计算符合要求的随机码所需要的计算消耗,实现对客户端的限制。如果区块生成较快,要升高难度,如果区块生成较慢,则要降低难度,进行平衡。而难度调整的依据由区块产生时间,对比标准情况的区块周期(标准区块间隔时间与区块数量n相乘)的时间来确定。
9)区块间隔时间需要最大值来限制(例如设为2倍的标准区块周期),防止难度增长到过高带来的负面影响。如果一段时间内没有得到填满一个区块的请求编号,需要在超出时间限制时(可以由客户端请求触发此项检查)强制打包一个区块。而如果之前的1个限定的周期或更久内没有任何请求被验证成功,需要由服务器端随机生成一个请求编号,并作为编号打包到区块中。然后调整难度(按照一定的比例略微降低),并给请求客户端返回新的区块信息。
10)在没有该源IP对应的任何区块时,需要先由服务器建立创世区块,该区块包含的请求编号数据是服务器随机生成的伪请求编号。此外,创世区块的区块高度为1,是一个特殊的保留值。计算得到“上一区块散列”后,向客户端返回refused结果并携带区块信息。当前难度使用预设的初始值。
11)生成验证用的随机码时的计算需要结合当前难度,区块高度,上一区块的散列值,请求编号寻找一个匹配的随机码,进而得到工作量证明(能产生满足要求数值的结果)。随着难度的上升,计算得到可用的随机码会变得困难,但验证其正确性却很容易,且不受难度影响。
上述提到的技术术语做如下解释:
1)随机码(Nonce):用于改变消息内容从而得到不同散列值的数值。
2)区块高度(Block Height):当前区块在区块链上的序号,最小值为1,随着新区块的产生不断增长。
3)难度(Difficulty):决定得到工作量证明从概率上说需要付出代价的一个数值。可按照一定的周期进行调整。
4)请求编号(Request ID):区块中记录的数据,可用来确定对应的工作量证明被是否已使用过,可以用客户端随机生成。
5)上一区块散列值(Previous Block Hash):计算工作量证明的一项输入数据,使用它的目的是使工作量证明被限制为与区块链相关。
6)编号池(ID Pool):一个临时保存已登记的请求编号的数据结构,打包区块时会从编号池中选择编号,并将被打包过的编号清除。
7)标准区块间隔时间(Standard Block Period):用来衡量区块生成速度的一个基准时间,区块的间隔大于这个时间,表明生成较慢,小于则表示较快。
8)区块间隔超时时间(Block Time Out Period):设定的一个正常情况下最长区块间隔时间,超过这个时间未生成区块,需要强制打包并开始下一个区块的等待。
9)最大编号数量(Max IDs to Pack):规定了一个区块可以打包多少条请求编号的数值。
下面通过一个具体的实施方式,从客户端和服务器端分别对本发明的协议实现及工作过程进行具体阐述。
A)协议字段。
这部分内容规定了通信中的本防护方法涉及的消息格式:
本协议的全部数据需要放在DNS协议中的EDNS部分中,OPT中的数据类型码定为21。
按照DNS协议的规定,OPT记录的前4个字节分别为类型码(2字节,数值为21),长度值(2字节,根据后面的实际数据长度填充)。OPT前4个字节为定长部分,后面的数据长度与上述的长度值来定义。
协议字段部分的格式如下:
1)类别(2字节),标识这部分数据来源于请求或应答,请求对应值为0,应答对应值为1。
2)结果码(2字节),在请求方向中固定为0值(即“正常”)。应答方向时服务器需要根据实际的结果来设置。
3)难度值(8字节),当前周期的难度值。
4)上一区块散列值(32字节),最近被打包的区块的SHA-256散列值。
5)区块高度(4字节),代表关联的区块序号。
6)请求编号(4字节),由客户端生成,在应答中保持与请求时的数据一致。
7)随机码(8字节),由客户端搜索得到,在应答中保持与请求时的数据一致。
以上第2)条在应答时可能出现3种结果码,包括:
一、正常。
二、区块不同步,当请求中携带的区块高度与服务器端的当前区块高度不符(包括大于和小于),或难度不匹配,或上一区块散列值不同时,返回此结果码,并在应答中使用当前的难度值,上一区块散列值,当前区块高度,返回给客户端,以便客户端同步后重试。
三、请求编号已被占用。这个结果码表明,请求中的区块信息与当前服务器的匹配,且随机码被验证成功,但编号已被使用过。客户端在收到这个结果码时,不需要更新记录的区块信息,只需要重新使用一个新的请求编号重试即可。
如果客户端请求的区块高度等3项数据与当前匹配,但随机码验证失败,在这种情况下会丢弃请求,不返回任何应答。
客户端在没有任何区块信息时,可以使用创世区块的高度(值为1),其它如难度值,上一区块散列值,请求编号,随机码等可用0来填充。服务器端对区块高度为1的请求,不对其它字段进行校验,直接返回refused结果,并携带当前区块信息给客户端使其可同步。
对于服务器而言,对工作量证明进行验证,及向客户端返回区块信息时,使用的区块高度总是大于1的,因为创世区块的高度是一个有特殊用途的保留值,在建立创世区块后,区块高度要直接调整为2。
B)工作流程:
工作流程可划分为客户端和服务器端两部分。图2描述了客户端进行请求时的流程,图3描述了服务器端处理请求时的流程。
首先是客户端的工作流程:
1)客户端准备发起一个请求,需要先对本地与该服务器关联的区块信息进行检查,确认是否已存在记录的区块信息。
2)如果不存在区块信息,需要设定区块高度为1并进行请求,向服务器端请求同步当前的区块状态。如果已存在区块信息,直接进入第4步。
3)客户端等待服务器的响应,并更新得到的区块信息。
4)根据当前的区块高度,难度,上一区块散列值及自身生成的请求编号,计算搜索得到一个随机码,进而生成工作量证明,填充到请求的各个字段中。
5)向服务器发送域名查询请求并等待应答。如果得到应答结果会直接进入第8步。
6)如果超时未得到应答结果,会判断是否重试。如果需要进行重试,会回到第4步继续流程。
7)如果不进行重试,则完成流程,查询失败。
8)检查应答结果是否为区块不同步结果。如果区块已同步,直接进入第10步。
9)如果区块不同步,需要使用服务器提供的区块信息更新本地的区块状态,并判断是否需要重试。如果需要进行重试,会回到第4步继续流程,否则完成流程,查询失败。
10)判断结果是否指示编号已被占用,如果已被占用,会回到第4步进行重试。
11)未发现任何错误,查询成功完成。
服务器端的工作流程如下:
1)服务器端等待请求。
2)收到来自客户端的请求。
3)根据客户端源IP,判断是否已建立对应的区块链。如果已建立,直接进入第5步。
4)如果还未建立区块链,需要先建立创世区块,并向客户端返回区块信息。
5)判断区块是否已经超过限定的时间而未能被打包。如果不需要强制打包,直接进入第7步。
6)强制打包区块,并更新区块信息,然后返回给客户端。
7)对客户端请求中的区块信息,包括区块高度,当前难度,上一区块散列值等进行校验,如果发现与当前区块信息不同步,会向客户端返回refused结果并携带必要的区块信息。
8)如果区块与当前服务器端一致,那么需要对其携带的工作量证明(POW)进行验证。如果验证成功,直接进入第10步。
9)工作量证明验证失败,丢弃请求。
10)对请求编号是否已被使用进行检查,如果编号还未被使用,直接进入第12步。
11)返回refused结果,并通知客户端编号已被占用。
12)将请求编号放入当前待打包区块的编号池。
13)检查编号池是否已满。如果未满,直接进入第15步。
14)打包区块并更新区块信息。
15)进行查询流程并向客户端返回应答。
本发明通过调节客户端请求在计算上的代价,实现对客户端行为的约束,达到一定程度上过滤恶意攻击的目的。
上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (9)

1.一种基于区块链技术的抗DoS攻击防护的方法,其特征在于包括:
客户端向服务器发出域名解析请求;
客户端通过计算得到的工作量证明数据向服务器证明其请求的合法性;
服务器通过验证工作量证明来确定自客户端源地址的解析请求是否可以被处理,工作量证明验证成功的对应请求可以被处理,否则被忽略;
服务器为每个请求的源地址建立区块链。
2.如权利要求1所述的基于区块链技术的抗DoS攻击防护的方法,其特征在于,所述方法还包括:
服务器持续更新区块链,约束工作量证明的生成;
服务器向客户端发送当前的区块信息;
客户端保存从服务器同步的区块信息,并根据区块信息计算搜索工作量证明。
3.如权利要求2所述的抗DoS攻击防护的方法,其特征在于,所述客户端在发起域名解析请求前,还包括区块信息的验证过程,包括:
先对本地与该服务器关联的区块信息进行检查,确认是否已存在记录的区块信息;
如果不存在区块信息,需要设定区块高度为1并进行请求,向服务器请求同步当前的区块状态,并等待服务器的响应,以更新得到的区块信息;
如果存在区块信息,根据当前的区块高度、难度、上一区块散列值及自身生成的请求编号,计算搜索得到一个随机码,进而生成工作量证明,填充到请求的各个字段中。
4.如权利要求3所述的抗DoS攻击防护的方法,其特征在于,在区块信息的验证之后,还包括:
客户端向服务器发送域名查询请求并等待应答;
如果超时未得到应答结果,则判断是否重试,若需要进行重试,则继续计算搜索得到一个随机码,生成工作量证明;如果不进行重试,则查询失败;
如果得到应答结果,则检查应答结果是否为区块不同步结果,如果区块不同步,则需要使用服务器提供的区块信息更新本地的区块状态,并判断是否需要重试;
如果区块已同步,则判断结果是否指示编号已被占用,如果已被占用,则重试,继续计算搜索得到一个随机码,生成工作量证明。
5.如权利要求1或4所述的抗DoS攻击防护的方法,其特征在于,DNS服务器维护一个基于IP地址划分的数据库,每个数据库中保存着一个有限长度的区块链数据结构,区块中保存着最近一个周期中该源IP地址请求对应的请求编号及服务器端记录的请求时间戳,请求编号由客户端在一个固定的范围内随机生成,并在EDNS中携带给服务器,每一个查询会占用对应的请求编号即一个编号对应每一个区块只能被使用1次,在该区块中也会去重保存。
6.如权利要求5所述的抗DoS攻击防护的方法,其特征在于,每个新的区块等待打包期间,服务器端会验证客户端请求在EDNS中携带的,结合了区块高度,当前周期难度,上一区块散列值,请求编号和随机码得到的工作量证明,来确定请求是否可被接受;唯有验证通过且请求编号没有被占用的请求可以被接受;接受后,对应的编号会被放到服务器的编号池中作为当前等待被打包区块数据的一部分;如果验证通过但请求编号已被占用,则会给客户端返回refused结果并在EDNS中返回结果码指示该编号已被占用;之后,客户端需要尝试新的随机码并重新请求,如果验证过程得到未通过验证的结果,则会丢弃请求。
7.如权利要求6所述的抗DoS攻击防护的方法,其特征在于,当服务器端可以打包到区块中的编号数达到一定数目后,会打包生成一个区块,并在后面接受新的请求时,按照新的区块对应的请求进行处理;当服务器收到的请求中携带的区块高度,当前难度值及上一区块散列值与服务器当前的对应数据不符时,会返回refused结果并携带正确的相应信息,以便客户端进行重试。
8.如权利要求7所述的抗DoS攻击防护的方法,其特征在于,上一区块打包完成后,只需保留其散列值,并根据它的区块高度对当前新区块进行的高度进行设置,在区块高度增加一定数量后,根据区块生成的速度调整难度值;如果一段时间内没有得到填满一个区块的请求编号,需要在超出时间限制时强制打包一个区块,而如果之前的1个限定的周期或更久内没有任何请求被验证成功,需要由服务器端随机生成一个请求编号,并作为编号打包到区块中,然后调整难度,并给请求客户端返回新的区块信息。
9.如权利要求8所述的抗DoS攻击防护的方法,其特征在于,在没有源IP对应的任何区块时,先由服务器建立创世区块,该区块包含的请求编号数据是服务器随机生成的伪请求编号,此外,创世区块的区块高度为1,作为一个特殊的保留值,计算得到上一区块散列后,向客户端返回refused结果并携带区块信息,当前难度使用预设的初始值。
CN201811583159.5A 2018-12-24 2018-12-24 一种基于区块链技术的抗DoS攻击防护的方法 Active CN110855603B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811583159.5A CN110855603B (zh) 2018-12-24 2018-12-24 一种基于区块链技术的抗DoS攻击防护的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811583159.5A CN110855603B (zh) 2018-12-24 2018-12-24 一种基于区块链技术的抗DoS攻击防护的方法

Publications (2)

Publication Number Publication Date
CN110855603A true CN110855603A (zh) 2020-02-28
CN110855603B CN110855603B (zh) 2021-11-09

Family

ID=69595444

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811583159.5A Active CN110855603B (zh) 2018-12-24 2018-12-24 一种基于区块链技术的抗DoS攻击防护的方法

Country Status (1)

Country Link
CN (1) CN110855603B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111541732A (zh) * 2020-03-06 2020-08-14 杜晓楠 在p2p网络中避免客户端无效占用连接资源的方法、计算机可读存储介质和p2p网络
CN111555900A (zh) * 2020-03-06 2020-08-18 杜晓楠 引导p2p网络中客户端节点合理选择节点带宽的方法、计算机可读存储介质和p2p网络
CN113691482A (zh) * 2020-05-18 2021-11-23 中国移动通信有限公司研究院 一种缓解信息处理方法、服务器及文件跟踪系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101789940A (zh) * 2010-01-28 2010-07-28 联想网御科技(北京)有限公司 一种防范dns请求报文洪泛攻击的方法及装置
WO2017146333A1 (ko) * 2016-02-22 2017-08-31 (주)코인플러그 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법
CN107528854A (zh) * 2017-09-20 2017-12-29 江苏通付盾科技有限公司 基于工作量证明的连接方法、系统、客户端及服务器
CN107786553A (zh) * 2017-10-23 2018-03-09 江苏通付盾科技有限公司 基于工作量证明的身份认证方法、服务器及系统
CN108429765A (zh) * 2018-05-28 2018-08-21 北京奇虎科技有限公司 一种基于区块链实现域名解析的方法、服务器和系统
CN109003003A (zh) * 2018-09-03 2018-12-14 夸克链科技(深圳)有限公司 一种工作量算法难度叠加方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101789940A (zh) * 2010-01-28 2010-07-28 联想网御科技(北京)有限公司 一种防范dns请求报文洪泛攻击的方法及装置
WO2017146333A1 (ko) * 2016-02-22 2017-08-31 (주)코인플러그 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법
CN107528854A (zh) * 2017-09-20 2017-12-29 江苏通付盾科技有限公司 基于工作量证明的连接方法、系统、客户端及服务器
CN107786553A (zh) * 2017-10-23 2018-03-09 江苏通付盾科技有限公司 基于工作量证明的身份认证方法、服务器及系统
CN108429765A (zh) * 2018-05-28 2018-08-21 北京奇虎科技有限公司 一种基于区块链实现域名解析的方法、服务器和系统
CN109003003A (zh) * 2018-09-03 2018-12-14 夸克链科技(深圳)有限公司 一种工作量算法难度叠加方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111541732A (zh) * 2020-03-06 2020-08-14 杜晓楠 在p2p网络中避免客户端无效占用连接资源的方法、计算机可读存储介质和p2p网络
CN111555900A (zh) * 2020-03-06 2020-08-18 杜晓楠 引导p2p网络中客户端节点合理选择节点带宽的方法、计算机可读存储介质和p2p网络
CN113691482A (zh) * 2020-05-18 2021-11-23 中国移动通信有限公司研究院 一种缓解信息处理方法、服务器及文件跟踪系统

Also Published As

Publication number Publication date
CN110855603B (zh) 2021-11-09

Similar Documents

Publication Publication Date Title
CN110855603B (zh) 一种基于区块链技术的抗DoS攻击防护的方法
US10270792B1 (en) Methods for detecting malicious smart bots to improve network security and devices thereof
CN110213276B (zh) 一种微服务架构下的授权验证方法、服务器、终端及介质
CN106790156B (zh) 一种智能设备绑定方法及装置
CN100512201C (zh) 用于处理分组业务的接入-请求消息的方法
CN112671720B (zh) 一种云平台资源访问控制的令牌构造方法、装置及设备
CN102739659A (zh) 一种防重放攻击的认证方法
US11108545B2 (en) Creating a blockchain account and verifying blockchain transactions
CN111669402B (zh) 加密通信方法、装置、设备及存储介质
US8924725B2 (en) Authenticated file handles for network file systems
CN110958249B (zh) 信息处理方法、装置、电子设备及存储介质
CN113676452B (zh) 基于一次性密钥的重放攻击抵御方法及系统
CN112948851A (zh) 用户认证方法、装置、服务器及存储介质
CN112311779B (zh) 应用于区块链系统的数据访问控制方法及装置
CN111831974A (zh) 接口保护方法、装置、电子设备及存储介质
CN112968910A (zh) 一种防重放攻击方法和装置
CN107770183B (zh) 一种数据传输方法与装置
CN110618989A (zh) 信息处理方法、信息处理装置及相关产品
CN107395772B (zh) 一种重复数据的管理方法及管理系统
CN105939315A (zh) 一种http攻击防护方法及装置
CN116094786A (zh) 基于双因子防护的数据处理方法、系统、装置及存储介质
CN113179230B (zh) 一种数据采集方法及装置
CN115118504A (zh) 知识库更新方法、装置、电子设备及存储介质
CN115348011B (zh) 一种密钥处理方法、装置、电子设备和可读存储介质
CN115086069B (zh) 一种DDoS攻击识别方法及装置

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