Re: [TLS] What would make TLS cryptographically better for TLS 1.3

Nico Williams <> Fri, 01 November 2013 21:28 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id E5A5011E8184 for <>; Fri, 1 Nov 2013 14:28:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.26
X-Spam-Status: No, score=-2.26 tagged_above=-999 required=5 tests=[AWL=-0.283, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id ZVtl1BG-s2MZ for <>; Fri, 1 Nov 2013 14:28:46 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 4D70311E8166 for <>; Fri, 1 Nov 2013 14:28:42 -0700 (PDT)
Received: from (localhost []) by (Postfix) with ESMTP id 0BAAC43806C; Fri, 1 Nov 2013 14:28:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed;; h=date :from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to;; bh=WUP68dzBS8tCIT UTW07DjuOVMk4=; b=hc75WMOuZ6rt+19u2FStao7GQtG8MZM4z9LRtBr9uXjYlg qKJCvGbo6OUipoudSZNqzVFnWOzdbXA8YBgua+hbX/K80FM8UHYybzitQSTsiSIA sCNIjieEmwC0cE6+ZH6Lra90UU8kqDbmoeY8J9ApJyAhTmZgUrr3QWJQundqY=
Received: from ( []) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) (Authenticated sender: by (Postfix) with ESMTPSA id 93D2543801C; Fri, 1 Nov 2013 14:28:40 -0700 (PDT)
Date: Fri, 1 Nov 2013 16:28:37 -0500
From: Nico Williams <>
To: Robert Ransom <>
Message-ID: <>
References: <> <>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <>
User-Agent: Mutt/1.5.21 (2010-09-15)
Cc: "" <>
Subject: Re: [TLS] What would make TLS cryptographically better for TLS 1.3
X-Mailman-Version: 2.1.12
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: Fri, 01 Nov 2013 21:28:51 -0000

On Fri, Nov 01, 2013 at 02:21:35PM -0700, Robert Ransom wrote:
> On 10/31/13, Watson Ladd <> wrote:
> It also needs to either allow session resumption without the
> possibility of reusing any key used to encrypt or authenticate
> application-level data, or explicitly forbid session resumption.


> > Renegotiation should be killed: it serves no purpose.
> Renegotiation is a critical feature of TLS, which serves multiple purposes.
> * Renegotiation allows rekeying of a session.  This is absolutely
> required for any ciphersuite based on a block cipher with a 128-bit or
> smaller block, because block cipher modes' security properties degrade
> after they are used for more than some number of blocks.

This can be done without a synchronous renegotiation by just computing a
new sessionkey every so many bytes/blocks/records (whatever's
appropriate to count for the cipher in use).

> * Applications can also use renegotiation-based rekeying to improve
> forward secrecy; for example, the Mixminion specification
> (<>,
> section 4, line 1040) requires that relay-to-relay TLS connections be
> rekeyed using renegotiation every 15 minutes for this purpose.

Indeed.  Speaking of which, resumption must support PFS rekeying.

> * A TLS connection can be established by a fully trusted device which
> knows a password or other application-layer authorization credential,
> authorized to perform some operations using messages within the TLS
> connection, and then transferred with the help of renegotiation to a
> less trusted device to actually perform those operations.  This is
> similar to the preceding use, but to provide 'sideways secrecy' rather
> than forward secrecy.

As long as there's no MITM...

> * One version of the Tor 'link protocol' (Tor's term for its outer
> TLS-based connection protocol) uses renegotiation to provide secrecy
> for the server's certification chain against purely passive attackers.
>  The purposes above could be served by applying a one-way function to
> the originally derived key material, then discarding the old keys;
> this purpose cannot.

I thought this was no longer in use.


 * Privacy protection for the user's PSK ID and/or cert and/or other
   identifying data.

   But again, an NPN-style extension should take care of this.

 * Relatedly, the server can request user authentication asynchronously,
   in which case NPN-style extensions don't help.

   I'd be happy to get rid of this: user authentication in such cases
   belongs in the app layer.  However, it may not be feasible to get rid
   of such uses of renegotiation, so it probably has to stay :(