Re: Editorial comments - W3C Candidate Recommendation 11 December 2014

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