Design Flashcards
Why build security mechanisms into TFO to protect both the server and
other hosts from such attacks.
DDos: an attacker or set of attackers could send HTTP GET
requests to a server while spoofing the source address of a
victim host, thereby causing the server both to perform potentially
expensive request processing and to send a potentially
large response to a victim host
goal in designing TCP Fast Open
to enable each
end of a TCP connection to safely transmit and process any
received data while the 3WHS is still in progress
TFO accepts old SYN packets with data in some
rare cases
to manage stale or duplicate SYN packets
would add significant complexity to the design and the tradeoff is of
TFO is restricted to applications
that are tolerant to duplicate connection / data requests.
But, Since a wide variety of applications can tolerate duplicate
SYN packets with data (e.g. those that are idempotent or perform
query-style transactions), we believe this constitutes an
appropriate tradeoff.
Another assumption when using TFO
We assume that servers cannot
maintain permanent or semi-permanent per-client state since
this may require too much server memory, and that servers
may be behind load balancers or other such network devices
More assumptions when using TFO
We also assume that servers cannot perform any operations to support TFO that are not reasonable to implement on the kernel’s critical path (e.g. symmetric cryptography is possible, but asymmetric is not)
Big assumption here
Finally, we assume that it is acceptable to leverage other security mechanisms within a server’s domain (if needed) in concert with TFO to provide the required security guarantees.
Our primary goal in the design of TFO is to prevent the
source-address spoofing attack mentioned above. To prevent
this attack, we use a
security “cookie”.
an encrypted data string that is used
to validate the IP ownership of the client
The TFO cookie
responsible
for generation and validation of TFO cookies
The Server
The server periodically
revokes cookies it granted earlier by
rotating the secret key used to generate them. This key rotation prevents malicious parties from harvesting many cookies over time for use in a coordinated attack on the server.
TFO’s goal (evolving…)
to allow data exchange during TCP’s initial
handshake while avoiding any new security vulnerabilities.
A way to mitigate attackers
the server maintains a counter of total pending TFO connection requests either on a per service port basis or for the server as a whole
When users often click refresh in web browsers if a page does not load quickly, this can result in
duplicate transactions
If the TFO cookie is not
available
it falls back on a regular TCP three-way handshake
and the data is queued up for transmission when the 3WHSis completed.