After some further thought on this issue, I would like to propose the
following course of action:
1. Remove the CNNIC root certificates
2. (possibly) Temporarily add the CNNIC intermediate certificates
Removing the CNNIC root certificates reflects the seriousness of the breach
of trust that CNNIC has incurred by deliberately issuing an intermediate
certificate in violation of its CPS, the BRs, and Mozilla policies. CNNIC
is of course free to re-apply to the root program, so this removal is not
necessarily permanent
Adding the intermediates would allow CNNIC to continue to issue end-entity
certificates, and not penalize site owners immediately (as Peter notes).
However, it would prevent the acceptance of other intermediates, since the
improper issuance of intermediates is the immediate issue here.
Further reasoning for this course of action follows.
# Recap of the options
Summarizing the options expressed by Kathleen and Peter earlier:
A) Remove both CNNIC root certificates
B) Remove EV treatment for the CNNIC EV root
C) Name-constrain the CNNIC roots
D) Remove both CNNIC roots temporarily, with conditions for re-acceptance
E) Only accept certificates already issued by CNNIC (not future ones)
To these, I would like to add:
F) Remove both CNNIC roots, but temporarily add the CNNIC intermediates
This latter option would continue to allow CNNIC to issue end-entity
certicates, but not to issue further intermediates.
# My Analysis
The underlying issue here is that CNNIC, apparently deliberately, violated
the BRs, Mozilla policy, and its own CPS by issuing an intermediate without
proper vetting. For me, the most troubling aspect of this is that CNNIC
violated their own CPS -- the covenant they make with the community for how
they will behave, and the basis for all the decisions that we make about
whether to trust them.
The basic need here is thus to re-establish the community's confidence that
CNNIC will adhere to their obligations under their CPS, the BRs, and
Mozilla policy. As long as there is uncertainty on this point, it is
inappropriate for us to grant the unbounded trust implied by inclusion in
the root program, so there is at least a need place bounds on how CNNIC is
trusted. Ultimately, if CNNIC cannot assure the community that they will
adhere to their obligations, then they should not be in the root program.
## Not (B), (C), or (E)
Options (B) and (C) are only loosely related to the concerns about CNNIC's
behavior. While in general I'm enthusiastic about constraining CAs (see
the "Name Constraints" thread), in the context of this discussion, it would
be better to focus on the issues raised by CNNIC's incorrect decision to
issue an intermediate certificate to MCS Holdings.
Option (E) is technically infeasible, for the reasons that Ryan noted.
## Between (A), (D), and (F)
In brief, my preference order is (A) > (F) > (D)
Given how fundamental a violation it is for a CA to deliberately violate
its obligations, I think Mozilla would be within its rights to remove the
CNNIC roots (A). The Mozilla Certificate Policy says that roots may be
removed as a result of "ongoing or egregious" violations. Given the
multiple violations noted in Ryan's earlier message, I feel comfortable
labeling this incident "egregious", in the sense of "unusually serious".
The only difference between (A) and (D) is that (D) establishes conditions
up front for CNNIC's readmission. Even in case (A), CNNIC may re-apply,
and they will have to go through the normal process for community approval.
I am hesitant to commit to conditions for re-admission up front, in case
any new issues arise in the interim. Any conditions that might be stated
in case (D) could also be stated in case (A) as part of the re-application
process.
As a compromise, however, I would be willing to add the CNNIC intermediates
to the Mozilla root list (F). (Ideally, with an additional path length
constraint, set to zero.) This would enable CNNIC to continue issuing
end-entity certificates, without the possibility of adding intermediates.
Since CNNIC's policy regarding intermediates is the immediate issue here,
this seems like a reasonable compromise. However, these intermediate
certificates should not be admitted indefinitely. Rather, we should plan
to remove them after a fixed time (say 6 months) or after CNNIC's
re-application is resolved, whichever comes first.
On Mon, Mar 23, 2015 at 6:47 PM, Richard Barnes <
rba...@mozilla.com> wrote:
> Dear dev.security.policy,
>
> It has been discovered that an intermediate CA under the CNNIC root has
> mis-issued certificates for some Google domains. Full details can be found
> in blog posts by Google [0] and Mozilla [1]. We would like to discuss what
> further action might be necessary in order to maintain the integrity of the
> Mozilla root program, and the safety of its users.
>
> There have been incidents of this character before. When ANSSI issued an
> intermediate that was used for MitM, name constraints were added to limit
> its scope to French government domains. When TurkTrust mis-issued
> intermediate certificates, they changed their procedures and then they were
> required to be re-audited in order to confirm their adherence to those
> procedures.
>
> We propose to add name constraints to the CNNIC root in NSS to minimize
> the impact of any future mis-issuance incidents. The “update procedures
> and re-audit” approach taken with TurkTrust is not suitable for this
> scenario. Because the mis-issuance was done by a customer of CNNIC, it’s
> not clear that updates to CNNIC’s procedures would address the risks that
> led to this mis-issuance. We will follow up this post soon with a specific
> list of proposed constraints.
>
> Please send comments to this mailing list. We would like to have a final
> plan by around 1 April.
>
> Thanks,
> --Richard
>
> [0]
>
http://googleonlinesecurity.blogspot.com/2015/03/maintaining-digital-certificate-security.html
> [1]
>
https://blog.mozilla.org/security/2015/03/23/revoking-trust-in-one-cnnic-intermediate-certificate/
>