Re: [tcpm] comments on draft-ietf-tcpm-icmp-attacks-05

Fernando Gont <> Thu, 11 June 2009 08:22 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id ABE883A6C5E for <>; Thu, 11 Jun 2009 01:22:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.065
X-Spam-Status: No, score=-2.065 tagged_above=-999 required=5 tests=[AWL=0.535, BAYES_00=-2.599]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id gMp3wZE7Egqe for <>; Thu, 11 Jun 2009 01:22:49 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 732353A6BCE for <>; Thu, 11 Jun 2009 01:22:49 -0700 (PDT)
Received: by qyk14 with SMTP id 14so23571qyk.29 for <>; Thu, 11 Jun 2009 01:22:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=gamma; h=domainkey-signature:received:received:sender:message-id:date:from :user-agent:mime-version:to:cc:subject:references:in-reply-to :x-enigmail-version:openpgp:content-type:content-transfer-encoding; bh=5k4C9RdNOyTYeif+mS1UOwWaQEAlyFLPsbjRbLxiJUo=; b=bHas6bicsakfjyXHGMqrcZ8ZxjRN+HuYoxgtUDXuLa5CtV6cOPKQOlG48ibU0u428L G5ct48W/uNmKpoKyKEuWG+YeqDRM84x/1867/9Iawe+823MBN4/dgKmjVMgHHgKVspQT QS4HmC5R+ukXChtLNwoyx1FcadXNxaN+Ybogk=
DomainKey-Signature: a=rsa-sha1; c=nofws;; s=gamma; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:x-enigmail-version:openpgp:content-type :content-transfer-encoding; b=mR9noGlAasL63ofa88szXAq/iMrRh0Eop1aeNhWGjBiU/7ge0d/At4f7NMLtsnFyfI gZ8Mdbm4rvYtGPP7d5k0H6JDkW5IeNf53fi/IGpXX8g6qpLSTUEYNkDJhc2ZFzT9mQrV bw5ZFOrTVMJgzfPXFKQ2uTl4NmDyUL9eccqag=
Received: by with SMTP id v7mr2884807qad.35.1244708574490; Thu, 11 Jun 2009 01:22:54 -0700 (PDT)
Received: from ? ( []) by with ESMTPS id 7sm1291265qwf.49.2009. (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 11 Jun 2009 01:22:53 -0700 (PDT)
Sender: Fernando Gont <>
Message-ID: <>
Date: Thu, 11 Jun 2009 05:22:46 -0300
From: Fernando Gont <>
User-Agent: Thunderbird (Windows/20090302)
MIME-Version: 1.0
To: "Eddy, Wesley M. (GRC-MS00)[Verizon]" <>
References: <>
In-Reply-To: <>
X-Enigmail-Version: 0.95.7
OpenPGP: id=D076FFF1
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Cc: "" <>, Fernando Gont <>
Subject: Re: [tcpm] comments on draft-ietf-tcpm-icmp-attacks-05
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 11 Jun 2009 08:22:50 -0000

Hello, Wesley,

Thanks so much for your feedback. Comments-inline...

> 1) (editorial) In Section 2.1, don't capitalize
> "Architecture", as it makes "Internet Architecture"
> look like some kind of specific proper noun, which
> it definitely isn't.

I think this was capitalized in Dave's Clark paper. But have no problem
with the proposed change.

> 2) (question) In Section 2.1, we have:
> "When an intermediate router detects a network
> problem while trying to forward an IP packet,
> it will usually send an ICMP ..."  Do we
> want "will usually" or "has the option to", or
> something similar?  I'm not aware of the actual
> statistics on this.

The router will send an ICMP error message, unless rate-limiting
prevents it. That's my understanding. And this is what RFC 1812 states.

> 3) (editorial) In Section 3, first sentence,
> "internet header" -> "IP header" ?

Will do. (Although the ICMP spec uses the term "internet header" rather
than "IP header").

> 4) (technical) For the last paragraph in section
> 3, we focus on the lack of IKE usage as a reason
> why IPsec can't generally be used to authenticate
> ICMP messages, but I think the bigger problem is
> that even if we all ran IPsec, we'd need to have
> routers using certificates with paths compatible
> for all other hosts on the network ... 

Sorry. You meant that all the routers in the path should be using

> not too
> feasible from what I can tell.  I think this is
> more difficult than either the deployment or the
> embedded devices issue that the draft mentions.


> 5) (general) Section 5.1, last paragraph, it
> seems like we should be mentioning TCP-AO as
> well here, though I don't think it changes any
> part of the claim.

Agreed. Maybe this is also an indication that TCP-AO *should* change
something in this respect!

> 6) (editorial) Section 5.2, typo "preferebable"

Will do.

> 7) (editorial) Section 6.2, "On the other hand,
> TCP implements its own congestion control
> mechanisms ..." ... I don't think this is
> really an "on the other hand", I think it's
> more of a "Furthermore".

Will do. ("english as a second language" here. :-( )

> 8) (general) In Section 6.2, I think we can be
> stronger and say that the 1122 requirement to
> react to source quench is no longer pertinent,
> as the Internet has moved well beyond needing
> this.

I fully agree with you. However, at some point in the past there was all
these discussions that the document was "going against the standards",
and that it was "too strong", being an "Informational" document. Hence
it's not as strong as I would have liked it to be.

That said, the internet has moved beyond reseting established
connections in response to hard errors, too. :-)

> 9) (general) Wow, section 7 takes a much closer
> look at PMTUD than I ever expected to find here;
> roughly half the document sits in this topic
> alone.  

Yes. And it could have been worse. Because for the other two
vulnerabilities, it all boils down to "ignore source quenches" and
"process hard errors as soft errors if they are received for connections
in any of the synchronized states". But you cannot ignore "frag needed"

> Is this *really* an attack that we're
> that worried about in a general case?  

Yes. See the "Acknowledgement" section of the I-D -- it was reviewed by
people from Free', Net', and OpenBSD, Solaris and opensolaris, Cisco,
Extremenetworks, and others. Yes, that's not the world... but I'd argue
that a good sample.

Without the TCP seq check, is trivial (and with an advertised MTU of 0
it even crashed some implementations). With the TCP SEQ check, things
are not so bad... but the windows keep increasing.

That said, the document is informational, and documents what has been
done in the industry. And the stuff in Section 7 is implemented in a
number of systems and deployed already in the Internet.

> The modifications in this part of the document
> seem too complex for what they buy, to me.  

I did the patch myself for OpenBSD in a few hours (and it was probably
my first commit to the tree). Conceptually speaking, it's even simpler:
Before you know data has successfully been transferred to the remote
endpoint, just validate the ICMP error messages by checking the TCP SEQ.
Once you have successfully transferred data, check for progress on the
connection before honoring the ICMP error messages).

> It
> seems like in places where there's concern about
> it, we can just say to ignore these ICMPs and use
> the PLPMTUD (4821) instead.  I can understand
> that what's in the draft has been implemented,
> but how valuable is it really when we already
> have a Proposed Standard in PLPMTUD that can
> totally answer to this concern by just ignoring
> the ICMPs in question?

I have already been told by a number of developers that they would not
implement the ICMP-free version of PLPMTUD, because of its convergence
time. They are more willing to implement it for icmp blackhole detection.


Kind regards,
Fernando Gont
e-mail: ||
PGP Fingerprint: 7809 84F5 322E 45C7 F1C9 3945 96EE A9EF D076 FFF1