Re: [TLS] I-D Action: draft-ietf-tls-negotiated-ff-dhe-02.txt

Peter Gutmann <pgut001@cs.auckland.ac.nz> Tue, 28 October 2014 12:36 UTC

Return-Path: <pgut001@cs.auckland.ac.nz>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9D0971A88AD for <tls@ietfa.amsl.com>; Tue, 28 Oct 2014 05:36:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.81
X-Spam-Level:
X-Spam-Status: No, score=-2.81 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 D7_pRtfCVI22 for <tls@ietfa.amsl.com>; Tue, 28 Oct 2014 05:36:23 -0700 (PDT)
Received: from mx2.auckland.ac.nz (mx2.auckland.ac.nz [130.216.125.245]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 222911A1BED for <tls@ietf.org>; Tue, 28 Oct 2014 05:30:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=auckland.ac.nz; i=@auckland.ac.nz; q=dns/txt; s=uoa; t=1414499454; x=1446035454; h=from:to:subject:date:message-id: content-transfer-encoding:mime-version; bh=9bkl/DlKQI4FkXJEq2HvNxlThilNYyAOB6UDL4ry3ao=; b=TWA6LLYqjUBAYPoooR8NdZQGvDKv0sQmajl0nRgHz5qmmiEPWx5als3v Nvi6fy0PJclgjr/iV7O4OAElXnzmE+HmnBSYH4YsU28ZL5UfGRnkJwYli TIhqbFmOntA1sP2c3IQqOs4M3xSiTqhxUHeO7OC1dxNE+TtK2Qeov1eoQ A=;
X-IronPort-AV: E=Sophos;i="5.04,630,1406548800"; d="scan'208";a="286178389"
X-Ironport-HAT: MAIL-SERVERS - $RELAYED
X-Ironport-Source: 130.216.4.106 - Outgoing - Outgoing
Received: from uxchange10-fe2.uoa.auckland.ac.nz ([130.216.4.106]) by mx2-int.auckland.ac.nz with ESMTP/TLS/AES128-SHA; 29 Oct 2014 01:30:49 +1300
Received: from UXCN10-5.UoA.auckland.ac.nz ([169.254.5.15]) by uxchange10-fe2.UoA.auckland.ac.nz ([169.254.27.86]) with mapi id 14.03.0174.001; Wed, 29 Oct 2014 01:30:48 +1300
From: Peter Gutmann <pgut001@cs.auckland.ac.nz>
To: "<tls@ietf.org>" <tls@ietf.org>
Thread-Topic: [TLS] I-D Action: draft-ietf-tls-negotiated-ff-dhe-02.txt
Thread-Index: Ac/yqwBtseI0TRehRU2SEkNJzo1nWA==
Date: Tue, 28 Oct 2014 12:30:47 +0000
Message-ID: <9A043F3CF02CD34C8E74AC1594475C739B9D9F9E@uxcn10-5.UoA.auckland.ac.nz>
Accept-Language: en-NZ, en-GB, en-US
Content-Language: en-NZ
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [130.216.158.4]
Content-Type: text/plain; charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: http://mailarchive.ietf.org/arch/msg/tls/Z2KrCCvnWBkcFS0wBMtweBVAU1A
Subject: Re: [TLS] I-D Action: draft-ietf-tls-negotiated-ff-dhe-02.txt
X-BeenThere: tls@ietf.org
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." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/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, 28 Oct 2014 12:36:27 -0000

Alyssa Rowan <akr@akr.io> writes:
>On 24/10/2014 15:55, Peter Gutmann wrote:
>> Re-doing the crypto to implement and support ECC may happen in five
>>  to ten years, if there's enough code space in the flash.
>
>So, you want to use 768-bit groups… for five to ten years… yeah, I'm
>not too comfortable with that.

I'm not actually sure where this 768-bit figure came from, I don't see it
anywhere in RFC 3526, which starts at 1536 bits.  Now there is a need for
1024-bit groups to support widespread existing use, but not 768 bits.

>(BTW: Lost, embedded devices; too small to use a 2048-bit group for… some
>reason? RAM?; yet negotiate (768|1024|1536) DHE…

I've been trying to avoid giving specific examples because then people are
going to focus on individual cases rather than the general problem, but here
are three real use cases from actual deployed or about-to-be-deployed gear.

1. The device has a negative code budget, in that features had to be removed
elsewhere to make room for the crypto (oh, and a negative CPU budget in that
it's really too slow for 1024-bit DH, but we can hold our noses and rely on
session resumption with long-term cacheing).  Adding a few bytes of definition
for a TLS extension specifying a 1024-bit group is OK, adding an ECC
implementation is a complete non-starter.  Currently in the process of being
deployed, expected lifetime is until the hardware fails.

2. The device has hard real-time requirements and can't do dynamic memory
allocation, you get a fixed (small) amount of RAM at build time and that's
all.  The ECC routines (from OpenSSL) with their large memory footprint and
allocation and de-allocation of memory can't be used.  DH can.  Already
deployed but can be upgraded (slightly) in new releases, see (1).

3. The device has gone through a type-approval process and can't be changed
any more barring maintenance (see (1) again).  The vendor won't pay for an ECC
implementation, and even if they did they're not going to restart the whole
type-approval process from scratch.  Rest as for (2).

(In any case ECC is only useful if you can persuade all of your competitors to
do it as well, since if you implement it any no-one can talk to you it's not
much use.  Since the competitors will be facing the same issues as 1...3
above, they probably won't bother with ECC).

>SCADA security - or lack thereof - is a very big problem. I don't agree that
>specifying groups for future use that we _know_ are too small, helps do
>anything but make it worse.

SCADA security has very, very different requirements than conventional
security, because availability trumps everything else.  In addition SCADA
security is actually problems with backdoors, hardcoded passwords, open ports,
insecure protocols, and a million other things, not the size of the DH key you
use for your TLS handshake.

Adding the ability to secure the DH parameters for existing devices is a small
but significant improvement on security over what's currently being done.  The
choice isn't "secure existing stuff even if it may be not-best-practice vs.
recommend that people upgrade to best-practice stuff", it's "secure existing
stuff or do nothing at all".  Anything that requires hardware changes (bigger
DH groups, switching to new hardware that can handle ECC) becomes "do
nothing".  So instead of ten years of slightly-more-secure DH it's ten years
of no extra security.

(If dkg really doesn't want to add support for the existing groups, I'm happy
to knock out an Informational RFC with the necessary definitions in that based
on his work, it shouldn't take long at all, and he won't have to put his name
to any of it).

Peter.