重放攻击的基本原理就是把以前窃听到的数据原封不动地重新发送给接收方。很多时候,网络上传输的数据是加密过的,此时窃听者无法得到数据的准确意义。但如果他知道这些数据的作用,就可以在不知道数据内容的情况下通过再次发送这些数据达到愚弄接收端的目的。例如,有的系统会将鉴别信息进行简单加密后进行传输,这时攻击者虽然无法窃听密码,但他们却可以首先截取加密后的口令然后将其重放,从而利用这种方式进行有效的攻击。再比如,假设网上存款系统中,一条消息表示用户支取了一笔存款,攻击者完全可以多次发送这条消息而偷窃存款。

在开发中,为了防止信息被窃取之后被第三方重放,来攻击远程服务器,我通常会在数据报中加入时间戳,服务器端解密数据后,首先取出时间戳,判断信息是否已过期,如果数据中携带的时间戳与服务器当前时间戳之间不在安全区,则认为此次发送的数据为过期数据,服务器可将其丢弃,拒绝服务。

当然不止这一种,还有其他的方法:

1,加随机数:双方只需要记住各自使用过的随机数,不能有重复数,如果报文中有以前使用过的随机数,则被认为是重放攻击优点:双方不需要保持时间的同步,缺点:需要额外保存使用过的随机数,则需要保存和查询开销2,加时间戳:时戳——代表当前时刻的数而重放的时戳将相对远离当前时刻优点:不需要内存开销缺点:通信各方的计算机时钟必须保持同步(同步越好,受攻击的可能性越小)3,加流水号:双方在报文中添加一个逐步递增的整数,则只要收到一个不连续的流水号报文(太大或者太小)就认为有重放威胁优点:不需要时间同步,保存的信息量小缺点:攻击者如果对报文解密成功,就获得了流水号进而会伪造数据

开发中如何防范重放攻击相关推荐

  1. 服务器开发中网络数据分析与故障排查经验

    接下来我们先讨论一下这些网络接口函数的使用注意事项: 1.以上函数如果调用出错后,返回值均为-1;但是返回值是-1,不一定代表出错,这还得根据对应的套接字模式(阻塞与非阻塞模式). 2.默认使用的so ...

  2. php开发中常用函数总结,PHP开发中常用函数总结

    PHP开发中常用函数总结 发布于 2014-10-31 08:34:03 | 48 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Preproc ...

  3. 网站开发中敏感信息加密

    系统总是有打不完的补丁和漏洞,你会是下一个黑客攻击的目标吗?还在为网站数据泄露的防范绞尽脑汁?或者您还在找寻更靠谱的数据加密解决方案?通过这门精心设计的在线课程+动手实验,您可以轻松Get到这些技能. ...

  4. 你了解Java应用开发中的注入攻击吗?

    第31讲 | 你了解Java应用开发中的注入攻击吗? 安全是软件开发领域永远的主题之一,随着新技术浪潮的兴起,安全的重要性愈发凸显出来,对于金融等行业,甚至可以说安全是企业的生命线.不论是移动设备.普 ...

  5. java ee有哪些工具_JavaEE开发中最常用到的技术和工具汇总

    原标题:JavaEE开发中最常用到的技术和工具汇总 今天千锋广州小编给大家来介绍一下关于目前JavaEE开发中最常用到的技术和工具的介绍,下面我们一起来看一下吧. 项目管理:Ant,项目管理事实上的标 ...

  6. 分享.NET开发中经常使用到的代码片段 完全从实际项目中提取出来,也可被反反复复的重复借用...

    几年前,一篇<ASP.NET开发人员经常使用的三十三种代码>非常流行,它总结了一些经常在ASP.NET开发中使用到的代码,直接可以拿来使用.今天重读这篇文章,有感而发,善于总结也是进步,于 ...

  7. 前端开发中的性能那点事

     前端开发中的性能那点事(一)巧用xdebug 前言: 在我们平时的php开发中,一个大的项目经过长时间的积累以后你会发现性能越来越慢,而性能到底消耗在了什么地方,常常是一个令人头疼的问题,funct ...

  8. ASP.NET中如何防范SQL注入式攻击

    1将sql中使用的一些特殊符号,如' -- /* ; %等用Replace()过滤: 2限制文本框输入字符的长度: 3检查用户输入的合法性:客户端与服务器端都要执行,可以使用正则. 4使用带参数的SQ ...

  9. 开发中新游戏《庞加莱》

    三体题材的游戏,表现三体人在三体星上生活和冒险. 收集水和物器,躲避火焰与巨日,探索遗迹并与巨型生物战斗. 温度会因太阳位置不同而发生变化,进而对环境产生一定影响. 游戏开发中. ---- 2017- ...

最新文章

  1. Objective-C市场占有率排名升至第4位
  2. delphi 数据 上移 下移_脑图-数据库查询优化器的艺术
  3. ASP.NET Web API 提升性能的方法实践
  4. 计算机网络基础系列(二)计算机网络体系结构
  5. Wpf从资源中重用UI元素
  6. ansible安装包和管理 playbook相关
  7. Debian 配置Bind9 DNS服务器
  8. php导出指定格式excel,php导出excel格式文件的例子
  9. vmpalyer虚拟机的使用教程,小白也能看懂
  10. 虚拟现实计算机理论文献,虚拟现实在计算机教学中的应用研究
  11. 鸡年生的男宝宝取什么名字好?为宝宝起名也有小技巧
  12. 在 OpenBSD 系统下的安装PHP
  13. Teams Tab App 分析
  14. 4.请编写一个函数void fun(char *tt,int pp[]),统计在tt字符串中“a”到“z”26个字母各自出现的次数,并依次放在pp所指数组中。
  15. 关于win10“你未连接到任何网络“解决方法
  16. Phonetic symbol 辅音 - 清辅音 -- /ʃ/
  17. 6.3 GitHub - 维护项目
  18. 仿果壳网手机登陆界面源代码
  19. flex布局之flex-direction
  20. 亚信全面回归电信业务 华为可能有意收购

热门文章

  1. Operand should contain 1 column(s)
  2. 如何将zTree选中节点传递给后台
  3. IOCTL函数用法详解
  4. deep nostalgia怎么用?Deep nostalgia操作方法步骤(图文教程)
  5. 《Unity游戏优化》笔记(11)[21/03/08_周一][126_132]
  6. 连接coding以及恢复之前的版本
  7. STM32F7的中文参考手册
  8. 今晚“亚洲杯”---中国 VS 日本 期待中国干掉小日本!同时也相信是这样的结果!
  9. linux电脑屏幕不停的闪,电脑屏幕为什么闪烁不停?台式电脑屏幕总闪烁的几种解决方法...
  10. python完全数的做法_python编程求10000以内的完全数