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

Ryan Sleevi <ryan-ietf@sleevi.com> Tue, 07 January 2020 21:34 UTC

Return-Path: <ryan.sleevi@gmail.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 5E18D120143; Tue, 7 Jan 2020 13:34:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.399
X-Spam-Level:
X-Spam-Status: No, score=-1.399 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=no 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 Yr75VX51mXzq; Tue, 7 Jan 2020 13:34:34 -0800 (PST)
Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.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 A4A7F1200E7; Tue, 7 Jan 2020 13:34:33 -0800 (PST)
Received: by mail-ed1-f49.google.com with SMTP id l8so872083edw.1; Tue, 07 Jan 2020 13:34:33 -0800 (PST)
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=ql0gVGD1qnWcJQ6S45QjyKCbS71osgCPtX+NfiLm7vs=; b=tghNReV3GZt9FpIpfjle8JzZscnH4dkwsCGpimKO9XJeP2tF+5GAgrSs9RukzezfZ8 RZ6JW3Ba8AsnA3CETV98/2sgMls5pCgnGGOHgnBJeGg58jLyiNiUoScrIFZUJmE3K9W/ Rv/QErowqsCt4kULiqJ9FuDwT2mc2rUDPtu5LmzysPknaMxrSYAvKyJg/b0jrVa7lgaW EtEgvpbKX4+kINzhK6OnafWDVSKoojaHGP+uDeTLzpZ7N0CCkbov74JTCbrYAggQi5L4 RnrtbjfjBcwHowxIixkCFFwTGC0fw/5tTGPgULfm28g0ciYES7tMlQS5T65ng3oQNiX9 wJeQ==
X-Gm-Message-State: APjAAAV0qqSqgC3dWSOwUctlbGw8wLk9crIUIMp5apAsNUNIeW8QS+yl foTqCuNLokmXVgVN8/xR5M/+6/eK
X-Google-Smtp-Source: APXvYqymYSuNQhOzG7VBMZ9BApOsalq99ZGDvU1vwbx2qr6faMJ8Zt4M6d2j4vlZdpO1A7KbbNuU9g==
X-Received: by 2002:a17:906:90d6:: with SMTP id v22mr1557420ejw.294.1578432871418; Tue, 07 Jan 2020 13:34:31 -0800 (PST)
Received: from mail-wr1-f52.google.com (mail-wr1-f52.google.com. [209.85.221.52]) by smtp.gmail.com with ESMTPSA id m24sm21259edr.83.2020.01.07.13.34.31 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 07 Jan 2020 13:34:31 -0800 (PST)
Received: by mail-wr1-f52.google.com with SMTP id q10so1140287wrm.11; Tue, 07 Jan 2020 13:34:31 -0800 (PST)
X-Received: by 2002:adf:ebc1:: with SMTP id v1mr1012535wrn.351.1578432870819; Tue, 07 Jan 2020 13:34:30 -0800 (PST)
MIME-Version: 1.0
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> <B823CF84-4F78-4B91-BC68-E173FA78C28D@deployingradius.com> <CAErg=HEAtGiJKpLamdUaHicU2Psu7_0RrwsrwiQpb-uHOZ2p2Q@mail.gmail.com> <B2989B0E-8B6B-4B7A-B871-AF520310B3FC@deployingradius.com> <CAErg=HG06ZpiRUYogiVwoJPsZDsjzAVvO0B4=K=PE7aAHe44rA@mail.gmail.com> <6CEB4C89-B749-4A65-A25A-A12830ED8A62@deployingradius.com>
In-Reply-To: <6CEB4C89-B749-4A65-A25A-A12830ED8A62@deployingradius.com>
From: Ryan Sleevi <ryan-ietf@sleevi.com>
Date: Tue, 07 Jan 2020 16:34:19 -0500
X-Gmail-Original-Message-ID: <CAErg=HFPCYKgUEXHaOC0sQECYaVmt0TZXe-uDrKzFiNSAcdckg@mail.gmail.com>
Message-ID: <CAErg=HFPCYKgUEXHaOC0sQECYaVmt0TZXe-uDrKzFiNSAcdckg@mail.gmail.com>
To: Alan DeKok <aland@deployingradius.com>
Cc: Ryan Sleevi <ryan-ietf@sleevi.com>, EMU WG <emu@ietf.org>, "Owen Friel (ofriel)" <ofriel@cisco.com>, "spasm@ietf.org" <spasm@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000912d39059b938ab5"
Archived-At: <https://mailarchive.ietf.org/arch/msg/emu/ppdndoatIPdNOBmK1Z_bklG2ZZU>
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 21:34:36 -0000

