Re: [TLS] on sharing PSKs between TLS 1.2 and TLS 1.3

Nikos Mavrogiannopoulos <nmav@redhat.com> Mon, 23 July 2018 13:45 UTC

Return-Path: <nmav@redhat.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 86F29130E89 for <tls@ietfa.amsl.com>; Mon, 23 Jul 2018 06:45:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level:
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-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 9_hCZR1MkcBu for <tls@ietfa.amsl.com>; Mon, 23 Jul 2018 06:45:21 -0700 (PDT)
Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D1B87130DC7 for <tls@ietf.org>; Mon, 23 Jul 2018 06:45:20 -0700 (PDT)
Received: by mail-wr1-f49.google.com with SMTP id b15-v6so762266wrv.10 for <tls@ietf.org>; Mon, 23 Jul 2018 06:45:20 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:mime-version:content-transfer-encoding; bh=TQ1Wzt7T7gJoIP41iSkbAxtV45tIDAwXUmMoKt0CwzU=; b=OtHffM8dmRCRvssSaxTblrJWjP9hut6ZnnT3pd7NMsAUHhtln/njmxjbj4MpVuT+Wr SoifixC6tj0DYeAO/VjIZ1fz4WVar8CdbNeoBA8KK4gzZN5vYEPjjKR4Qt//Ie9Cu9YJ wKTh35LdoC3kI7mZHXQu9/SZOWMKlkPGsjpPQ3mPSWsgdOwLQgabxZPJfoodmSL9i4t/ 9hmgZmqgzMei+VmWZDAhxLkgxgjNqvCLK73fYjWK2kW1tXd7LeiL8w5K6LWiDdGryj4l cMs5OjEIPZiGJgj3mto5zSNlfVJlVGQJEu0G30oKTij6RSx9sgHxud0ZEUCVGoSZh+Gn kJuA==
X-Gm-Message-State: AOUpUlGb9InCOGwEGVhZ+yARz4yQ8fSDvQ9ZfLhXVsAmfI5Nub4rjA6o t4K+vnqFcsuPnj+ITEVHxMuAbA==
X-Google-Smtp-Source: AAOMgpcWtnMcy+oCGw4BqdZRuk/mLgs9FTU7vMDJl/2O2BmIIWt3bDClBALm7L9jGHvMEkaerr6HZg==
X-Received: by 2002:a5d:5043:: with SMTP id h3-v6mr8239335wrt.186.1532353519309; Mon, 23 Jul 2018 06:45:19 -0700 (PDT)
Received: from dhcp-10-40-1-102.brq.redhat.com (nat-pool-brq-t.redhat.com. [213.175.37.10]) by smtp.gmail.com with ESMTPSA id i205-v6sm12697055wmf.30.2018.07.23.06.45.18 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 23 Jul 2018 06:45:18 -0700 (PDT)
Message-ID: <9c4ba8a53fd365993e996f31d355297ae77c3fdc.camel@redhat.com>
From: Nikos Mavrogiannopoulos <nmav@redhat.com>
To: David Benjamin <davidben@chromium.org>
Cc: Eric Rescorla <ekr@rtfm.com>, "<tls@ietf.org>" <tls@ietf.org>, Benjamin Kaduk <bkaduk=40akamai.com@dmarc.ietf.org>
Date: Mon, 23 Jul 2018 15:45:17 +0200
In-Reply-To: <CAF8qwaBDXw1vur5eaLhGyMcZefgwX66QBzfXMB+E6mBKsUnwdA@mail.gmail.com>
References: <20180719230009.GD14551@akamai.com> <ce4cb23be8939e57574062e17c4f204f7145d020.camel@redhat.com> <CABcZeBN4tdHZ_fzqqEJNR46BP5bxiy6gWa17xxhfj9YXVAR0rw@mail.gmail.com> <86b69d7d0534d7c711d13182c18774cf484e6431.camel@redhat.com> <CAF8qwaBDXw1vur5eaLhGyMcZefgwX66QBzfXMB+E6mBKsUnwdA@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"
X-Mailer: Evolution 3.28.4 (3.28.4-1.fc28)
Mime-Version: 1.0
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/SRjTSdxZb4wOpZ3opr_5MM2jKC4>
Subject: Re: [TLS] on sharing PSKs between TLS 1.2 and TLS 1.3
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.27
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: Mon, 23 Jul 2018 13:45:24 -0000

