On Mon, Jan 14, 2019 at 11:10 AM tadahiko.ito.public--- via
dev-security-policy <[email protected]> wrote:

> Hi
>
> I have question for following case of certificate chain.
> (root cert)--(1st intermediate cert)--(2nd intermediate cert)--(EE cert)
> In addition, "1st intermediate cert" is for technically constrained with
> name constraints (including server-auth EKU).
>
> I believe we Must put EKU (server-auth) for "2nd intermediate cert".
> (regarding Mozilla root store policy 5.3)
> However, Does "2nd intermediate cert" need name constraints?
> # For our understanding, name constraints on 2nd intermediate is not
> necessary, but do not sure about that.
>

Thanks for raising this question! I defer to Wayne to provide the
authoritative answer, but I believe your reading is mostly correct.

Under Section 5.3 of the Mozilla Policy, intermediate certificates created
after 2019-01-01 MUST contain an EKU according to those policies.
Under Section 5.3.1 of the Mozilla Policy, in order to be considered
technically constrained, then it MUST contain nameConstraints in line with
Section 7.1.5 of the BRs.

This means that (2nd intermediate cert), according to policy, MUST contain
both an EKU and nameConstraints.

This is done for policy reasons, not strictly technical reasons. That is,
RFC 5280 ensures that constraints flow down, such that if you had a chain
(root cert)--(1st intermediate)--(2nd intermediate)--(EE)
and 1st intermediate was nameConstrained, then those constraints would also
apply to 2nd intermediate and EE.

However, it also means that if a chain existed
(root cert)--(another intermediate)--(2nd intermediate)--(EE)

and "another intermediate" was NOT nameConstrained, then (2nd intermediate)
would also not be constrained.

Thus, the policy requirement - of expressing those constraints in (2nd
intermediate) - helps ensures that the intermediate will be constrained
regardless of it building the chain from (1st intermediate) or (another
intermediate). Mozilla Policy also requires disclosure of (another
intermediate), but as the recent discussion reflected, that's not
technically enforced yet. One can imagine that if there was technical
enforcement - of all intermediates being disclosed and not trusted unless
they were - then the policy requirement might be changed to align with the
technical requirement. However, this is only possible when it can be
guaranteed that an unconstrained "another intermediate" doesn't exist, and
absent that technical guarantee, expressing all of the constraints
(duplicating them) in "2nd intermediate" offers a more robust guarantee.
_______________________________________________
dev-security-policy mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-security-policy

Reply via email to