我想知道你是否可以在传输层上面获取伪造IP地址的数据包。 我的想法是:
还有什么要考虑的吗? 我在某处读到ACK或SEQ可以猜到设置了一个欺骗性的TCP会话 – 在现代操作系统上这有多可行?
谢谢
你是正确的重新:UDP。 你将不得不实现自己的协议(使用HMAC来保证真实性等),以防止欺骗基于UDP的协议。
TCP序列号预测在过去是一个可行的攻击。 一些操作系统在允许这些攻击的初始序列号中做出了非常差的select。 攻击者的连接是一种方式,因为具有伪造数据包的真实源地址的计算机将接收被攻击的主机发送的数据stream,但是如果远程主机可能不需要任何东西(即你正在执行只涉及到远程主机的攻击),那么从远程主机返回的缺less接收通道是无关紧要的。
一个有趣的文章,有一些非常相位空间的TCP初始序列号分析图可以在这里find: http : //lcamtuf.coredump.cx/oldtcp/tcpseq.html唉,它是Windows 2000和Linux 2.2时代的数据。 (虽然有一些很酷的图片!)
我还没有意识到任何当前的论文都在研究现代操作系统的TCP初始序列号的生成,但他们可能在那里。 这个行业的趋势是走向更强大的algorithm,我的感觉是,虽然可能有一些embedded式设备已经成熟的攻击,但是大多数主stream操作系统现在使用的algorithm具有足够的随机性,从而防止序列数预测攻击从可行。
如果你的攻击者可以拦截你的TCPstream,那么世界上所有的初始序列号的随机性都不会帮助你。 encryption你的stream量(包装在SSL,IPSEC等),你也解决了这个问题。 (那么你可以担心密钥分配,主机身份validation等等,不要担心 – 那里有更多的问题,我们会做更多的,永远不会用完…> smile <)
考虑一个中间人攻击的情况 ,是一个受到攻击的防火墙或路由器允许TCP会话被设置为具有欺骗性的IP地址。