RE: wrt all those "FIDO" terms, e.g. "FIDO Credentials" - new names?

Thanks, that helps clarify the argument for me. So to more fully flesh out the suggestion (with apologies if this seems repetitive), you’re saying that:


-          We should have a single enum type produced by this WG.

-          This enum type will correspond to the set of methods {makeCredential, getAssertion}

-          As a corollary, any variations over time such as changes to assertion / signature formats and versioning must be handled inside this spec, so we must provide affordances for this.

-          Future functionally similar device types should be encouraged to use this enum value and set of methods, maybe using the above affordances for format/versioning if necessary.

Is that accurate? In other words, for both the following questions which I asked Jack on the other strand of this thread, your answers would be no?


-          Let's say it turns out that the way we combine the fields in the assertion is cryptographically unsound (we believe it is sound, but cryptography has a way of revealing new issues like this over time) and the only way to fix it is to revise the signature format. Would we expand the enum?

-          Let's say that someone comes up with a radically new type of token which has a very different and distinctive UX which requires different user guidance from the RP, while in the end producing assertion signatures compatible with our current spec. Would we expand the enum?

I’m just trying to be super clear about this because it seems to imply building in a set of affordances to the API that we have not yet done. So it seems like a tradeoff between generality and complexity, which needs some careful thought.


From: Richard Barnes [mailto:rbarnes@mozilla.com]
Sent: Thursday, March 10, 2016 11:29 AM
To: Vijay Bharadwaj <vijaybh@microsoft.com>
Cc: Anthony Nadalin <tonynad@microsoft.com>; Hodges, Jeff <jeff.hodges@paypal.com>; W3C WebAuthn WG <public-webauthn@w3.org>
Subject: Re: wrt all those "FIDO" terms, e.g. "FIDO Credentials" - new names?



On Thu, Mar 10, 2016 at 11:46 AM, Vijay Bharadwaj <vijaybh@microsoft.com<mailto:vijaybh@microsoft.com>> wrote:
This seems like a bit of a strawman argument. Nobody is proposing to name the API something non-generic.

It occurs to me that we might have some diversity of views on what exactly the problem is, and maybe some of the nuance got lost in the noise. So I’m going to try and go back to the beginning. I’m going to avoid making any suggestions in this email, and only describe the problem. My goal here is to understand if there is a deeper disagreement, and to try to get to a shared understanding of that.


-          We have a spec that is intended to support a large number of authenticators each of which has a certain property that they cryptographically convey the human user’s intent to a remote relying party over the web.

-          We understand that this API will need to talk to devices with the help of the platform, and the method of connection of those devices to the platform is deliberately not specified here.

-          The FIDO Alliance represents one way in which such devices can connect to the platform, by specifying things like BLE, USB and NFC protocols that convey the API primitives to a device.

We have at least three things to name:

-          The API itself – there seems to be consensus that a generic name is appropriate here, and that was my original proposal as well.

-          The namespace in which the API exists – again, generic is good.

-          The enum within the API which designates the type of a specific credential – this is where the controversy is.

Perhaps one fundamental question to ask is how people see this enum evolving. Do you think the enum should contain a small number of generic items (e.g. all authenticators complying with this spec have CredentialType “WebAuthN”) or do you think of this enum as a thing which grows over time to accommodate for example new device standards with the same functional properties (e.g. things implementing FIDO device protocols have CredentialType “FIDO” and those implementing Example Alliance protocols have CredentialType “Example”)? I suspect that the strong disagreement on naming comes from some people being on one side of this argument vs. the other.

Thanks for the good refocus.
I would note that this is slightly more than an enum -- the values of the enum label interfaces that one uses to create and manage credentials.
Personally my expectation would be that the values in the CredentialType enum would correspond to the functional / security properties provided by the credential.  PasswordCredential objects provide a way to manage passwords (with the concomitant security risks), and FederatedCredential objects provide a way to manage federated logins.  "FIDO" doesn't tell me anything about what this thing is, unless I unravel a layer of indirection to figure it out.  And even then, it's over-specific, since (for example) some browsers might have a built-in tokens that doesn't follow the FIDO protocols at all but still expose the same functional interface.
Note that as a corollary to the above, I would expect for this WG to produce exactly one CredentialType.  We are chartered to create an API with a specific set of functional properties, so we should create one type of credential to expose them.

