You have a lot of ideas in here, Richard!

Asking the question "what is the increased risk we face by introducing new CA's 
and new roots into the trust store?" is a good idea. How we go about answering 
that gets tricky. It might be helpful to articulate some threat models facing 
CA's, both governmental and commercial, big and small.  A few that come to mind:

1)  Externally-driven attack on a CA's internal network and systems.

2)  Internal mis-management of the CA's network and systems (e.g. firewall 
settings, software configs, credentials, etc.).

3)  Physical breach of the CA's offices and/or data centers.

4)  Bad actors within the CA who have malicious intent (or maybe just don't 
care).

5)  Someone within the CA who makes a simple (or not-so-simple) mistake.

6)  Legal statutes or authoritarian dictates which obligate a CA to perform bad 
acts.

7)  As Moudrick mentioned, a CA might seek legislation that provides some sort 
of legal cover for bad acts they are committing.

8)  ‎Coercion between CA's to issue certs that one might not be able to do 
itself for some reason.

I imagine others exist so I hope people will feel free to add or otherwise 
comment on them.

But in terms of risk, it's a question of what tools and mechanisms are 
available to us that help prevent, detect, mitigate these various situations. 
Some CA's will raise more concerns in one area than a different CA will, so it 
might be necessary to consider these on a per-organization basis instead of 
coming up with different categories. But maybe it's helpful to have the 
categories anyway if for no other reason than to guide these discussions?

In terms of the tools available, the ones I can think of are: audits (of 
course), other public declarations/disclosures, ‎technical constraints in the 
certs, certificate transparency, key pinning (maybe?), domain validation 
(maybe)?

To your specific question of defining scope, I think it's a combination of the 
following:

- relative size of the CA (number of roots, number of active certs, expected 
size of the customer base, ???)
- affiliations with government bodies
- affiliations with domain name registrars 
- ‎affiliations with Internet infrastructure operators (which needs refinement 
in terms of what that means)

There are probably others so again I hope people will add to that list.

But I agree that our ability to identify or quantify or characterize the above 
will help us decide which threats are of greatest concern. From there we should 
be able to identify constraints we want to impose that provides the right 
balance.

I'll leave it here for now. I look forward to continuing this discussion. 


  Original Message  
From: Richard Barnes
Sent: Thursday, June 4, 2015 1:44 PM‎

I'd like to try to up-level some of the discussions we're having about name
constraints, to see if we can find some higher-level consensus.

The thing that was driving my earlier proposal with regard to name
constraints was a feeling of imbalance. With every CA we add to our
program we add risk for every site on the web. That cost is supposed to be
offset by the benefit that a CA provides in terms of adding security for
its subscriber sites. But when a CA exists to serve only a small slice of
the web, this equation seems unbalanced. Small CAs are a bad risk/reward
trade-off.

One way to balance this equation better is to scope the risk to the scope
of the CA. If a CA is only serving a small slice of the web, then they
should only be able to harm a small slice of the web. A CA should only be
able to harm the entire web if it's providing benefit to a significant part
of it.

I wonder if we can agree on this general point -- That it would be
beneficial to the PKI if we could create a mechanism by which CAs could
disclose the scope of their operations, so that relying parties could
recognize when the CA makes a mistake or a compromise that goes outside
that scope, and prevent harm being done.

I think of this as CA scope transparency. Not constraining what the CAs
do, but asking them to be transparent about what they do. That way if they
do something they said they don't do, we can recognize it and reject it
proactively.

Obviously, this mechanism would have to be flexible. To the degree that
it's based on information being provided to running browser instances, that
information has to propagate quickly. Based on our experience with things
like CRLsets and OneCRL, I think that's possible. With our migration to
SalesForce for CA interactions, it's easy to imagine a mostly automated
path from CA-provided information to information pushed out to browsers.
Update your CA's SalesForce records with some new scope, and it gets picked
up

The hard problem is how to define "scope". We've taken a couple of stabs
at using name constraints as one definition of scope. I still have some
hope that if we can get the adaptability right, this might be viable, but
clearly it's not going to match well for all cases. I honestly don't have
much in the way of other ideas. Suggestions welcome.

If we get this right, I think it could actually make the PKI work better.
If we can ensure that small CAs present small risks, then it could make it
easier for new CAs to get started. If we can adapt these protections as
CAs change, it will provided a smoother path for CAs to grow.

It may be that there's not a technical framework that can accurately and
flexibly capture the type of risk reduction I'm talking about here. But it
seems worth trying to figure out what the requirements are here, and seeing
if it's possible to meet them or not.

Thanks,
--Richard
_______________________________________________
dev-security-policy mailing list
dev-security-policy@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-security-policy
_______________________________________________
dev-security-policy mailing list
dev-security-policy@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-security-policy

Reply via email to