防止利用合法数据或篡改合法数据进行网络攻击的方法与流程

文档序号:15358274发布日期:2018-09-05 00:17阅读:1615来源:国知局

本发明涉及网络安全技术领域,特别涉及防止利用合法数据或篡改合法数据进行网络攻击的方法。



背景技术:

随着互联网应用的增多,服务于互联网应用的服务器经常遭受网络攻击者的攻击。其中网络攻击者截取请求数据,利用合法数据或篡改合法数据对服务器进行大量反复的请求,以达到占用服务器和网络资源,影响正常业务访问的方式,是一种非常普遍的攻击手段。该攻击方式简单,且易于分布式攻击,需采取一种高效,容易实现的方式抵御这样的攻击。

hash算法是fips所认证的安全散列算法,能计算出一个数字消息所对应到的长度固定的字符串(又称消息摘要)的算法。若输入的讯息不同,它们对应到不同字串的机率很高;而sha是fips所认证的五种安全杂凑算法。这些算法之所以称作“安全”是基于以下两点(根据官方标准的描述):1、由讯息摘要反推原输入讯息,从计算理论上来说是很困难的。2、想要找到两组不同的讯息对应到相同的讯息摘要,从计算理论上来说也是很困难的。任何对输入讯息的变动,都有很高的机率导致其产生的讯息摘要迥异,因此,本发明的技术方案中将充分运用该算法。



技术实现要素:

本发明的目的是克服上述背景技术中不足,提供防止利用合法数据或篡改合法数据进行网络攻击的方法,通过本发明的技术方案可有效防止网络攻击者利用合法数据或者篡改合法数据对服务器进行反复请求,以防止服务器资源被非法占据而影响正常访问,以达到保护网络和服务器资源的目的。

为了达到上述的技术效果,本发明采取以下技术方案:

防止利用合法数据或篡改合法数据进行网络攻击的方法,包含相互通信连接的终端签名模块、云端验签模块及数据存储模块,其中,数据存储模块将每个业务终端和云端约定的盐值与该终端的标识数据一对一保存,且具体包含以下步骤:

s1.业务终端在进行网络请求前,先由终端签名模块向业务数据中加入时间戳、不重复的随机数及该业务终端与云端约定的盐值,从而生成待签名数据;

s2.终端签名模块再对所述待签名数据进行hash算法,得到hash值;

s3.业务终端访问云端时,将该hash值、业务数据、时间戳、不重复的随机数一同提交云端服务器;

s4.云端验签模块将时间戳与本地时间对比,验证其时间差值是否在规定范围内,并验证hash值是否缓存;

s5.若时间差值未在规定范围内,则向业务终端返回验签失败的提示并结束本次访问,否则将收到的hash值与云端缓存的hash值进行对比;

s6.若收到的hash值已在云端缓存即与云端缓存的hash值相同,则说明该访问请求为重复请求,则向业务终端返回验签失败的提示并结束本次访问,否则,根据该终端的标识数据从数据库中取出对应的盐值;

s7.云端验签模块按终端的方式将收到的业务数据中加入时间戳、不重复的随机数,并与所述步骤s6中取出的盐值相组合得到组合数据,并对该组合数据进行hash算法,得到hash值;

s8.将步骤s7中得到的hash值与终端提交的hash值是否一致;

s9.若一致则通过验证,则云端根据收到的业务数据进行相关业务逻辑工作,同时云端将终端提交的hash值缓存;

若不一致则说明参数被篡改,验证不通过,则向业务终端返回验签失败的提示并结束本次访问;

本发明的技术方案主要采用对请求的业务数据加入时间戳、不重复的随机数,云端和业务终端约定的盐值,然后对上述数据进行hash算法,取得hash值,业务终端访问云端时,时间戳、不重复的随机数、hash值与业务数据一同上传致服务器访问;云端验签模块验证时间戳是否在规定范围内,验证hash值是否缓存,如果时间戳在规定范围内,业务终端上传的hash值未缓存,服务器将访问数据,并将业务终端上传的时间戳,不重复的随机数,以及云端和终端约定的盐值进行hash算法得到hash值,再与业务终端上传的hash值进行对比,一致则通过验证,可进行后续工作,并缓存此次业务终端上传的hash值用于比对后面访问的hash值,如果不一致则拒绝服务请求。

进一步地,所述终端的标识数据为该终端的sn或mac值。

