防重放攻击实现

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 防重放攻击实现

本文为博主原创,未经允许不得转载

1.防重放攻击:请求被攻击者获取,并重新发送给认证服务器,从而达到认证通过的目的。

2。解决方案:

 a. 基于timestamp防止重放攻击

       每次 http 请求时,都添加 timestamp 时间戳的参数,服务端接收到请求时,解析 timestamp 值,并与当前时间进行比较,判断是否超过60s,

  如果超过60s 则丢弃该请求。

 b. 基于nonce值得防重放攻击

    每次http请求时,都添加 一个固定长度的随机数或请求ip加随机数进行hash生成的字符串,服务端在接受到请求的时候,解析请求的nonce值,并将nonce值存于数据库或缓存中,

  当请求时,判断数据库或缓存中是否存在该nonce值,如果存在则丢弃该请求。 此时,使用nonce值,在 http 请求时,nonce值可以保证请求的唯一性。

 c .基于timstamp和nonce值防止重放攻击

      单纯基于 timestamp 进行防重放攻击也会存在风险,如果请求被中间人或是黑客获取,且请求的时间戳与当前时间比较时,仍小于60s 时,此时则

  不能进行防重放攻击。

    单纯使用nonce值时,需要服务端不断地保存nonce值,则会导致数据库保存大量的nonce值,影响效率。

    基于以上两种情况,则将两者结合一起使用,nonce值可以保证请求的唯一性,timestamp可以保证请求的时效性。并将保存于数据库或缓存中的nonce值,

  每隔60s清除一次或将缓存中的nonce值时效时间设置为60s。这样就可以减少nonce值对数据库的压力,提高性能。

 

3. 使用证书(公钥与私钥),timestamp 与nonce值进行防重放与防篡改  

  以上请求中nonce值或时间戳等值,若都使用明文传输,会存在被中间人或黑客截取,再次发起请求的风险。

  很多需要进行防重放攻击的场景则都需要保证很高的安全性,所以在整个过程中,可以使用证书进行数据签名,保证请求不被篡改。

  使用证书的公钥与私钥保证请求参数以及timestamp与nonce值不被篡改的方案有两种:

    第一种方案:(客户端使用公钥对数据加密,服务端私钥解密,校验数据的有效性)

      1.客户端向服务端发起https请求

      2.服务端接受到请求后,生成公钥和私钥,公钥相当于锁,私钥相当于钥匙,只有私钥才能打开公钥的内容

      3.服务端返回客户端公钥。

      4.客户端接受到公钥,并解析公钥的有效性,比如颁发者,到期时间等,如果解析异常,则提示证书错误,并进行证书更新。

        客户端解析公钥ok后,对请求体进行加密(此时可将timestamp与nonce值在请求体中进行传输),并传输给服务端

      5.服务端解析客户端传过来的数据,并进行解析,并找到保存于服务端的私钥,对该请求体进行解密,并解析出timestamp 与

        nonce值,此时判断两个值得有效性,如果在使用服务端私钥进行解密处理异常时,则提示请求非法。


    第二种方案:(客户端使用私钥签名,服务端使用公钥验签,校验数据的有效性)

      1.客户端向服务端发起https请求

      2.服务端接受到请求后,生成公钥和私钥,公钥相当于锁,私钥相当于钥匙,只有私钥才能打开公钥的内容

      3.服务端返回客户端私钥

      4.客户端使用私钥对请求进行签名(签名的格式可以将HTTP请求头与请求体按按照一定格式进行签名:String signStr = header+&+body),

        并使用authorition 字段以请求头的方式,将签名的数据传到服务端

      5.服务端解析对应的请求,解析出请求头与请求body,拼接签名的原始格式:String signStr = header+&+body,服务端并解析出该请求私钥

        对应的公钥。用公钥验签,判断数据是否被篡改,验签通过后,解析出nonce 值与timestamp值,进行防重放的校验


  使用公钥验签与私钥解密的方式可以参考这篇文章:

     RSA 加密,解密,签名,验签

  

 

标签: 高并发

