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

Ryan Sleevi <ryan-ietf@sleevi.com> Wed, 08 January 2020 16:29 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 702D0120837; Wed, 8 Jan 2020 08:29:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.398
X-Spam-Level:
X-Spam-Status: No, score=-1.398 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, URIBL_BLOCKED=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 j7wMf-LSKUR4; Wed, 8 Jan 2020 08:29:47 -0800 (PST)
Received: from mail-ed1-f45.google.com (mail-ed1-f45.google.com [209.85.208.45]) (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 CEE8F1208A3; Wed, 8 Jan 2020 08:29:46 -0800 (PST)
Received: by mail-ed1-f45.google.com with SMTP id c26so3052088eds.8; Wed, 08 Jan 2020 08:29:46 -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=/K8b98+jjdPVVkpao27qaO6pRTTv/TQ/uFzB7qi7K7s=; b=d8zEXlkoEJ9si4KDvqIYFp5OafyGkWkelFGSmVk3OOH4Iv9ArGbBJBhV3O//7wIMPF irc+dfVdUo9z0lRekmLYDactjQSF8Yclm5BC97qASC/As4gkxNXp7CEWLDAB2qSWM7rb L+kAWz1ipjxZcuTgeWxazBNLQIULRmIxguO55ht25cK0KKawHCM9fpqyUvMLkwYQiwZy qkOotZawW0VtWNGt1f7jeeE3sEtzLNmFWKzRMySt1fl9Xvc1A39LTA6H/oeqFTH0zdLV zJobLqQFXRqVYBBqw5cOpmE5/Ld3jPa3wTNDIqoA4Jg0FZL9GnEYC1Re6+JBRYubI/Ue sw/A==
X-Gm-Message-State: APjAAAWBVRGv7WUNcnIoJr1Gu5VqKc9TH3mIEj0b3AZsQzWD/zEbapE4 GXC/8h35H5RKHGJNDJ8FkKJtb3OH
X-Google-Smtp-Source: APXvYqxnkKrrI2CH92iUsb3fynYU0e1xMBu8EvPi02EEHsSnkymPtT/V15tRTv+gZN4CZQHqzkmXxg==
X-Received: by 2002:a05:6402:149a:: with SMTP id e26mr6478046edv.198.1578500984970; Wed, 08 Jan 2020 08:29:44 -0800 (PST)
Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com. [209.85.128.44]) by smtp.gmail.com with ESMTPSA id r24sm81531edp.15.2020.01.08.08.29.44 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 08 Jan 2020 08:29:44 -0800 (PST)
Received: by mail-wm1-f44.google.com with SMTP id a5so3170590wmb.0; Wed, 08 Jan 2020 08:29:44 -0800 (PST)
X-Received: by 2002:a1c:1fc5:: with SMTP id f188mr5144515wmf.55.1578500983970; Wed, 08 Jan 2020 08:29:43 -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> <CAErg=HFPCYKgUEXHaOC0sQECYaVmt0TZXe-uDrKzFiNSAcdckg@mail.gmail.com> <00453E78-D991-4B4D-A138-5788FACC47C2@deployingradius.com> <CAErg=HFYQpfqTE9==TzGo795ZiuNBGVMqWuXS6GJ2DV0nGxPzA@mail.gmail.com> <316CC74D-667B-4A1E-AD48-A702DF705423@deployingradius.com> <CAErg=HF-so7nvNmYd04wJ-DCHYGarkHpt3XjTGOhFNT1h=69UA@mail.gmail.com> <10F5CCFB-7DBD-40DF-9C65-BCD0EB8CB838@deployingradius.com>
In-Reply-To: <10F5CCFB-7DBD-40DF-9C65-BCD0EB8CB838@deployingradius.com>
From: Ryan Sleevi <ryan-ietf@sleevi.com>
Date: Wed, 08 Jan 2020 11:29:32 -0500
X-Gmail-Original-Message-ID: <CAErg=HH_VNooEKr2p7ebdDScRorQxEfxJ30YpY7sEu84pk+6eg@mail.gmail.com>
Message-ID: <CAErg=HH_VNooEKr2p7ebdDScRorQxEfxJ30YpY7sEu84pk+6eg@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="0000000000006d6315059ba3669b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/emu/cAhM2fsUdhBHc4GmTDTkg9qJNzA>
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: Wed, 08 Jan 2020 16:29:51 -0000

