- From: Ryan Sleevi <sleevi@google.com>
- Date: Tue, 29 Mar 2016 10:59:07 -0700
- To: Mark Watson <watsonm@netflix.com>
- Cc: Jim Schaad <ietf@augustcellars.com>, "public-webcrypto@w3.org" <public-webcrypto@w3.org>, GALINDO Virginie <Virginie.Galindo@gemalto.com>, Ryan Hurst <rmh@google.com>
- Message-ID: <CACvaWvZA5AgdrAw0G4ze1iWuU_b-CaAUzOOpVGH8uw_x27JFDQ@mail.gmail.com>
On Tue, Mar 29, 2016 at 8:40 AM, Mark Watson <watsonm@netflix.com> wrote: > Hi Ryan, > > Thanks - things are getting clearer, but I still read some of your > response as "it's all terribly broken and will never work", wheras I'd like > to get to a more specific understanding of exactly what is wrong. > > Lets say, for arguments sake, that we can define a set of highly specific > ASN.1 formats which MUST be supported for *export* and which are supported > across browsers (anything which is not supported by 2 implementations we > would remove). No other export formats are defined in the specification. > > Now, for import, we specify that those exact same format MUST be supported > and *any other formats* MUST return an error. > > And, finally, suppose we have two implementations that support both of the > above requirements. > > Are there any remaining problems ? > > If no, then the requirement for browsers seems rather less than has been > stated: it is necessary only to have enough ASN.1 functionality outside the > crypto library to validate that the provided data is in one of the > specified formats and return an error if not. > (Just a slight tweak - they need to have enough functionality outside to validate import and construct the export; both, not either/or) Oh, to be clear, my view is that _if we do nothing_, it's all terribly broken and won't work. That said, we do have paths forward to make it work. The problem is making sure that we have consensus that this is the way to solve the problem (on a conceptual stage), and to a lesser extent, a committment on UAs to actually move towards that. The problem is that, on the conceptual point, we heard some objection in the past from Microsoft with respect to treating ASN.1 outside of the crypto library (this had been echo'd primarily through Vijay, Brian, and the crypto team at Microsoft), and we certainly know that Safari has not done anything to treat that. It's useful, for both points, to understand if this is a fundamental objection, a matter of resources/priorities, or something different. It would also mean that Mozilla would need to change their implementation. You wanted concrete examples, and there's plenty - the key import accepts BER, rather than DER, so it's very easy to find any number of BER pemutations accepted by Firefox but rejected by Chrome (indefinite length, constructed BITSTRINGs). With a little more work, you can find more subtle DER behaviours in Chrome (the handling of parameters for RSA keys, for example). On the Chrome side, we're absolutely committed that, if we continue to support ASN.1, we'll do the processing as spec-compliant as possible, and when there are bugs, we'll work to address them. But that work only works and makes sense if other implementations share the same vision of the end-goal - which is the two conditions I outlined, and which you accurately restated. If we're not in agreement that this is where we should be moving towards, then it's more fundamental a problem than a matter of resources and staffing, and we absolutely need to solve what that vision is or should be (if not this), before we progress.
Received on Tuesday, 29 March 2016 18:00:17 UTC