Joe Touch wrote:
The consensus seems to be that the current state of affairs is something
like: "a mess". Even if you do care to produce a resilient
implementation, that task is going to be much harder than necessary. You
don't know the amount of cycles we spent in producing
draft-gont-tcp-security.... let alone the time it would take to move the
advice in an actual implementation.
Advice in making a hardened version of TCP would be useful to the
To a large extent this is what draft-gont-tcp-security is about.
Implementation advice is outside the scope of the IETF. It's not even
RFC 816: "MODULARITY AND EFFICIENCY IN PROTOCOL IMPLEMENTATION"
RFC 815: "IP DATAGRAM REASSEMBLY ALGORITHMS" (see Section 4)
RFC 1936: "Implementing the Internet Checksum in Hardware" (of which you
are on of the co-authors :-) )
That said, to a large extent the document is provides advise about
enforcing stricter validation checks, timeouts where appropriate, and
about a number of policies that may improve TCP's resiliency/security
(e.g., how to select ISN's, etc.)
You've produced a summary of issues you feel would harden TCP. I feel
that some of them make TCP more brittle, and some make TCP unnecessarily
complex, and in both cases the mods are not needed in the general
Is there nothing in the document with which you agree?
That'd be harsh. I agree with some of the implementation advice as
implementation advice. I agree that, in risk-prone environments (where
packets can be tapped, e.g.), some of the recommendations are appropriate.
I'm disagreeing primarily with the general tone and balance of the document.
I believe at this point in time we're deciding whether it makes sense to
work on this document, and where it would make sense to do it.
draft-gont-tcp-security-00 is just a starting point. Of course, it
represents my pov, and to some extent the pov of the reviewers. But the
idea of bringing it to the IETF is that future versions of the document
represent wg consensus.
If you have specific suggestions on how to improve the document, I'll be
more than happy to hear about them.
However, I believe at this point we are not yet discussing on any
specific issue discussed in the draft, but are trying to agree on how to
move forward. (Feedback on the technical details in the document is
nevertheless welcome, though)
c'mon Joe.. IMO, tcpsecure needed to include those statements about
usefulness in large part because it was IPR-encumbered, and in part as a
political workaround that would avoid further waste of time in endless
I disagree. Even if it weren't IPR encumbered, I would disagree with
widescale deployment of a modification to TCP that answers a RST with
one *or more* ACKs. As I said numerous times w.r.t. that document, the
modifications it suggests are generally not needed, unnecessarily
complicate packet processing, and since they don't protect from
in-window injection attacks, I find them useless in the general case.
TCP is already very complicated. And the implementation of the
countermeasures in tcpsecure usually require not much more than
(literally) a couple of additional lines, or a slight modification in
some conditional statement.
It becomes harder to get s staright answer when it's impossible for a
vendor to point to a counter-measure that is supposed to be the result
of a thorough review process, in a *timely* fashion.
Can you be as specific here as you want us to be? What exactly does a
vendor want that isn't provided by IPsec, TCP MD5, etc., or the existing
What's "the existing known counter-measures"?
Limit cycles/resources available for new connections, e.g., for SYN
attacks -- as is already done for things like IKE.
At the point in which you actually try to put this into code, a number
of questions arise that need to be answered. Why should vendors rehash
the same analysis over an over again (with the potential of doing it
wrong, which would lead to buggy implementations), when we could put out
a document with consensus on the preferable way to do those things.
FWIW, vendors are following the UK CPNI document. The idea of bringing
those results to the IETF is so that these results/advice can be further
discussed, more eyes look into them, and the doc is modified if it is
I've been saying I feel that mods are necessary, and you keep
That's not how I read your comments. If your point of view is "it would
be interesting to work on this. however, i believe the document should
be modified in this way, because of this reason" that's one thing.
If your pov is "we don't need this. go somewhere else", that's something
If you're here for a rubber stamp, you came to the wrong WG ;-)
Rubber-stamp? No, Joe. The UK CPNI rubberstamp is more than enough, and
when it comes to advice on this issues, I believe it's even more
credible. Ask the question in bugtraq or full-disclosure, and that's
most likely the conclusion you'll get to.
I'm involved in the IETF, and honestly believe that the IETF should work
on this. I do know that the end result of that process would be such
that I probably won't be as happy with the resulting RFC than with the
UK CPNI document. But at least I would have helped to change the current
state of affairs a little bit.
The sky has been falling in this WG for several years. Although this
document is the first aggregation of such recommendations, as you know
it's composed of many documents you yourself have been discussing for
that period in this WG..
I'd probably argue that the case with tcpm is that at (many) times
protocol specifications have been taken as if they were casted in stone.
And unless one is part of some small circle of people that is supposed
to have been allowed by God to modify such specs, it will be very hard
there's no effort that takes less than quite a few years.
Very loud people take the time to maintain endless discussions, and most
mere mortals that need to get work done end up completely avoiding tcpm
altogether, because it requires a huge spend of time.
Virtually every developer that I know of won't care about what the end
result in tcpm is. At most, they will post a question to hear comments.
But that's it. To a large extent people cannot believe the amount of
energy we spend for such a null progress.
Example: ICMP attacks draft (draft-ietf-tcpm-icmp-attacks).
The doc was reviewed by devolpers from Sun, FreeBSD, NetBSD, OpenBSD,
Linux, extreme networks, and Cisco (this last one "unofficially"). To
them, the draft looks okay. Many other people have also agreed with
that. But I cannot get those folks involved in our endless discussions.
The ROI for them is NULL.
Do they care about the outcome? Not really. They agree with the
proposal, it is in the code already, and has been running for years.
They just let us waste our time.
I agree that there are benefits to be gained from having a more
conservative philosophy, to put it some way. I believe that it is a good
thing to challenge proposals, to aim at improving their quality, etc.
This has helped improve many documents, including those I have authored.
But I believe at some point it starts looking as "everything that
neither me or my inner circle proposes will be banned".
Honestly, I'm not sure why you always have to knock down others' efforts
on a "by default" basis, and prejudge the motivation behind those efforts.
I'm asking the question I apparently keep needing to ask:
Why do you think that just because something is implemented
we should recommend it?
That's not how the tcp-security document was produced. For instance,
many of the recommendations had never been implemented. And the document
argues *against* some common implementation strategies.
Why do you think that a message that isn't expected indicates
an attack to be defended against, vs. the actions of a
We simply raise the bar about what we react to. If there are packets for
which there's no legitimate use, we don't react to them (if this doesn't
I have a high bar for the need for modifications to TCP, and the need to
propagate local solutions to every endpoint in the Internet.
And do you believe that such propagation depends on our outcome? --
Thanks God, it doesn't. Try to find any implementation that is
fully-compliant with the RFCs, and let me know if you find any.
The lack of advice on all these issues has put vendors in a position in
which they have to figure out that advice by themselves. Sometimes they
got to the right answers, sometimes not.
Have a look at the vulnerability advisories referenced in the I-D: the
same errors are committed over and over again.
draft-gont-tcp-security is an effort to help the vendor/developer
community in that area.
P.S.: My apologizes for the possible politically-incorrect comments. But
this is the best trade-off I have been able to get between being
politically-correct and being honest.
e-mail: fernando(_at_)gont(_dot_)com(_dot_)ar || fgont(_at_)acm(_dot_)org
PGP Fingerprint: 7809 84F5 322E 45C7 F1C9 3945 96EE A9EF D076 FFF1
Ietf mailing list