- From: Richard L. Barnes <rbarnes@bbn.com>
- Date: Wed, 13 Nov 2013 22:50:26 -0800
- To: Ryan Sleevi <sleevi@google.com>
- Cc: Eric Rescorla <ekr@rtfm.com>, "public-webcrypto@w3.org" <public-webcrypto@w3.org>
- Message-ID: <8E67987AB18A407D8E457B7765305AE6@bbn.com>
On Wednesday, November 13, 2013 at 8:40 PM, Ryan Sleevi wrote: > On Wed, Nov 13, 2013 at 7:39 PM, Eric Rescorla <ekr@rtfm.com (mailto:ekr@rtfm.com)> wrote: > > > > > > > > On Wed, Nov 13, 2013 at 7:24 PM, Ryan Sleevi <sleevi@google.com (mailto:sleevi@google.com)> wrote: > > > > > > On Wed, Nov 13, 2013 at 5:53 PM, Richard L. Barnes <rbarnes@bbn.com (mailto:rbarnes@bbn.com)> > > > wrote: > > > > For those who might not have been following WebRTC, they are enabling > > > > browser-to-browser real time communications, using JavaScript. > > > > > > > > The good news is that all WebRTC communications are encrypted with keys > > > > negotiated using DTLS (using either SRTP or the DTLS for encryption). > > > > These > > > > keys are bound to user identities by way of identity assertions passed > > > > in > > > > SDP [draft-ietf-rtcweb-security-arch]. The challenge is that WebRTC > > > > apps > > > > want to be able to control what keys are used in the DTLS negotiation. > > > > > > > > The overall concept is that the app will be able to impose a key on the > > > > DTLS > > > > session, using something like a setDtlsKey() method. The question is: > > > > Can > > > > WebRTC use WebCrypto Key objects to represent keys used for DTLS? > > > > > > > > It appears that the answer to this question is “yes”. The app/key > > > > separation provided by the WebCrypto API provides the layer of > > > > separation > > > > that is needed. However, the WebRTC layer needs some additional > > > > metadata > > > > about the key: > > > > -- Whether the key was ever accessible to JS > > > > -- Limitation of the key to usage with DTLS > > > > > > > > > > > > > These two statements make me think that WebCrypto is not the right fit for > > > them. > > > > > > It is, in essence, stating "Were these keys ever Web Crypto keys" > > > > > > Hmm.... That seems like sort of a limited view. > > > > We want to: > > > > 1. Create keys > > 2. Push them around > > > > Why isn't that a legitimate use of WebCrypto? > > > > -Ekr > > You want to: > 1. Create keys with an API > 2. Know whether keys were used with this API > 3. Push them around without using that API. > > Seems a bit of an odd use case. > > It also seems, from the use case, to revisit the whole notion of key > discovery, which may carry UI implications, etc. > > But again, perhaps I don't fully understand what WebRTC is asking? > The lifecycle is: 1. generateKey() - create keys 2. Store in IndexedDB for future use - shove it into storage 3. peerConnection.setDtlsKey() - shove it into the DTLS channel *. Ensure that the key isn’t used with any other WebCrypto methods. So maybe it’s a little weird in that the ultimate use is through the PeerConnection API and not WebCrypto. But the overall WebCrypto Key construct provides value by providing: -- A way to generate keys -- A way to safely store keys -- A way to let JS manipulate keys without direct access By my count, that’s 3 advantages to 1 weirdness. --Richard > > > > > > > > > > > The proposal is to add information to the WebCrypto Key object to encode > > > > these metadata. > > > > > > > > This email is intended to be a summary, with more detail to be provided > > > > in > > > > discussion tomorrow. The main question for now is whether this seems > > > > like a > > > > current-API thing or a future-API thing. > > > > > > > > I would suggest that it is an issue for the current API, because (1) the > > > > proposed changes are small, and (2) if this is punted to a future > > > > version, > > > > then WebRTC will likely come up with an alternative solution. > > > > > > > > Thanks, > > > > --Richard > > > > > > > > > > > > > Seems like a never-API to me, based on your summary, but perhaps I'm > > > missing important context. > > > > > > > > > >
Received on Thursday, 14 November 2013 06:50:58 UTC