On Thu, 2016-08-18 at 14:48 +0200, Florian Westphal wrote:
commit ceaa1fef65a7c2e ("tcp: adding a per-socket timestamp offset")
added the main infrastructure that is needed for per-connection
randomization, in particular writing/reading the on-wire tcp header
format takes the offset into account so rest of stack can use normal
tcp_time_stamp (jiffies).
So only two items are left:
- add a tsoffset for request sockets
- extend the tcp isn generator to also return another 32bit number
in addition to the ISN.
Re-use of ISN generator also means timestamps are still monotonically
increasing for same connection quadruple.
I like the idea, but the implementation looks a bit complex.
Instead of initializing tsoffset to 0, we could simply use
jhash(src_addr, dst_addr, boot_time_rnd)
This way, even syncookies would be handled, and we do not need to
increase tcp_request_sock size.