Re: [TLS] Encrypting record headers: practical for TLS 1.3 after all?

Yoav Nir <> Wed, 02 December 2015 11:59 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 85B801A889D for <>; Wed, 2 Dec 2015 03:59:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id NGPGEMVdD4pb for <>; Wed, 2 Dec 2015 03:59:57 -0800 (PST)
Received: from ( [IPv6:2a00:1450:400c:c09::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 607691A8894 for <>; Wed, 2 Dec 2015 03:59:57 -0800 (PST)
Received: by wmww144 with SMTP id w144so211649372wmw.1 for <>; Wed, 02 Dec 2015 03:59:56 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=CPTmPDcrBKMCd8fREWN4w/GlOwD/OGBUWtaha2jsgBo=; b=FjuL7TeOKCBdVjXhY1haZs65q0Mkfxv6JKJQ8BgHjEZ8YvWFb7l6GguWSB121M1DZ8 tpR4yU6Kb+z7LBAZIPjCnZov/vGc73RJGu+trx7cYveZu9Gsg6D1U9rym0zzTib+KNJ4 L5xhgnZpLwi78sGiY6vsxm/r+oTJjj9pIeUreRySAvS4RZj8JqD+njYDCkuO7IJ6Z29r ZK92dRmU9oGxt8Q/D/EDPNYCdE0kzIx9D5y0HrO5MUllZ4bclDAH/P82Bpw8znI8NcDk J84MtjyFhGb/HnWxT1WSzJlNnZEpu7t4NTiQBxIetpZg9SOAjVlYpxxT0dSbuHEmfqb0 ngLA==
X-Received: by with SMTP id w3mr4264310wjz.76.1449057595956; Wed, 02 Dec 2015 03:59:55 -0800 (PST)
Received: from [] ( []) by with ESMTPSA id c194sm2888563wmd.13.2015. (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 02 Dec 2015 03:59:54 -0800 (PST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Yoav Nir <>
In-Reply-To: <>
Date: Wed, 02 Dec 2015 13:59:52 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <>
References: <> <> <> <> <> <> <> <> <> <>
To: Jacob Appelbaum <>
X-Mailer: Apple Mail (2.3096.5)
Archived-At: <>
Subject: Re: [TLS] Encrypting record headers: practical for TLS 1.3 after all?
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 02 Dec 2015 11:59:59 -0000

> On 2 Dec 2015, at 1:38 PM, Jacob Appelbaum <> wrote:
> On 12/1/15, Yoav Nir <> wrote:
>>> Which would those be? And what is the definition of capital-intensive
>>> for those watching on the sidelines?
>> Firewall, IPS/IDS devices. Boxes that attempt to perform sanity-check on
>> protocols to make sure that the stuff going over TCP port 443 is really
>> HTTPS rather than an attempt at tunneling.  There are some attacks such the
>> the code that protects against them needs to follow TLS record sizes. For
>> the most part these are not-so-interesting attacks, causing certain versions
>> of certain browsers to hang, and they are expensive for the firewall to
>> protect against, so for the most part these protections are turned off. But
>> it’s not everywhere.
> Could you be more specific? Which devices are we saying will break? Do
> you have model numbers? Are those vendors on this list? Do they agree
> that this will break and do we agree that they are a relevant
> stakeholder who has a user's security in mind?

I am no expert on middleboxes. I know a little about those that my employer (Check Point) makes. I only know a little, because I’m on the VPN side of things, not the IDS/IPS/next generation firewall side. These are corporate firewalls. When it comes to filtering HTTPS connections, firewalls have three ways to classify the connection:
 1. Look at the SYN and SYN-ACK packets. Make decisions by IP addresses.
 2. #1, and additionally follow the stream looking for certain patterns.
 3. Full “TLS proxy”.

Each of these is “heavier” in amount of resources that it consumes and in the amount of breakage that it might introduce than the one before it, so you only use a higher-numbered way if the lower-numbered way does not give you the results you need. Specifically for #2 which is the one we’re concerned about, there are very few attacks that can be detected by #2 that cannot be detected by #1. I asked someone who does work on these “protections” as we call them, and she told me that only two or three protections require following the stream that do not require proxying, and those were turned off in the default and recommended profiles. So at least with a Check Point firewall, mostly you would not get breakage if record lengths were encrypted, but someone making a client or a server cannot assume that all paths will be free from such inspection. Also, there are many firewall vendors and one is installed in most corporate environments.

So at least one vendor is listening in on this list, and I have a good hunch that at least Cisco, Blue Coat and several others are on this list as well. Whether they are relevant stakeholders or not is to me the same question as whether the network administrator in a corporate environment is a relevant stakeholder. We just make the middlebox that they deploy. 

> For example, do we really care what sandvine or xkeyscore or narus or
> similar vendors think? I think the answer is no. They're still going
> to do extremely powerful traffic analysis and the more information TLS
> leaks, the more they will use it to degrade the security of TLS for
> all users. It may be that they will be full, on path, attackers and
> yes, in some cases, they can do different more powerful attacks.
> Again, we should treat that as a negative thing and make it as hard as
> is possible.
>> If enough middleboxes block TLS 1.3, the browsers will implement a downgrade
>> dance. If they do that, attackers will be able to exploit the downgrade
>> dance. I don’t think the net effect is better security. We’d be far better
>> off writing a separate document on how to use the padding feature that is
>> already in 1.3 to mitigate traffic analysis without actually flooding your
>> Internet connection. Splitting records and padding a few can be more
>> effective than masking the length bits.
> Censors are going to perform surveillance and then censor; TLS 1.3
> should treat surveillance as a security issue and censorship as an
> attack. It may be that we can't stop certain kinds of on path attacks
> but man on the side seems nearly entirely do-able. I mean aside from
> the TCP reset issues do to layer violation concerns. At least we'll
> have DTLS, which won't suffer from such a trivial denial of service...
> right?

Or just use IPsec (I did say I’m no that side of the building…)