论坛登陆  注册 文章专区 投稿文章 旧版浏览 
首页 | 页界资讯 | 安全动态 | 网络应用 | 组网技术 | 软件应用 | 工具软件 | 网管知识 | 帮助
文学 | 操作系统 | 注 册 表 | 编程语言 | 数 据 库 | 服 务 器 | 网页设计 | 图形图象 | VIP
论坛 | 网络安全 | 安全防范 | 黑客技术 | 硬件学堂 | 路由技术 | 搜索研究 | 站长经验 | 投稿
专题 | 教育频道 | 特色专题 | 精文荟萃 | 聊天通讯 | 网络文学 | 书籍下载 | 广告服务 | 旧版
设为首页 加入收藏
当前位置:首页>>文章>>网络安全>>安全防范>>正文

网络安全讲座之七:攻击与渗透(6)

Www.Xker.Com 作者:未知  来源:网络转载  加入日期:2005-10-29 2:58:52
  其它一些方法

  构造TCP ISN生成器的一些更直接的方法是:简单地选取一些随机数作为ISN。这就是给定一个32位的空间,指定 ISN = R(t)。(假设R()是完全的非伪随机数生成函数)

  固然,对于完全随机的ISN值,攻击者猜测到的可能性是1/232是,随之带来的一个问题是ISN空间里面的值的互相重复。这违反了许多RFC(RFC 793, RFC 1185, RFC 1323, RFC1948等)的假设----ISN单调增加。这将对TCP协议的稳定性和可靠性带来不可预计的问题。

  其它一些由Niels Provos(来自OpenBSD 组织)结合完全随机方法和RFC 1948解决方案:

  ISN = ((PRNG(t)) << 16) + R(t)     32位

  其中

  PRNG(t) :一组随机指定的连续的16位数字  0x00000000 -- 0xffff0000

  R(t) :16位随机数生成器(它的高位msb设成0)0x00000000 -- 0x0000ffff

  上面的公式被用于设计OpenBsd的ISN生成器,相关的源代码可以从下面的网址获得

http://www.openbsd.org/cgi-bin/cvsweb/src/sys/netinet/tcp_subr.c

  Provos的实现方法有效地生成了一组在给定时间内的不会重复的ISN的值,每两个ISN值都至少相差32K,这不但避免了随机方法造成的ISN的值的冲突,而且避免了因为哈希函数计算带来的性能上的下降,但是,它太依赖于系统时钟,一旦系统时钟状态给攻击者知道了,就存在着系统的全局ISN状态泄密的危机。

  TCP ISN生成器的构造方法的安全性评估

  ISN与PRNGs(伪随机数生成器)

  我们很难用一台计算机去生成一些不可预测的数字,因为,计算机被设计成一种以重复和准确的方式去执行一套指令的机器。所以,每个固定的算法都可以在其他机器上生成同样的结果。如果能够推断远程主机的内部状态,攻击者就可以预测它的输出;即使不知道远程主机的PNRG函数,但因为算法最终会使ISN回绕,按一定的规律重复生成以前的ISN,所以,攻击者仍然可以推断ISN。幸运的是,目前条件下,ISN的重复可以延长到几个月甚至几年。但是,仍然有部分PRNG生成器在产生500个元素后就开始回绕。解决伪随机数的方法是引入外部随机源,击键延时,I/O中断,或者其它对攻击者来说不可预知的参数。把这种方法和一个合理的HASH函数结合起来,就可以产生出32位的不可预知的TCP ISN的值,同时又隐蔽了主机的PNRG的内部状态。不幸的是,很少的TCP ISN产生器是按这种思路去设计的,但即使是这样设计的产生器,也会有很多的实现上的漏洞使这个产生器产生的ISN具有可猜测性。

  RFC1948的建议提供了一种比较完善的方法,但是,对攻击者来说,ISN仍然存在着可分析性和猜测性。其中,PRNG的实现是个很关键的地方。

  Spoofing 集合

  需要知道一点是,如果我们有足够的能力能够同时可以发出232个包,每个包由不同的ISN值,那么,猜中ISN的可能性是100%。但是,无论从带宽或计算机的速度来说都是不实际的。但是,我们仍然可以发大量的包去增加命中的几率,我们把这个发出的攻击包的集合称为Spoofing集合。通常,从计算机速度和网络数据上传速率两方面来考虑,含5000个包的Spoofing的集合对众多的网络用户是没有问题的,5000-60000个包的Spoofing集合对宽带网的用户也是不成问题的,大于60000个包的Spoofing集合则超出一般攻击者的能力。网络的速度和计算机性能的不断增加会提高那种使用穷尽攻击方法猜测ISN的成功率。从攻击者的立场,当然希望能够通过定制一个尽可能小的Spoofing集合,而命中的几率又尽可能高。我们假定我们攻击前先收集50000个包作为ISN值的采样,然后,我们把这些ISN用作对将来的ISN的值猜测的依据。

  一种称为“delay coordinates”的分析方法

  在动态系统和非线性系统中,经常使用一种叫做“delay coordinates”的分析法,这种方法使我们可以通过对以前的数据的采样分析来推想以后的数据。

  我们试图以建立一个三维空间(x,y,z)来观察ISN值(seq[t])的变化,其中t取0,1,2, ……