On Wed, Jan 8, 2020 at 10:38 AM Alan DeKok <aland@deployingradius.com>
wrote:

>   The rest of the disagreement is (from what I see), bringing up
> situations or use-cases which are unrelated to EAP, and therefore confusing
> the issue.
>

They're related to the proposal that started this thread, which I'm trying
to focus the discussion on, and which may be why we keep finding
misalignment.


> On Jan 8, 2020, at 9:29 AM, Ryan Sleevi <ryan-ietf@sleevi.com> wrote:
> > I'm not sure what your data to support this is, but this does not match
> the commercial space. While I think we're in agreement you "shouldn't" be
> using publicly trusted CAs, it's not at all true that they don't really
> have a process. Perhaps this was more true a decade ago, but the work on
> Delegated Credentials and Signed HTTP Exchanges - both which require custom
> certificate profiles for issuance, and both which are relatively recent and
> yet available from CAs.
>
>   I've looked, and haven't been able to find a process where I can get a
> cert with id-kp-eapOverLan set.
>

Thanks. It seems like you meant process as "They won't sell it to me", and
I meant process as "They can't sell it to me / Don't know how to sell it to
me".


> >   If mis-use isn't defined, then it's reasonable to argue that following
> IETF standards isn't mis-use.
> >
> > I'm not sure how you reached this conclusion. I gave you an example of
> where misuse is defined to preclude such certificates,
>
>   Hmm... that wasn't clear at all.  I can't find any policies which say
> "certificates will be revoked if they're used for purposes other than TLS
> web server".


The CA must revoke if the certificate is misused; that's required by
contract.
The CA defines what misuse means.
A number of CAs define misuse as "used for purposes other than TLS web
server"
Ergo, obtaining and using certificates with EAP means these certificates
are at risk of revocation.


> > I'm guessing you may be more familiar with the embedded libraries that
> roll their own TLS stacks or build on OpenSSL?
>
>   I'm familiar with application use-cases.  Most EAP applications use
> OpenSSL.  As do RADIUS applications, web servers, DNS servers, etc.  They
> all operate the same way,
>
>   Other systems implement things differently, of course.  OS vendors are
> locking down their cert stores to more stringently control access.  This
> includes limiting the API used by applications.  What other PKI systems do
> is irrelevant, because they don't implement the application protocols.
>

