RFC1323 timestamp PAWS的实现陷阱

原文转自:http://blog.chinaunix.net/uid-20225489-id-3066379.html

在RFC1323中关于使用timestamp选项达到PAWS功能中,存在着一个可能的问题:防止PAWS的机制,多多少少自身也容易受到wraparound的攻击(也可以说成溢出,与wraparound说的是一个意思,但wraparound应该准确,实际上并不是一个32位的数值达到0xFFFFFFFF之后,下一个变成了0,而是一个数A,另外一个数B,并且初始情况下B>A,但是当不停地给B加1的时候,突然之间,B<a了,这时,我们就说wraparound)。
 
系统由于受到一些限制,对于定时器及其它一些类似的操作,为了避免受到用户修改(或者NTP之类的协议)的影响,总是选择一个不是日历时间的机制来衡量。大多数系统选择了tick这样一个工具,而32系统的tick却很容易wraparound(hz这1000的系统,将在24.8天之后wraparound,普遍采用的hz为100的系统,则会在248天之后也wraparound了,这虽然听起来象是一个很长的时间,但是对于一些电信级的产品,轻松就容易跨过这个坎)。用于防止timestamp的机制刚好也是这样,包括vxworks与BSD系统都存在这样的问题,所以在这样的系统上,用于防止timestamp的wraparound的机制同样可能wraparound。
原文地址:https://www.cnblogs.com/redsmith/p/5467875.html