目录
相关文章
|
6月前
|
安全 数据库 数据安全/隐私保护
撞库攻击是什么?如何有效阻止撞库攻击?
通过采取这些防护措施,可以有效降低撞库攻击的成功几率,保护用户的账户和数据安全。
284 0
撞库攻击是什么?如何有效阻止撞库攻击?
|
监控 安全 网络协议
防护手法
一、检查系统账号安全 1、查看服务器是否有弱口令,远程管理端口是否对公网开放。 检查方法:据实际情况咨询相关服务器管理员。 2、查看服务器是否存在可疑账号、新增账号。 检查方法:打开 cmd 窗口,输入 lusrmgr.msc 命令,查看是否有新增/可疑的账号,如有管理员群组的(Administrators)里的新增账户,如有,请立即禁用或删除掉。 3、查看服务器是否存在隐藏账号、克隆账号。
|
安全 数据安全/隐私保护
网站被入侵代码被篡改怎么办
网站被篡改到底有多严重,我们公司网站前段时间被人入侵,并且篡改了我们的代码,导致我们网站所有的页面都变成BC广告,导致现在页面持是不收录,每天编辑都在更新文章,结果还是停歇到前段时间被黑的那种页面,如果我们的网站迟迟没发现被篡改的话,甚至不会处理或者再次被反复篡改的话,那么就有可能导致蜘蛛再来抓取我们的网站页面的时候,还是这种非正规行业,从而多次出现这种情况,就会给我们网站进行进行降权,并且k站,我们该如何防御这种被篡改的方式的能够入侵到我们网站,获取到了我们的权限,才会出现这种情况。
356 0
网站被入侵代码被篡改怎么办
|
监控 安全 网络协议
网站防黑客攻击的建议
安全是网站的重要组成部分。在当今互联网信息时代,网站建设是一件非常普遍的事情,黑客的攻击是无所不在。但是网络黑客对网站的攻击让很多企业头疼,所以网站的安全部分要多加注意。企业网站建设的基础是网络,没有网络我们网站建设毫无意义,但对于网络,如果我们不能做好安全保护,会给企业带来不必要的麻烦,那么如何建立更好的网络安全系统呢?今天,SINE安全技术将带您了解这些知识。
184 0
网站防黑客攻击的建议
|
监控 安全 网络安全
APP安全防护防黑客攻击的手法介绍
在当今数字时代,移动应用的数量呈爆炸性增长,涵盖金融、电子商务、社区、医疗、房地产、工业等各行各业。在给人类带来便利的同时,也给黑客带来了可乘之机,移动黑产也越来越强大,他们的重点是从传统的PC网站转移到移动互联网的战场。尽管国内近五年互联网安全行业发展迅速,优秀的安全防护产品层出不穷,但黑客攻击手段也日益变化,想从根本上解决互联网安全问题,目前无从下手。
391 0
APP安全防护防黑客攻击的手法介绍
|
存储 安全 数据库
网站防入侵之数据库安全设计
伴随着网站系统中数据库的应用和计算机网络的迅速发展,网站系统中数据的安全保密问题日益突出。网页系统的安全性对人们保护个人资料、个人隐私等方面具有重要意义。
400 0
网站防入侵之数据库安全设计
|
云安全 运维 安全
网站服务器防攻击之堡垒机安全防护
堡垒机是一个提供服务器和网络安全控制的系统,可以实现对4A运行资源的全面安全控制。本系统包含了用户管理、资源管理、策略、审核和工单等功能模块,支持安全控制和保护一些常用的服务器主机以及一些环境。该系统是集统一资产管理和单点登录、多终端访问协议、文件传输功能于一体的运行安全管理和审计产品。
337 0
网站服务器防攻击之堡垒机安全防护
|
安全 前端开发 网络安全
当网站被篡改 该如何加强网站的安全防护
企业网站遭受到攻击,首页文件被篡改,在百度的快照也被劫持跳转到其他网站上,企业网站首先要做的就是网站的安全防护,然而很多企业并不懂的构建网站安全防护,在安全方面需要找专业的网站安全公司来进行网站的防护。今天我们SINE安全跟大家聊聊,该如何去做网站的安全防护。
281 0
当网站被篡改 该如何加强网站的安全防护
|
安全 网络安全 数据安全/隐私保护
网络钓鱼这样“防”
所有人都觉得自己不会成为网络钓鱼攻击的受害者,然而,事实果真如此吗? 现如今,网络钓鱼攻击早已被认定为是公司和个人面临的最常见的安全威胁之一,这绝不是空穴来风。
472 0
网络钓鱼这样“防”
|
域名解析 网络协议 安全
流量劫持与防范
流量劫持现象在国内十分猖獗,6家国内顶级互联网公司呼吁有关运营商严格打击流量劫持问题。流量劫持分为域名劫持和内容篡改两类,通过HTTPDNS产品和内容HTTPS加密可以基本解决这两类问题。
553 0