A topic that Mark and I have been discussing a little, is the algorithms that FreeBSD uses for generating initial TCP sequence numbers - that being with reference to the predictability of these numbers. (Work on this has been somewhere in Mark's todo list for a while.)
This topic raises a few questions: How good, or how bad are the initial sequence numbers that FreeBSD uses? (It seems that we could improve them a little.) How unpredictable do we need to make the sequence numbers? Some testing with nmap shows that Linux is generating sequence numbers that are far more unpredictable than ours are. (Linux is, however, also using a 1MHz clock, as opposed to the 250kHz clock as outlined in the RFC.) We are only using a PRNG, as opposed to the entropy pool supplied by devrandom to generate sequence numbers (warning here - devrandom is only supported in the i386 port of FreeBSD). My testing indicates that we can improve the entropy input into our sequence numbers by using devrandom. However, this is VERY dependent on the entropy sources that you feed into the pool via rndcontrol(8). Another question that comes in to this is - how good a tool is nmap for evaluating the predictability of the sequence numbers we generate? Ideally, I would like to do some improvements to our sequence number generation. Thoughts? Geoff. -- Geoff Rehmet, The Internet Solution - Infrastructure tel: +27-11-283-5462, fax: +27-11-283-5401 mobile: +27-83-292-5800 email: geo...@is.co.za URL: http://www.is.co.za To Unsubscribe: send mail to majord...@freebsd.org with "unsubscribe freebsd-hackers" in the body of the message