况,在一个路由回路中的数据包最终跳出了循环,回到了“旧有”的连接(此时其实是不同于前者的现有连接),显然会发生对现有连接的干扰。 假设一个入侵者X有一种方法,能预测ISN S。在这种情况下,他可能将下列序号送给主机T来模拟客户的真正的ISN S: X---S: SYN(ISN X ) ,SRC = T S---T: SYN(ISN S ) ,ACK(ISN X ) X---S: ACK(ISN S ) ,SRC =T 尽管消息S*T并不到X,但是X能知道它的内容,因此能发送数据。如果X要对一个连接实施攻击,这个连接允许执行命令,那么另外的命令也能执行。 那么怎样产生随机的ISN?在Berkeley系统,最初的序列号变量由一个常数每秒加一产生,等到这个常数一半时,就开始一次连接。这样,如果开始了一个合法连接,并观察到一个ISN S在用,便可以计算,有很高可信度,ISN S 用在下一个连接企图。 Morris 指出,回复消息 S---T:SYN(ISN S ) ,ACK(ISN X ) 事实上并不消失,真正主机将收到它,并试图重新连接。这并不是一个严重的障碍。 Morris发现,通过模仿一个在T上的端口,页码:[1] [2] [3] [4] [5] [6] [7] [8] 第6页、共8页 |