Subject: [multipathtcp] A Second Layer of Security

From: "Ford, Alan" <[email-masked]>
Date: Wed, 15 Dec 2010 13:59:43 -0000

Hi all,

This is something that I mentioned in the call yesterday, but wasn't
central to the discussions. However, I feel it's worth raising in email
in case of strong opinions.

In regular TCP, protection against blind injections of spoofed data lies
with ensuring the packet header has the correct static (addresses,
ports, etc) and dynamic (sequence number) information. It is the
sequence number that removes the threat from a time-shifted attack.

In MPTCP, we have the connection-level sequence number, but as it stands
this does not provide the same level of protection against time-shifted
attacks that it does in regular TCP. This is because an attacker could
connect to a server, receive data, glean the DSN in use, and use this to
inject data towards the other host.

This threat exists in all security mechanisms where there are possible
ways for an attacker to get in. I mentioned it yesterday as particularly
relevant to the token-based mechanism, but it also relevant to the HMAC
if the connection establishment has been seen, but the attacker has
since gone away.

We cannot just say that a client must send data before it can receive
it, since in many cases - such as a large download from a web server -
there may never have any data to send in the upstream. But what we could
say is that a client must send a DSN_MAP with zero length to prove it
has up-to-date knowledge of its DSN, before it can receive data.

Does that sound sensible, useful, and worthwhile? Or unnecessary
complexity? (After all, attackers who have observed the initial exchange
but are no longer on-path is a small subset of the attacker space).

Regards,
Alan