(图6)

  方程组(E1)

  现在,对采样了的50000个ISN序列seq[t] 按照上面的三个方程式来构建空间模型A。这样,就可以通过A的图像特征来分析这个PNRG生成的ISN值的规律。A呈现的空间模型的3D特性越强,它的可分析性就越好。

  接着,我们根据这个模型,去分析下一个ISN值seq[t],为此,我们用一个集合K(5000个)去猜测seq[t]。

  如果我们知道seq[t-1],要求seq[t],那么,可以通过在这个三维空间中找出一个有良好特性的节点P(x,y,z),将P.x+seq[t-1],我们就可以得到seq[t]。现在,我们将注意力放到怎样在这个三维空间中选择一些点来构成Spoofing集合,也就是怎样通过seq[t-1],seq[t-2],sea[t-3]来推知seq[t]。

  由于seq[t-1],seq[t-2],seq[t-3]都可以很容易地在远程主机上探测到,于是,P.y和P.z可以通过以下的公式求出



(图7)

  而对于P.x=seq[t]-seq[t-1], 由于seq[t-1]已知,所以,我们可以把它当作是空间的一条直线。如果,在对以前的ISN的采样,通过上面提到的构成的空间模型A呈现某种很强的特征,我们就可以大胆地假设,seq[t]在直线与A的交点上,或者在交点的附近。这样,seq[t]就这样确定了,于是,seq[t+1],seq[t+2]……,我们都可以推断出来。



(图8)

  于是,我们大致将构造Spoofing集合分成3个步骤: 

  先选取L与A交点之间的所有点。如果,L与A没有交点,我们则选取离L最近的A的部分点。

  假设现在 seq[t-1]=25

   seq[t-2]=50

   seq[t-3]=88

   于是,我们可以计算出

   y = seq[t-1] - seq[t-2]=25

   z = seq[t-2] - seq[t-3]=33

  而我们在集合A中找不到满足y=25,z=33这个点,但是,我们找到y=24,z=34和y=27,z=35这两个点,所以,我们要把它们加入Spoofing集合。

  我们按照上面的方法,把在A附近(半径<=R1的空间范围内)点集M找出来,然后,我们根据这些点的相应的x值去推导相应的seq[t](按照一定的算法,后面会提到),于是,我们就得到很多的seq[t]。

  根据点集M(j),我们在一定的变化浮动范围U里(-R2<=U<=+R2)处理其x值,得出以下的集合K:

  M(j).x+1 M(j).x-1 M(j).x+2 M(j).x-2 M(j).x+3 M(j).x-3 …… M(j).x+R2 M(j)-R2

  接着我们确定R1和R2的值

      R1值的选取的原则:使M不为空集,一般为1-500个。

      R2值的选取的原则:使K的个数为5000。

   对TCP ISN的PRNG分析的总体流程:



(图9)

  相关系数的意义:

  R1 radius: 影响搜索速度。

  R2 radius: 影响猜测ISN的成功率, R2越大,成功率越高,但代价越大。

  Average error: 反映了在3.3.2中找出的点集的平均距离。一个过分大的平均距离是不需要的。可以通过是否有足够的正确的猜测值来计算Average error。


关闭窗口】【浏览次数:】【发送给好友】【收藏此页
相关文章 最新文章 热门文章

·我们也玩Longhorn个性工具栏
·精确壁纸的具体位置
·把USB的门口守好
·系统急救从多重启动菜单开始
·资源管理器中的“瑞士军刀”
·老系统如何实现自动关机
·让你的电脑全速运行
·点声音时是机箱内的喇叭在响的解决方
·征服系统启动故障,你行吗
·教你巧妙剖析日志文件
·使用Honeypots同Internet蠕虫作斗争
·2005年度主流聊天工具横评
·由神秘到简单 教你在网页中添加微软地
·只需三步!闪盘立刻变成启动盘
·安全防护知识 ——端口扫描技术全攻略
·以太网技术大全(1)
·由神秘到简单 教你在网页中添加微软地
·继李开复之后 微软高官相继辞职
·网上保障个人隐私信息的十个基本常识
·IP策略:一夫当关,万夫莫Ping
评论 本站声明
【注】 发表评论必需遵守以下条例:
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
  • 本站大部分为网络转载,如有版权问题,请通知我们,我们立即更正!

设为首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003-2005 xker.com All rights reserved. 网站合作、广告联系QQ:12231446
小新技术网 冀ICP备05002857号