Deprecate Client Cert Printable String workaround |
||||
Issue descriptionIn response to Issue 770323 , we added a workaround that allows for invalid client certificates (those not conforming to the X.509 specification or RFC 5280) to be parsed, selected, and used. This was meant to address existing client certificates from a government CA stored on smartcards. In Issue 788655 , it was identified that new (invalid) client certificates were being generated by various products, and could not be imported via the Chrome Extension APIs. Thus, this workaround to allow invalid certificates was added to the API. In both cases, it allows invalid characters (those not legal in the encoding) to be accepted and treated as UTF-8. Much like the invalidly encoded RSA keys (which widely affected Estonian client certificates, and encoded a negative modulus), we need a deprecation schedule for this workaround. That this worked prior to M-62 was simply because our old implementation had bugs that we didn't realize anyone was relying on.
,
Dec 1 2017
Thanks for filing this Ryan. We already have an e-mail thread with Cisco regarding this issue; CC'ed you on that. As for the other potential deployments that are subject to the same issue - IIUC, it's very hard to know about them until this gets broken and customers start complaining. I think a reasonably safe way to go forward with this issue would be to schedule the workaround to be disabled by default starting from some version, but add an admin policy that would allow to re-enable it (with a documented deprecation schedule for the policy itself). That way, customers will have a chance to know about the problems and fix their deployments during the transition period. David, Ryan - WDYT?
,
Dec 1 2017
I don't think the admin policy will be useful in this case, just as it wasn't for the past RSA issue, largely because the users affected are not going to be under enterprise managed scenarios. For example, both ComSign is and sk.ee was issuing invalid certificates (which itself is a violation of their obligations under the respective legal frameworks that establish their authority to do so). That's where a fixed deprecation timetable (but on by default), with active communication with identified parties, is a useful strategy - especially when this is a somewhat esoteric spec violation (e.g. it's a mistake that is somewhat hard to make) How would you feel about a Finch flag that only lasted for 6 mos, and which the server would set to disabled? Users could force-enable (via command-line), but not as an Enterprise policy. This more aptly reflects the practical impact.
,
Dec 1 2017
Note that the admin policy would be sensible in cases like was bug 788655 , where the problem was occurring in the chrome.enterprise.platformKeys API, which implies that it was a managed user (as the API is only for force-installed extensions). But I have no idea of how prevalent such enterprise cases would be among the affected users overall. If there's some evidence that it's only a small minority - then agreed that the admin policy won't be that useful.
,
Dec 4 2017
Note: I don't think an Enterprise Policy would help us get visibility into the issue or remediation for it. It's also a clear enough spec violation - that is, this was an implementation relying on a (ChromeOS) bug that wouldn't work reliably across systems anyway - so the barrier of risk is naturally much lower, and correcting the bug should be a priority :)
,
Dec 4 2017
I think there would be some value in providing feedback to whoever is using these broken certificates that they are no longer going to be supported in the future. Otherwise, users/administrators who missed the deprecation announcement would not have time to prepare / re-issue their certificates. An enterprise policy would technically be one way to deliver this feedback in the context of managed users (i.e. the administrator's certificates stop working, the administrator looks for solutions, finds that they can temporarily resolve it by turning on the policy and are now aware of the issue, so they can upgrade their infrastructure to versions including the fix). There would probably be other ways to deliver this feedback though. Deprecating without some form of targeted up-front information to affected users feels somewhat risky to me, but I've never done such a deprecation before so I'm not an expert :-) Re: Command-line flag: I agree that this makes sense for e.g. desktop users. However, note that managed users generally can't modify the command line, and their administrator can only change the command-line flags for the sign-in screen, not for the user session.
,
Dec 5 2017
Through coincidence, Mozilla recently posted about some newly created intermediates exhibiting this problem ( https://groups.google.com/d/msg/mozilla.dev.security.policy/oY1CvbsBKo4/F8EPtp_vBwAJ ), pointing out that such certificates are not parsable in Go. I present this both as a datapoint to capture the risk of shipping this too long (and the ecosystem ossifying) - as such intermediate CA certs are now correctly rejected in Chrome - and to highlight that the compatibility risk is already such that these certificates are not interoperable on systems.
,
Dec 5 2017
Adding Enterprise-Triaged label so this doesn't appear on our triage list.
,
Dec 5 2017
Re Comment #7: Ah, I had the impression that this issue is probably widespread among other components and we're the first ones to start rejecting these certs. But it looks like I was mistaken (which is good) :-).
,
May 17 2018
|
||||
►
Sign in to add a comment |
||||
Comment 1 by rsleevi@chromium.org
, Dec 1 2017