Re: [TLS] proposal to encrypt ContentType for TLS 1.3 (Martin Rex) Mon, 14 July 2014 14:13 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 9E6BF1A049C for <>; Mon, 14 Jul 2014 07:13:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -6.552
X-Spam-Status: No, score=-6.552 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RCVD_IN_DNSWL_HI=-5, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id V8GftaMoIV5E for <>; Mon, 14 Jul 2014 07:13:04 -0700 (PDT)
Received: from ( []) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 61F061A04A1 for <>; Mon, 14 Jul 2014 07:13:02 -0700 (PDT)
Received: from by (26) with ESMTP id s6EECvKM001363 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 14 Jul 2014 16:12:57 +0200 (MEST)
In-Reply-To: <>
To: Daniel Kahn Gillmor <>
Date: Mon, 14 Jul 2014 16:12:57 +0200 (CEST)
X-Mailer: ELM [version 2.4ME+ PL125 (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="US-ASCII"
Message-Id: <>
From: (Martin Rex)
X-SAP: out
Subject: Re: [TLS] proposal to encrypt ContentType for TLS 1.3
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: Mon, 14 Jul 2014 14:13:06 -0000

Daniel Kahn Gillmor wrote:
> cleartext traffic or the NULL cipher is also helpful for debugging, but
> that doesn't mean we should leak it in the TLS protocol.  The code
> complexity involved for the endpoints requires no extra state (TLS
> engines already know whether they're in NULL_WITH_NULL_NULL or not), and
> a small change to the way the packets are handled in either case.

A TLS records contents and handshake message parser does *NOT* need to know
or care which TLS cipher suite is currently used at the record layer,
only the record layer needs to know that.

> It hides TLS alerts from an observer, for one.
>    [...]
> an encrypted content-type will obscure that activity from a network observer.

As you write yourself, this isn't hiding, but merely obscuring.

GSS-API doesn't have or use any such obscuring.  Does IPsec
have anything like this (or need it, or miss it)?

> Above you called the engine you were using a "network i/o state machine"
> -- if the machinery actually has state, it should still be able to parse
> the length of each record, and can keep track of whether a CCS has been
> seen or not, so it should be able to continue parsing each record as it
> comes in.
> The fact that network-facing code won't know with certainty when a
> handshake completes and when application data starts flowing seems like
> a feature, not a bug, if we want to protect the communication.

I definitely see it as a feature.  The bug here would be an unnecessary
difference to existing TLS protocol versions.

For a TLS implementation with blocking network I/O and API semantics
it doesn't really matter whether the handshake can be recognized on
the wire.  For non-blocking APIs, where network I/O is seperated from
the TLS protocol implementation, the difference would be significant
and needlessly complex.

Drop-in replacement of only the TLS stack will be impossible.