On Mon, Nov 28, 2016 at 12:01:30PM +0000, Gervase Markham wrote:
> It seems like we have the following options:
>
> 0) Specify nothing. CAs will still do Google/non-Google because Google
> requires it, and that's good enough. Eventually, gossip will solve the
> problem.
Do you (or anyone else on list) have any indications of when the gossip spec
is likely to land? My impression from the trans WG list is that it's slowly
moving forward, chewing through the thorny problems to be solved, but I
don't have an impression of how far away from "done" things are. It might
be useful to have some idea of where that's up to, to inform our thinking
around the need for diversity.
> 1) Google/non-Google requirement.
I was a bit uncomfortable with Mozilla mandating dependence on another
browser vendor when I read the initial draft, but I couldn't think of an
alternative so I didn't bring it up. I'm glad it's being raised now.
<grin>
> Upon consideration, it seems wrong for Mozilla to require CAs to get a
> service from a particular supplier.
Is this specifically s/particular supplier/particular third-party supplier/,
or do you feel that this should (in general) preclude Mozilla from mandating
that a CA use a Mozilla service (which is option 3)? I'm assuming it's the
former, but I want to make sure I'm clear on exactly where you think the
line is.
> This is also effectively equivalent to option 0) because the effective CT
> policy is the union of all CT policies.
Should this be the other way around, ie. picking option 0 (no diversity)
would effectively be picking option 1 because Chromium's going to continue
to mandate Google/non-Google? I don't really see this as an important
distinction, because no matter what Mozilla chooses, I presume Chromium's
gonna Chromium, so "union of all policies" is going to cause everyone to log
Google/non-Google.
> 3) Mozilla/non-Mozilla requirement. I.e., set up a set of Mozilla logs
> and require these to be used. Even if we wanted to pay the significant
> technical, personnel and financial cost of setting up enough logs for
> this to work (we'd need to be robust against log failure; Google has
> five (?), and it seems like they need that many!), the end result would
> be CAs logging to Google and Mozilla as their two logs, and most other
> logs being driven from the market, or only used for longer-lived certs.
> This does not seem conducive to a healthy log ecosystem. It's also not a
> great example and doesn't scale - will Microsoft require use of a
> Microsoft log, and Opera an Opera log, and so on?
Yeah, this is an ugly option that only ends in tears. I wouldn't worry too
much about the "log market", though; open access logs operated by altruistic
third parties seem to be the way things are going to go.
> 2) Operator diversity. Require that the logs not all be operated by the
> same entity (and we would need to define what that means). This would be
> effectively equivalent to option 1), and therefore to option 0), except
> that if Google removed their requirement (perhaps because Chrome
> implemented gossip), ours could remain.
I think the practical impossibility of cataloguing the webs of control and
influence, given the behind-the-scenes dealings that go on amongst
companies, makes this a complete non-starter.
> 4) Geographic diversity. Require the logs not all to be located in the
> same country. I think that when people propose this, what they actually
> mean is option 5).
>
> 5) Jurisdictional diversity. Require that one single government not have
> the power to coerce all the logs. The way one might implement this is as
> follows: request all log operators (perhaps in consultation with their
> lawyers) to produce a list of ISO country codes, the governments of
> which have the power to compel the private key of a log. So if a log
> operator has their HQ in France but their data centre (where the key
> sits) in Spain, they might say "(fr, es)". Another log operator which
> was a US company with data centres in the US might simply say "(us)".
> The code would associate this set of jurisdictions with each log, and
> would require that the same country code not appear in the list of _all_
> the logs whose SCTs are presented with a certificate.
Whilst legal compulsion is a risk, from my mental catalogue of spectacular
CA malfeasance (the closest analogue to a misbehaving log) it's more common
for intrusion and customer satisfaction to cause problems than legal
proceedings.
Given that a log is accessible over the Internet, I'd say it's at least as
likely that someone's going to exfiltrate (or cause to be misused, say in a
HSM) the log's private key than it is for a secret legal order to cause a
log to misbehave. Thus, the set of countries "which have the power to
compel the private key of a log" for every log would be "any country capable
of penetrating a log's infrastructure", which is likely to be a fairly long
list, especially once third-party contracting is included.
In summary: all of these options suck, simply because this is a really
complex problem. Using the concept of "the simplest thing that could
possibly work", I'm inclined to advocate for option 0 (no specific diversity
requirement) because it imposes the least additional obligation on everyone
involved.
I know that this approach devolves to "I trust Google to keep the Internet
safe", and it surprises even me to be saying that. However, the resources
required to implement any other approach suggested so far (and I don't have
any other ideas to add to the pile) would be better spent in making
diversity requirements unnecessary -- either helping move the gossip system
towards completion, or developing other approaches to making logs the
untrustable third parties they should be.
- Matt