On Dec 15, 2019, at 6:43 PM, Ryan Sleevi <[email protected]> wrote:
> That is, most definitions for “public CAs” come down to “I don’t want to 
> think about / analyze the security or validation practices of the CA, I want 
> my supplicant / software / hardware vendor to do it for me, against some 
> criteria the vendor is responsible for, and hope it all works out”. To the 
> extent TLS uses ‘public CAs’, it either boils down to the OS or browser 
> vendors reaching rough (independent) consensus on who is worth trusting, or 
> the vendor going along with everyone else’s decisions for cost (too expensive 
> for the vendor to evaluate) or compatibility (everyone else trusts them and 
> it’d break things if the vendor doesn’t) reasons.

  It's also a way to move trust out of the individual machine, and into the 
network.  Given the complexity of supplicant configuration, I think that's a 
good thing.

> Is the supplicant market likely to reach that consensus? It seems unlikely, 
> unless and until you define the “thing everyone can and wants and needs to 
> validate”, and that thing is either globally unique (like DNS) or 
> sufficiently domain specific (e.g. Passpoint) that vendors can agree.
> 
> > If at some point in the future, public CAs are willing to issue certs with 
> > some or all of the above fields, then what is the migration plan, what do 
> > we tell EAP clients to do now, and how to they migrate their verification 
> > logic?

  My goal is to answer that question.  Which involves some discussion and 
analysis.

> This statement similarly requires untangling. There are “public CAs” as “The 
> set of keys/certificates used for authenticating particular services” and 
> “public CAs” as the set of organizations that own/operate those keys.
> 
> The case of the former is extremely unlikely, as the industry is actively 
> moving away from that approach to PKI, by trying to ensure separate keys for 
> separate use cases or authentication realms, of which EAP would surely be. 

  Yes.

> > - client verifies server cert has id-kp-eapOverLAN set
> 
> What assurance is this to provide?

  The use-case for the certificate matches the intended use-case.

  Right now, I can use the same server certificate for HTTPS, EAP, or any other 
TLS-based protocol.  That seems wrong.

> - NAIRealm in cert matches user’s realm
> 
> This only works iff the NAIs are globally unique (e.g. map to DNS), which 
> imposes requirements on NAIs that aren’t present in RFC 7542, and seemingly 
> intentionally, compared to 4282.

  Huh?  RFC 7542 explicitly calls out NAI Realms as mapping to DNS.  See 
Section 2.5:

---
   In order to ensure a canonical representation, characters of the
   realm portion in an NAI MUST match the ABNF in this specification as
   well as the requirements specified in [RFC5891].  In practice, these
   requirements consist of the following item:

   *  Realms MUST be of the form that can be registered as a Fully
      Qualified Domain Name (FQDN) within the DNS.

   This list is significantly shorter and simpler than the list in
   Section 2.4 of [RFC4282].
---

  The intention of RFC 7542 is that NAI Realms are *exactly* DNS names.  This 
is a change from 4282, where realms were, well, we don't know.  That failure 
motivated 7542.

> Again, I think that’s desirable, to define an entirely new PKI with zero 
> overlap with the server auth/TLS PKI used by OSes/browsers, but that does 
> change your recommendations and design a bit :) The short term recommendation 
> becomes “don’t use public CAs”, and that seems easier to explain and easier 
> to evolve the technical requirements, until the time that such a new, 
> EAP-specific public PKI can be introduced.

  The recommendation for EAP has generally been "don't use public CAs".  
Originally it was in part because implementations didn't do certificate 
pinning.  i.e. once a root CA was trusted, a supplicant would accept any server 
certificate signed by that root, and send credentials over.

  Now, over a decade of practice has shown the private CAs for EAP allow for 
greater flexibility and control.  I've personally had CAs take my money for a 
cert, and refuse to give me anything in return.  No amount of complaining will 
convince them that it's a problem.  It's much simpler to just use a private CA.

> In my mind, this is no different from organizations that want TLS 
> certificates for their servers named “webmail” (not globally unique) or 
> “mail_01.company.example” (not preferred name form / LDH). The answer is “use 
> private CAs, don’t use public CAs”

  I agree.

  Alan DeKok.

_______________________________________________
Emu mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/emu

Reply via email to