- From: Ryan Sleevi <sleevi@google.com>
- Date: Fri, 10 Aug 2012 17:44:40 -0700
- To: Mitch Zollinger <mzollinger@netflix.com>
- Cc: "public-webcrypto@w3.org" <public-webcrypto@w3.org>
On Fri, Aug 10, 2012 at 5:13 PM, Mitch Zollinger <mzollinger@netflix.com> wrote: > In our phone conversation on Monday, the topic of certificates as first > class objects in the Key interface came up. For reference, the interface is > defined here: > http://www.w3.org/2012/webcrypto/WebCryptoAPI/#key-interface > and the associated action ("Discovering certificates associated with > (private) keys") is found here: > https://www.w3.org/2012/webcrypto/track/issues/15 > > The issue I raised was that "Certificates" as first class objects related to > keys treats other authentication mechanisms (Kerberos, OAuth, etc.) as > second class citizens. Instead, I would like to propose one of: > 1. an "authentication token" which is paired with a key should be a generic > "AuthenticationToken" type or -- perhaps even easier -- use the proposed > KeyAttribute (KeyAttributes?) attribute instead > 2. the concept of an"authentication token" paired with a key be outside of > the Key interface > > Also, as "Certificate" is only applicable to public/private keys, its > inclusion in the Key interface seems a bit odd. > > Our preference is for #2. In the case of #1, we would be forcing a > 1(key)-to-many(authentication tokens) relationship. There are many cases > where that relationship does not work. Our current authentication protocol > has 8 different types of supported authentication and the relationships > between key & auth token is actually 1(key)-to-1(token) and > 2(keys)-to-1(token), where the later is the common case. The later case > (2-to-1) would be unsupported by tying an authentication token to a > particular key, unless we're willing to deal with the nuance of including > the token as data associated with two Key objects. (Seems a bit hackish.) > > Mitch Mitch, <editor hat> While I can understand the objection to the Certificate object as it relates to symmetric keys, I'm having trouble understanding your objections on "first class" or "second class" basis. It simply reflects the past discussions and seeming consensus of the WG, as expressed via our charter, our use cases, our phone calls, and our face to face discussions, which have concluded that there is interest in Certificates. With the exception of Netflix, I'm not aware of any discussions yet for any other types of authentication data, nor have there been specific proposals on how that mechanism may look - the intent was simply to capture that the WG had decided that such an association was "Important" and thus under consideration. As I noted in ISSUE-15, it's not clear what the intended semantics are, but I think it's clear from past discussions that members are interested in some sort of standardized representation for Certificates - both as it relates to Keys (specifically private keys) and as it relates to the TLS information (as reflected in both the secondary API of the charter and the secondary use cases). If this is not the case, I'm happy to remove it (thus avoiding ISSUE-15 entirely). Alternatively, if you believe that these other token types are of interest to this WG and that consensus can be reached reached to add them, then I think it would be great if you could propose some text. There's nothing that prohibits both 1 and 2 from co-existing, and is by no means a statement of "first class" or "second class", although I'd agree that if the WG believes we'll go down a particular route, it would be nice to know early. </editor hat> Personally, I'd definitely agree with you that Certificates as an attribute of Keys seems a wrong interface, which is part of why I raised ISSUE-15. However, the change reflected our discussions of the F2F, and thus as an Editor it definitely seems appropriate for it to be added as the strawman discussed. I definitely agree with you that it does not seem appropriate to expose certificates as attributes of Keys, and would welcome any alternative proposals you have. In a practical sense, it would seem like Netflix's specialized needs could be met either by 1 or via whatever method is decided as part of ISSUE-17, so I'm not sure if the spec needs to change to specifically accommodate your data types. After all, the whole point of such extensibility is to represent data that is opaque to the spec and specific to the application, which your use case very much seems to be describing. It would seem like you're desiring a WebIDL definition for Kerberos or OAuth tokens - which may or may not be in scope for our current charter. Perhaps once we can advance a base API past WGLC, we or another appropriate group can look at re-chartering to address those needs. Do you have a proposal for #2 that we can discuss as part of ISSUE-15?
Received on Saturday, 11 August 2012 00:45:10 UTC