On Fri, 2018-07-20 at 08:42 -0400, David Benjamin wrote:
> 
> > I understand, but as I have already mentioned that argument also
> > applies for RSA keys which can be used e.g., for RSA encryption
> > under
> > TLS1.2 and for RSA-PSS signatures under TLS1.3. ECDSA keys can be
> > used
> > with multiple hashes under TLS1.2 while only one under TLS1.3.
> > TLS 1.3 did not enforce protocol separation for that ugly scenario,
> > so
> > I wouldn't expect the treatment of PSKs differently.
> 
> PSKs are much easier to fix this with than signing algorithms, given
> that we don't want to reprovision either to deploy TLS 1.3.
> 
> ECDSA in TLS didn't get worse with TLS 1.3. We didn't add a new hash
> to mixup, just restricted the set from TLS 1.2. If we left it alone,
> we'd still have the same effect. For RSA, you're right that we
> introduced an extra pair of algorithms to worry about. The options
> there are:
> 
> (1) Add PSS, forbid PKCS1, and forbid PSS with id-rsaEncryption.
> Cost: TLS 1.3 requires reprovisioning RSA keys.
> (2) Add PSS, forbid PKCS1, but allow PSS with id-rsaEncryption. Cost:
> We have two algorithms with one key.
> (3) Don't forbid PKCS1. Cost: We don't get rid of PKCS#1.
> 
> (1)'s cost is clearly fatal, given 1.3's goals. I'm personally fine
> with either (2) or (3), but the WG chose (2).
> 
> With PSKs, I think we can get both. If we consider 1.2 PSKs to be
> paired with the 1.2 PRF, we can allocate a new label, and derive a
> separate thing to stick in 1.3, and not require reprovisioning. It's
> basically free, so I think it makes sense to do it.

> (I suspect using the same key with TLS1.2-PRF-SHA256 and HKDF-SHA256
> is probably *more* risky than mixing HKDF-SHA256 and HKDF-SHA384. I
> don't think we actually believe SHA256 and SHA384 give related
> output. It's just nice to avoid the assumption. Whereas TLS1.2-PRF-
> SHA256 and HKDF-SHA256 actually a chance of misbehavior. Perhaps it's
> worth doing that analysis?)
> Of course, I don't actually know what I'm talking about. Opinions
> from the formal analysis folks would be great. :-)

I wouldn't expect much from formal analysis here, though in the past
I've been positively surprised. I'd expect "don't mix algorithms", as
with RSA and RSA-PSS.

> > Said that, I want to clarify that I wouldn't necessarily object to
> > an
> > improvement the situation for externally established PSKs. The
> > issue I
> > see is that TLS1.3 already gives a "good enough" solution with re-
> > using 
> > the key, and I'm afraid we're going to have interoperation issues
> > if
> > some implementations move to universal psks and some do not,
> > defeating
> > the purpose of a standard.
> 
> I think that's the point of deciding this immediate question now, so
> we can get some text in the specification. If we decide to fix this,
> we'd instruct implementations to (temporary!) turn off TLS 1.3 if 1.2
> PSKs are configured and then, once the fixup document is published,
> implement it and remove the version logic. This is interoperable at
> all combinations as version negotiation runs first.

> Personally, I actually don't care much about 1.2 PSKs as I don't work
> with anything that uses them. I do care about allowing new protocols
> to use 1.3 external PSKs cleanly---new protocols can just mandate 1.3
> and avoid 1.2, but the hash rule makes the whole thing unusable and
> it is unclear whether 1.3 PSKs will be usable in a future 1.4. I
> figured it'd be easy to patch the 1.2 issue while I was at it, thus
> the construction in my draft.
> 
> But the exact derivation can be worked out separately, my draft or
> not. The immediate question is whether we think 1.2 PSKs should be
> reusable in 1.3 as-is or whether we should stick a derivation step to
> separate them.

The derivation makes sense to be part of the draft. It makes sense to
me the whole draft to be part or referred from TLS1.3.

regards,
Nikos