On Fri, Nov 11, 2016 at 4:42 AM, Gervase Markham <[email protected]> wrote:
> Hi Peter,
>
> On 11/11/16 01:42, Peter Bowen wrote:
>> Given that there is a lack of clarity on when the CABF BRs apply, and
>> that applicability of the BRs is outside the scope of the BRs, I
>> propose the following text to clarify and help CAs understand the
>> expectations of operating a publicly trusted CA.
>
> This is helpful, thank you. Is it your proposal that this, or something
> like it, would be incorporated into Mozilla's root store policy as a
> "Scope" section or similar name?

Yes.

> The following issues with our current policy may be relevant:
> https://github.com/mozilla/pkipolicy/issues/27
> https://github.com/mozilla/pkipolicy/issues/5

I think any increase in requirements needs to be carefully considered
given that many Root CAs are included in multiple browser trust
stores.  For example, forbidding DSA would impact all browsers.

>> The WebPKI is based on certificate as described in RFC 5280. It is
>> inspired by ITU-T X.500 series standards but does not always comply
>> with the X.500 standards.  In particular, WebPKI acknowledges and
>> accepts that the Directory Information Tree does not exist and
>> therefore focused on properties of subjects rather than their
>> relationships.
>
> I sort of think I know what you mean here, but could you expand this
> last part?

The attributes included in distinguished names are properties of a
subject and may vary based what the CA has verified.  It should not be
assumed that it is possible to build a tree based on the properties;
there might be completely disjoint sets of properties in the subjects
of certificates.

>> Therefore Distinguished Names, while being Sequences
>> of Relative Distinguished Names (RDNs), are treated as an unordered
>> Set of RDNs and different natural persons or legal entities may have
>> the same Distinguished Name if the described properties of the persons
>> or entities are the same.
>
> This is true, but is it important enough to be put here? What practical
> affect does it have to acknowledge this truth?

This is a point of confusion for many CAs attempting to join the
WebPKI.  They usage of the DN to hold arbitrary non-hierarchical
properties is not at all obvious.  For example, EV certificates
contain two properties containing country code and other certificates
might not contain any country code.

>> Definitions:
>
> Is this also your take on how best to resolve the issue currently before
> the CAB Forum about how to use consistent definitions of things like
> "CA" in the BRs?
>
>> Certification Authority (CA) - a logical entity which uses its private
>> key to sign certificates.
>
> Is this too broad? An intermediate certificate might meet this
> definition. Why do we need this definition if we have CAO and CAKP?

A CA is not a certificate.  It is the tuple (CAKP, CADN).  The
requirements are not intended to only apply to Root CAs, so it would
be accurate that a CA that is cross-signed/subordinated to a Root CA
would meet the definition.  The scope is designed to be explicitly
applied to a CA then cascade down according to the rules.

>> Cross-Certificate - a CA Certificate where the Issuer and Subject
>> Distinguished Names are not the same
>
> I would call this an Intermediate Certificate. A cross certificate is an
> informal term for a certificate which ties two previously-separated
> trees of certificates together.

This comes directly from RFC 5280, section 3.2:

  "This specification covers two classes of certificates: CA
   certificates and end entity certificates.  CA certificates may be
   further divided into three classes: cross-certificates, self-issued
   certificates, and self-signed certificates.  Cross-certificates are
   CA certificates in which the issuer and subject are different
   entities.  Cross-certificates describe a trust relationship between
   the two CAs.  [...]  Self-
   signed certificates are self-issued certificates where the digital
   signature may be verified by the public key bound into the
   certificate.  Self-signed certificates are used to convey a public
   key for use to begin certification paths.  End entity certificates
   are issued to subjects that are not authorized to issue certificates."

>> End-entity Certificate - a Compliant Certificate either with no Basic
>> Constraints extension or with a value of false in the CA component
>
> I thought you weren't supposed to do "CA: false" explicitly?

The value is false but the Distinguished Encoding Rules (DER) that
govern serialization into bytes say to leave out default values.

>> Compliant Certificate - a Certificate as described in RFC 5280 as
>> updated by RFC 6818 with the following exceptions:
>>
>> dNSName type GeneralNames included in a Subject Alternative Name
>> extension may contain ‘*’ and ‘?’
>
> Is "?" for CT?

Yes.  I was trying to ensure that these rules grandfather in things
that are expected, which includes the draft Precerts at least one CA
signs.

>> Requirements:
>>
>> 1) The CA must have exactly one CA private key.
>
> One might add for clarity "A CAO operates one or more CAs."

Yes, this is an important clarification.

>> 7) End-entity Certificates must include an Extended Key Usage
>> extension if one of the following is true:
>
> Why is this not required all the time?

CAs issue lots of kinds of certificates.  I wanted to avoid collisions
with completely unrelated certificate types.

>> 8) If the Extended Key Usage extension in an End-Entity certificate
>> contains either the id-kp-serverAuth key purpose id or the special
>> KeyPurposeId anyExtendedKeyUsage, or both, then the CA must follow the
>> Baseline Requirements for publicly trusted certificates when issuing
>> the certificate
>
> I would leave out anyExtendedKeyUsage - Firefox, at least, doesn't
> recognise it.

Agreed Firefox does not, but other browsers do.  It ca be dropped if
this is adopted as a Firefox-specific doc.

>> 9) If the Extended Key Usage extension in an End-Entity certificate
>> contains either the id-kp-codeSigning key purpose id or the special
>> KeyPurposeId anyExtendedKeyUsage, or both, then the CA must follow the
>> Minimum Requirements for the Issuance and Management of
>> Publicly-Trusted Code Signing Certificates when issuing the
>> certificate
>
> Again, if this were a Mozilla document, this would not be necessary.
>
>> 10) If the Extended Key Usage extension in an End-Entity certificate
>> contains either the id-kp-emailProtection key purpose id or the
>> special KeyPurposeId anyExtendedKeyUsage, or both, then the CA must:
>>
>> a) Ensure the End-Entity certificates follows the S/MIME Certificate
>> Profile: Minimum
>
> What is that?

The Google draft Andrew Whalley published.

>> 11) If the Subject Distinguished Name of an End-Entity certificate
>> contains any attributes of with the type jurisdictionCountryName (OID:
>> 1.3.6.1.4.1.311.60.2.1.3), then the CAO must validate the details of
>> the subject according to the Extended Validation Guidelines
>
> Why define EV this way, and not any other?

EV is really hard to pin down.  I purposefully avoided any discussion
of Certificate Policy and Policy Mappings extensions, as there is
little consistency in how they are handled in WebPKI.  I could add a
clause that inclusion of 2.23.140.1.1 in a Certificate Policy
extension in an End-Entity certificate requires Extended Validation of
the subject, but that alone would skip many EV certs that should be in
scope.

Thanks,
Peter
_______________________________________________
dev-security-policy mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-security-policy

Reply via email to