Re: [TLS] rm Hello.random w/ (EC)DHE [was OPTLS: Signature-less TLS 1.3]

Nico Williams <> Mon, 10 November 2014 19:24 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 4A4A71A0161 for <>; Mon, 10 Nov 2014 11:24:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: 2.134
X-Spam-Level: **
X-Spam-Status: No, score=2.134 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, IP_NOT_FRIENDLY=0.334, J_CHICKENPOX_54=0.6, J_CHICKENPOX_55=0.6, J_CHICKENPOX_56=0.6, J_CHICKENPOX_57=0.6, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 2Ov8nTlxfNDh for <>; Mon, 10 Nov 2014 11:24:19 -0800 (PST)
Received: from ( []) by (Postfix) with ESMTP id 9D96A1A015B for <>; Mon, 10 Nov 2014 11:24:06 -0800 (PST)
Received: from (localhost []) by (Postfix) with ESMTP id 644552005D00D; Mon, 10 Nov 2014 11:24:06 -0800 (PST)
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:content-transfer-encoding; s=; bh=YHOuH7G742STMFK5Gb5IFmUvAOs=; b=hZPqGi/6pGb 9MZhCMRxE/LJfhaqt5WQGkCQsQZghzcRiWH7CjIluZU2ZAR/T5GBlXY8QXsY+zE2 TDTX2OW24bXgQMCyK2L+4d7ESTwk6KEYB2rx1Sx1ZfzQHudnqE2ELRbl5evpgwiT j0/rNqKz833EE0sNJrp4VeswM2hkVCtk=
Received: from localhost ( []) (Authenticated sender: by (Postfix) with ESMTPA id B6B1D2005D00B; Mon, 10 Nov 2014 11:24:05 -0800 (PST)
Date: Mon, 10 Nov 2014 13:24:04 -0600
From: Nico Williams <>
To: Dan Brown <>
Message-ID: <20141110192402.GD3412@localhost>
References: <>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
In-Reply-To: <>
User-Agent: Mutt/1.5.21 (2010-09-15)
Content-Transfer-Encoding: quoted-printable
Cc: "''" <>, "''" <>
Subject: Re: [TLS] rm Hello.random w/ (EC)DHE [was OPTLS: Signature-less 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, 10 Nov 2014 19:24:20 -0000

On Mon, Nov 10, 2014 at 05:58:12PM +0000, Dan Brown wrote:
> When using (EC)DHE (inc. OPTLS below), the TLS random nonces
> (ClientHello.random and ServerHello.random) seem redundant (unless one
> re-uses ephemeral secret keys (but then maybe a counter or secure time
> would be almost as good a nonce as a random in this case), or perhaps
> for some other reason I’m missing), and perhaps even a point of
> fragility (e.g. if a common generator for nonces and keys is weak, or
> corrupted). So, does it make sense to remove these Hello.randoms, when
> using (EC)DHE, or to replace them with something milder, like
> Hello.time, Hello.counter, or just Hello.nonce?

The main problem with the hello randoms today is that they are big.
This is what made Dual_EC deadly for TLS.  Besides, large nonces also
create a large covert channel.

Larger nonces make sense for plain PSK, static DH, and session

For RSA key transport I don't see the point of larger nonces.

For (EC)DHE small nonces help the briefly reused server-side ephemeral
private key case, which is nice to have.

64-bit nonces should suffice for the key exchanges that need larger
nonces, no?

32-bit nonces should suffice for the key exchanges that need smaller or
no nonces.

The client should send a nonce of size matching the largest needed by
any of the ciphersuites it offers.

The server should send a nonce whose size is given by the selected

If variable size nonces are a problem (e.g., fingreprinting), then send
large nonces but set unneeded bits to one of a small set of suitable
constant patterns.