- From: Ryan Sleevi <sleevi@google.com>
- Date: Mon, 15 Dec 2014 01:06:10 -0800
- To: David Illsley <david@illsley.org>
- Cc: public-webcrypto-comments@w3.org
- Message-ID: <CACvaWvYzX74hevBZ+kb1Td+5hiVuawRyiBWSSbaB8m2RAk4ieg@mail.gmail.com>
On Dec 15, 2014 12:57 AM, "David Illsley" <david@illsley.org> wrote: > > Hi, > It's great to see progress on WebCrypto. Here are a few comments based > on a non-cryptographers reading of the document. > Regards, > David > > 1. Introduction > > Includes: "the API provides interfaces for key generation, key > derivation, key import and export, and key discovery" but it doesn't > appear to me that the specification provides for "key discovery". > Thanks. This was split into a separate document for the WG to progress on. > 4.3. Operations > > This section is confusing, contradictory, and I don't think backed up by > the rest of the document. I *think* it's trying to say: > > "Although the API does not expose the notion of cryptographic providers > or modules, each key is internally bound to an algorithm and usage, so > web applications can be confident that a given key will only be used for > the correct set of cryptographic operations." Not really. It is meant to contrast with the interfaces exposed by common native APIs, which have abstractions such as providers, key stores, and modules, all of which are meant to expose additional functionality, typically hardware (e.g. smart cards or TPMs). The API designed intentionally avoids this, because such a pattern is fundamentally and irretrievably insecurable. That is, there is no secure way to expose these legacy hardware devices to a (hostile) web. Note I say insecurable because having to resort to prompting the user is fundamentally ceding security. > > 5.1. Underlying Cryptographic Implementation > > The first paragraph doesn't aid understanding of the specification, and > is over-complex. It could be replaced by something simpler eg "This > specification allows for cryptographic operations to be implemented > separately from the user agent, through the use of existing APIs and > modules." > > Similarly, paragraphs 3 and 4 could be removed entirely, or otherwise > substantially simplified. > > These were all requested during Last Call review, by both people inexperienced with crypto APIs and thus lacked context, and by those familiar with crypto APIs and thus desired to understand why this makes several substantially different choices. Could you explain with better precision what you find confusing? "Unnecessary" feels like it's a bit more subjective, and given the requests during review to include it, I would rather the specification spell things out explicitly than omit them and require frequent explanation (as we've seen for other aspects all ready). However, if there are things confusing or worded wrong, it would help to know what and why, so that we can explore if it might be worded clearer. Thanks for the feedback!
Received on Monday, 15 December 2014 09:06:37 UTC