RE: extensions, continued.. (was: 05/24/2016 WebAuthn Summary

>Does anyone else remember us discussing (perhaps in the FIDO 2.0 WG) these extensions?

Yes, I do.  But I cannot reproduce the communications that occurred within one SDO (in this case the FIDO Alliance) on the mailing list of another SDO.  I’m not sure this is relevant to your argument anyways.

>How can the client do its job of protecting user privacy if the authenticator is allowed to add data to the assertion that the client doesn't understand?

I’ll answer with an example.  Chrome browser supports EME.  MediaKeySessions involve the exchange of messages between the DRM engine (CDM) and license server that the client may not understand, and will likely involve unique and privacy-impacting identifiers.  You can see https://www.w3.org/Bugs/Public/show_bug.cgi?id=26332 for more on this topic.  The solution to this was requiring secure context for access to EME (https://www.chromium.org/Home/chromium-security/deprecating-powerful-features-on-insecure-origins), which is what the WebAuth spec already recommends.

To me, a greater threat to user privacy than unprompted extensions is that secure contexts is only a SHOULD requirement in the spec instead of a MUST – see https://w3c.github.io/webauthn/#secure-contexts.  But I imagine this has already been discussed to death.

> I therefore propose that these three extensions be changed to included a client argument that signals to the authenticator that the information described in the extension should be provided by the authenticator.

Qualcomm cannot support the proposal as written.  I would like to pose some clarifying questions however:


a)      Can the client argument be null?

b)      What occurs if the client drops an extension that is associated with valid client data?  Will the RP know?  e.g. is an exception thrown?

c)      What does this mean for unprompted extensions in the packed attestation (https://w3c.github.io/webauthn/#sec-raw-data-packed) without a corresponding client argument?  It seems that the client cannot just drop an unprompted extension and still expect the signature to pass.

d)      Similar question for the assertion.

-Giri Mandyam


From: Dirk Balfanz [mailto:balfanz@google.com]
Sent: Saturday, June 04, 2016 11:14 AM
To: Hodges, Jeff <jeff.hodges@paypal.com>; Vijay Bharadwaj <vijaybh@microsoft.com>
Cc: public-webauthn@w3.org
Subject: Re: extensions, continued.. (was: 05/24/2016 WebAuthn Summary

Hi there,

Until Adam pointed this out to me in Berlin, I had no idea that these other three extensions exited. Now, it's certainly my fault - and no one else's - for not reading the attestation document more carefully (which is where these three extensions were originally defined), but I honestly don't remember these three extensions being discussed the way we discussed the authenticator-selection and transaction-authorization extensions. Does anyone else remember us discussing (perhaps in the FIDO 2.0 WG) these extensions?

In particular, I don't understand why they are defined as "unprompted" extensions. This is a privacy problem. How can the client do its job of protecting user privacy if the authenticator is allowed to add data to the assertion that the client doesn't understand? I get Jeff's point about innovation if the RP and authenticator can agree on something even if the client doesn't know what that something is, but I believe we should err on the side of privacy here.

I would also point out that technically speaking, unprompted extensions are not allowed according to the current text, which states that "an extension must specify, at minimum, an extension identifier and an extension client argument sent via the {{getAssertion()}} or {{makeCredential()}} call".

I therefore propose that these three extensions be changed to included a client argument that signals to the authenticator that the information described in the extension should be provided by the authenticator.

Thoughts? Opposing or supporting views?

Dirk.


On Fri, May 27, 2016 at 1:07 PM Hodges, Jeff <jeff.hodges@paypal.com<mailto:jeff.hodges@paypal.com>> wrote:
On 5/27/16, 12:50 PM, "Vijay Bharadwaj" <vijaybh@microsoft.com<mailto:vijaybh@microsoft.com>> wrote:

You mean you object to allowing the client a say in which extensions are emitted? We’re not talking about removing any existing extensions, just about clearly defining the circumstances under which an authenticator might emit them.

Yes, we would object to altering the present design that allows for authenticators to implement and emit extensions of their own volition, as pesently specified (c.f., AAGUID extension, SupportedExtensions extension, User Verification Index (UVI) extension).  We feel it is a subtle-but-important aspect of fostering the overall ecosystem.

This entire thread has become quite frayed... having a concrete extension proposal on the table may help it coalesce -- I suggest that Giri write up the postulated "opaque data" extension using the framework that's presently defined in the spec and then hopefully we can more objectively assess it.

HTH,

=JeffH




From: Hodges, Jeff [mailto:jeff.hodges@paypal.com]
Sent: Friday, May 27, 2016 12:48 PM
To: Vijay Bharadwaj <vijaybh@microsoft.com<mailto:vijaybh@microsoft.com>>
Cc: public-webauthn@w3.org<mailto:public-webauthn@w3.org>
Subject: Re: extensions, continued.. (was: 05/24/2016 WebAuthn Summary

On 5/27/16, 12:37 PM, "Vijay Bharadwaj" <vijaybh@microsoft.com<mailto:vijaybh@microsoft.com>> wrote:
One issue with that is that some of the extensions that are currently defined (in fact, 3 out of 5) are emitted unprompted by the authenticator. Though if we wanted to make this rule, I would be fine with it and we could add it in the spec if others agree.

Essentially the authenticator would still be allowed to ignore requested extensions, just not add new ones on its own.

We paypal object to obviating existing extensions.


 From: J.C. Jones [mailto:jjones@mozilla.com]
Sent: Friday, May 27, 2016 12:33 PM
That's how you'd enforce it: if the authenticator doesn't obey the contract, the signature won't be valid when the RP checks it.
Roughly the contract would be: Authenticators will only emit extensions they were prompted to emit.

Received on Sunday, 5 June 2016 01:09:03 UTC