Re: [Spud] Detecting and Defeating TCP/IP Hypercookie Attacks

Stephan Neuhaus <> Fri, 29 July 2016 19:52 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 07F6112DAFC for <>; Fri, 29 Jul 2016 12:52:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 45kkD0Z9aSPq for <>; Fri, 29 Jul 2016 12:52:21 -0700 (PDT)
Received: from ( []) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id F27DD12DAEC for <>; Fri, 29 Jul 2016 12:52:20 -0700 (PDT)
Received: from [] (helo=mairac.home); authenticated by running ExIM with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) id 1bTDpT-0007MY-4S; Fri, 29 Jul 2016 21:52:19 +0200
To: Tom Herbert <>, Brian Trammell <>
References: <> <> <> <>
From: Stephan Neuhaus <>
Message-ID: <>
Date: Fri, 29 Jul 2016 21:52:18 +0200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:45.0) Gecko/20100101 Thunderbird/45.2.0
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: 8bit
Archived-At: <>
Cc: spud <>
Subject: Re: [Spud] Detecting and Defeating TCP/IP Hypercookie Attacks
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Session Protocol Underneath Datagrams <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 29 Jul 2016 19:52:23 -0000

On 2016-07-29 19:12, Tom Herbert wrote:
> On Fri, Jul 29, 2016 at 9:29 AM, Brian Trammell <> wrote:
>> Nope. I don't need to touch the endpoints at all for an injection attack. I just need one middlebox near the source to rewrite packets, and (possibly) another one downstream to pick up the signals. (Okay, I might need to hack the kernel on my middleboxes. But I get to do that. They're mine. :) )
> Except that middelboxes presumably do not have access to the encrypted
> data so the amount of information they can derive from the packet is
> limited. The problem is when the application or user is being coerced
> and there is a readily available mechanism that facilitates that. For
> example, it seems very possible that a rich signaling mechanism
> implemented by the user could be used to enforce a backdoor to
> encryption.

Now I'm confused. I thought that the situation that Brian was talking
about is middleboxes fiddling with the packet headers, which are in
plaintext, and not with the packet's payload which, as you say, may be
encrypted. You seem to be saying that the amount of information that can
be extracted from plaintext transport headers is limited, is that correct?

Brian is also talking about the path; you seem to be talking about the
endpoints, is that correct?

If both these assumptions are correct, then I'd like to make three
points. (If they're both wrong, please stop reading. If one is right and
one is wrong, read only half of what follows.  You choose which half :-) )

First, I do not agree that the amount of information in the transport
headers is limited, which I assume means "of limited value". It's
classic metadata and should be protected, if possible. That transport
header is seen by many more boxes than the plaintext of the encrypted
payload and thus the probability of someone siphoning it off are that
much larger, precisely because it is valuable.

Second, I'm not sure in what way "a rich signaling mechanism
implemented by the user could be used to enforce a backdoor to
encryption" or rather, I'm not sure how that is a problem enabled
specifically by PLUS. If the "user" (which I understand to be an
application running on top of a networking stack) wants to "backdoor its
encryption" (i.e., leak key material), it can already do so today. For
example, a suitably modified TLS library could stash the master secret
at the end of a TLS message (may work with many applications, even
without an equally compromised TLS library on the other end). Or it
could silently always use DUAL_EC_DRBG (always works). Or ... Many of
these would go undetected for a long time. The upshot is: once your
endpoint is compromised, all bets are off anyway.

And finally, have the impression that you think that PLUS is going to be
this gigantic free-for-all, where every Joe, Dick, and Harry can
annotate a packet in any way they please. If I understood the PLUS
proponents correctly, this will not be the case. PLUS fields will be
limited in number, space, and semantics, and they will (for the most
part) be integrity-protected so that nothing on the path can fiddle with
them without anyone noticing.

To summarise: 1) If your endpoint is compromised, you're screwed anyway.
2) The total amount space that's available for undetected fiddling by a
middlebox will perhaps not be zero, but it will be less than it is today.



[Full disclosure: I'm working with Brian and Mirja on the MAMI project.]