PKIX Working Group P. Hallam-Baker (VeriSign) Internet Draft W. Ford (VeriSign)expiresExpires in six monthsApril 21,August 7, 1998 Internet X.509 Public Key InfrastructureOPENENHANCED CRL DISTRIBUTIONPROCESS (OpenCDP) <draft-ietf-pkix-ocdp-00.txt>OPTIONS <draft-ietf-pkix-ocdp-01.txt> Status of this Memo This document is an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. 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." To view the entire list of current Internet-Drafts, please check the "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net (Northern Europe), ftp.nis.garr.it (Southern Europe), munnari.oz.au (Pacific Rim), ftp.ietf.org (US East Coast), or ftp.isi.edu (US West Coast). Copyright (C) The Internet Society (date). All Rights Reserved. Abstract This Internet Draft specifiesmechanisms for determiningsome proposed enhancements to the X.509 CRL mechanism used to determine if a public-key certificate is valid orrevoked, using CRL partitions.revoked. Thesemechanisms are considered superior to theenhancements provide advantages over existing CRLDistribution Points (CDP) mechanismmechanisms, including those that use static CRL partitioning as defined in ISO/IEC 9504-8/ITU-T Rec.X.509 for several reasons.X.509. In particular,OpenCDP:the mechanisms proposed can: (a)accommodatesreduce the need for unnecessarily fetching unchanged CRLs, thereby greatly expanding the value of caching CRLs; (b) allow CRL timeliness to be improved; (c) accommodate dynamic partitioning as opposed to fixed partitioning;(b)(d) bettersupportssupport use of certificates in multiple environments with different CRLstores; (c) includes a means for improving cachability and timeliness characteristics with CRLs; and (d)stores. This document isbelieved not to be encumbered bysubmitted for consideration as thepatent claims applying to CDPs.basis of possible future IETF standardization. Please send comments on this document to the ietf-pkix@imc.com mail list. Acknowledgments The following individuals made significant contributions to the development of this proposal: Arn Schaeffer, Mahi de Silva, Michael Myers, and Alex Deacon of VeriSign, Brian LaMacchia and Barbara Fox of Microsoft, and Jeff Weinstein of Netscape. Ideas developed by Carlisle Adams of Entrust, regarding reuse of CRL syntax for CRL lists and the use of delta CRLs, have also been incorporated and are gratefully acknowledged [ADAMS98]. 1. BACKGROUND The draft <draft-ietf-pkix-ocdp-00.txt> (OpenCDP) described some new approaches to managing CRLs with the goal of improving various characteristics of CRL information dissemination without using explicit CRL pointers in certificates (such pointers were, at that time, deprecated by the IETF). Since CRL pointers are no longer deprecated, this derivative draft focuses on exploiting the technical advantages of the OpenCDP mechanisms, regardless of use or non-use of explicit CRL pointers. The main change from the OpenCDP draft is elimination of the Revocation Information Attribute (which is no longer of importance), but keeping the CRL Scopes and CRL List concepts, merging the former with CRL Distribution Points (CDPs) and exploiting the CRL List concept (now renamed Status Referrals) to maximize cachability and timeliness characteristics overall. Interaction with delta-CRL mechanisms is also incorporated. This draft takes into account comments made both on the PKIX list and in other fora. In particular the CRL List mechanism is now realized as a CRL extension. 2. PRINCIPLES A certification authority may issue distinct CRLs for different subsets of its certificate population. The partitioning may be based on various requirements, such as the need to partition evenly for pure performance purposes, the need to produce separate CRLs on the basis of revocation reason, or the need to group together revocation information for related entities, e.g., all the servers or clients of one organization. Indirect CRLs may be issued by entities other than the applicable certificate-issuing CA. Indirect CRLs may also be partitioned. Using a CRLpartitioninginvolves two functions: (a) a CRL location function, which allows for a certificate-using system to find a CRL applicable to a given certificate; (b) a certificate-CRL validation function, which provides for the certificate-using system to confirm that a CRL to hand is indeed an applicable CRL for the certificate under consideration. TheCDPoriginal CRL/CDP mechanism merged these two functions into one mechanism.In contrast, the OpenCDP mechanism separatesHowever, there can be benefit in separating thesetwo functions and thereby achieves various benefits. First,functions: (1) Since the location functionbecomes a non-security-critical function, in that location informationdoes notneed to be embedded intoinherently require acertificate and signed byCA signature, omitting it from theCA. Among other benefits, this helpscertificate may help reduce certificate sizes.Second,(2) By making the location function a server- or directory-lookup function, a signed status indicator (last update time) can be associated with each CRL, averting the unnecessary retrieval of unchanged CRLs. Given that the signed location/status information is of very modest size compared with CRLs, this information can be updated much more frequently that CRLs, allowing important revocations to be effectively posted much more quickly than without this mechanism. (3)The certificate-CRL validation function can be made a dynamic mapping relationship, as opposed to the static relationship afforded by CDPs. For example, this function can be based on such certificate population characteristics as subject namestructures,subtrees or certificate serial numberranges, or dateranges. Such CRL partition definitional criteria can be changed dynamically by the CA if needed, without affecting the issued certificate base.Third, becauseThis benefit is of particular importance when a CRL is to be stored using a medium with a severely limited capacity such as a smartcard. (4) Because the location informationisdoes not have to be in the certificate, it is possible to change that information for use of the certificate in differentenvironments, e.g., change it to point to a differentenvironments. This document defines two X.509 CRLstore when traversing a firewall. Fourth, given the provision of an attribute externalextensions: The Status Referrals extension designed primarily toa certificate for conveyingsupport the CRL locationinformation,function and thesame attribute can convey other useful revocation information such as a pointer to an OCSP server. The OpenCDP mechanism employs a single X.509CRL Scope extensionand two attribute types for use in directories or in protocol construction. No certificate extensions are needed except that, if indirectCRLs are to be implemented, there is a need for a new revocationIssuer extensiondesigned primarily toimplement the function of the cRLIssuer element ofsupport thecRLDistributionPoints extension (which is no longer used in PKIX) - see later section on Revocation Issuer Extension. 2.certificate- CRLLOCATION FUNCTIONvalidation function. 2.1 CRL Location Function A certificate-using system that usespartitioned(possibly partitioned) CRLs needs to locate an appropriate CRL for a given certificate. Information on CRL locationdoes not need to be inside a certificate. Furthermore, itcan beadvantageous not to have such information within certificates,obtained inorder to allow for changing of the partition configuration or storage locations after certificates are issued. Therefore, OpenCDP explicitly forbids the inclusion of location information within certificates. CRL location will not always require standardized protocol features, since it can often be handled by local logic, e.g.,various ways, including: (a) Via aCRL "map" (ordirect pointerthereto) for an enterprise, based on user names, might be incorporated intoin aconfiguration fileCRL Distribution Points extension inend-user products of that enterprise. However, it is advantageous to havethe certificate; (b) Via astandard format for specifying such information, for useStatus Referrals extension inprotocols and directory entries. This specification therefore definesastandard attribute type for holding revocation information, includingCRL obtained from a directory or server whose locationinformation. This attribute type and typical waysis indicated by the name ofusing it are described below under Revocation Information Attribute. This specification also defines another mechanism for locating CRLs. This involvesthe issuing CA; (c) Via alist of CRLs storedStatus Referrals extension inthe CA'sa CRL obtained from a directoryentry. This mechanismor server whose location, and an indication of its trustworthiness, isdescribed below under the CRL List Attribute. 3. CERTIFICATE-CRL VALIDATION FUNCTIONindicated by local domain configuration data; or (d) Via unspecified local means. 2.2 Certificate-CRL Validation Function The scope of a CRLpartition(or CRL partition) can be defined by specifying ranges on any of the fields in a certificate. For Internet (PKIX) purposes, it is proposed that the scoping be limited to the following criteria or any combination thereof: (a) A certificate serial number range; (b) A subject key identifier range; (c) One or more subject name subtrees; (d)A time range for certificate issuance (more precisely, for the notBefore time in the certificate); (e)End-user certificate vsCA-certificate.CA-certificate; (e) Certificates containing a particular CRL Distribution Point name. Examples of CRL partition scopes are: (1) All of the certificates of a CA with serial numbers between 10,000 and 19,999 inclusive. (2) All of the certificates of a CA with subject names commencing:"C=US,C=US, O=foobar,..."... (3) All of the certificates of a CA with subject DNSnames "<anything>.foobar.com".names: <anything>.foobar.com. (4) All of the certificates of a CA for thesubject "C=US,subject: C=US, O=foo, OU=bar,CN=myname". (5) All of the certificates of a CA with a notBefore date in April, 1998.CN=myname. 3. CRL SCOPE EXTENSION The scope of a CRL is indicated within that CRL using the following CRLextension:extension. In order to prevent a CRL substitution attack against an application which does not support the scope extension, the scope extension MUST be marked critical. cRLScope EXTENSION ::= { SYNTAX CRLScopeSyntax IDENTIFIED BY { <oid tbd> } } CRLScopeSyntax ::= SEQUENCE SIZE (1..MAX) OF PerCAScope PerCAScope ::= SEQUENCE {serialNumberRangecAName [0]NumberRangeGeneralName OPTIONAL,subjectKeyIdRangedistributionPoint [1]NumberRange OPTIONAL, nameSubtrees [2] GeneralNames OPTIONAL, notBeforeRange [3] NotBeforeRangeDistributionPointName OPTIONAL, onlyContainsUserCerts[4][2] BOOLEAN DEFAULT FALSE, onlyContainsCACerts[5][3] BOOLEAN DEFAULT FALSE, onlySomeReasons[6][4] ReasonFlags OPTIONAL,indirectCRLserialNumberRange [5] NumberRange OPTIONAL, subjectKeyIdRange [6] NumberRange OPTIONAL, nameSubtrees [7]BOOLEAN DEFAULT FALSEGeneralNames OPTIONAL } NumberRange ::= SEQUENCE { startingNumber INTEGER, endingNumber INTEGER, modulus INTEGER OPTIONAL }notBeforeRange ::= SEQUENCE { startingNotBeforeTime GeneralizedTime, endingNotBeforeTime GeneralizedTime }The potential presence of multiple PerCAScope constructs provides for support for indirect CRLs, in which a CRL issuer provides revocation status information for multiple CAs. If cAName is omitted, it defaults to the CRL issuer name. Separate PerCAScope constructs MUST relate to distinct CAs. The serialNumberRange element, if present, is used as follows. When a modulus value is present, the serial number is reduced modulo the given value before checking for presence in the range. Then, certificates with a (reduced) serial number equal to or greater than startingNumber and less than endingNumber are considered to be within scope of the CRL. The subjectKeyId range element, if present, is interpreted the same as serialNumberRange, except that the number used is the value in thecertificate'scertificate’s subjectKeyIdentifier extension, interpreted as an unsigned integer. Conventions for the nameSubtrees option are the same as for the Name Constraints extension.If the notBeforeRange element is present, certificates with a notBefore time equal to or greater than startingNotBeforeTime and less than endingNotBeforeTime are considered to be within scope of the CRL.The fields onlyContainsUserCerts, onlyContainsCACerts,onlySomeReasonsandindirectCRLonlySomeReasons are used as described for the X.509 issuingDistributionPoint extension. (Note that the issuingDistributionPoint extension and cRLScope extension can conflict with each other-- the issuingDistributionPoint extension isand are notpermitted in a CRL which contains a cRLScope extension.)intended to be used together.) When a certificate-using system uses a CRL to check status of a certificate, itshouldSHOULD check that the CRL scope includes the certificate, as follows: (a) If the CRL contains both an issuingDistributionPoint extension and a cRLScope extension, thensucha certificate falls within the scope of the CRLis inconsistent with PKIXif andshould not be used.only if it meets the criteria of both extensions. (b) If the CRL contains a cRLScope extension, then the certificate- using systemmustMUST check that the certificate falls within the scope indicated by the intersection of the serialNumberRange, subjectKeyIdRange,nameSubtrees,andnotBeforeRangenameSubtrees scopes, and is consistent with distributionPoint, onlyContainsUserCerts and onlyContainsCACerts ifpresent.present, for the PerCAScope construct for the certificate issuer. (c) If the CRL contains neither an issuingDistributionPoint nor cRLScope extension, then the scope is the entire scope of the CA, and the CRL may be used for any certificate from that CA. 4.REVOCATION INFORMATION ATTRIBUTE Attributes of this type are used to hold CRL location information or other information pertaining to revocation status of a certificate. Ways of using this attribute type include the following: (a) In a directory entry that holds a certificate. The revocation information is stored in an attribute accompanying the certificate attribute and when anyone retrieves a certificate they can also retrieve the revocation information. [Note:STATUS REFERRALS EXTENSION Thisattribute type needs to be included in the PKIX LDAP schema.] (b) When a certificate is transported by CMS (or any other PKCS#7-based protocol), the corresponding revocation information can be conveyed in an unauthenticated attribute. (c) When a certificate is transported by ISAKMP, the corresponding revocation information can be conveyed as an ISAKMP payload. (d) When a certificate is transported as part of a TLS/HTTP exchange, the corresponding revocation information can be conveyed in a HTTP header. (e) When a certificate is issued using CRMF or PKCSReq (see [CRMF] or [CMMF] respectively), the corresponding revocation information can be conveyed as an unauthenticated attribute in the "response" field of a CertRep message body (see [CMMF] for details on CertRep syntax.) As new IETF protocols are defined, it is anticipated that the protocols will make explicit provision for conveying revocation information along with certificates. Note that there may be circumstances in which an intermediary (e.g., firewall) may change revocation information, such as CRL location pointers, in transit. Following is the definition of the Revocation Information attribute type: revocInfo ATTRIBUTE ::= { WITH SYNTAX RevocInfo ID <oid tbd> } RevocInfo ::= SEQUENCE { certIssuer GeneralNames, certSerialNumber INTEGER, infoLocations [0] SEQUENCE SIZE (1..MAX) OF InfoLocation OPTIONAL, extensions [1] SEQUENCE OF INSTANCE OF TYPE-IDENTIFIER OPTIONAL } InfoLocation ::= SEQUENCE { locator GeneralNames, infoType InfoType DEFAULT crl, reasons ReasonFlags OPTIONAL } InfoType ::= ENUMERATED { crl (0), oCSPServer (1) } ReasonFlags ::= BIT STRING { unused (0), keyCompromise (1), cACompromise (2), affiliationChanged (3), superseded (4), cessationOfOperation (5), certificateHold (6) } For the semantics of the reasons field, see the definition of theCRLDistribution Points certificateextensionin X.509. Certification authorities that are conformant to OpenCDP must not insert a revocation information attribute within a certificate. 5. CRL LIST ATTRIBUTE This optional attribute typeis for use in CRLs distributed by a CA or locally- trusted server inpresenting a list ofidentifying other revocation sources (CRLs or OCSP- servers) availableCRLsto certificate-users.This list canThe CRL will typically be stored inthe CA'sa directoryentry. (Thatentrycan be determined from issuer nameoran issuerAltName value.) The list is signed and there isat a specified URL, or it may be distributed along with a certificate in a communications protocol. A status referral makes provision for inclusion of a last-update time/date for every referenced CRL. A CA is able to use this mechanism as follows. Anewnew, authenticated CRL list is reissued periodically, typically with a relatively high reissue frequency (in comparison with CRL reissue frequencies). A certificate user, on obtaining this list, can quickly determine if cached copies of CRLs are still up-to-date. This eliminates much unnecessary retrieval of CRLs. Furthermore, by using this mechanism, certificate users become aware of CRLs issued by the CA between its usual update cycle, thereby improving the timeliness of the CRL system. Following is the definition of theCRL List attributeStatus Referrals extension type:cRLList ATTRIBUTEstatusReferrals EXTENSION ::= {WITHSYNTAXCRLList IDStatusReferrals IDENTIFIED BY <oid tbd> }CRLList ::= SIGNED { SEQUENCE { signature AlgorithmIdentifier, issuer GeneralNames, thisUpdate GeneralizedTime, nextUpdate GeneralizedTime OPTIONAL, cRLLocators CRLLocators }} CRLLocatorsStatusReferrals ::= SEQUENCE SIZE (1..MAX) OF StatusReferral StatusReferral ::= CHOICE { cRLReferral [0] CRLReferral, deltaReferral [1] DeltaReferral, oCSPReferral [2] OCSPReferral} CRLReferral ::= SEQUENCE {locator GeneralName,issuer GeneralName OPTIONAL, location GeneralName OPTIONAL, deltaLocation GeneralName OPTIONAL, cRLScope CRLScopeSyntax, lastUpdate GeneralizedTime OPTIONAL, lastDelta GeneralizedTime OPTIONAL} DeltaReferral ::= GeneralName OCSPReferral ::= SEQUENCE { issuer GeneralName OPTIONAL, location GeneralName OPTIONAL } In both the CRL and OCSP referral cases, the issuer field identifies the entity that signs the CRL or status response; this defaults to the issuer name of the encompassing CRL. Thesignature, issuer, thisUpdate,location field gives an address at which the referral is to be directed, andnextUpdate fields are interpreted similarly asdefaults tointhe same value as the issuer name. In aCRL.CRL referral, the deltaLocation field gives an optional alternative address from which a delta CRL may be obtained. The lastUpdate field is the value of the thisUpdate field in themost-recentlymost recently issued referenced CRL.6. REVOCATION ISSUER EXTENSION This noncritical certificate extensionThe optional lastDelta field is the value of the thisUpdate field in the most recently issued referenced delta CRL; it MUST be omitted if deltaLocation is not present. The deltaReferral option shall be usedbyonly to indicate, in a CRL, the location for retrieving delta CRLs for that CRL. If the extension contains only the deltaReferral option, then it SHOULD be flagged noncritical. Otherwise, it MUST be flagged critical, and the certificate user SHOULD NOT assume the revocation status of a certificate on the basis of this CRL alone. 5. EXAMPLES OF USE Some examples of use of the above mechanisms follow: (1) Requirement: A CA does not have relationships with other CRL issuers (i.e., no indirect CRLs) but wants toindicate thathave flexibility in how ithas delegated authoritypartitions its certificate space across CRLs, wants toone or moreminimize certificate contents, and wants to improve revocation-checking timeliness characteristics for its clients. Solution: The CA stores, in the CRL attribute of its directory entry, a referencing CRL which contains, rather than specific certificate revocation entries, pointers to URLs at which otherentitiesCRLs are available for various partitions (which may dynamically vary). The referencing CRL, which is updated every 15 minutes, includes lastUpdate values; this reduces the retrieval load on clients that have timeliness requirements and CRL caching capabilities. (2) Requirement: An enterprise wants toissueoperate its own certificate- status services for its clients, including status-checking for multiple external CAs with which the enterprise interoperates. Solution: The enterprise operates a server which issues its own CRLs covering all of the certificates of concern, using the indirect CRL capabilities afforded by Status Referrals. Timeliness demands may be supported. The address of the enterprise server is installed in all the enterprise clients. (3) Requirement: A CA has multiple fixed CRL partitions, andsignwishes to also issue delta CRLsor sign OCSP responsesfor each partition to reduce data transfer loads onits behalf. revocationIssuer EXTENSION ::= { SYNTAX GeneralNames IDENTIFIED BY { <oid tbd> } }busy clients. Solution: The CA includes in each certificate a CDP pointer to the location of the applicable CRL partition. Each such CRL contains a noncritical Status Referrals extension with a DeltaReferral value, which clients may optionally use to subsequently fetch delta CRLs for that CRL. 6. SECURITY ISSUES An attacker might use a CRL with partial scope to cause an application which does not implement the scope extension to erroneously believe that a certificate was valid when it had in fact been revoked. For this reason the CRL Scope extension MUST be marked critical. 7. INTELLECTUAL PROPERTY STATEMENT The authors have no knowledge of any pending or granted patents covering the techniquesdescribed.described, except for the Entrust patent on CDPs. The mechanisms described are not inherently dependent on CDPs, and can be used in a way which may not require licensing of the Entrust patent. 8. REFERENCES [ADAMS98] Carlise Adams, Redirect CRL, Presentation to CRADA. May 1998 Author Addresses: Phillip Hallam-Baker VeriSign, Inc. 301 Edgewater Place, Suite 210 Wakefield, MA 01880 USA pbaker@verisign.com Warwick Ford VeriSign, Inc. 301 Edgewater Place, Suite 210 Wakefield, MA 01880 USA wford@verisign.com