As outlined in the root inclusion request, we need to embed all five for
fully support our community.  Here's why:

1) These root certificates are used in many different systems, not just
Mozilla.  If Mozilla doesn't embed all of them, the ones not embedded will
essentially be untrusted.  The roots proposed are simply replacements for
our existing root certificates, and our plan is to phase out the current
DigiCert root certificates once there is sufficient ubiquity in the new
roots. 

2) Each root has a different purpose. Assured ID is the root we use to
provide specialized certificates in the government and education space.
Many of these entities use Mozilla to access resources.  The Global Root CA
is our current SSL root.  This root is intended to provide optimum
performance without sacrificing security.  This root will emphasize the
results of the CAB Forum performance working group.  The proposed high
assurance root is going to be our 4096 high security root.  May customers
are more concerned a compromise of 2048 than browser speed, making a bigger
key size perfect in meeting their needs.  In each case, not embedding the
root will force the user to either adopt a different browser or accept a
non-ideal operating environment. 

3) Requiring a single root certificate forces a CA to put their entire trust
on either ECC or RSA (depending on the root selected).  If a security risk
is detected with the selected algorithm, the CA is left unable to support
its customers.

4) By embedding one root certificate, NSS users are disadvantaged in SSL
performance. If we have to add another intermediate to the architecture then
the SSL handshake gets even more bogged down.  

5) Having only one root with multiple sub CAs emphasizes the "Too Big To
Fail" issue.  At DigiCert, and in the spirit of the Microsoft root policy,
we try to segregate the type of certificates issued off a single
intermediate. Relying on a single root consolidates everyone into a single
point of shared trust, forcing users to trust every kind of DigiCert
certificate.  Having multiple roots allows a root operator to trust only
part of what DigiCert issues.  

Thanks,

Jeremy

-----Original Message-----
From: dev-security-policy
[mailto:dev-security-policy-bounces+jeremy.rowley=digicert.com@lists.mozilla
.org] On Behalf Of Gervase Markham
Sent: Wednesday, January 29, 2014 4:31 AM
To: Brian Smith; mozilla-dev-security-pol...@lists.mozilla.org
Subject: Re: DigiCert Request to Include Renewed Roots

On 29/01/14 05:08, Brian Smith wrote:
>>> Benefits of my counter-proposal:
>>> 1. Fewer roots for us to manage.

Only for a very narrow definition of the word "root". There's the same
number of embedded trust anchor points.

>>> 3. Because of #1, there is potential for us to design a simpler root 
>>> certificate management UI.

I'm not sure we should let our UI concerns shape other people's PKIs.

>>> 4. We can do optimizations with the preloading of intermediates to 
>>> avoid building the whole chain every time. (That is, we can 
>>> precalculate the trust of the intermediates.)

Have you measured the time saving of such an optimization?

> First, let me split my proposal into two parts:
> 
> Part 1:
> I'm proposing that we add five certs that are equivalent to the five 
> certs that DigiCert wants to add, EXCEPT that only one of them would 
> be a trusted root, and the other four would be intermediates of that 
> root. So, as far as what I'm proposing here is concerned, there would 
> be no change as to what websites would be required or not required to 
> send in their SSL handshakes, if DigiCert continues to require an 
> intermediate between the end-entity cert and any of those five certs.
> 
> Part 2:
> It is considered bad practice by some to issue certificates directly 
> from a root.

While people often put it like that, your comment has made me realise that
it's actually a shorthand. What's actually bad practice is issuing
certificates directly from a certificate which is embedded in a browser.
That's because, in practice, it requires a browser update to revoke such a
certificate. (Or would that not be the case for the DigiCert
root/intermediate things in your plan?)

Having an intermediate between the embedded trust anchor and the EE cert
means that you can rotate online intermediates regularly, and the compromise
or failure of one online root doesn't kill your entire cert ecosystem. It's
hard to enforce all of these good practices in code, so we instead say
"don't issue directly off embedded roots" and hope they do the rest as well.
(With mixed success.)

> I understand that it is not 100% great to do things that encourage 
> websites to skip the inclusion of intermediates in their certificate 
> chains, but we're currently on the losing side of this compatibility 
> issue since we also do not implement caIssuers.

If you think this is bad, why don't you propose we do so?

Gerv

_______________________________________________
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