进一步地,所述步骤s3及步骤s7中不重复的随机数为uuid。

进一步地,所述步骤s4中时间差值的规定范围为30s。

本发明与现有技术相比,具有以下的有益效果:

在本发明的技术方案中充分利用了业务数据(用于云端根据业务数据进行相关业务逻辑工作)、时间戳(由终端访问时间服务器或云端时间服务器获取。保障云端与终端时间保持一致)、不重复的随机数(保证每次业务终端发起的请求具有唯一性,不可重复)、终端与云端约定的盐值,并充分利用hash算法,有效防止利用合法数据或篡改合法数据进行攻击;

时间戳参与hash算法,保证了hash值的时间性;不重复的随机数uuid,保证业务终端的请求的唯一性;业务终端与云端约定的盐值,由于不在网络请求中传输,因此攻击者截获请求报文后,也无法获取盐值,篡改请求数据将造成hash值不正确,同时以上参数的组合方式也增加攻击者复原签名数据的难度,最终起到防止网络攻击者截取合法数据或篡改合法数据进行网络攻击的作用,防止服务器资源被非法占据而影响正常访问,以达到保护网络和服务器资源的目的。

附图说明

图1是本发明的方法的流程步骤示意图。

图2是本发明的一个实施例中该方法在一个项目中的部署图。

附图标记:

101-终端签名模块,201-云端验签模块,202-数据存储模块,301-应用服务。

具体实施方式

下面结合本发明的实施例对本发明作进一步的阐述和说明。

实施例:

实施例一:

一种防止利用合法数据或篡改合法数据进行攻击的方法,可用于物联网(ipp)项目,launcher项目等移动端与云端的访问中,如图2所示,本实施例中主要是将其应用于一个在包含由多种应用服务301的物联网项目中。

如图1所示,该防止利用合法数据或篡改合法数据进行攻击的方法,该方法的实现,主要由两个模块实现:终端签名模块101,云端验签模块201,其中,这两个模块分别具有以下作用:

终端签名模块101:主要功能是将业务终端发出的业务数据body加上时间戳timestamp、不重复的随机数、如uuid、终端与云端约定的盐值salt,并将组合成的数据进行hash算法,得到hash值;其中,业务终端与云端约定的盐值salt为不同的业务终端盐值salt不同,该盐值salt为一组随机数,与终端sn或mac一对一对应绑定保存在数据存储模块202中。

终端签名模块101向调用的业务终端提供时间戳timestamp、不重复的随机数uuid、hash值、终端sn或mac,业务终端在进行网络请求时,将这些数据与业务数据一道提交至云端验签模块201。

云端验签模块201:主要功能是接收业务终端发送的业务数据body、hash值、时间戳timestamp、不重复的随机数uuid、终端sn或mac,并进行具体的验签操作。

该防止利用合法数据或篡改合法数据进行攻击的方法主要包含以下步骤:

s1.业务终端在进行网络请求前,先由终端签名模块101向业务数据中加入时间戳、不重复的随机数及该业务终端与云端约定的盐值,从而生成待签名数据;

s2.终端签名模块101再对所述待签名数据进行hash算法,得到hash值;

s3.业务终端访问云端时,将该hash值、业务数据、时间戳、不重复的随机数如uuid,一同提交云端服务器;

s4.云端验签模块201将时间戳与本地时间对比,验证其时间差值是否超过30s,并验证hash值是否缓存;

s5.若时间差值超过30s,则向业务终端返回验签失败的提示并结束本次访问,否则将收到的hash值与云端缓存的hash值进行对比;

s6.若收到的hash值已在云端缓存即与云端缓存的hash值相同,则说明该访问请求为重复请求,则向业务终端返回验签失败的提示并结束本次访问,否则,根据该终端的标识数据即该终端的sn或mac值从数据库中取出对应的盐值;

s7.云端验签模块201按终端的方式将收到的业务数据中加入时间戳、不重复的随机数uuid,并与所述步骤s6中取出的盐值相组合得到组合数据,并对该组合数据进行hash算法,得到hash值;

s8.将步骤s7中得到的hash值与终端提交的hash值是否一致;

s9.若一致则通过验证,则云端根据收到的业务数据进行相关业务逻辑工作,同时云端将终端提交的hash值缓存,其有效期为30s;

若不一致则说明参数被篡改,验证不通过,则向业务终端返回验签失败的提示并结束本次访问。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1