Hi Alan,

I've snipped your message, because I think we've gotten to a place where
we're clearly talking past each other, as you claim I've said several
things which I've most definitely not said, or expressed the opposite view.
I'm hoping a reset here might help us find a more productive path forward,
as well as figure out where the confusion started.

I think it's useful to go back to the original message from Owen, at
https://mailarchive.ietf.org/arch/msg/spasm/S4tO5yE_HP9CC6qd8WudY9Ln3oM .
Perhaps there are other messages and context I've missed, since this was
cross-posted across two WGs, but that's the starting point.

In that, I think we've got a path forward for interoperable EAP
implementations: NAIRealm with id-kp-eapOverLAN asserted as an EKU. That
gives a minimal sort of certificate profile to begin discussing.

The question posed in that original message is what to do with extant
certificates and extant practices, such as going to CAs used for TLS and
asking for an id-kp-serverAuth cert, or supplicants looking for
id-kp-serverAuth, and whether to specify that. My answer to that is
categorically "no, don't do that". This is not specific to EAP, but part of
the general problem of repurposing different trust hierarchies and
different implementations, without addressing or mitigating the ecosystem
considerations.

For example, the use of such certificates outside of TLS can and will lead
to them being revoked, because one of the requirements for such
certificates is that they be used in TLS, otherwise they're revoked. Also,
the changes to how PKI libraries validate TLS certificates, and the
expectations for the issuance and management of such certificates, are at
odds with the goals and objectives of interoperability being discussed.
Reusing private key material across protocols and use cases does cause
issues, just like reusing root certificates across trust purposes does
cause issues. So using the TLS PKI is and always will be fraught with
peril, and the maintainers of those TLS PKIs will disregard "your" concerns
(the equipment, software, and users), because "your" use case is explicitly
not supported and not supportable.

These concerns aren't unique to EAP, by any means. But they're reasons why
using id-kp-serverAuth is going down a route of trouble, and just because
it's been done by some vendors doesn't mean it's good. A transition plan is
always challenging, and the IETF is generally a poor venue for figuring out
those logistics, because they're often rarely technical. For example, RFC
7585 exists: implementations "just" need to adopt it. Or, if the desire is
to have an RFC describe what the end state should be, it should focus on
that: describing the end-state. I don't think it should specify the
intermediate states, because those are going to vary on a host of concerns,
and worse, encourage folks to stop at the intermediate state as being 'good
enough'. One such example of an intermediate state is using
id-kp-serverAuth certificates, or trying to make a public/private CA
demarcation. Those are bad steps to take.

I'm not as optimistic as you are for suggesting 'all' EAP
clients/supplicants are behaving and enforcing those extended key usages,
so that doesn't seem too unreasonable. For example, wpa_supplicant doesn't
seem to do so, in the versions used by ChromeOS, Android, or the current
tip of tree (using either the internal or the OpenSSL implementation), and
that seems like it probably covers quite a few devices/clients.

In the TLS PKI, there's lots of industry experience on how to make changes.
These changes often involve significant risk of breakage, and yet have
become somewhat the norm, and with minimal practical impact. These can
involve setting flag days, often starting as per-vendor flag days, such as
was done with SHA-1. They can start with changes in major releases, such as
new behaviours introduced in a major OS release or a major supplicant
release to align closer to the specification or end-state. They may involve
some of the intermediate steps mentioned, but only to the extent those are
intermediate accomodations; for example, Chrome often has Enterprise flags
that allow disabling standards-compliant behaviour when rolling out new
versions, but only for a limited time and under limited situations. These
aren't, I think, good things to specify, but they're certainly good things
to share information about. I don't know if the IETF is the best place for
that, but that's neither here nor there. However, an important part of
those experiences is that things don't move until vendors break things.
Yes, there needs to be a better path, but until you're willing to remove
support for the old, or provide incentives for the new, your users don't
and won't move.

Hopefully that's easier to understand. I'm not sure how we ended up on such
different pages, but I think the assertions and requests from your last
message were a good indicator that we weren't even in the same postal code,
let alone the same page, as far as discussions go.