Re: [TLS] draft-dkg-tls-reject-static-dh

Nico Williams <nico@cryptonector.com> Wed, 05 December 2018 19:35 UTC

Return-Path: <nico@cryptonector.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8039D130F91 for <tls@ietfa.amsl.com>; Wed, 5 Dec 2018 11:35:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
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, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cryptonector.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id oFAUjyupcYnR for <tls@ietfa.amsl.com>; Wed, 5 Dec 2018 11:35:13 -0800 (PST)
Received: from insect.birch.relay.mailchannels.net (insect.birch.relay.mailchannels.net [23.83.209.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B5B06130F61 for <tls@ietf.org>; Wed, 5 Dec 2018 11:35:13 -0800 (PST)
X-Sender-Id: dreamhost|x-authsender|nico@cryptonector.com
Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id CAEFF43F0C; Wed, 5 Dec 2018 19:35:12 +0000 (UTC)
Received: from pdx1-sub0-mail-a67.g.dreamhost.com (unknown [100.96.29.126]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id 693A043C6E; Wed, 5 Dec 2018 19:35:12 +0000 (UTC)
X-Sender-Id: dreamhost|x-authsender|nico@cryptonector.com
Received: from pdx1-sub0-mail-a67.g.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.16.2); Wed, 05 Dec 2018 19:35:12 +0000
X-MC-Relay: Neutral
X-MailChannels-SenderId: dreamhost|x-authsender|nico@cryptonector.com
X-MailChannels-Auth-Id: dreamhost
X-Harbor-Illegal: 245de84f3b96a1fc_1544038512674_2654604416
X-MC-Loop-Signature: 1544038512674:3858858009
X-MC-Ingress-Time: 1544038512674
Received: from pdx1-sub0-mail-a67.g.dreamhost.com (localhost [127.0.0.1]) by pdx1-sub0-mail-a67.g.dreamhost.com (Postfix) with ESMTP id 09D57800F5; Wed, 5 Dec 2018 11:35:12 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=cryptonector.com; h=date :from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to; s=cryptonector.com; bh=d0p4Gh7Q1X3W1a HNW68Enk6NRuo=; b=lht9grgcygx5KjM4IfIMkmKfoYsrOLsjd9+u4WdYI7jDdE JJoKTRNvF86afiKqV01xEH5Ex7T8pCSnsjihWxDEqClIKmVWBqeLhEPBbbtC56Cz 7+cGswBDUzQ6FLgPUxNjmx7JDC5pqVqDeBudkv6ZUHC8RboYgNYmaeSuvE3yE=
Received: from localhost (unknown [24.28.108.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: nico@cryptonector.com) by pdx1-sub0-mail-a67.g.dreamhost.com (Postfix) with ESMTPSA id 2B6D8800FC; Wed, 5 Dec 2018 11:35:08 -0800 (PST)
Date: Wed, 5 Dec 2018 13:35:06 -0600
X-DH-BACKEND: pdx1-sub0-mail-a67
From: Nico Williams <nico@cryptonector.com>
To: Stephen Farrell <stephen.farrell@cs.tcd.ie>
Cc: Daniel Kahn Gillmor <dkg@fifthhorseman.net>, "tls@ietf.org" <tls@ietf.org>
Message-ID: <20181205193505.GO15561@localhost>
References: <9a9be8fb-9667-0c6a-9fac-cc167f94599f@cs.tcd.ie>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <9a9be8fb-9667-0c6a-9fac-cc167f94599f@cs.tcd.ie>
User-Agent: Mutt/1.5.24 (2015-08-30)
X-VR-OUT-STATUS: OK
X-VR-OUT-SCORE: -100
X-VR-OUT-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedtkedrudefhedguddvkecutefuodetggdotefrodftvfcurfhrohhfihhlvgemucggtfgfnhhsuhgsshgtrhhisggvpdfftffgtefojffquffvnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpeffhffvuffkfhggtggujggfsehttdertddtredvnecuhfhrohhmpefpihgtohcuhghilhhlihgrmhhsuceonhhitghosegtrhihphhtohhnvggtthhorhdrtghomheqnecukfhppedvgedrvdekrddutdekrddukeefnecurfgrrhgrmhepmhhouggvpehsmhhtphdphhgvlhhopehlohgtrghlhhhoshhtpdhinhgvthepvdegrddvkedruddtkedrudekfedprhgvthhurhhnqdhprghthheppfhitghoucghihhllhhirghmshcuoehnihgtohestghrhihpthhonhgvtghtohhrrdgtohhmqedpmhgrihhlfhhrohhmpehnihgtohestghrhihpthhonhgvtghtohhrrdgtohhmpdhnrhgtphhtthhopehnihgtohestghrhihpthhonhgvtghtohhrrdgtohhmnecuvehluhhsthgvrhfuihiivgeptd
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/zAFGFKOXx0YP88l2zkHni6Vb9GQ>
Subject: Re: [TLS] draft-dkg-tls-reject-static-dh
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls/>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 05 Dec 2018 19:35:19 -0000

On Wed, Dec 05, 2018 at 06:59:07PM +0000, Stephen Farrell wrote:
> My main concern is that a server playing a
> draft-green-like game could just choose DH
> values more cleverly and avoid detection.

We can forbid static server DH keys, and should attempt to preclude them
by encouraging clients to do _some_ work to detect them.

We can preclude Dual_EC style escrow systems by not providing a way to
publish enough material on the wire for an eavesdropper with access to
the Dual_EC secrets to recover the keys.  Dual_EC style escrow systems
are not protocol-neutral.

We can forbid extension/ciphersuite registration for key escrow schemes.
We'd have to direct experts designated for Expert Review to look for
the possibility that an extension or ciphersuite could be used for
in-band key escrow.

But we can't preclude protocol-neutral (out-of-band) key escrow schemes.
These are not detectable (implementation fingerprinting can always be
defeated).

> E.g. if the DH values are derived via some
> function so that public shares never recur,
> or only rarely. (And while such derived DH
> values would in a sense represent the server
> borking its own crypto, that's basically what
> draft-green suggested anyway, so one might
> expect a DH borking adversary in such cases
> to not care so much about the client's
> security.)

Such a scheme requires some sort of counter to appear on the wire,
similar to Dual_EC.  With no nonces, this can't be done.  But with small
enough counters it will be difficult to preclude their appearance (or
the appearance of a truncated counter, which would require some brute
force on the part of the escrow agents, again like Dual_EC) as there
will always be freedom to express some small number of arbitrary bits
in-band.

> I guess that testing would also be an issue
> so it'd be great if someone was to try do
> that to check if this might break things.
> (Which'd be useful in any case if it found
> some servers accidentally re-using.)
> 
> Other than that, some more minor comments:
> 
> It'd be good to describe in detail a way in
> which one might efficiently retain the client
> state required, e.g. via a bloom filter maybe?
> (Assuming an occasional false positive isn't
> too alarming;-)

OK, but clients would have to share...:

> It might also be good to outline how a survey
> or CT-like mechanism (say logging some value
> as a witness for the DH public) could be used
> to detect this kind of badness even if common
> TLS clients didn't deploy.

Providing a way for clients to report what they see would have serious
privacy concerns that, IMO, outweigh the static server DH key concerns.

And none of this would help detect/preclude out-of-band escrow systems.
Client-side detection of static/reused server DH keys will simply push
server operators who must escrow to use undetectable out-of-band escrow,
thus wasting all work on client-side detection.

Nico
--