It's extremely relevant to the original proposal, at
https://mailarchive.ietf.org/arch/msg/spasm/S4tO5yE_HP9CC6qd8WudY9Ln3oM,
and to the subsequent follow-ups (e.g.
https://mailarchive.ietf.org/arch/msg/spasm/E9CpTnuCNqV9d-2hnB0c3fJ4NtQ )

If you reject messages like that, then it's understandable you might
disagree on the relevance.
If you support the goal (of no-touch access), then it's still relevant in
as much as there's plenty of academic literature on how you design those
APIs (e.g.
https://crypto.stanford.edu/~dabo/pubs/abstracts/ssl-client-bugs.html ),
but that's more of an implementation discussion.


> > 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.
>
>   I asked *what* security issues there were, and what interoperability
> issues existed when these certificates were used for EAP.  I stated that
> 15+ years of experience showed no issues.  Your response was:
>
> > This is empirically false. The use of certain CA’s certificates in
> wireless deployments has absolutely been a barrier to compliance and
> improvements.
>
>   I asked again for evidence, and got told:
>

I didn't see interpret your reply as you've summarized, but your follow-up
indicates that you disagree that it's a "security" issue if, for example, a
CA decides to not revoke certain certificates or to keep issuing certain
certificates, because that's seemingly seen as an interoperability issue.
Again, this is in the context of using the same set of CAs for EAP and for
TLS web server - I'm not speaking about other contexts here. In these
contexts, the security issue is for the TLS clients trusting certificates
from CAs that violate the policies. For example, continuing to issue SHA-1
certificates to support devices/clients that only trust SHA-1 certificates,
from the same hierarchy used for TLS. The interoperability issues are
indistinguishable from security issues in situations like this.


> > Reusing private key material across protocols and use cases does cause
> issues,
>
>    With pointers to papers that shows private key usage across disparate
> encryption methods.  These papers are entirely irrelevant to the use-case
> discussed here, i.e. these certs being used for EAP-TLS.
>

It looks like I should have spelled out a situation clearer:
- Consider that TLS 1.2 had interoperability issues with wpa_supplicant
versions and certain Cisco devices, due to confusion about the PRF
algorithm used
  - This led Apple, Google, and Microsoft to not enable TLS 1.2 for their
supplicants for quite some time, due to the ineroperability issues
  - These concerns were not applicable to the use of TLS web server
authentication, and such clients were able (and long had enabled) TLS 1.2
support
  - As a consequence, if the EAP-TLS and TLS web server shared the same
certificate, you can exercise some of those cross-protocol attacks
  - This similarly applies to TLS 1.2 (EAP) vs TLS 1.3 (web) deployments

This is an example of how certs being used for EAP-TLS, indistinguishable
from the Web hierarchy, leads to security issues. We may disagree on
categorization (e.g. "It's a deployment issue with a site, not an inherent
security issue"), but my objective is to try to prevent situations where
deployment issues result in security issues. Hence the recommendation to
make it *impossible* to reuse the same certificate across these different
consumers and use cases.


> > Great. I don't think anyone has suggested turning off enterprise WiFi,
> whole-scale, world-wide, or even anything remotely close to that, so I
> think we're good?
>
>   Suggesting that CAs will revoke all certificates mis-using
> id-kp-serverAuth *is* implying that enterprise WiFi will be disabled
> world-wide.  I explained in detail why I believe this correlation to be
> true.
>

Thanks. I think this conclusion is based on a misunderstanding. I have not
suggested CAs are going to know which certificates are used for EAP-TLS and
proactively revoke those. As you've correctly noted, and I've agreed, they
can't know. What I have suggested is that anyone, at any time, may be able
to notify the CA of potential misuse (according to the CA's definition),
thus requiring revocation. This creates an operational burden for those
deployments, and creates an incentive for the CA to ignore their stated
policies, which creates security issues for TLS clients (any CA ignoring
their policies is, fundamentally, indistinguishable from a security issue).

The way to mitigate that risk - of required revocation - involves clients
and servers make sure the certificates they accept are not subjected to
that.


> > Put simply: There's no "obtain a certificate from a public CA and it
> just works", where that certificate contains id-kp-serverAuth.
>
>   The only required step is for supplicants to explicitly enable that CA
> to be used for EAP.  As I said earlier, the root CAs are all enabled for
> the web, and none are enabled by default for EAP.
>

Yes, but I don't think that fits with the objectives of the original
message,
https://mailarchive.ietf.org/arch/msg/spasm/S4tO5yE_HP9CC6qd8WudY9Ln3oM and
the followups, such as
https://mailarchive.ietf.org/arch/msg/spasm/E9CpTnuCNqV9d-2hnB0c3fJ4NtQ

My observations have been that the means of achieving that goal are
problematic; that is, we _don't_ want to enable the extant root CAs for EAP
by default, with the described mechanism. My comments MUST be taken in
consideration as describing what that future world should look like and how
to get there.

  So I don't really care how OS vendors implement certificate checking for
> HTTPS.  It doesn't apply to EAP.  Bringing up irrelevant issues is just
> confusing and unhelpful.


Perhaps you missed replies like
https://mailarchive.ietf.org/arch/msg/spasm/E9CpTnuCNqV9d-2hnB0c3fJ4NtQ that
brought that up?

It sounds like much of our disagreement has just been on lacking the
context from the overall thread and discussion (with others), and thus
arriving at different conclusions based on that lack of context?