一种基于两阶段工作量证明的防攻击方法技术

技术编号:38829236 阅读:17 留言:0更新日期:2023-09-15 20:08
本发明专利技术公开了一种基于两阶段工作量证明的防攻击方法,其包括以下步骤:设定第一难度系数D1;基于第一难度系数D1和请求方生成的消息体msgl和数字n1判断请求方第一阶段工作量是否有效,若无效则拒绝向请求方提供服务,若有效则根据系统负载动态调整第二阶段的工作量证明难度,要求请求方进行第二阶段的工作量证明,当请求方通过第二阶段的工作量证明后向其提供相应服务。本方法避免了请求方通过大量垃圾请求和垃圾信息对服务方的攻击,提高了系统的安全性,改善了用户体验、优化了资源分配,并增强了系统的可扩展性。并增强了系统的可扩展性。并增强了系统的可扩展性。

【技术实现步骤摘要】
一种基于两阶段工作量证明的防攻击方法


[0001]本专利技术涉及网络安全领域,具体涉及一种基于两阶段工作量证明的防攻击方法。

技术介绍

[0002]在网络服务中,服务方为请求方提供各种网络服务或接收邮件,服务方需要确保自己的系统在面对恶意请求和攻击时具有一定的防御能力,以维护系统的稳定性和安全性。攻击者通常会伪装成请求方通过发送大量垃圾请求或信息,给服务方造成负担,甚至在某些时候导致正常的服务请求无法被响应。因此为了使请求方能够快速、安全地访问所需的服务,避免服务方被恶意攻击,需要针对性的建立防攻击机制。

技术实现思路

