Re: [TLS] chairs - please shutdown wiretapping discussion...

Nico Williams <nico@cryptonector.com> Tue, 11 July 2017 23:27 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 66D6412F287 for <tls@ietfa.amsl.com>; Tue, 11 Jul 2017 16:27:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.699
X-Spam-Level:
X-Spam-Status: No, score=-4.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 vWISjBO2IfvF for <tls@ietfa.amsl.com>; Tue, 11 Jul 2017 16:27:20 -0700 (PDT)
Received: from homiemail-a35.g.dreamhost.com (sub4.mail.dreamhost.com [69.163.253.135]) (using TLSv1.1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A5B901242F5 for <tls@ietf.org>; Tue, 11 Jul 2017 16:27:20 -0700 (PDT)
Received: from homiemail-a35.g.dreamhost.com (localhost [127.0.0.1]) by homiemail-a35.g.dreamhost.com (Postfix) with ESMTP id 34911C0028A9; Tue, 11 Jul 2017 16:27:20 -0700 (PDT)
Received: from localhost (cpe-70-123-158-140.austin.res.rr.com [70.123.158.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: nico@cryptonector.com) by homiemail-a35.g.dreamhost.com (Postfix) with ESMTPSA id CB10DC0028A5; Tue, 11 Jul 2017 16:27:19 -0700 (PDT)
Date: Tue, 11 Jul 2017 18:27:16 -0500
From: Nico Williams <nico@cryptonector.com>
To: Ted Lemon <mellon@fugue.com>
Cc: Stephen Farrell <stephen.farrell@cs.tcd.ie>, tls@ietf.org
Message-ID: <20170711232714.GA9898@localhost>
References: <0c87999c-9d84-9eac-c2c4-0f1fc8a70bdb@cs.tcd.ie> <6DA3E09E-5523-4EB2-88F0-2C4429114805@fugue.com> <fa6e64a2-b1c8-9c55-799b-b687b830a246@huitema.net> <26848de4-ce08-8ebd-bd67-ed3af3417166@cs.tcd.ie> <CD0E0745-EA72-41D9-87F6-B40369ED6A70@fugue.com> <bcda4dab-3590-9162-5f5c-c453f7a610ac@cs.tcd.ie> <2500C1F7-480E-44C9-BDB0-7307EB3AF6C2@fugue.com> <d9870cd0-476c-b255-16bd-594e24cd91f0@cs.tcd.ie> <74719010-DD1D-44F5-A65C-2FF5DD539066@fugue.com> <FF3F29FC-9EAA-4092-AF37-B19FB67E6BB8@fugue.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <FF3F29FC-9EAA-4092-AF37-B19FB67E6BB8@fugue.com>
User-Agent: Mutt/1.5.24 (2015-08-30)
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/JP6_BTRazhm29bu4dq4B-WBrTIU>
Subject: Re: [TLS] chairs - please shutdown wiretapping discussion...
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.22
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: Tue, 11 Jul 2017 23:27:22 -0000

On Tue, Jul 11, 2017 at 05:16:31PM -0400, Ted Lemon wrote:
> On Jul 11, 2017, at 4:58 PM, Ted Lemon <mellon@fugue.com> wrote:
> > On Jul 11, 2017, at 4:31 PM, Stephen Farrell <stephen.farrell@cs.tcd.ie <mailto:stephen.farrell@cs.tcd.ie>> wrote:
> >> I'd bet folks would invent proprietary
> >> ways of avoiding detection, that deviate from the "standard"
> >> and that perhaps make crypto worse all around. Say by deriving
> >> secrets from some function f(exfiltrated-secret, time, count)
> >> for a small counter or some such and having the decryptor of
> >> the wiretapped packets hunt a bit for the right key.
> > 
> > Hm, well, but that would be catnip for security researchers,
> > particularly if it weakened the key.   But yeah, you're right, that
> > does make detecting the attack possibly impractical aside from as a
> > large research project.
> 
> On second thought, this suffers from the same problem as the
> many-static-keys problem: there are too many moving parts.   This
> requires all clocks on all servers and interceptors to be in perfect
> sync, not just close, or else potentially halves the performance
> during clock skew  overlap periods.   It requires every server and
> interceptor to implement the same algorithm.   And you still have to
> distribute the information from which the key is derived.

If TLS 1.3 still has server nonces (does it?) then those could be used
to provide enough information to reconstruct the server's ECDH key given
access to a base secret (per-host secret, say)...  Alternatively could
one use some extension to signal such information?  After all, if one
wishes to decrypt past sessions, presumably one is recording them, so if
the transcript gives you the bits you need...

Or one could also just construct a protocol by which to quickly log
{transcript_hash, session_key} encrypted to the log sink.

Or {transcript_hash, counter/nonce for ECDH keygen} -- this doesn't need
to be encrypted, which simplifies key management for the escrow system,
though it also makes past sessions vulnerable to host compromises.

If synchronous, reliable escrow is not required then one could
immediately send a UDP datagram to the sink and use background
retransmission as needed if one wants reliable escrow.  One could even
just syslog the darned thing.  If reliable escrow is required then hold
the connection until the sink ACKs the escrow message.

This is a very simple design for session key escrow.  It requires a sink
and storage, granted, but that's pretty cheap nowadays, you almost
certainly have such sinks, and, besides, if you're interested in
decrypting sessions after the fact then you're recording entire sessions
anyways, so storage-wise a session key escrow system is no big deal.

Note that such a system would be completely undetectable from a client's
point of view.  It's a server-side CALEA-like "port" enabling
eavesdropping by authorized parties.  One could not prove that the
server does not do this without access to the server.

Such an escrow-via-logging approach works no matter what TLS 1.3 looks
like on the wire.  More than that, it works for all client-server
protocols for that matter: SSHv2, Kerberos, SCRAM, whatever.  All you
have to do is specify what goes into the transcript hash for each
protocol, and what bits to include for key escrow.  Universal session
key escrow.  What's an intranet not to like, right?

The best thing about such a scheme is that it completely sidesteps all
this entire "it's wiretapping" "no it's not" "yes it is" "nuh uh" ...
thread.  One might want to standardize a key escrow logging protocol --
why not?  Maybe not at the IETF, or maybe in a WG just for that purpose.
I don't have a problem with that.

I also don't have a problem with draft-green-tls-static-dh-in-tls13
provided that it be published as an Informational RFC.  After all, it
documents a method that a) doesn't change TLS on the wire, and which b)
clients have a hard time deciding when to refuse to talk to a server
that appears to implement it.  Sure, it breaks the spirit of TLS 1.3,
but that was always possible, with or without an RFC.

I might not even have a problem with draft-green-tls-static-dh-in-tls13
as a Standards-Track RFC.  Not publishing doesn't prevent implementation
reuse of ECDH keys, and publishing doesn't cause reuse of ECDH keys to
be required.  My only objection to publishing on the Standards-Track is
that Informational seems much more appropriate given that the
contents... is purely informative, lacking even a reference to RFC2119,
much less normative RFC2119 keywords.

Too much ado about nothing.  The best solution here is for the authors
to acknowledge the informative/non-normative nature of their I-D and
take it to the ISE as an FYI.  Done.

Nico
--