Re: [TLS] Comments on draft-friel-tls-eap-dpp-01
Eric Rescorla <ekr@rtfm.com> Wed, 10 March 2021 12:13 UTC
Return-Path: <ekr@rtfm.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 66D1D3A2317 for <tls@ietfa.amsl.com>; Wed, 10 Mar 2021 04:13:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.895
X-Spam-Level:
X-Spam-Status: No, score=-1.895 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.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 yvN8PctUADJH for <tls@ietfa.amsl.com>; Wed, 10 Mar 2021 04:13:27 -0800 (PST)
Received: from mail-lj1-x22b.google.com (mail-lj1-x22b.google.com [IPv6:2a00:1450:4864:20::22b]) (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 1452B3A2315 for <tls@ietf.org>; Wed, 10 Mar 2021 04:13:27 -0800 (PST)
Received: by mail-lj1-x22b.google.com with SMTP id c19so16968165ljn.12 for <tls@ietf.org>; Wed, 10 Mar 2021 04:13:26 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=mzY7VOdLbn4zn3JuFUzOStvZBMmf7p9JP7uD+ZdneSY=; b=C/8jaOEKiCekV2lWhG0Lk1UvxYoYrZoZSfGZwPENQ4FyMvLbhid8efsR4CKWgyluA4 RaDjUY5Dd6Ku1Jvp5rx+DDi5tY7I/kk9/BpGjAWM4OAkzoUR9+y5iOugZws5nPFtB/4R R2m9eaedfNHSv9+HARKdBWVWmn6JlNB4OMY4zQBITlXVTR2BQr/GmKwECkdZ41M/Irf6 BOkSIa10rsrckvPr085dE1Qk4LlTVIkLDMAWw+zeNCqQxf0XHHr7HOAoCnPM6Bg9cyWe OkI0oPt+JTj0Ss2w6506dOOZXjFh8jFulbmAuI3ROm/hDSunKhYrBpXng5Hxziu/dZwI 8EEQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=mzY7VOdLbn4zn3JuFUzOStvZBMmf7p9JP7uD+ZdneSY=; b=GjYKnO5Wa6i5GXZf/MnEkSMik0866J4SPqq406SiU2F7NPDbKkF/tk0iDqGYuGfbNn Aoc6thjpEy6npbrlMTcRtnHZwlsBhXhJHTrwYv0f+6wV/lQsPxeOWorG/i1ypTmbroE2 JVM9qWh6Z8M3Vb6Zp0u9p9Ex16dicqQ7gmKXAeAp0g3PWPxwl1i16WRL7XKqQCjb27yH nu92jlcIja2RFkhXnwAVCllBg5xAC0Kpig9k8XnCpclfXBF+aO8K0fAzugD8ZZGoCYal ic0fRZSkq2KEGwy0goQiijxH2t6r8jg1QTnxzkRo19koT66tpPNemeatclPSsxFoS50g MUtg==
X-Gm-Message-State: AOAM533zbyAsQ4drGYqmSMYT1DRkbUzI7C7ewSLK/lX71h8yp5E5AlYg Z6E2kckkEYZ91E7ORleAeFr7QWHjyL8tfaHPFteetw==
X-Google-Smtp-Source: ABdhPJy31ugeOOWiBZ0LAdrl79BO6iRV0OToMCAag2VGIu8GztsCzYQblUOqJryLSas1iXwRGPfw1pp/qvucKZ4nJ7M=
X-Received: by 2002:a2e:3609:: with SMTP id d9mr1771269lja.2.1615378405267; Wed, 10 Mar 2021 04:13:25 -0800 (PST)
MIME-Version: 1.0
References: <BN7PR11MB2641059009817305AEDD597FC1939@BN7PR11MB2641.namprd11.prod.outlook.com> <CABcZeBPzqTukj2m+DbufB3c9vwUPnCGyNQO22z0QeRbN9Csj0g@mail.gmail.com> <c0dbb4c9-af78-c64c-ad4c-22130f75e9cb@lounge.org> <CABcZeBNxczqb5Pzo5UBjGgy0-0Bb8Gj8hAz7GPTyqCFyUg315w@mail.gmail.com> <CY4PR11MB1685A02865105A18E21A10F2DB919@CY4PR11MB1685.namprd11.prod.outlook.com>
In-Reply-To: <CY4PR11MB1685A02865105A18E21A10F2DB919@CY4PR11MB1685.namprd11.prod.outlook.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Wed, 10 Mar 2021 04:12:49 -0800
Message-ID: <CABcZeBOx-=B4O2uEwaN6WQWR28BeNuo2q-cuifJhXwTuo5XS6A@mail.gmail.com>
To: "Owen Friel (ofriel)" <ofriel@cisco.com>
Cc: Dan Harkins <dharkins@lounge.org>, "<tls@ietf.org>" <tls@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000062d2f05bd2d9811"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/yKNY47hSeM86x4cEBK56iV6_0A8>
Subject: Re: [TLS] Comments on draft-friel-tls-eap-dpp-01
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, 10 Mar 2021 12:13:29 -0000
On Tue, Mar 9, 2021 at 11:43 PM Owen Friel (ofriel) <ofriel@cisco.com> wrote: > > > > > *From:* TLS <tls-bounces@ietf.org> *On Behalf Of *Eric Rescorla > *Sent:* 09 March 2021 06:27 > *To:* Dan Harkins <dharkins@lounge.org> > *Cc:* <tls@ietf.org> <tls@ietf.org> > *Subject:* Re: [TLS] Comments on draft-friel-tls-eap-dpp-01 > > > > > > > > On Mon, Mar 8, 2021 at 1:18 PM Dan Harkins <dharkins@lounge.org> wrote: > > > Hi Eric, > > On 3/8/21 8:00 AM, Eric Rescorla wrote: > > Taking a step back from the crypto, I'm trying to make sure I > understand the desired security properties. As I understand the > situation: > > - the client has a preconfigured key pair (X_c, Y_c) > - the server is anonymous (i.e., doesn't have a valid TLS cert). > > > > [ofriel]Its not true that the server does not have a valid TLS cert, the > EAP server will have a cert but the client will have no way of verifying > it. Its more https://tools.ietf.org/html/rfc8446#appendix-C.5. > > > > > - the server is preconfigured with information about each > client (in this case, Y_c). > > And the desired property you are looking for is that: > > 1. The client authenticates to the server using X_c > 2. The client will only connect to servers that know the > per-client information > > Is this correct? > > > Yes. > > > > Assuming it is, it seems like we could accomplish this with > less change to TLS. Here is one proposal (warning: not > at all analyzed so may be totally broken). > > - Have the client take on the TLS server role, and use RFC 7250 raw > public keys. This addresses requirement 1. > > > This breaks the use of (T)EAP. In the case of EAP, the server is the > one that grants access to the network and the client is the one that > asks for access (which is why it's known as the "supplicant"). The > EAP roles match the TLS roles so it wouldn't be possible for an EAP > client to act as a TLS server in the EAP method. > > > > Thanks for the clarification. This is party of why it's helpful to > understand the requirements. > > > > > > - Store a separate per-client value K_c (this can be derived from the > X_c to ease the burden on the client) and use RFC 8773 external PSK > with cert authentication to inject K_c into the key schedule. > > > There's no certs involved here. There is trust by the server in a > raw public key and there's an assurance (not quite authentication) of > the client based on who knows that public key > > > > To clarify, what I was proposing was that that you replace knowledge of > the pubkey > > with knowledge of the PSK and have the client (acting as the server) > present its > > public key in the RFC 7250 Raw Public Key mode. The reason certs come > > into play is that TLS 1.3 prohibits the use of certificate based exchanges > (which > > should include Raw Public Key) with PSKs, and 8773 relaxes that. > > > > However, if you can't have the client act as the server, then we'll need > to find > > another approach. As I indicated on the call, what would be helpful to me > would > > be a description of the externally visible invariants that we need to > satisfy. > > > > [ofriel] Another requirement is that the full public key Y_c is not > transmitted as part of TLS handshake from client to server. We cannot not > use RFC 7250 as is. Instead, something like the Known Certificates proposal > in cTLS https://tools.ietf.org/html/draft-ietf-tls-ctls-01#section-5.1.3 > would work. > Is that a primary requirement or a derived requirement? > > Something like this could work: > > > > Setup: > > > > Client has X_c, Y_c > > Server is provisioned with Y_c (the bootstrap RPK) > > > > Both sides could derive (using some suitable hashing algorithm): > > > > keyID = H1(Y_c) > > PSK = H2(Y_c) > > > > Server keeps a map of keyID to Y_c. > > > > keyID could be common or unique for the PSK and RPK. > > > > C->S: Client sends the keyID for the derived PSK > > > > ClientHello > > +tls_cert_with_extern_psk > > +pre_shared_key identity=keyID > > > > S->C: Server looks up the Y_c, derives PSK, and injects into key_schedule. > Server sends its PKI Certificate/CertificateVerify which client ignores. > Server requests client cert so that client can prove it knows X_c. > > > > ServerHello > > +pre_shared_key selected_identity=keyID > > {EncryptedExtensions} > > {CertificateRequest} > > {Certificate} > > {CertificateVerify} > > {Finished} > > > > C->S: Ignores server Certificate/CertificateVerify. If handshake reaches > here, at this stage, server has proven knowledge of Y_c via derived PSK. > > > > {Certificate, cert_data does not include RPK, but instead keyID as per > cTLS} > > {CertificateVerify} > > {Finished} > > > > Server verifies Finished. At this stage, client has proven knowledge of > X_c. > > > > I believe this meets the requirements that: > > - server proves knowledge of Y_c > > - client proves knowledge of X_c > > - Y_c is not send over the wire in cleartext > > - reuse existing RFCs, aligns better with existing TLS flows, no new > extensions (well we need to do something for Certificate including keyID) > Yes, this might work. I think we would need analysis to demonstrate that this doesn't allow an attacker to derive Y_c. -Ekr
- [TLS] Comments on draft-friel-tls-eap-dpp-01 Scott Fluhrer (sfluhrer)
- Re: [TLS] Comments on draft-friel-tls-eap-dpp-01 Eric Rescorla
- Re: [TLS] Comments on draft-friel-tls-eap-dpp-01 Christian Huitema
- Re: [TLS] Comments on draft-friel-tls-eap-dpp-01 Dan Harkins
- Re: [TLS] Comments on draft-friel-tls-eap-dpp-01 Dan Harkins
- Re: [TLS] Comments on draft-friel-tls-eap-dpp-01 Dan Harkins
- Re: [TLS] Comments on draft-friel-tls-eap-dpp-01 Eric Rescorla
- Re: [TLS] Comments on draft-friel-tls-eap-dpp-01 Joseph Salowey
- Re: [TLS] Comments on draft-friel-tls-eap-dpp-01 Owen Friel (ofriel)
- Re: [TLS] Comments on draft-friel-tls-eap-dpp-01 Owen Friel (ofriel)
- Re: [TLS] Comments on draft-friel-tls-eap-dpp-01 Eric Rescorla
- Re: [TLS] Comments on draft-friel-tls-eap-dpp-01 Dan Harkins
- Re: [TLS] Comments on draft-friel-tls-eap-dpp-01 Eric Rescorla
- Re: [TLS] Comments on draft-friel-tls-eap-dpp-01 Watson Ladd
- Re: [TLS] Comments on draft-friel-tls-eap-dpp-01 Owen Friel (ofriel)
- Re: [TLS] Comments on draft-friel-tls-eap-dpp-01 Owen Friel (ofriel)