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

Ryan Sleevi <ryan-ietf@sleevi.com> Tue, 07 January 2020 19:20 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 8ADDC1202DD; Tue, 7 Jan 2020 11:20:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.302
X-Spam-Level: *
X-Spam-Status: No, score=1.302 tagged_above=-999 required=5 tests=[BAYES_50=0.8, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, HTML_FONT_LOW_CONTRAST=0.001, 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 tTyAFfjClipF; Tue, 7 Jan 2020 11:19:58 -0800 (PST)
Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43]) (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 426E51200C7; Tue, 7 Jan 2020 11:19:58 -0800 (PST)
Received: by mail-ed1-f43.google.com with SMTP id i16so535651edr.5; Tue, 07 Jan 2020 11:19:58 -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=gYztrtMHtaWGNNaiEegAqKhlAXd+EHaE1705Lvqoe/k=; b=fV+F/KJe/YRY9E6cT2XsazYtYMqQ3DddIOHeRBTZDrTdvecQdnMARjcn1lUkWH+uyA kF0IhMID8/NpLZb3nnco8yoFp5E9vxaqm/z/3uk/CHFkjdC4TuPSfC2HgnnMSusXT6py AAHKEixBHyrEaNr0Ll4TWNHdCZq1aB7PI7pzPh75w7+3KiKmb6aL9P4xJ68PwIn89ywV 4ZSwypYbg5kV7xIFctZi39mjSDWsOgBBRm57k6arLdbFF0BAg3zi2SoC6Ecc81Vtc3TQ 2CVdk7oWfppfVYe1nSqI36i2ZWpoAO1N8K87JUaOAM8kvARrPzNBJPUcEjkQBG9kosVT FhHQ==
X-Gm-Message-State: APjAAAXW6TvvxuuhdUQSM29agu+M3Ijn3hsr9R3jfBvvTFKAFGdrCKnE eTquIPJ0EOrcERU11er+XWQSM6D6
X-Google-Smtp-Source: APXvYqwJq9kU+qM4QBvXVz5W5GyIZxDY+b39I7Gm8djwJSmJHWrDxbZjMQqny74n/TZ+6/m7h/H7iw==
X-Received: by 2002:a17:906:bcd3:: with SMTP id lw19mr1019383ejb.270.1578424796441; Tue, 07 Jan 2020 11:19:56 -0800 (PST)
Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com. [209.85.128.52]) by smtp.gmail.com with ESMTPSA id a9sm19388edm.82.2020.01.07.11.19.56 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 07 Jan 2020 11:19:56 -0800 (PST)
Received: by mail-wm1-f52.google.com with SMTP id m24so723447wmc.3; Tue, 07 Jan 2020 11:19:56 -0800 (PST)
X-Received: by 2002:a1c:3c89:: with SMTP id j131mr617010wma.34.1578424795818; Tue, 07 Jan 2020 11:19:55 -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>
In-Reply-To: <B2989B0E-8B6B-4B7A-B871-AF520310B3FC@deployingradius.com>
From: Ryan Sleevi <ryan-ietf@sleevi.com>
Date: Tue, 07 Jan 2020 14:19:44 -0500
X-Gmail-Original-Message-ID: <CAErg=HG06ZpiRUYogiVwoJPsZDsjzAVvO0B4=K=PE7aAHe44rA@mail.gmail.com>
Message-ID: <CAErg=HG06ZpiRUYogiVwoJPsZDsjzAVvO0B4=K=PE7aAHe44rA@mail.gmail.com>
To: Alan DeKok <aland@deployingradius.com>
Cc: EMU WG <emu@ietf.org>, "Owen Friel (ofriel)" <ofriel@cisco.com>, Ryan Sleevi <ryan-ietf@sleevi.com>, "spasm@ietf.org" <spasm@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000004274c1059b91a939"
Archived-At: <https://mailarchive.ietf.org/arch/msg/emu/HoC9zuYUh_YF-4F0Cnf1TrhweXs>
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 19:20:00 -0000

On Tue, Jan 7, 2020 at 12:51 PM Alan DeKok <aland@deployingradius.com>
wrote:

