- From: Harry Halpin <hhalpin@w3.org>
- Date: Mon, 14 May 2012 21:01:12 +0200
- To: Wendy Seltzer <wseltzer@w3.org>
- CC: "public-webcrypto@w3.org" <public-webcrypto@w3.org>
On 05/14/2012 07:53 PM, Wendy Seltzer wrote: > (I'm not sure why this didn't go through directly, since Eric is > subscribed as an Invited Expert -- perhaps with a different email > address?) It was a bug in the membership database, Systems Team has been alerted. Do tell us anyone if your emails can't get through and you believe you are a member or invited expert! cheers, harry > > -------- Original Message -------- > Date: Mon, 14 May 2012 16:07:28 +0000 > From: Eric Rescorla<ekr@rtfm.com> > > > The Netflix use case document posted by Mitch shows an example of a > DH key exchange designed to create a secure key between Alice > and Bob without the JS getting it. > > To support Diffie-Hellman key exchange using WebCrypto, we might > do something like this: > > // In this example, we use the following webcrypto APIs: > // DiffieHellman object ctor > // DiffieHellman(p, g) > // > // (member function) generate() internally creates a& returns A > // a is never visible in Javascript > // generate() > // > // (member function) computeSS() takes B& calculates ss > // computeSS(B) > > // example usage of above APIs to create ss > var dh = new DiffieHellman(p, g); > var A = dh.generate(); > // we now send p, g, and A to the server which responds with B > // after receiving B we generate ss which stays inside our dh object > dh.computeSS(B); > > At this point, we have created a shared secret which is inaccessible > to Javascript, but we cant yet do anything useful with it. In order > to transform the shared secret into something usable we need to use a > key derivation algorithm (RFC 2631? or something simpler?) to compress > or expand the keying material ss to keying data which is the > appropriate size for some other algorithm." > > I agree that this creates a shared secret not known to the JS, but what > stops > the JS from mounting a MITM attack. I.e., it generates it's own DH key pair > (c, C) and provides C to boththe local browser and the remote end. At this > point, it shares K_ac with the browser and K_bc with Bob. Absent some > method for verifying that a DH share came out of a compliant browser, > it's not clear to me what security benefit has been achieved here. > > -Ekr > > >
Received on Monday, 14 May 2012 19:01:27 UTC