[0003]针对现有技术中的上述不足,本专利技术提供的一种基于两阶段工作量证明的防攻击方法可以有效防止垃圾请求和垃圾信息攻击。
[0004]为了达到上述专利技术目的,本专利技术采用的技术方案为:
[0005]提供一种基于两阶段工作量证明的防攻击方法,其包括以下步骤:
[0006]S1、设定第一难度系数D1;
[0007]S2、获取请求方生成的消息体msgl和数字n1;其中消息体msgl包含请求方身份信息、服务方身份信息、时间戳和请求服务类型;
[0008]S3、计算并判断hash(msg1+n1)<D1是否成立,若是则认定请求方第一阶段工作量有效,并进入步骤S4;否则拒绝向请求方提供服务;
[0009]S4、根据msgl中的请求服务类型和当前负载情况计算第二难度系数D2,并将第二难度系数D2发送至请求方;
[0010]S5、判断在设定时间内是否接收到请求方返回的请求信息request_message和数字n2,若是则进入步骤S6;否则判定无第二阶段工作量,作废当前的第二难度系数D2;其中请求信息request_message包括请求的时间和请求服务类型;
[0011]S6、计算并判断hash(request_message+n1+n2)<D2是否成立,若是则向请求方提供相应的服务;否则拒绝向请求方提供服务。
[0012]进一步地,步骤S2中数字n1的获取方法为:
[0013]响应于第一难度系数D1,请求方从0开始以逐步递增的方式选取一个数字n1,直至hash(msg1+n1)<D1成立,并将此时的msgl和n1发送至服务方;其中hash为哈希函数,包括sha256和sha512。
[0014]进一步地,步骤S4中计算第二难度系数D2的具体方法为:
[0015]基于当前的系统负载,通过线性回归模型预测下一时间段的系统负载L_predicted(t_next);根据公式:
[0016]D2=D_base+α*L_predicted(t_next)+γ*cost(request_type)
[0017]获取第二难度系数D2;其中D_base为预设常数;α为负载影响因子;γ为请求的服
务代价因子;cost(request_type)表示请求服务类型的成本。
[0018]本专利技术的有益效果为:本专利技术通过第一难度系数使请求方进行工作量证明,然后根据系统负载动态调整第二阶段的工作量证明难度,避免了请求方通过大量垃圾请求和垃圾信息对服务方的攻击,提高了系统的安全性,改善了用户体验、优化了资源分配,并增强了系统的可扩展性。
附图说明
[0019]图1为本方法的流程示意图。
具体实施方式
[0020]下面对本专利技术的具体实施方式进行描述,以便于本
的技术人员理解本专利技术,但应该清楚,本专利技术不限于具体实施方式的范围,对本
的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本专利技术的精神和范围内,这些变化是显而易见的,一切利用本专利技术构思的专利技术创造均在保护之列。
[0021]如图1所示,该基于两阶段工作量证明的防攻击方法包括以下步骤:
[0022]S1、设定第一难度系数D1;
[0023]S2、获取请求方生成的消息体msgl和数字n1;其中消息体msgl包含请求方身份信息、服务方身份信息、时间戳和请求服务类型;
[0024]S3、计算并判断hash(msg1+n1)<D1是否成立,若是则认定请求方第一阶段工作量有效,并进入步骤S4;否则拒绝向请求方提供服务;
[0025]S4、根据msgl中的请求服务类型和当前负载情况计算第二难度系数D2,并将第二难度系数D2发送至请求方;
[0026]S5、判断在设定时间内是否接收到请求方返回的请求信息request_message和数字n2,若是则进入步骤S6;否则判定无第二阶段工作量,作废当前的第二难度系数D2;其中请求信息request_message包括请求的时间和请求服务类型;
[0027]S6、计算并判断hash(request_message+n1+n2)<D2是否成立,若是则判定第二阶段工作量有效,并向请求方提供相应的服务;否则拒绝向请求方提供服务。
[0028]步骤S2中数字n1的获取方法为:响应于第一难度系数D1,请求方从0开始以逐步递增的方式选取一个数字n1,直至hash(msg1+n1)<D1成立,并将此时的msgl和n1发送至服务方;其中Hash()是一个公开的哈希函数,包括sha256和sha512。
[0029]步骤S4中计算第二难度系数D2的具体方法为:基于当前的系统负载,通过线性回归模型预测下一时间段的系统负载L_predicted(t_next);根据公式:
[0030]D2=D_base+α*L_predicted(t_next)+γ*cost(request_type)
[0031]获取第二难度系数D2;其中D_base为预设常数;α为负载影响因子;γ为请求的服务代价因子;cost(request_type)表示请求服务类型的成本。
[0032]在具体实施过程中,请求方收到返回的难度系数后,如果他认为收到的第二阶段的难度系数(即第二难度系数D2)过高,不值得继续,可以放弃访问。具体设计上,请求方的客户端软件上,用户可以设置可以缺省接受的难度系数D。如果D大于D2,则软件自动进入第二阶段。如果D小于D2,则通过用户界面询问用户,是否接受这个计算量的工作量证明(可附
带预期的平均计算代价)。如果用户接受,则进入第二阶段,否则放弃。这种机制不仅可以对恶意攻击者发起拒绝服务攻击带来巨大的代价,也可以让服务提供者在负载紧张的时候,通过高难度系数的工作量证明要求,抑制一部分非必要访问需求,从而提高系统的可用性。
[0033]在认定请求方第一阶段工作量有效后,服务方将在第二阶段,根据请求类型所消耗的代价和自身的负载情况,要求进一步完成一个动态工作量证明。也就是说,如果服务方自身负载紧张,则要求请求方完成更高的工作量证明。如果负载宽松,则要求降低。与此同时,工作量证明也与务请求类型所消耗的代价成正比,以避免非对称拒绝服务攻击。如此,可提本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于两阶段工作量证明的防攻击方法,其特征在于,包括以下步骤:S1、设定第一难度系数D1;S2、获取请求方生成的消息体msgl和数字n1;其中消息体msgl包含请求方身份信息、服务方身份信息、时间戳和请求服务类型;S3、计算并判断hash(msg1+n1)<D1是否成立,若是则认定请求方第一阶段工作量有效,并进入步骤S4;否则拒绝向请求方提供服务;S4、根据msgl中的请求服务类型和当前负载情况计算第二难度系数D2,并将第二难度系数D2发送至请求方;S5、判断在设定时间内是否接收到请求方返回的请求信息request_message和数字n2,若是则进入步骤S6;否则判定无第二阶段工作量,作废当前的第二难度系数D2;其中请求信息request_message包括请求的时间和请求服务类型;S6、计算并判断hash(request_message+n1+n2)<D2是否成立,若是则向请求方提供相应的服务;...

【专利技术属性】
技术研发人员:罗旭斌刘家芬
申请(专利权)人:西南财经大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1