Re: [Emu] [lamps] EAP/EMU recommendations for client cert validation logic

Alan DeKok <aland@deployingradius.com> Tue, 07 January 2020 16:44 UTC

Return-Path: <aland@deployingradius.com>
X-Original-To: emu@ietfa.amsl.com
Delivered-To: emu@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3284112012A; Tue, 7 Jan 2020 08:44:08 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=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 Phw-urENhZdM; Tue, 7 Jan 2020 08:44:04 -0800 (PST)
Received: from mail.networkradius.com (mail.networkradius.com [62.210.147.122]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1F774120052; Tue, 7 Jan 2020 08:44:02 -0800 (PST)
Received: from [192.168.20.201] (206-248-138-162.dsl.teksavvy.com [206.248.138.162]) by mail.networkradius.com (Postfix) with ESMTPSA id 6D8B8B79; Tue, 7 Jan 2020 16:44:00 +0000 (UTC)
Authentication-Results: NetworkRADIUS; dmarc=none header.from=deployingradius.com
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3608.40.2.2.4\))
From: Alan DeKok <aland@deployingradius.com>
In-Reply-To: <CAErg=HG=ZTbzfSr8oQMWgzFNqmdPkUNttLQDprGo5F6LXv9T5Q@mail.gmail.com>
Date: Tue, 07 Jan 2020 11:43:59 -0500
Cc: "Owen Friel (ofriel)" <ofriel@cisco.com>, "spasm@ietf.org" <spasm@ietf.org>, EMU WG <emu@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <B823CF84-4F78-4B91-BC68-E173FA78C28D@deployingradius.com>
References: <MN2PR11MB3901F9B86DAC83AF67FBA49DDB560@MN2PR11MB3901.namprd11.prod.outlook.com> <CAErg=HEzR4U9L2Bbj65hSKo4=GEHv=NVGkySFpdCaK2NoJBmFQ@mail.gmail.com> <MN2PR11MB39013D4C54FEACDC8228D136DB3F0@MN2PR11MB3901.namprd11.prod.outlook.com> <CAErg=HG=ZTbzfSr8oQMWgzFNqmdPkUNttLQDprGo5F6LXv9T5Q@mail.gmail.com>
To: Ryan Sleevi <ryan-ietf@sleevi.com>
X-Mailer: Apple Mail (2.3608.40.2.2.4)
Archived-At: <https://mailarchive.ietf.org/arch/msg/emu/xM_jd0VSM-Srs13dhgfH5nktrQE>
Subject: Re: [Emu] [lamps] EAP/EMU recommendations for client cert validation logic
X-BeenThere: emu@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "EAP Methods Update \(EMU\)" <emu.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/emu>, <mailto:emu-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/emu/>
List-Post: <mailto:emu@ietf.org>
List-Help: <mailto:emu-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/emu>, <mailto:emu-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 07 Jan 2020 16:44:08 -0000

On Jan 7, 2020, at 9:54 AM, Ryan Sleevi <ryan-ietf@sleevi.com> wrote:
> At the high-level, I will say that using TLS (id-kp-serverAuth) certificates, from the intersection of CAs that are commonly trusted by operating systems and browsers, is bad. It will create security issues, will create interoperability issues, and will not help users.

  It's been accepted practice in all EAP implementations for ~15 years.  Are there practical issues you're aware of?  Because I can't recall seeing any.

  Any security issues are limited.  If a site administrator has access to the public / private keys for a web server, it's possible to re-use those certs for EAP.  This re-use cannot be prevented.

> The set of CAs that are trusted for TLS on a given device, platform, or application are intrinsically tied to purpose (TLS) and the library used to implement that TLS and PKI behaviour. They are not separable, and trying to do so is a problem, not a solution. This is perhaps most obvious as vendors like Apple have tightly integrated PKI policy requirements (such as Certificate Transparency) with the capability of their TLS libraries; for several macOS/iOS releases, any application using a TLS library other than Apple's CFNetwork would be unable to successfully verify a number of certificates from CAs Apple trusted for TLS.
> 
> EAP is not TLS, and your use case here is not TLS (clearly), so don't mess with TLS, or you will break, eventually. The best I can do is try to explicitly break you sooner, than later, so that I can deal with the fallout sooner than later, and not when there's a critical issue in the TLS ecosystem needing rapid resolution.

  I'm not sure what your point is here.  I agree this usage is wrong, but the goal is to *fix* it.  The goal isn't to "bless" the existing usage.

  The goal is to figure out what *should* supplicants do.

> At a high-level, you're still fundamentally proposing a new root store. I realize that may not be obvious, given the suggestion of intermediates with id-kp-eapOverLAN, but that's still fundamentally what's being suggested, because you still need to define a certificate profile (such as the EKU), expected policies such as how that information is validated, and a process for ensuring that validation is performed. I think that's a laudable goal, and perhaps worth pursuing, but it's important to stress that in defining a new root store, there's no reason to reuse anything extant. The fact that operating systems may trust some organizations for other purposes (TLS or S/MIME) should by no means be dispositive towards whatever you're doing. Where to best propose certificate profiles or certificate policies for that root store, I don't know, and that clearly requires a lot more implementor experience and consensus to end up with something like the CA/Browser Forum that is useful for TLS.

  EAP supplicant implementations largely do this already.  So there's no "proposal" of a new root store.  There's a statement that there *is* a different root store.

  i.e. implementations default to not trusting CAs for EAP.  The trust has to be explicitly enabled by an admin, or by the user.  This means that there's a store of CAs *only* for EAP.

  Everyone knows that it's wrong to use id-kp-serverAuth for EAP.   The way forward is to figure out how to fix it.

  Alan DeKok.