--Richard


Does that sound like a reasonable characterization of the issue? If so, maybe we should reach consensus on the underlying issue before diving into naming again?


From: Richard Barnes [mailto:rbarnes@mozilla.com<mailto:rbarnes@mozilla.com>]
Sent: Thursday, March 10, 2016 6:15 AM
To: Vijay Bharadwaj <vijaybh@microsoft.com<mailto:vijaybh@microsoft.com>>
Cc: Anthony Nadalin <tonynad@microsoft.com<mailto:tonynad@microsoft.com>>; Hodges, Jeff <jeff.hodges@paypal.com<mailto:jeff.hodges@paypal.com>>; W3C WebAuthn WG <public-webauthn@w3.org<mailto:public-webauthn@w3.org>>

Subject: Re: wrt all those "FIDO" terms, e.g. "FIDO Credentials" - new names?



On Wed, Mar 9, 2016 at 6:40 PM, Vijay Bharadwaj <vijaybh@microsoft.com<mailto:vijaybh@microsoft.com>> wrote:
Tony beat me to this one.

This seems to add unnecessary cognitive overhead for web developers. They have to just know that if they want to support those flashy dongles with the FIDO logo, they need to use “ScopedSignature” (having a CredentialType enum value include Credential in its name seems like a redundant bit of redundancy) in their code. Moreover, using “FIDO” as an enum value in no way prevents the existence of other possible enum values. The API names and namespaces remain generic after all.

That's a very myopic view.  Look, I'm sure that calling WebRTC the Hangouts API would appeared to reduce developer overhead in the early days of that spec, when Hangouts was the only thing using it.  But as Felipe says, not all that many developers have heard about FIDO today, and to be honest, I hope this spec outlives FIDO.  I mean no ill will toward the FIDO Alliance, but honestly in this space, device standards come and go; the Web abides.

--Richard



From: Anthony Nadalin [mailto:tonynad@microsoft.com<mailto:tonynad@microsoft.com>]
Sent: Wednesday, March 09, 2016 3:06 PM
To: Richard Barnes <rbarnes@mozilla.com<mailto:rbarnes@mozilla.com>>; Hodges, Jeff <jeff.hodges@paypal.com<mailto:jeff.hodges@paypal.com>>
Cc: W3C WebAuthn WG <public-webauthn@w3.org<mailto:public-webauthn@w3.org>>
Subject: RE: wrt all those "FIDO" terms, e.g. "FIDO Credentials" - new names?

I’m getting a little worried that we are now in meaningless territory as “FIDO” had a specific meaning the “ScopedSignatureCredentails” can mean anything. The use of FIDO is just like the use of RSA here.

From: Richard Barnes [mailto:rbarnes@mozilla.com]
Sent: Wednesday, March 9, 2016 1:30 PM
To: Hodges, Jeff <jeff.hodges@paypal.com<mailto:jeff.hodges@paypal.com>>
Cc: W3C WebAuthn WG <public-webauthn@w3.org<mailto:public-webauthn@w3.org>>
Subject: Re: wrt all those "FIDO" terms, e.g. "FIDO Credentials" - new names?



On Wed, Mar 9, 2016 at 4:28 PM, Hodges, Jeff <jeff.hodges@paypal.com<mailto:jeff.hodges@paypal.com>> wrote:
On 3/9/16, 1:20 PM, "Richard Barnes" <rbarnes@mozilla.com<mailto:rbarnes@mozilla.com>> wrote:

"""
API Features in scope are: (1) Requesting generation of an asymmetric key pair within a specific scope (e.g., an origin); (2) Proving that the browser has possession of a specific private key, where the proof can only be done within the scope of the key pair. In other words, authentication should obey the same origin policy.
"""
So this is a credential that provides authentication based on proof of possession of a signing key (i.e., a signature), where that signature is limited to some scope via the signing protocol we will define.
Could people live with "ScopedSignatureCredential"?

so you are suggesting..

enum CredentialType {

    "ScopedSignatureCredential"

};

.. yes?
Precisely.


sure, I can live with that.

=JeffH

Received on Friday, 11 March 2016 07:22:23 UTC