W3C home > Mailing lists > Public > public-webappsec@w3.org > March 2017

Re: Splitting "Credential Management"?

From: Jeffrey Yasskin <jyasskin@google.com>
Date: Fri, 17 Mar 2017 19:40:32 -0700
Message-ID: <CANh-dXmnxY3GOnNdk31=WEhJWq4yReuRTXneOXiL=mQuiACyEg@mail.gmail.com>
To: Mike West <mkwst@google.com>
Cc: "public-webappsec@w3.org" <public-webappsec@w3.org>, Dominic Battre <battre@google.com>, Václav Brožek <vabr@google.com>, Angelo Liao <huliao@microsoft.com>, pdolanjski@mozilla.com, Daniel Bates <dbates@webkit.org>
3 thoughts here:

1) I strongly approve of you using the extension points to define the
initial credential types. Without doing this, it'd be hard for an extender
to use the extension points as you intended, even if you managed to get
them right. I think it's less important to put the initial extensions in a
separate document, although doing so does force you to figure out how
future extensions will be registered.

2) I think it's clearer to make the registry explicit, instead of using
"Let credential interfaces be the set of interfaces whose inherited
interfaces contain Credential." (
https://w3c.github.io/webappsec-credential-management/base.html#abstract-opdef-request-a-credential)
to reach out over all specs for possible branch targets. In Permissions, I
put the registry inside the spec, but as you said on #whatwg, that's not
compatible with the W3C's REC process. I'd still vote for an explicit
registry of credential types *somewhere* that this spec can link to, if
only in a Note.

3) [Maybe not related to this factoring] I don't see anywhere in the spec
that says what the result of get() "means".
https://w3c.github.io/webappsec-credential-management/base.html#user-mediated-selection
implies that a successful call "share[s] credential information" with the
site and that the credential is "provided to the website". I think that's
too tailored to the password case. Instead, can we think of get() providing
proof to the site that the UA has a credential? For a password, the current
proof is to provide the password itself, but we could imagine an HMAC
instead to prove possession without giving away the credential. For
WebAuthn, the result of get() is clearly a proof and not the credential
itself.

Jeffrey

On Thu, Mar 16, 2017 at 6:26 AM, Mike West <mkwst@google.com> wrote:

> Hey folks!
>
> While re-reading through the Credential Management API, I realized that
> the extension mechanisms aren't at all clear. As a thought exercise, I'm
> mostly finished with splitting the document into a generic API that defines
> the high-level architecture (https://w3c.github.io/webappsec-credential-
> management/base.html), and a document that specifies `PasswordCredential`
> and `FederatedCredental` as an extension (https://w3c.github.io/
> webappsec-credential-management/sitebound.html).
>
> WDYT? Is this a sane division? Does it actually make the integration
> points clearer by forcing us to use them, or is it more confusing than not
> to have the pieces in distinct documents?
>
> CCing some specific folks who might be interested.
>
> -mike
>
Received on Saturday, 18 March 2017 02:41:26 UTC

This archive was generated by hypermail 2.3.1 : Monday, 23 October 2017 14:54:22 UTC