回复:[严重警告] 从现在开始不要看MDK的帖子,并安装弹出窗口杀除器....MDK居然
以下引用zhangmdk在2004-10-9 10:37:49的发言:
签名的确是用来保证数据完整性的,但是我们开始的确在讨论算法如何防止破解与数据伪造方面的内容,这就是算法的安全性了…… = =
以你的例子,那么提交的IP数值是从什么地方提交的呢?是从COOKIE里面提交?还是直接从提交客户端读取? 从COOKIE提交的话,那还是一样的伪造……说白了把你机器里的COOKIE完整COPY过来我就可以用。 从提交客户端读取的话,理论上可以通过修改提交数据包来实现伪造。不过具体的伪造方法貌似需要看程序怎么写了……
而且,这个又涉及到IP段变化后全部COOKIE失效的问题了 - -||| |
看来你的网络开发经验还是太少......居然会说IP是靠cookie提交的......-_-||||||||||||||||||
IP作为建立网络连接的最基本条件,可以说只要有连接建立,就必然有IP参与,获得客户端的IP简直是容易得不能再容易的事情了。打一个浅显的比方: 现今绝大多是电话都开通了来电显示,你打电话给我,我这里自然而然就显示出了你的电话号码,不用你再报给我一个电话号码.....-_-
"但是我们开始的确在讨论算法如何防止破解与数据伪造方面的内容,这就是算法的安全性了"
.....终于明白你的意思了....不过不要乱用术语, 算法的
"安全性"是指算法本身内容的不可知性,对于一个功能就是防止伪造的算法,它的防伪性只能叫做它的
"可靠性".
"理论上可以通过修改提交数据包来实现伪造"
这就是我说的IP欺骗嘛。建议你阅读一下相关的文章,你就会明白这有多么困难了。再给你一个简单的说明,我已经说过IP是网络连接的基本条件,有连接数据的传输几乎都是依赖IP进行的。你的主机C要欺骗主机A让它认为你是主机B,需要做的有两件事:
1. 攻击主机B,使其在你欺骗的时间段内无法相应网络请求
2. 伪造主机B的数据包,发送给主机A
要做到1,2都不容易:
首先1要求你能够有进行DoS主机B的条件,或者有掌握主机B的某个和网络相关,可以利用的漏洞;
其次2则要求你首先能够监听网络,获得A-B之间正在进行的连接的数据包。
接下来你需要分析并修改数据包,更改IP报头并猜测其中的递增量,然后发给主机A。但是,因为你是伪造的主机B,是不可能收到主机A的相关回复包的,也就是说到底是对是错,你也不知道,一切全盲。
不过就算这样,在Internet范围内伪造IP进行HTTP通讯也是不可行的,因为:
1. 从你的主机C到主机A有无数个网关和路由,如果正确配置,他们是不会转发一个可疑的IP包的 (比如你的伪造IP包就可疑,因为其IP报文的源地址不对应其子网内任何一台主机)
2. 以上的过程是在A-B连接已经建立的情况下讨论的,而HTTP协议的连接不会持续进行,特别是浏览论坛这种小文件的请求。也就是说,你必须从头到尾伪造主机B与主机A建立连接,而这,基本是不可能的.... (TCP连接的建立需要3次来回的握手,包含有需要互换的信息,而你的伪造主机B是不可能接受到的)
再次,就算你能够成功的实行IP欺骗.......其性质是和单单偷一个cookie完全不同的. -_- 首先你非法监听网络,然后实行了DoS攻击,最后又涉及了信息欺诈,这就是三重罪.......数罪并罚,足够判你20年不准接触任何电脑设备了.....
"这个又涉及到IP段变化后全部COOKIE失效的问题了"
你的IP段一年变化几次?现在网络发展的趋势就是ISP的大规模化和IP的固定化,等IPv6正式应用以后,全球每一颗沙子都会有一个IP(好像有点夸张,不过不是我原创的,据说有理论计算依据),到时候固定IP就是基本条件了。