全部博文(930)
分类: LINUX
2010-07-06 15:23:20
什么是重放攻击
所谓重放攻击就是攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程。
攻击者利用网络监听或者其他方式盗取认证凭据,之后再把它重新发给认证服务器。从这个解释上理解,加密可以有效防止会话劫持,但是却防止不了重放攻击。重放攻击任何网络通讯过程中都可能发生。
重放攻击的类型
根据消息的来源:
协议轮内攻击:一个协议轮内消息重放
协议轮外攻击:一个协议不同轮次消息重放
根据消息的去向:
偏转攻击:改变消息的去向
直接攻击:将消息发送给意定接收方
其中偏转攻击分为:
反射攻击:将消息返回给发送者
第三方攻击:将消息发给协议合法通信双方之外的任一方
重放攻击是计算机世界黑客常用的攻击方式之一,它的书面定义对不了解密码学的人来说比较抽象。我就通过一个故事来说明它吧!
/////////////////////////////////////////故事的分割线/////////////////////////////////////////
阿里巴巴和40大盗的故事
人物:
黑客:阿里巴巴
用户:40大盗
系统:宝库
身份认证:石门
故事情节:
话说有一天,40大盗准备把一抢来得珠宝放进他们的宝库里去。
// 用户打算登陆系统
他们来到宝库面前,准备打开石门
// 系统要求身份认证,弹出口令窗口
40大盗的首领对着石门喊道:“芝麻开门”
//用户输入口令“芝麻开门”
不巧这一幕被阿里巴巴看到
//有黑客截获用户的登陆过程
40大盗将宝物放进宝库后,就离开了
//用户退出系统
等40达盗走远后,阿里巴巴来到石门前也大喊“芝麻开门”
//黑客对系统进行了重放攻击
石门打开了,阿里巴巴把宝物都搬回家了
//成功入侵系统
////////////////////////////////////////////////////////////////////////////////////////////////
来源:(http://blog.sina.com.cn/s/blog_62d82c2f0100i79r.html) - 重放攻击及防御方案_samson_新浪博客所谓重放攻击就是攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程。
为了抵御重放攻击,现在的身份认证一般采用挑战因答方式。
计算相应的应答值
这里要注意的是挑战值得熵值必须大(变化量要很大),若挑战值变化量不大,攻击者只需截获足够的挑战应答关系,就可以进行重放攻击了。
典型例子:
重放攻击与cookie
我们监听http数据传输的截获的敏感数据大多数就是存放在cookie中的数据。其实在web安全中的通过其他方式(非网络监听)盗取cookie与提交cookie也是一种重放攻击。我们有时候可以轻松的复制别人的cookie直接获得相应的权限。关于cookie,我想应该用单独的一篇文章来说明,在这里就不重复了。
重放攻击的防御方案
(1)时间戳
“时戳”──代表当前时刻的数
基本思想──A接收一个消息当且仅当其包含一个对A而言足够接近当前时刻的时戳
原理──重放的时戳将相对远离当前时刻
时钟要求──通信各方的计算机时钟保持同步
处理方式──设置大小适当的时间窗(间隔),越大越能包容网络传输延时,越小越能防重放攻击
适用性──用于非连接性的对话(在连接情形下双方时钟若偶然出现不同步,则正确的信息可能会被误判为重放信息而丢弃,而错误的重放信息可能会当作最新信息而接收)
(2)序号
通信双方通过消息中的序列号来判断消息的新鲜性
要求通信双方必须事先协商一个初始序列号,并协商递增方法
“现时”──与当前事件有关的一次性随机数N(互不重复即可)
基本做法──期望从B获得消息的A 事先发给B一个现时N,并要求B应答的消息中包含N或f(N),f是A、B预先约定的简单函数
原理──A通过B回复的N或f(N)与自己发出是否一致来判定本次消息是不是重放的
时钟要求──无
适用性──用于连接性的对话