> On Jan 7, 2020, at 12:33 PM, 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.
> >
> > I'm sure "practical" will be seen as subjective, but here's some
> examples:
> >
> > Operational:
> > - Customers of CAs having trouble when their CA has to perform timely
> revocation of their certificates
> > - Migration off SHA-1
> > - Migration off 1024-bit RSA
> > - CAs being shut down or exiting the business due to non-compliance with
> browser requirements
>
>   How is that specific to the use of TLS (id-kp-serverAuth) certificates?
> Any use of TLS certificates by EAP would be subject to the same issues.


Was there a typo here? I’m not sure how to parse or understand this?


>
> > Security:
> > - Cross-protocol considerations due to key reuse seems like a meaningful
> security issue that's being dismissed.
>
>   Who is dismissing it?
>
> >   Any security issues are limited.


^ this seems dismissive

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.
> >
> > No. But it results in prompt revocation of that certificate if anyone
> demonstrates it being used like that
>
>   No, it doesn't.
>
>   *Everyone* has been doing this with EAP for a very long time.  i.e.
> getting a certificate using id-kp-serverAuth from a root CA, and then using
> that certificate for EAP.  I have never heard of such a certificate being
> revoked.


The same was said for people embedding private keys in their software.


>
> > There's no short-term or medium-term solution that can rely on
> 'accepting' or 'specifying' the use of id-kp-serverAuth, which was the
> original proposal as a "recommend". Any of those uses are inherently broken
> and unsafe and just time bombs waiting to go off.
>
>   It's been 15+ years.  There has been no such issue.


This is empirically false. The use of certain CA’s certificates in wireless
deployments has absolutely been a barrier to compliance and improvements.


>
>   I think it's acceptable to recommend people continue existing practice,
> where such practice has been shown to be (a) workable, and (b) has no known
> issues.


I’ve demonstrated both a and b are false, perhaps not to your satisfaction,
but it remains true.


>
> >   Everyone knows that it's wrong to use id-kp-serverAuth for EAP.   The
> way forward is to figure out how to fix it.
> >
> > Update software?
>
>   To do *what*?  A concrete proposal would help here.


The same message you’re replying to contains one, which you dismiss as
unworkable. It’s unclear why, or if the only solution is enshrine the
status quo?


> > I'm glad there's agreement it's bad/wrong to use, but it seems the only
> path forward is going to be to breaking, not recommending for using public
> (TLS) CAs with id-kp-serverAuth.
>
>   Please call Microsoft and Apple, and tell them you're going to forbid
> their 15 year workflow for EAP.  Then, tell them that you *want* their
> systems to break, and that it's for security reasons.


They’re on the same page already. I won’t claim to speak for them, but the
same principles and concerns I’m raising are and have been shared by all
the major OS and browser vendors in some form. This is the path that is on
the way out, not the way forward.

  I suspect that request won't go over well.
>
>   We just cannot break existing systems without a clear and present
> security problem.  And none has been demonstrated here.


Apologies for the confusion here, but there seems to be a lot of
unresolvable contradictions here. We must do something different, but we
can’t change. We know the current solution is bad, but there’s nothing
wrong with it. We need something better, but we can’t break anything.

Wanting to both have and eat cake is an unwinnable position.


> > Attempting to specify some interoperable behaviour in the interim,
> before things are broken, for how folks can keep using id-kp-serverAuth,
> seems to be the problem. Just accepting that things need to be broken seems
> like it easily allows moving into the discussion about NAIRealm and manual
> configuration.
>
>   I think it's OK to *document* existing behaviour.  Behaviour that has
> been demonstrated in to be interoperable with billions of devices.


I strongly disagree here. Documenting bad behaviour in SDOs serves to try
and legitimize it. The only benefit is to allow existing implementations to
align and new implementations to be interoperable, except the behavior
being specified is bad, and will break, and will cause pain. Even on the
Informational track, that would be actively harmful to the ecosystem.


>
> > I know that's easy to say when it's individual vendors who have to deal
> with the fallout and that's why I suggested there's a spectrum of responses
> for how that's phased out. But explicitly moving towards that goal, and not
> trying to live in the interim with id-kp-serverAuth, seems the best path
> forward.
>
>   I welcome concrete proposals to move forward.  The discussion here seems
> to recommend against using id-kp-eapOverLAN and NAIRealm.  Which means we
> *don't* have a way forward.


Why not?

>