- From: Harry Halpin <hhalpin@w3.org>
- Date: Mon, 08 Jul 2013 20:40:39 +0200
- To: Ryan Sleevi <sleevi@google.com>
- CC: GALINDO Virginie <Virginie.GALINDO@gemalto.com>, Mark Watson <watsonm@netflix.com>, "public-webcrypto@w3.org" <public-webcrypto@w3.org>
- Message-ID: <51DB07A7.3060606@w3.org>
On 07/08/2013 08:18 PM, Ryan Sleevi wrote:
> On Mon, Jul 8, 2013 at 11:16 AM, Harry Halpin <hhalpin@w3.org> wrote:
>> On 07/08/2013 06:31 PM, GALINDO Virginie wrote:
>>
>> Thanks Mark for this proposal, which makes your request crystal clear.
>>
>> We will allocate some time during the next call in 2 weeks, to collect
>> feedbacks from editors and have your proposal integrated in the next public
>> working draft, as it was supposed to.
>>
>>
>> I missed the last call and it appears there were lots of discussion over the
>> security boundary actually being offered by
>>
>> I can imagine a case where no real security boundary that JS code makes
>> sense (i.e. private key material stored in say, localStorage, and can be
>> easily exported in some fashion), but if a real security boundary is offered
>> to non-extractable keys, then it seems doing wrap/unwrap in JS doesn't seem
>> to make sense.
>>
>> This seems like, as many people will try to store private key material as
>> non-extractable, something we should clarify with an informative note
>> somewhere in the spec.
>>
>> Are the various browser vendors planning on doing anything around security
>> boundary for keys of structured clone (while maintaining
>> persistence/lifespan/etc.) at all to enforce non-extractable properties for
>> keys?
> I'm sorry Harry, I do not understand your question.
Will the browser vendors, in their initial implementation, store
non-extractable keys in LocalStorage or IndexedDB?
Do they plan to offer some better "security boundary" around
extractability?
I am assuming a "trust the JS" approach, but I'd like to clarify what
non-extractable means in terms of current browser storage. I.e.
obviously it means we shouldn't let exportKey() work, but also I imagine
that it's intuitive that a developer would expect there should be no
other way via localStorage/IndexedDB to get at the underlying key material.
Otherwise, we need to clarify that setting extractable=false may have
not offer what we appear it to be offered in this note.
*Implementation Note:* When performing the structured clone algorithm
for a |Key| object, it is important that the underlying cryptographic
key material not be exposed to a JavaScript implementation. Such a
situation may arise if an implementation fails to implement the
structured clone algorithm correctly, such as by allowing a |Key| object
to be serialized as part of a structured clone implementation, but then
deserializing it as a |DOMString|, rather than as a |Key| object.
If developers can't tell what "extractable" means, then we should warn
them :)
cheers,
harry
Received on Monday, 8 July 2013 18:40:43 UTC