Web安全实践(14)嗅探,arp欺骗,会话劫持与重放攻击(下)
作者:玄魂
本系列导航http://www.cnblogs.com/xuanhun/archive/2008/10/25/1319523.html
安全技术区http://space.cnblogs.com/group/group_detail.aspx?gid=100566
前言
距离上篇文章已经很长时间了,但是不能留下这个缺憾,所以今天抽时间写了点内容。还是希望更多的高手和朋友参与进web安全的讨论中来。这篇文章重点放在重放攻击的原理解说上。
正文
14.1 什么是重放攻击
所谓重放攻击就是攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程。
攻击者利用网络监听或者其他方式盗取认证凭据,之后再把它重新发给认证服务器。从这个解释上理解,加密可以有效防止会话劫持,但是却防止不了重放攻击。重放攻击任何网络通讯过程中都可能发生。
14.2重放攻击的类型
协议轮内攻击:一个协议轮内消息重放
协议轮外攻击:一个协议不同轮次消息重放
根据消息的去向:
偏转攻击:改变消息的去向
直接攻击:将消息发送给意定接收方
反射攻击:将消息返回给发送者
第三方攻击:将消息发给协议合法通信双方之外的任一方
典型例子:
14.3重放攻击与cookie
我们监听http数据传输的截获的敏感数据大多数就是存放在cookie中的数据。其实在web安全中的通过其他方式(非网络监听)盗取cookie与提交cookie也是一种重放攻击。我们有时候可以轻松的复制别人的cookie直接获得相应的权限。关于cookie,我想应该用单独的一篇文章来说明,在这里就不重复了。
14.4重放攻击的防御方案
(1)时间戳
“时戳”──代表当前时刻的数
基本思想──A接收一个消息当且仅当其包含一个对A而言足够接近当前时刻的时戳
原理──重放的时戳将相对远离当前时刻
时钟要求──通信各方的计算机时钟保持同步
处理方式──设置大小适当的时间窗(间隔),越大越能包容网络传输延时,越小越能防重放攻击
适用性──用于非连接性的对话 (在连接情形下双方时钟若偶然出现不同步,则正确的信息可能会被误判为重放信息而丢弃,而错误的重放信息可能会当作最新信息而接收)
(2)序号
通信双方通过消息中的***来判断消息的新鲜性
要求通信双方必须事先协商一个初始***,并协商递增方法
(3)提问——应答
“现时”──与当前事件有关的一次性随机数N(互不重复即可)
基本做法──期望从B获得消息的A 事先发给B一个现时N,并要求B应答的消息中包含N或f(N),f是A、B预先约定的简单函数
原理──A通过B回复的N或f(N)与自己发出是否一致来判定本次消息是不是重放的
时钟要求──无
适用性──用于连接性的对话
14.5重放攻击演示
本来是做了个演示的,但受到了相关人士的阻拦,这里就不发布了。如果你有相关的实例,可以贡献出来做个补充。
本文转自悬魂博客园博客,原文链接:http://www.cnblogs.com/xuanhun/archive/2009/04/22/1441274.html,如需转载请自行联系原作者