Public Notary Transparency | S. Kent |
Internet-Draft | BBN Technologies |
Intended status: Standards Track | R. Andrews |
Expires: December 19, 2015 | Symantec |
June 17, 2015 |
Syntactic and Semantic Checks for Extended Validation Certificates
draft-kent-trans-extended-validation-cert-checks-01
Certificate Transparency (CT) [RFC6962-bis] is a system for publicly logging the existence of X.509 certificates as they are issued or observed. The logging mechanism allows anyone to audit certification authority (CA) activity and detect the issuance of "suspect" certificates. Detecting mis-issuance of certificates is a primary goal of CT.
A certificate is considered to be mis-issued if it fails to meet syntactic and/or semantic criteria associated with the type of certificate being issued. Mis-issuance can be detected by CT log servers, whose feedback to a CA could prompt the CA to not issue a suspect certificate. (Preventing the mis-issuance of such a certificate is preferable to issuing it and detecting it later.)
Compliant CT log servers could offer these checks to a CA submitting a pre-certificate to be logged. These checks are intended to be used in an environment in which CAs optionally assert the version of the EV guidelines to which the submitted pre-certificate purportedly conforms. Log servers would then perform the checks of supported [CABF-EV] versions and include the CA's assertion and the log server's result in its Signed Certificate Timestamp (SCT).
Monitors can also perform checks to detect suspect certificates on behalf of certificate Subjects. Checks performed by a Monitor also serve to double check log servers that claim to have checked a certificate, to identify those that are not doing the checks properly, e.g., because of errors, compromise, or conspiracy. This provides Monitors and CT clients with additional information when choosing which logs to use.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on December 19, 2015.
Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
The following checks are extracted from the CA Browser Forum (CABF) document "Guidelines for the Issuance and Management of Extended Validation Certificates" version 1.5.2 [CABF-EV]. (If a new version of the CABF guidelines is created that alters any of the checks described below, a new CCID value MUST be assigned.) These requirements are used to define what constitutes mis-issuance of a certificate in the context of certificate transparency (CT) for Web PKI certificates. The CABF guidelines from which these checks are derived include many aspects of CA operation that are outside of the scope of CT-based detection of certificate mis-issuance, i.e., they impose requirements that could not be verified by a Monitor examining certificate logs. Hence this document was created to provide an enumeration of EV certificate checks for the Web PKI CT context.
The checks enumerated below are to be applied to any certificate submitted to a log with the Certificate Class ID (CCID) value of 2 (see Section X of [CT RFC]). Note that "root" CA certificates are not subject to verification against these criteria. Each log maintains a list of the root CAs for which it is willing to accept SCT generation requests. This implies that the log operator has already determined that these CAs, and their corresponding self-signed certificates, are acceptable. A subordinate CA certificate will be checked only if it is submitted as the target of an SCT. If a subordinate CA certificate appears as part of a chain submitted for SCT generation, but is not the last certificate (the End-Entity or EE certificate) in that chain, the checks enumerated below should be applied to the EE certificate but not the subordinate CA certificate.
[CABF-EV] describes both syntactic and semantic requirements for certificate issuance. This document deals primarily with syntactic checks, but also describes how semantic checks are to be performed. A log MAY perform the syntactic checks enumerated below if a certificate is submitted with a CCID value of 2. If a log performs these syntactic checks, it adds the SSV value appropriate for the outcome of the check (see Section Z of [CT-RFC]).
Monitors SHOULD perform both the syntactic and semantic checks described below for all certificates that they protect, and which are marked with a CCID value of 2.
An X.509 certificate consists of a set of fields (all but two of which are mandatory), a set of optional extensions, a public key and a signature. This section defines the syntactic requirements imposed on the certificate fields. The following sections deal with extensions, public keys, and signatures.
[CABF-EV] establishes syntactic requirements for EV certificates. Many of these requirements are the same as for DV certificates. The syntactic checks for DV certificates appear in [RFC-DV]. To avoid possible inconsistency between that RFC and this one, when the syntactic check for an EV certificate is the same as for a DV certificate, the phrase "same as for DV certificates" is inserted.
An X.509 v3 certificate may contain extensions. [CABF-EV] mandates the presence of several extensions, and imposes requirements on their content.
The fundamental semantic check that a Monitor MUST perform is to detect bogus certificates on behalf of its clients. A client of a Monitor provides the Monitor with a set of certificates that have been issued to the client. (Note that a client may have multiple certificates issued to its name, and thus there is not a one-to-one mapping between names and public keys.) These certificates MUST be acquired in a secure fashion, not using certificate discovery protocols or relying on databases operated by a CA or RA. Armed with this information, a Monitor can examine every log entry to determine if it contains the same Subject or subjectAltName as that of a client. If a log entry matches either of these names, and if it contains a public key distinct from the set of keys provided by the Subject, this is evidence of mis-issuance. (Note that a Monitor cannot rely on a log operated by a CA, to detect mis-issuance by that CA.) If a Monitor identifies what appears to be a bogus certificate, it notifies the client. The means by which notification is effected is not specified.
[CABF-EV] imposes a number of requirements on certificate issuance that cannot be verified without access to reference information for the certificate Subject, information about the CA hierarchy, or information about internal procedures of the CA. Monitors are not presumed to be able to perform such checks. Examples of such checks appear in Sections 7, 8, 9.1, and 9.2.4 of [CABF-EV].
Additional semantic checks SHOULD be performed by a Monitor, if it has access to the requisite information. These are enumerated below.
TBD
TBD
[CABF-EV] | CA/Browser Forum, "Guidelines For The Issuance And Management Of Extended Validation Certificates, Version 1.5.2", October 2014. |
[I-D.ietf-trans-rfc6962-bis] | Laurie, B., Langley, A., Kasper, E., Messeri, E. and R. Stradling, "Certificate Transparency", Internet-Draft draft-ietf-trans-rfc6962-bis-07, March 2015. |
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. |