view Side-By-Side changes
PKIX Working Groupexpires in six months JulyOctober 12, 1999 expires April 12, 2000 Internet X.509 Public Key Infrastructure Data Validation and Certification Server Protocols<draft-ietf-pkix-dcs-01.txt><draft-ietf-pkix-dcs-02.txt> Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. 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." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract This document describes a general data validation and certification service and the protocols to be used when communicating with it. The Data Validation and Certification Server is a Trusted Third Party (TTP) that can be used as one component in building reliablenon-repudiationnon- repudiation services (see [ISONR]). Useful Data Validation and Certification Server responsibilities in a PKI are to validatesignaturessigned documents and toprovide up-to-date information regardingassert thestatusvalidity of public keycertificates.certificates at a given time. We give examples of how to use the Data Certification Server to extend the lifetime of a signature beyond key expiry or revocation and to query the Data Certification Server regarding the status of a public key certificate. <draft>Note: The initial drafts of this protocol used the abbreviation DCS instead of DVCS.</draft> Adams, Sylvester, Zolotarev, Zuccherato [Page 1] draft-ietf-pkix-dcs-02.txt DVCS Protocols October 12, 1999 The key words "MUST", "MUST NOT", "REQUIRED","SHALL", "SHALL NOT","SHOULD", "SHOULD NOT","RECO6MMENDED","RECOMMENDED", "MAY", and "OPTIONAL" in this document (in uppercase, as shown) are to be interpreted as described inRFC 2119[RFC2119].Adams, Sylvester, Zuccherato [Page 1] draft-ietf-pkix-dcs-01.txt DCS Protocols July 12, 1999<draft>A complete list of ASN.1 will be added in an appendix.</draft> 1. Introduction A DataCertificationValidation Server(DCS)(DVCS) is a Trusted Third Partythat provides an assertion of the usability of the data transmitted to it. The assertion may be(TTP) providinga time stamp, adata validation services, asserting correctness of digitally signed documents, validity ofapublic keycertification orcertificates, and possession of data. As asigned document. The Data Certification Server providesresult of the assertion, a DVCS generates a Data Validation Certificate (DVC) The datacertification service in order that non-repudiability evidence mayvalidation certificate can beconstructedused for constructing evidence of non-repudiation, relating to the validity and correctness of an entity's claim to possess data, the validity and revocation status of an entity's public key certificateand/orand the validity and correctness ofanother entity's signature. When certifying possession of data or another entity's signature, the DCS verifiesa digitally signed document. DVCS services do not replace themathematical correctnessusage ofthe actual signature value contained in the requestCRLs andalso checks the full certification path from the signing entityOCSP for public key certificate revocation checking in large open environments, due toa trusted point (e.g., the DCS's CA, orconcerns about theroot CA in a hierarchy). The DCS MAYscalability of this protocol. It should beablerather used torely on all relevant CRLs and ARLs,support non-repudiation orthe DCS MAY needto supplementthis with access tomorecurrent status information from the CA. It then includes a trusted time and createstraditional services concerning paperless document environments. The presence of a datacertification token. (See Appendix B.) When certifying a public key certificate, the DCS verifies that the certificate included in the request is a valid certificate and determines its revocation status at a specified time. Again, it checks the full certification path from thevalidation certificatesigning entity to a trusted point. The DCS MAY be able to rely on all relevant CRLs and ARLs, or the DCS MAY need to supplement this with access to more current status information from the CA. It includes this information, along with a trusted time, to create a Data Certification Token. (See Appendix C.) The presence of a data certification tokensupports non-repudiation in two ways. It provides evidence that asignaturedigitally signed document or public key certificate was valid at the time indicated in thetoken.dvc. Thetokendvc for a public key certificate can be used even after thecorrespondingpublic key certificate expires and its revocation information is no longeravailable on CRLs (for example).or not easily available; it is assumed that verifying the validity of a dvc is easier, since the population is smaller. The production of a datacertification tokenvalidation certificate in response to a signed request forcertificationvalidation ofanother signaturea signed document or public key certificate also provides evidence that due diligence was performed by the requester in validatingthea digital signature or public key certificate.DCS does not replace the usage2. DVCS Services The current specification defines 4 types ofCRLsvalidation andOCSP for public key certificate revocation checking in large open environments, due tocertification services: - Certification of Possession of Data (cpd), - Certification of Claim of Possession of Data (ccpd), - Validation of Digitally Signed Document (vsd), and - Validation of Public Key Certificates (vpkc). Adams, Sylvester, Zolotarev, Zuccherato [Page 2]draft-ietf-pkix-dcs-01.txt DCSdraft-ietf-pkix-dcs-02.txt DVCS ProtocolsJulyOctober 12, 1999concerns about the scalability of this protocol. It should only be used to support non-repudiation or to supplement more traditional revocation services when more timely information is required. An important application of DCS is an enterprise environment where all security decision are based on company wide rules.Acompany wide DCS service can be used to delegate all technical decisions (e.g., path validation, trust configuration)DVCS is REQUIRED to support at least acentrally managed service. In all cases, the trust that PKI entities have in the Data Certification Server is transferred to the contentssubset of these services. On completion of each service, thedata certification token (just as trust in a CA is transferred to the public key certificates that it issues). As particular examples,DVCS produces a datacertification token pertaining tovalidation certificate - asignature may be useful for extendingsigned document containing thelifevalidation results and trustworthy time information. 2.1 Certifying Possession of Data The Certify Possession of Data service provides evidence thatsignature beyondtheexpiry or subsequent revocation of its corresponding verification certificate; and including a DCS response as an authenticated attribute in a signature allows to include an additional attestion aboutrequester possessed data at theusability of a certificate to be used for signing. It is outsidetime indicated and that thescope of this documentactual data where presented todescribe different operational scenarios, or usages for DCS. This document describes basic services and protocols. 2. Requirements ofthe Data Validation Server. 2.2 CertificationServer The Data Certification Server Protocols can be used in different service contexts. Examples include company wide centralised data validation services (verificationofsignatures, certificationClaim of possession ofcompany certificates),Data The Certify Claim of Possession service is similar tocooperate inthe previous one, except that the requester does not present the data itself but amulti-organisation community, or general third party services formessage digest. This service is similar to time stampingor data archival.services as described in [TSP]. 2.3 Validation of Digitally Signed Documents TheData Certification ServerValidation of Digitally Signed Document service isREQUIRED to: 1. verify the correctnessused when validity ofthe enclosed digital signature (accordinga signed document is to[RFC2459])be asserted. The DVCS verifies all signatures the signed document using all appropriate status information and public keycertificates and produce a signed datacertificates. The DVCS verifies the mathematical correctness of all signatures attached to the document and also checks whether the signing entities can be trusted, for example by validating the full certificationtoken certifyingpath from thevaliditysigning entities to a trusted point (e.g., the DVCS's CA, or the root CA in a hierarchy). The DVCS MAY be able to rely on relevant CRLs or MAY need to supplement this with access to more current status information from the CAs for example by accessing to an OCSP service, a trusted directory service, or other DVS services. The DVCS will perform verification of all signatures attached to thesignature,signed document. A failure of the verification of one of the signatures does not necessarily result in the failure of the entire certification, and vice versa, a global failure may occur ifasked bytherequester. 2.document has an insufficient number of signatures. 2.4 Certifying Public Key Certificate The Certify Public Key Certificate service is used to verify the validity (according to [RFC2459]) of one or moreenclosedpublic key certificatesand their revocation statusat the specifiedtime using all appropriate status information, and/or other external services (including DCS and OCSP) and public key certificates and produce a signed data certification token certifying the validity and revocation status of the publictime. Adams, Sylvester, Zolotarev, Zuccherato [Page 3]draft-ietf-pkix-dcs-01.txt DCSdraft-ietf-pkix-dcs-02.txt DVCS ProtocolsJulyOctober 12, 1999 When certifying a public key certificate,if asked bytherequester. 3. include a monotonically increasing time of day value orDVS verifies that the certificate included in the request is atime stamp token intovalid certificate and determines itsdata certification token. 4. include within each signed datarevocation status at a specified time. DVS checks the full certificationtoken an identifierpath from the certificate's issuer todeterminea trusted point. Again thetrust and validation policy used for this signature. 5. sign each data certification token using a key generated exclusively for this purpose and have this property of the key indicatedDVCS MAY be able to rely on external information (CRL, OCSP, DVCS). 3. Data Certification Server usage and scenarios. It is outside thecorresponding public key certificate. 6. indicate in the token whether or not the signaturescope of this document to completely describe different operational scenarios, orpublic key certificate(s) was verified,usages for DVCS. See Appendix B andif not, the reason the verification failed. 7. provideC for asigned receipt (i.e., in the formset ofan appropriately defined data certification token) to the requester, where appropriate, as defined by policy.examples and use cases. TheDCSValidate Signed Document servicedefinition and the policy defines how much information that have beencan be usedby the DCS servicetodeterminesupport non- repudiation services, to allow use of theresponse status, e.g.,signed document beyond public keycertificates, OCSP and DCS responses will be included incertificate revocation or expiry, or simply to delegate signature validation to aDCS Token. The [TSA] defines additional requirements:trusted central (company wide) service. TheDCS protocolsValidate Public Key Certificate service can be usedaswhen timely information regarding areplacement for the services defined in [TSA], in this casecertificate's revocation status is required (e.g. high value funds transfer or therequirementscompromise of[TSA] apply to that service.a highly sensitive key) or when evidence supporting non-repudiation is required. ADCS servicedata validation certificate may becombined with or use archiving and logging systems, in orderused toserve assimplify the validation of astrong building block in non- repudiation services. 3. Data Certification Server Transactions Assignature beyond thefirst transactionexpiry or subsequent revocation ofthis mechanism,therequesting entity requests a certification by sendingsigning certificate: adata certification requestData validation certificate used asdefined below, includingan authenticated attribute in a signature includes an additional assertion about thedatausability of a certificate that was used forwhich validity and/or possession issigning. In order to validate such a signature it may becertified,sufficient to only validate theData Certification Server. Upon receiving the request, the Data Certification Server reviews and checks the validity of the request.data validation certificate. Avalid request isdata validation certificate for a key exchange certificate may contain additional certificates to be used as a simple method to indicate to a client to encrypt a session key for additional authorised entities (e.g., to support company wide recovery). The Certify Claim of Possession of Data is equivalent to theform decribed laterservices described inthis document,[TSP]. The Certify Possession of data service can beproperly decoded, and is fromused to assert legal deposit of documents, or to implement archival services as asupported Data Certification Server subscriber (in case when signed requests are required). If the request is valid, thetrusted third party service. The Data Validation and Certification Serverperforms all necessary validationsProtocols can be used inorder to create a certification, and sends a response (which is or includes a datadifferent service contexts. Examples include company-wide centralised services (verification of signatures, certificationtoken, as definedof company Adams, Sylvester, Zolotarev, Zuccherato [Page 4]draft-ietf-pkix-dcs-01.txt DCSdraft-ietf-pkix-dcs-02.txt DVCS ProtocolsJulyOctober 12, 1999below)certificates), service tothe requesting entity. Otherwise, the Data Certification Server returns an error message (i.e.,cooperate inthe forma multi-organisation community, or general third party services for time stamping or data archival. An important application of DVCS is anappropriately defined data certification token). Upon receiving the token, the requesting entity verifies its validity. The requester SHOULD verify that it contains the correctenterprise environment where all security decision are based on company wide rules. A company wide DVCS service can be used to delegate all technical decisions (e.g., path validation, trust configuration) to a centrally managed service. In all cases, the trust that PKI entities have in the Data Validation and Certification Server is transferred to the contents of the Data Validation Certificate (just as trust in a CA is transferred to the public key certificates that it issues). 4. Functional Requirements for DVCS The DVCS MUST 1. provide a signed receipt in the form of a data validation certificate to the requester, as defined by policy. The DVCS service definition and the policy defines how much information that has been used by the DVCS service to determine the response status will be included in a data validation certificate, e.g., public key certificates, CRLs, OCSP, TSA and DVCS responses. 2. indicate in the data validation certificate whether or not the signed document, the public key certificate(s), or the data were validated, and, if not, the reason why the verification failed. 3. include a strictly monotonously increasing serial number in each of its certificates. 4. include a monotonically increasing time of day value or a time stamp token into each data validation certificate. 5. include within each signed data validation certificate a policy identifier to determine the trust and validation policy used for this signature. 6. sign each data certification token using a key generated exclusively for this purpose, have this property of the key indicated in the corresponding public key certificate, and include a reference to this certificate as a signed attributes in the signature. The [TSA] defines additional requirements: The DVCS protocols can be used as a replacement for the services defined in [TSA], in this case Adams, Sylvester, Zolotarev, Zuccherato [Page 5] draft-ietf-pkix-dcs-02.txt DVCS Protocols October 12, 1999 the requirements of [TSA] apply to that service. A DVCS service may be combined with or use archiving and logging systems, in order to serve as a strong building block in non- repudiation services. 5. Data Certification Server Transactions A DVCS client prepares a Data Certification Request. The request always contains data for which validity, correctness or possession is to be certified. It may be required that a requestor signs a request, to prove that it came from a valid DVCS service's subscriber. The DVCS client chooses an appropriate transport mechanism to convey the requests to a DVCS. It may be necessary to choose a transport mechanism providing confidentiality and, in particular, allowing authentication of the DVCS by the requestor, e.g. TLS or encryption. The DVCS authenticates the request if necessary. If the request is valid, the DVCS performs all necessary verifications steps, and generates a Data Validation Certificate (DVC), and sends a response message containing the DVC back to the requestor. The Data Validation Certificate is a signed document (CMS SignedData). If the request was invalid, a response message will contain an appropriate error notification. Upon receiving the token, the requesting entity SHOULD verify its validity, i.e. it contains the correct time, the correct name for theDCS,DVCS, the correctdatarequest information and message imprint, a valid signature, and satisfactory status, service and policy fields.A DCS's certificate may have been revoked. ItWhen verifying validity of a DVC, it is up to thelocalrequestor's application toverifycheck whetheror notaDCSDVCS's signing certificateis stillDVCS was valid. Depending on the usageenvironment (e.g. organisation's central trust point or global time stamp authority)environment, different methods (online or out of band,or CRLs) needCRLs, DVCS, OCSP...) may have to be used.The tokenAfter all checks passed, the data validation certificate cannowbe used to authenticate the correctness or possession of the corresponding data.4.6. Identification of theDCSDVCS TheDCSDVCS MUST sign all data certification messages with a key reservedexplicitelyexplicitly for that purpose. The corresponding certificate MUST contain the extended key usage field extension as defined in Adams, Sylvester, Zolotarev, Zuccherato [Page 6] draft-ietf-pkix-dcs-02.txt DVCS Protocols October 12, 1999 [RFC2459] Section 4.2.1.14 with KeyPurposeID having valueid-kp-dcs.id-kp-DVCS. This extension MUST be marked as critical.id-kp-dcsThe Data Validation Certificate MUST contain an ESSCertID authenticated attribute for the certificate used by the DVCS for signing. id-kp-DVCS OBJECT IDENTIFIER ::={id-kp X}{ <draft>tbd</draft> } Consistent key usage bits: digitalSignature, nonRepudiation ADCS'sDVCS's certificate MAY contain an Authority Information Access extension [RFC2459] in order to convey the method of contacting theDCS.DVCS. The accessMethod field in this extension MUST contain the OIDid-ad-dcs: id-ad OBJECT IDENTIFIER ::= { id-pkix 48 } id-ad-dcsid-ad-DVCS: id-ad-DVCS OBJECT IDENTIFIER ::= {id-ad X<draft>tbd</draft> } The value of theaccessLocationfield 'accessLocation' field defines the transport (e.g. an URL) used to access theDCS. 5. Service andDVCS. 7. Common Data TypesA DCS MAY support any subsetThere are several common data types that occur in the request and the response data structures. These data types are either defined by this document or imported from other sources. This chapter defines of these types and lists their usages. 7.1 DigestInfo: This element is defind in [RFC2315]. Since thefollowing services: Certify Possessionstatus ofData, Certify Signature, Certify Public Key Certificatethat document the definition is repeated here: DigestInfo ::= SEQUENCE { digestAlgorithm DigestAlgorithmIdentifier, digest Digest } Digest ::= OCTET STRING TheCertify Possessionfields ofData service provides evidence thattype DigestInfo have the following meanings: - The field 'digestAlgorithm' identifies the message-digest algorithm (and any associated parameters) under which data are digested. - The field 'digest' is the result of the message-digesting process. A DigestInfo occurs in two places: - as a data portion for the ccpd service, and Adams, Sylvester, Zolotarev, Zuccherato [Page 7] draft-ietf-pkix-dcs-02.txt DVCS Protocols October 12, 1999 - in all a data validation certificates to hold a digest of the data portion of the corresponding request or a copy of the data field for a ccpd service. 7.2. Nonce Requests and responses may include INTEGER values as nonce fields. A nonce field in therequester possessed data or that data existed atrequest is returned as is in thetime indicated Adams, Sylvester, Zuccherato [Page 5] draft-ietf-pkix-dcs-01.txt DCS Protocols July 12, 1999response, the DVCS may create an addition nonce in therequest/response. Aresponse. 7.3. Time Values Indicators of timestamping services as describedoccur in[TSA] isrequests and responses. In the most simple form, and genrated localloy either by asubsetrequester or a DVCS, they are represented as GeneralizedTime where fractions ofthis service. The Certify Signature serviceseconds are allowed. An alternate form isused whena timeStampToken from a [TSA] or as a DVC, or as token from anotherentity's signaturethird party service. When using third party tokens, it isto be validated. The resulting token can then be used to support non-repudiation services, to allow usea matter ofthe signature beyond public key certificate revocation or expiry, or simply to delegate signature validationpolicy whether a DVCS tries to interprete or validate atrusted central service. The Certify Public Key Certificate servicetimeStampToken. DVCSTime ::= CHOICE { genTime GeneralizedTime, timeStampToken SignedData } Future versions of the protocol MAY include additional time formats. Time values generated by the DVCS are increasing but not necessarily unique using the order defined by serial numbers. 7.4. PKIStatusInfo This structure is defined in [RFC2510]. It is usedwhenas component of thevalidity'chain' field ofone or more public key certificates is to be verified. This service can be used when timely information regardingacertificate's revocation state is required (e.g. high value funds transfer orTargetEtcChain structure, and as a global status indicator in thecompromiseDVCSResponse structure. Every occurence ofa highly sensitive key) or when evidence supporting non-repudiationPKIStatusInfo isrequired. The response ofgenerated by thevalidationresponding DVCS to reflect the result of some local verification. 7.5. TargetEtcChain A TargetEtcChain structure contains certificates and other indicators to describe either (in acertificate containing a public keyrequest) information to beused for encryptionvalidated (in a cpkc service) or the result of the verifications. The structure may also containadditional certificatesinformation about policies and policy mappings. The details about how tobe used as a simple methodfill in and toencrypt data or a session keyinterpret the structure are Adams, Sylvester, Zolotarev, Zuccherato [Page 8] draft-ietf-pkix-dcs-02.txt DVCS Protocols October 12, 1999 defined later foradditional authorised entities (e.g., company key recovery). DCS service requests MAY be signed or unsigned depending oneach service. theconfiguration'pathProcinput' field contains information about policies andthe service that ispolicy mapping to beprovided. Some data types occur in several places in a request and/orused or used aresponse: - MessageImprint:validation. Ifthe requestpresent, it containsa digest of some data,theCertify Possessionresult ofData service can be requested foramessage imprint. Reponses include a MessageImprintlocal verification of thedata received in order to allow to validateimmediately preceeding element, or of thecorrespondance to a request. - Message: For a CMS SignedData message, eithertarget value, if it is theCertify Signature servicefirst element in the 'chain' sequence. If no 'pkistatus' or 'certstatus' is present, theCertify Possession of Data serviceDVCS considers all elements in the 'chain' as trustworthy. Note, that there may be for example an OCSP response or DVC indicating an invalid certificate. TargetEtcChain ::= SEQUENCE { target CertEtcToken, chain [0] SEQUENCE SIZE (1..MAX) OF CertEtcToken OPTIONAL, pathProcInput [1] PathProcInput OPTIONAL } PathProcInput ::= SEQUENCE { acceptablePolicySet SEQUENCE SIZE (1..MAX) OF PolicyInformation, inhibitPolicyMapping BOOLEAN DEFAULT FALSE, explicitPolicyReqd BOOLEAN DEFAULT FALSE } CertEtcToken ::= CHOICE { certificate [0] Certificate , oscpcertid [1] CertId , esscertid [2] ESSCertId , datacert [3] SignedData , oscpresponse [4] OCSPResponse, crl [5] CertificateList, certstatus [6] CertStatus, pkistatus [7] PKIStatusField , extension Extension } Certificate, PolicyInformation and CertificateListare are defined in [RFC2459]. ESSCertId is defined in [RFC2634]. CertiId, OCSPResponse and CertStatus are defined in [RFC2560]. PKIStatusField is defined in [RFC2510]. The choice 'datacert' canbe requested. For other knowncontain a datatypes, Certify Possession of Data service can be requested. The DCS may perform additionalvalidationon the content of data. - Certificates: The request containscertificate, or alist of public key certificates, certificate validation chainstimeStamp, or other assertions. The choices 'datacert', 'ocspresponse' andpolicy requirements,'crl' are provided by services external to the responding DVCS. TheCertify Public Key Certificate service can be requested.choices 'certStatus' Adams, Sylvester, Zolotarev, Zuccherato [Page6] draft-ietf-pkix-dcs-01.txt DCS9] draft-ietf-pkix-dcs-02.txt DVCS ProtocolsJulyOctober 12, 1999- Nonce: A requestanda response may include a nonce in order to minimize some replay attacks. - CertIds:'pkistatus' reflect decisions made directly by the responding DVCS. As a replacement for certificates, certificationidentifieridentifiers (ESSCertId, CertId) MAY beused. There are actually two types imported from OCSPused in requests andfrom S/MIME ESS. Signatures made byresponses, if this is sufficient to perform theDCS MUST include an ESS signing certificate attribute. Requests and responsesservice, e.g., when the corresponding certificates are provided elsewhere in a request or response (as part of thepublic key certificateSignedData type). 7.6. DVCSReqInfo A DVCSReqInfo data structure contains general information about the data validationMAY contain certificates, OCSPandS/MIME ESS certificate identifiers. - TimeStamps Indicators of time occurcertification request. This structure occurs inrequestsa request, andresponses. Inincluded in a corresponding data validation certificate. DVCSReqInfo ::= SEQUENCE { service ServiceType, requester [0] GeneralNames OPTIONAL, reqPolicy [1] PolicyInformation OPTIONAL, DVCS [2] GeneralNames OPTIONAL, dataLocator [3] GeneralName OPTIONAL, nonce Integer, reqTime DVCSTime OPTIONAL, extensions Extensions OPTIONAL } The ServiceType type indicates themost simple form, they are represented as GeneralizedTime. FractionsDVCS service type ofsecondsa request. See chapter 2 for a description of the services. ServiceType ::= INTEGER { cpd(1), vsd(2), cpkc(3), ccpd(4) } 7.7. GeneralNames There areallowed. The alternate formseveral occurences of sequences of GeneralName. For syntactical conveniance the following type isa TimeStamping token, eitherdefined here: GeneralNames ::= SEQUENCE OF GeneralName GeneralName is imported from[TSA] or as a DCS token. 6. Request[RFC2459]. 8. Data Validation andToken FormatCertification Requests A data certification request is a SignedData construct of[CMS] or [PKCS7].[RFC2630]. The contenttype indicated in the eContentType of the encapContentInfo is of typeid-ct-DCSReqDataid-ct-DVCSReqData signalling aDCSReqDataDVCSReqData as eContent of the encapContentInfo (carried as an octet string).id-ct-DCSReqData OBJECT IDENTIFIER ::= {id-ct ??} with: id-ct OBJECT IDENTIFIER ::= { id-smime 1 } id-smimeid-ct-DVCSReqData OBJECT IDENTIFIER ::= {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9) 16<draft>tbd</draft> } Adams, Sylvester, Zolotarev, Zuccherato [Page 10] draft-ietf-pkix-dcs-02.txt DVCS Protocols October 12, 1999 A data certification request MAY contain several SignerInfo structures, and countersignature attributes depending on operational environments.In a normalWhen an end usersituation (or an application that initiallyclient createsa DCSthe request, there isnormallyone or zerooccurences ofSignerInfo.DCSReqDataA relaying DVCS MAY add an additional signature or a countersignature attribute. The content of a request consists of a description of the desired service and additional parameters, the data to be validated, and an optional identifier of the request. DVCSRequest ::= SEQUENCE {dcsReqInfo DCSReqInfo, Adams, Sylvester, Zuccherato [Page 7] draft-ietf-pkix-dcs-01.txt DCS Protocols July 12, 1999reqInfo DVCSReqInfo, dataData , requestIdentifierData, transactionIdentifier GeneralName OPTIONAL } ThedcsReqInfo field'reqInfo' element contains general informationpertaining toabout thedata certificationrequest.DCSReqInfo ::= SEQUENCE { version Integer { v1(0) }, service ServiceType,It is filled in by the requester[0] GeneralNames OPTIONAL, reqPolicy [1] PolicyInformation OPTIONAL, dcs [2] GeneralNames OPTIONAL, dataLocator [3] GeneralName OPTIONAL, nonce Integer, reqTime DCSTime OPTIONAL, extensions Extensions OPTIONAL } GeneralNames ::= SEQUENCE OF GeneralNameas follows: - TheServiceType type indicates which type of Data Certification Server service is required. ServiceType ::= INTEGER { cpd(1), cs(2), cpkc(3) }field 'service' contains the requested service. - The value ofrequesterthe 'requester' field indicates the requesting entity. If the field is present, and therequesterrequest is signed, it MUST match the identity (subjectName or subjectAltName extension)forof the correspondingsigningsignature certificate, unless the request is signed by aDCSDVCS (relaying a request to another server).A DCS may includeWhen acting as asequence of identitiesrelay to DVCS MAY its own identity in therequest, indication the original requester,request relayed to another service provider, andone or more other DCS. A DCS indicated init MAY remove thelist are actinginitial value. - The 'reqPolicy' field SHOULD indicate the policy under which the certification is requested. This field MUST be checked bydelegation.the DVCS to verify agreement with its own policy. Thevalueabsence ofdcsthis field indicates that any policy is acceptable. - The 'dvcs' field MAY indicate a list aDCSDVCS which are to be contacted to provide (additional) information or to perform additional operations necessary to produce the response. It is up to theDCSDVCS policy whether tohonourhonor this field ornot.not, and to define which choice of a general name is acceptable (e.g. an URL or a DN). TheDCSDVCS MAY use local information to use additional external services.dataLocator describes the requester's idea of where the data are located. PolicyInformation is defined in Section 4.2.1.5 of [RFC2459].- ThereqPolicy'dataLocator' fieldSHOULDMAY indicate where a copy of thepolicy under which the certification is requested. This'data' fieldMUST be checked byof theDCS to verify agreement withrequest or supplementary information can be obtained. The DVCS does not use this field for its ownpolicy. The absenceoperation, the exact interpretation of this fieldindicates that any policyisacceptable.defined by applications. Adams, Sylvester, Zolotarev, Zuccherato [Page8] draft-ietf-pkix-dcs-01.txt DCS11] draft-ietf-pkix-dcs-02.txt DVCS ProtocolsJulyOctober 12, 1999DCSTime ::= CHOICE { genTime GeneralizedTime, timeStampToken SignedData } A timeStampToken is either a DCSToken- The 'nonce' field MAY be used to provide additional protection against replay or content guessing attacks. - The 'reqTime' field MAY be used to indicate the time for which the requested service should be performed. For aTimeStampToken defined in [TSA]. If a timeStampToken is present, thisvsd and cpkc service, it indicates to check whether thetime provided by another DCSsigned document orTSA. In situationscerticates where valid at theData Certification Server will certifygiven time. For thetime included inother service, therequest (i.e., when stipulatedfield is ignored by thepolicy of the Data Certification Server), the data certification request MUST include the reqTime field in DCSReqInfo. Thus, when verifying a public key certificate,DVCS. If thepresence of thisfieldindicatesis absent, the current timefor which the validity and revocation statusof thecertificate SHOULD be reported. If this fieldDVCS is assumed. - The 'extensions' field MAY be used to include additional information. Extensions may be marked critical or notpresent,in order to indicate whether thecurrent timeDVCS isassumed.supposed to understand them. This document does not define extensions. The Data type is definedto be eitheras a placeholder for service-specific content, defined by each particular service provided by themessage itself, a hash ofDVCS. Depending on themessage (this allowsrequested service type, the field may contain requester-specific data, asignature indicating possessionsigned document, a list ofprivate data to be certified)certificates, a message digest orthe certificate to be verified.arbitrary data. Data ::= CHOICE { message [0]Message, messageimprintOCTET STRING , messageImprint [1]MessageImprint,DigestInfo, certs [2] SEQUENCE SIZE (1..MAX) OFTargetandChainTargetEtcChain, }In order to specifyThe requester fills theformat (i.e.'data' element as follows: - For a vsd service request, the requestor encapsulates a CMS SignedData object in thetype)value octets of themessage so'message' choice. It is up to the requester to provide any certificate thatitmay beparsed and understood byneeded to verify theDCS or any verifying entity, we definesignature(s) in theMessage data type. Message ::= SEQUENCE { format MESSAGECLASS.&id, --objid rawdata MESSAGECLASS.&Type --open type } MESSAGECLASS ::= CLASS { &id OBJECT IDENTIFIER UNIQUE, &Type } WITH SYNTAX { &Type IDENTIFIED BY &id } Possible message types include id-data and id-signedData [CMS]. id-data OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs7(7) 1 } id-signedData OBJECT IDENTIFIER ::= { iso(1) member-body(2) Adams, Sylvester, Zuccherato [Page 9] draft-ietf-pkix-dcs-01.txt DCS Protocols July 12, 1999 us(840) rsadsi(113549) pkcs(1) pkcs7(7) 2 } In particular, ifsignedData object. The requester MAY choose to remove all certificates from themessage type is id-signedData (or any other message type that allows more than one signature)signedData (since they are not part of the signed part anyway, andmore than one SignerInfo (or signature) is present undertransfer them in the certificate list of the signedData structure containing the DVCSRequest. - For a cpkc servicetype cs,request theDCScerts choice is used. Each certificate to be verified MUSTverify all signatures present. A failurebe included in a separate instance of TargetEtcChain. The target field SHALL contain theverification of onecert to be verified and the chain field, if present, MUST indicate the chain of trust to be used when certifying thesignatures does not necessarily resultcertificate. The pathProcInput field, if present, SHOULD indicate the acceptable Adams, Sylvester, Zolotarev, Zuccherato [Page 12] draft-ietf-pkix-dcs-02.txt DVCS Protocols October 12, 1999 policy set and initial settings for explicit-policy-indicator and inhibit-policy-mapping indicators to be used in X.509 public key certificate path validation (see [RFC2459]). Only thefailureCertificate, ESSCertId, CertId or Extension fields of theentire certification. For a Data Possession service,TargetEtcChain can be used in the request. The requestermay chooseis responsible tosend a message or a hash ofprovide sufficient information to the DVCS to identify the corresponding certificates. - For amessage instead usingccpd service theMessageImprint data type. MessageImprint ::= SEQUENCE { hashAlgorithm AlgorithmIdentifier, hashedMessage OCTET STRING }messageImprint choice is used. The hash algorithm indicated in the hashAlgorithm field SHOULD be a "strong" hash algorithm (that is, it SHOULD be one-way and collision resistant). It is up to the Data Certification Server to decide whether or not the given hash algorithm is sufficiently "strong" (based on the current state of knowledge in cryptanalysis and the current state of the art in computational resources, for example). - For a cpd service the message choice is used. ThehashedMessagefieldSHOULD'message' contain requester-specific data with any type of content. The DVCS does not inspect, modify, or take any particular action based on thehashparticular content of theDER encoding'message' field. The element 'transactionIdentifier' MAY be used in order to permit to associate DVCS responses containg error messages, to requests. For example, in a mail based environment, the parameter could be a copy of a messageid. Note, that themessage expressedtransactionIdentifier is not necessary for associating a request with a data validation certificate. 9. DVCS Responses This chapters describes the data structures that are created by a DVCS to indicate the results of validation and certification requests. A DVCS Response structure is generated by the DVCS as aMessageresult of processing of the datatype.certification validation request. A Data Validation response is a SignedData construct of [RFC2630]. Thehashcontenttype indicated in the eContentType of the encapContentInfo isrepresented as an OCTET STRING. TargetandChain ::= SEQUENCE { target CertetcToken, chain [0] SEQUENCE SIZE (1..MAX) OF CertetcToken OPTIONAL, pathProcInput [1] PathProcInput OPTIONAL } PathProcInput ::= SEQUENCE { acceptablePolicySet CertificatePolicies, inhibitPolicyMapping BOOLEAN DEFAULT FALSE, explicitPolicyReqd BOOLEAN DEFAULT FALSE } CertetcToken ::= CHOICE { cert [0] Certificate , esscertid [1] ESSCertId , dcstoken [2] DCSToken , oscpresponse [3] OCSPResponse, pkistatus [4] PKIStatusField , extension Extension }of type id-ct-DVCSResponseData, signalling a DVCSResponse as eContent of the encapContentInfo (carried as an octet string). Adams, Sylvester, Zolotarev, Zuccherato [Page10] draft-ietf-pkix-dcs-01.txt DCS13] draft-ietf-pkix-dcs-02.txt DVCS ProtocolsJulyOctober 12, 1999 id-ct-DVCSResponseData OBJECT IDENTIFIER ::= { <draft>tbd</draft> } Thecerts field SHOULD containDVCS MUST use a key, specifically allocated for thecertificate to be certified. Each certificate SHALL be includedpurpose of DVCS signing, with a proper extendedKeyUsage set in aseparate instance of TargetandChain. The target field SHALL containcorresponding certificate. In a critical situation when a DVCS can not produce a valid signature (if thecertDVCS's signing key is known to beverified and the chain field, if present, MUST indicatecompromised, for example), thechain of trust toDVCSResponse must beused when certifying the certificate. The pathProcInput field, if present, SHOULD indicategenerated as a signedData with no signerInfo attached. In this case, theacceptable policy set and initial settings for explicit-policy-indicator and inhibit-policy- mapping indicators to be used in X.509 public key certificate path validation (see [RFC2459]). CertificatePolicies is defined in Section 4.2.1.5 of [RFC2459]. Only Certificate and ESSCertIdresponse MUSTbe used in the request. ESSCertId isonlyused when the corresponding certificate is available in one of the TargetandChain components, or in the certificate list of the SignerData of the DCS request. Extensions are described in Section 4.2 of [RFC2459]. The criticality ofcontain theextensionserror notification. Receiving unsigned DVCSResponse MUST behonouredtreated byconformant DCSs andthe clients(e.g. requests and responses containing critical extensions which are not understood MUST be rejected). requestIdentifier is an identifier that is returnedassupplied in a response. The requester MAY use this element in order to associate requestscritical and fatal error, andresponses. For example in a mail transport environment,therequest identifier could be a copycontent ofa MessageId. A DCS Response isthefollowing data structure. At leastmessage should not be implicitly trusted. A valid response can contain one of theoptional element MUST be present. DCS servers MAY choose produce only signed responses (DCSResp containing a dcsToken), i.e., not to return any informationfollowing: 1. A Data Validation Certificate (DVC), containing the results of data validation operations, performed by the DVCS. 2. An error notification. This may happen whenthey cannot decodea request fails due to a parsing error, requester authentication failure, orwhen signinganything else that prevented the server from executing the request. The following type isnot possible. DCSRespused: DVCSResponse ::=SEQUENCECHOICE {requestIdentifierdvcErrorNote [0]GeneralName OPTIONAL , responseStatusDVErrorNote, dvCertInfo [1]PKIStatusInfo OPTIONAL, dcsToken DCSToken OPTIONALDVCertInfo }The responseStatus is un unsigned information only message.9.1. DVCS Error Notification Aclient should not put more trust into element than into the lower level transport. The reason for havingDVCS Error Notification is a CMS signedData object (maybe with signature) containing a DVCSResponse with a dvErrorNote choice. DVErrorNote ::= SEQUENCE { DVTransStatus PKIStatusInfo , transactionIdentifier GeneralName OPTIONAL } The PKIStatusInfo isthat that the server might want to signal some additional informationdefined ina PKIFreeText of responseStatus. IftheDCS Response contains a dcsToken,[RFC2511]. For thePKIStatus fieldpurposes of communicating therequestStatus MUST be `granted' (0), orDVErrorNote, therequestStatus MUST be absent.following subset PKIFailureInfo for use in PKIStatusInfo is used: PKIFailureInfo ::= BITSTRING { badRequest (2), -- transaction not permitted or supported Adams, Sylvester, Zolotarev, Zuccherato [Page11] draft-ietf-pkix-dcs-01.txt DCS14] draft-ietf-pkix-dcs-02.txt DVCS ProtocolsJulyOctober 12, 1999A dcsToken is a SignedData construct of [CMS]. The contenttypebadTime (3), -- messageTime was not sufficiently close to the system time, -- as defined by local policy badDataFormat (5), -- the data submitted has the wrong format wrongAuthority (6), -- the DVCS indicated in theeContentType ofrequest is different from theencapContentInfo-- one creating the response token incorrectData (7), --the requester's data (i.e. signature) isof type id- ct-DCSInfo signalling a DCSReqData as eContentincorrect ) In the DVError, the PKIStatus field of theencapContentInfo (carried as an octet string). id-ct-DCSInfo OBJECT IDENTIFIER ::= {id-ct ??} A data certification MAY contain several SignerInfo structures, and countersignature attributes depending on operational environments.PKIStatusInfo must be set to REJECTED. The 'statusString' field of PKIStatusInfo can be used to include reason text such as for example "Invalid request format". Thedata certification token MUST contain onlyDVCS fills theDCS signatures, i.e., signatures signed'transactionIdentifier' withcertificates having KeyPurposeIDa copy ofid- kp-dcs. DCSInfo ::=the 'transactionIdentifier' field of the corresponding DVCSRequest. 9.2. Data Validation Certificate A Data Validation Certificate is a signedData object containing a DVCSResponse with a dvCertInfo choice. DVCertInfo::= SEQUENCE {infoStatus PKIStatusInfo OPTIONAL, dcsReqInfo DCSBasicInfononce INTEGER OPTIONAL,requestIdentifier GeneralName OPTIONAL } DCSBasicInfo ::= SEQUENCE { dcsReqInfo DCSReqInfo,dvReqInfo DVCSReqInfo, messageImprintMessageImprint, dataLocatorDigestInfo, serialNumber Integer, respTime DVCSTime, dvStatus [0]GeneralName OPTIONAL , reqSignature [1] SignerInfosPKIStatusInfo OPTIONAL, policyPolicyInformation, time DCSTime, serialNumber Integer[1] PolicyInformation OPTIONAL,chainCertsreqSignature [2]SEQUENCE OF TargetandChainInfoSignerInfos OPTIONAL,crlscerts [3] SEQUENCE OFCertificateListTargetEtcChain OPTIONAL, extensions [4] Extensions OPTIONAL }TargetandChainInfo ::= SEQUENCE { target CertetcToken, chain [0] SEQUENCE SIZE (1..MAX) OF CertetcToken OPTIONAL, policyReturnInfo [1] PolicyReturnInfo OPTIONAL } PolicyReturnInfo ::= SEQUENCE { policies SEQUENCE OF PolicyInformation, mappings SEQUENCE OF PolicyMappingsSyntax } PKIStatusInfoThe DVCertInfo structure isdefined in Section 3.2.3returned as a result of successful execution of data validation service. It contains the results of[RFC2510]. The infoStatus field indicates whether or notthe datacertification requestvalidation, a reference to the original request, and other parameters. Please note that 'successful execution' does not necessarily mean that the validation itself wasfulfilled and, if not, failInfo indicatessuccessful, a DVCertInfo may contain both thereason it'valid' and 'invalid' results. The DVCS fille a DVCertInfo as follows: Adams, Sylvester, Zolotarev, Zuccherato [Page12] draft-ietf-pkix-dcs-01.txt DCS15] draft-ietf-pkix-dcs-02.txt DVCS ProtocolsJulyOctober 12, 1999was rejected. A valid- The field 'nonce' MAY be used to protect against replay attacks. - The dvReqInfo is essentially a copy of the 'reqInfo' field of the corresponding request. The DVCS MAY modify the fields 'dvcs' and 'requester' of the ReqInfo structure, to indicate DVCS that participated in the verification and certification. - The field 'messageImprint' is a computed from the 'data' field of the corresponding request as follows: For the 'certs' choice, the digest is computed over the DER encoded datacertification token will havevalue. For a 'message' choice the digest is computed over the value octets (not including tag and length octets) of the OCTET STRING. It is up to the DVCS to choose an appropriate digest algorithm. For a 'messageImprint' choice, the 'messageImprint' of the DVCSRequest is copied as is. - The field 'serialNumber' contains aPKIStatusunique identifier of the request. - The fieldwith'respTime' indicates a time value associated to the response. The value`granted' (0)MAY be a locally generated one, or'grantedWithMods' (1). Ifa signed TimeStampToken (TST) or DVC obtained from an external service. - The field 'dvStatus' reflects a collective status of theonly contentvalidation. An omitted 'dvStatus' field implies SUCCESS, except in case of a cpkc service, where each element of thePKIStatus'certs' field have their own independant status. If the 'dvStatus' is set for aPKIStatuscpkc service response, this is equivalent to putting an identical one into each element of 'certs' fieldwithas avalue of 'granted', PKIStatusField islast element in the 'chain' field. If the field 'dvStatus' does notgenerated.indicate success ('granted' or 'granted with mods') the element 'failInfo' MAY indicate the reason for the failure. Note that the field 'certs' MAY contain additional information about verification failures. A failure of the verification of one of the signatures does not necessarily result in the production of an error message. For example, as long as a sufficient number of signature verifications was successful, atokenDVC with status `grantedWithMods`MAYis be produced. AtokenDVC with status `granted` MUST only be produced if all signatures verified successfully.Whether a `grantedWithMods` response or an error response will be produced is a matter of local policy. The dcsReqInfo MUST be the same value as the dcsReqInfo field in DCSReqData. If the data field in DCSReqData is MessageImprint, messageImprint MUST contain that same value, otherwise it contains a hash of the data field in DCSReqData using the hash algorithms specified in the digestAlgorithm parameter of the signerInfos in the data certification token.ThedataLocator MUST be the same value as the dataLocatorfieldin the DCSReqInfo. reqSignatureMUST bethe same value as the signerInfos field of the DCSRequest. For a Signature and Certificate validation, chainCerts MUST indicate the chains of trust,present, andadditional information (OCSP responses, DCSToken, PKIStatusField) that was used by the DCS to verify the signature or certificate in DCSReqData. The chain field does not necessarily contain a single chain of trust, multiple hierarchies are possible. Furthermore, for example inthecase of validation of a public key certificate used for encryption purposes, additional certificates maystatus MUST beincludedset toindicate other encryption destinations (e.g., for organisation wide key recovery). For the purposes of the DCS, we define PKIFailureInfo for use in PKIStatusInfo. PKIFailureInfo ::= BITSTRING { badAlg (0), -- unrecognized or unsupported Algorithm Identifier badMessageCheck (1), -- integrity check failed (e.g., signature did not verify)FAILED, if Adams, Sylvester, Zolotarev, Zuccherato [Page13] draft-ietf-pkix-dcs-01.txt DCS16] draft-ietf-pkix-dcs-02.txt DVCS ProtocolsJulyOctober 12, 1999badRequest (2), -- transaction not permitted or supported badTime (3), -- messageTime was not sufficiently close to the system time, -- as defined by local policy badCertId (4), -- no certificate could be found matching the provided criteria badDataFormat (5), --the datasubmittedvalidation has failed to successfully verify all or some of thewrong format wrongAuthority (6), -- the DCS indicated indata. The field MUST be present, and therequeststatus must be set to WAITING, if there isdifferent fromno or only an incomplete response immediately available. In the-- one creatingsituation when theresponse token incorrectData (7), --the requester'sdata(i.e. signature) is incorrect --(i.e., invalid) missingTimeStamp (8), -- whenvalidation fails, thetimestamp is missing but should be there (by policy) certInvalid (9), --requestor can further investigate thecertificate fails to validate against Section 6cause of[RFC2459] certRevoked (10), --thecertificate is revoked certExpired (11), --failure, by looking into thecertificate has expired certOnHold (12), --TargetEtcChain fields. 'pkistatus' fields in thecertificateTargetEtcChain will indicate which item(s) hasbeen operationally suspended certNotActive (13) -- the certificate was not active atfailed thegiven time }validation and for what reason. - ThestatusString'policy' fieldof PKIStatusInfo canindicates the policy under which the DVCS operates. - If present, 'reqSignature' MUST beusedthe same value as the signerInfos field of the corresponding request. It is a policy decision whether to includereason text such as "CA's public key revoked".this field. - Thecrls'certs' field(if present) SHOULD containcontains the results is the verifications made by the DVCS. For the cpkc service each element contains a copy of a corresponding field of the request plus the result of the verfications or external certification. For asequencevsd service each element contains the result ofcertificate revocation lists that is sufficient to verifythechainsvalidation of one signature oftrust indicated inthechainCerts field.signed document to be validated. ThepolicyReturnInfo field indicates'policyReturnInfo' fields indicate the policies and mappings that were processed during X.509 public key certificate path validation. PolicyMappingsSyntax is defined in [RFC2459]. - ThereqSignature, chainCerts, crls and policyInfo fields are included as OPTIONAL. They SHOULD'extensions' field MAY bepresent, when policy dictates, for use as supplementary evidence when resolving possible disputes. Dispute resolution would most likelyused to return additional information to the client. Extensions MAY behandled by onemarked critical ormore humans,not inan off-line environment, and is beyondorder to indicate whether thescope of this document. 7.client is supposed to understand them. This document does not define extensions. 10. TransportsAdams, Sylvester, Zuccherato [Page 14] draft-ietf-pkix-dcs-01.txt DCS Protocols July 12, 1999There is no mandatory transport mechanism in this document. All mechanisms are optional.7.110.1 DVCS Protocol via HTTP or HTTPS This subsection specifies a means for conveying ASN.1-encoded messages for the DVCS protocol exchanges via the HyperText Transfer Protocol. The DER encoded DVCS requests and responses are encapsulated using a Adams, Sylvester, Zolotarev, Zuccherato [Page 17] draft-ietf-pkix-dcs-02.txt DVCS Protocols October 12, 1999 simple MIME object with Content-Type application/dvcs and an appropriate Content-Transfer-Encoding. This MIME object can be sent and received using common HTTP processing engines over WWW links and provides a simple browser- server transport for DVCS messages. 10.2 File Based DataCertification ServerProtocol A file containing a data validation and certification message MUST contain only the DER encoding of one PKI message, i.e. there MUST be no extraneous header or trailer information in the file. Such files can be used to transport data certification messages using for example, FTP.7.210.3 Data Certification Server Protocol Using Email This section specifies a means for conveying ASN.1-encoded messages for the protocol exchanges described in Section 4 via Internet mail. The DER encodedDCSDVCS requests and responses are encapsulated using a simple MIME object with Content-Typeapplication/dcsapplication/dvcs with an appropriate Content-Transfer-Encoding. This MIME object can be sent and received using MIME processing engines and provides a simple Internetmail transport for Data Certification Server messages. 7.3 DCS Protocol via HTTP This subsection specifies a means for conveying ASN.1-encoded messages for the protocol exchanges described in Section 2 and Appendix C via the HyperText Transfer Protocol. The DER encoded DCS requests and responses are encapsulated using a simple MIME object with Content-Type application/dcs. This MIME object can be sent and received using common HTTP processing engines over WWW links and provides a simple browser- servermail transport forDCSData Validation and Certification Server messages.8.11. Security Considerations This entiredocumentchapter discusses security considerations. When designing a data validation and certification service, the following considerations have been identified that have an impact upon the validity or "trust" in the datacertification token.validation certificate. 1. The enclosed public key certificate is revoked or the signer'sAdams, Sylvester, Zuccherato [Page 15] draft-ietf-pkix-dcs-01.txt DCS Protocols July 12, 1999key is compromised and the corresponding public key certificate is revoked before theData Certification ServerDVCS acts upon the request. TheData Certification ServerDVCS is REQUIRED to validate appropriate information within the request before it constructs the data certification token. It is therefore mandated that theDCSDVCS have access to current information regarding public key certificate status before it creates the token. In this situation, the certification process would produce an error. 2. The enclosed public key certificate is revoked or the signer's key Adams, Sylvester, Zolotarev, Zuccherato [Page 18] draft-ietf-pkix-dcs-02.txt DVCS Protocols October 12, 1999 is compromised and the corresponding certificate is revoked after theData Certification ServerDVCS acts upon the request. This is not a concern to theDCSDVCS, once theData Certification ServerDVCS has constructed thetoken,DVC, as long as the compromise date in the CRL is not before the time of certification. If it is, this situation would have to be handled by off-line, possiblyhuman- aided,human-aided, means specific to the situation at hand. 3. TheData Certification Server'sDVCS's private key is compromised and the corresponding certificate is revoked. In this case, anytokenDVC signed by theData Certification ServerDVCS cannot be trusted. For this reason, it is imperative that the Data Certification Server's key be guarded with proper security and controls in order to minimize the possibility of compromise. Nevertheless, in case the private key does become compromised, an audit trail of all thetokensDVC generated by theDCSDVCS SHOULD be kept as a means to help discriminate between genuine and falsetokens.DVCs. 4. TheDCSDVCS signing key MUST be of a sufficient length to allow for a sufficiently long lifetime. Even if this is done, the key will have a finite lifetime. Thus, anytokenDVCs signed by theDCSDVCS SHOULD be time stamped (if authentic copies of old CRLs are available) or certified again (if they aren't) at a later date to renew the trust that exists in theDCS'sDVC's signature. Datacertification tokensvalidation certificates could also be kept with an Evidence Recording Authority [ISONR] to maintain this trust. 5. When there is a reason to believe that theDCSDVCS can no longer be trusted, its certificate MUST be revoked. Thus, at any future time thetokensDVCs signed with the corresponding key will not be trusted. 6. In certain circumstances, aDCSDVCS may not be able to produce a valid response to a request (for example, if it is unable to compute signatures for a period of time). In these situations theDCSDVCS MAY create a response that only contain a PKIStatusInfo.Adams, Sylvester, Zuccherato [Page 16] draft-ietf-pkix-dcs-01.txt DCS Protocols July 12, 19997.DCSDVCS clients SHOULD NOT trust unsigned responses. ADCSDVCS client may trust unsigned responses, if the communication channel provides for server authentication (e.g. by services defined by TLS [RFC2246]).7.8. Client identification and authenticationmayMAY use services defined by TLS [RFC2246]) instead of using a signed request.8. In situations where9. When confidentiality and server authentication is required, requests and responses MAY be protected using appropriate mechanisms (e.g. CMS encapsulation[CMS][RFC 2630] or TLS [RFC2246]).9.12. Patent Information Adams, Sylvester, Zolotarev, Zuccherato [Page 19] draft-ietf-pkix-dcs-02.txt DVCS Protocols October 12, 1999 The following United States Patents related to data validation and certification services, listed in chronological order, are known by the authors to exist at this time. This may not be an exhaustive list. Other patents may exist or be issued at any time. Implementers of theDCSDVCS protocol and applications using the protocol SHOULD perform their own patent search and determine whether or not any encumberences exist on their implementation. # 4,309,569 Method of Providing Digital Signatures (issued) January 5, 1982 (inventor) Ralph C. Merkle (assignee) The Board of Trustees of the Leland Stanford Junior University # 5,001,752 Public/Key Date-Time Notary Facility (issued) March 19, 1991 (inventor) Addison M. Fischer # 5,022,080 Electronic Notary (issued) June 4, 1991 (inventors) Robert T. Durst, Kevin D. Hunter # 5,136,643 Public/Key Date-Time Notary Facility (issued) August 4, 1992 (inventor) Addison M. Fischer (Note: This is a continuation of patent # 5,001,752.) # 5,136,646 Digital Document Time-Stamping with Catenate Certificate (issued) August 4, 1992 (inventors) Stuart A. Haber, Wakefield S. Stornetta Jr. (assignee) Bell Communications Research, Inc., # 5,136,647 Method for Secure Time-Stamping of Digital DocumentsAdams, Sylvester, Zuccherato [Page 17] draft-ietf-pkix-dcs-01.txt DCS Protocols July 12, 1999(issued) August 4, 1992 (inventors) Stuart A. Haber, Wakefield S. Stornetta Jr. (assignee) Bell Communications Research, Inc., # 5,373,561 Method of Extending the Validity of a Cryptographic Certificate (issued) December 13, 1994 (inventors) Stuart A. Haber, Wakefield S. Stornetta Jr. (assignee) Bell Communications Research, Inc., # 5,422,95 Personal Date/Time Notary Device (issued) June 6, 1995 (inventor) Addison M. Fischer # 5,781,629 Digital Document Authentication System Adams, Sylvester, Zolotarev, Zuccherato [Page 20] draft-ietf-pkix-dcs-02.txt DVCS Protocols October 12, 1999 (issued) July 14, 1998 (inventor) Stuart A. Haber, Wakefield S. Stornetta Jr. (assignee) Surety Technologies, Inc., 10. References [RFC2119] "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119. [TSA] C. Adams, P. Cain, D. Pinkas, R. Zuccherato, "Internet X.509 Public Key Infrastructure, Time Stamp Protocols," draft-ietf-pkix- time-stamp-02.txt, 1999 (work in progress). [RFC2510] C. Adams, S. Farrell, "Internet X.509 Public Key Infrastructure, Certificate Management Protocols," RFC-2510, 1999. [RFC2459] R. Housley, W. Ford, W. Polk, D. Solo, "Internet X.509 Public Key Infrastructure, Certificate and CRL Profile", RFC-2459. January 1999.[CMS][RFC2630] R. Housley, "Cryptographic Message Syntax",draft-ietf-smime- cms- 0X.txt, 1998 (work in progress).RFC-2630, June 1999. [ISONR] ISO/IEC 10181-5: Security Frameworks in Open Systems. Non- Repudiation Framework. [RFC2119] Key works for use in RFCs to Indicate Requirement Levels, S. Bradner, RFC 2119, March 1997. [RFC2511] M. Myers, C. Adams, D. Solo, D. Kemp "Internet X.509 Certificate Request Message Format," RFC-2511, March 1999.Adams, Sylvester, Zuccherato [Page 18] draft-ietf-pkix-dcs-01.txt DCS Protocols July 12, 1999[RFC2246] T. Dierks, C. Allen, "The TLS Protocol, Version 1.0," RFC 2246, January 1999.[ESS][RFC2634] P. Hoffman, "Enhanced Security Services for S/MIME",draft- ietf- smime-ess-0X.txt,RFC 2634, June 1999(work in progress). [OCSP][RFC2560] M. Myers, R. Ankney, A. Malpani, S. Galperin, C. Adams, "X.509 Internet Public Key Infrastructure Online Certificate Status Protocol",draft-ietf-pkix-ocsp-0X.txt, 1999 (work in progress).RFC 2560, June 1999. 11. Authors'Addresses Carlisle Adams Entrust Technologies 750 Heron Road Ottawa, Ontario K1V 1A7 CANADA cadams@entrust.com Peter Sylvester EdelWeb SA 33 avenue du Maine F-75755 Paris Cedex 15 FRANCE peter.sylvester@edelweb.fr Robert Zuccherato Entrust Technologies 750 Heron Road Ottawa, Ontario K1V 1A7 CANADA robert.zuccherato@entrust.com ;fi APPENDIX A - Storage of Data and Token A data certification token is useless without the data to which it applies. For this reason tokens and their related data MUST be securely stored together. The change of a single bit in either the data or the token renders the entire certification process for that data meaningless. Storage of tokens and data in a secure (e.g., tamper proof) environment is strongly RECOMMENDED. When data and data certification tokens are stored together, the following ASN.1 data type MAY be used.Addresses Carlisle Adams Entrust Technologies 750 Heron Road Adams, Sylvester, Zolotarev, Zuccherato [Page19] draft-ietf-pkix-dcs-01.txt DCS21] draft-ietf-pkix-dcs-02.txt DVCS ProtocolsJulyOctober 12, 1999DataAndToken ::= SEQUENCE { message Message, dcsToken DCSInfo } Furthermore, weOttawa, Ontario K1V 1A7 CANADA cadams@entrust.com Peter Sylvester EdelWeb SA 33 avenue du Maine F-75755 Paris Cedex 15 FRANCE peter.sylvester@edelweb.fr Michael Zolotarev Baltimore Technologies Pty Limited, 5th Floor, 1 James Place, North Sydney, NSW 2060. AUSTRALIA mzolotarev@baltimore.com Robert Zuccherato Entrust Technologies 750 Heron Road Ottawa, Ontario K1V 1A7 CANADA robert.zuccherato@entrust.com APPENDIX A - PKCS #9 Attrubute We define a PKCS #9 [PKCS9]dcs tokenattribute type. This attribute typespecifies the dcs token, whichMAY be included as a signed attribute of the SignedData object. Thedcs tokenattribute type has ASN.1 typeDCSTokenSignedData and contains a dvc (as defined in this document). The object identifierid-aa-timeStampTokenid-DVCS-dvc identifies the dcs token attribute type.id-aa-timeDCSToken OBJECT IDENTIFIER ::= { id-aa XX } id-aaid-DVCS-dvc OBJECT IDENTIFIER ::= {id-smime 2<draft>tbd</draft> } The attribute may be used as a authenticated or unauthenticated attribute in CMS SignedData documents. APPENDIX B -Extending the Life of a SignatureSigned document validation. We presentan examplesome examples of a possible use ofthis data certification service.DVCS in the context of validation signed documents. Adams, Sylvester, Zolotarev, Zuccherato [Page 22] draft-ietf-pkix-dcs-02.txt DVCS Protocols October 12, 1999 B.1 Signed document validation The example covers the case where a DVCS is used by a signer to obtain a proof that a document's structure, including one or more attached signatures, is/was correct, after the document was signed. The certificate can be provided either by a DVCS that is trusted by the signer, or by a DVCS that is trusted by an intened verifier of the document. The signer get's an evidence that its intentions were good and it produced a signed document using the environment(keys, algorithms, etc) that was known to be OK. It produces a stand-alonetokendocument that can be used to extend the life of a signature. This example assumes that we have total trust in the Data Validation and Certification Server. Signature algorithms and keys have a definite lifetime. Therefore, signatures have a definite lifetime. The Data Certification Server can be used to extend the lifetime of a signature. In order to extend the lifetime of a signature in this way, the following technique MAY be used. A) The signature needs to be certified. 1) The signed message is presented to the Data Validation and Certification Server in the data field ofDCSReqInfoDVCSReqInfo under service type cs and an appropriate policy. 2) The Data Validation and Certification Server verifies that the signature and verification key are valid at that time by checking expiry dates and status information, and returns a data certification token. B) The certified signature MUST be verified. 1) The signature of the Data Validation and Certification Server in data certification token SHALL be verified using the Data Certification Server's valid verification key. In this situation the signer's signing key (and therefore, its signature) is only valid until some specified time T1. TheDCS'sDVCS's signing key (and therefore, its signature) is valid until someAdams, Sylvester, Zuccherato [Page 20] draft-ietf-pkix-dcs-01.txt DCS Protocols July 12, 1999specified time T2 that is (usually) after time T1. Without certification, the signer's signature would only be valid until time T1. With certification, the signer's signature remains valid until Adams, Sylvester, Zolotarev, Zuccherato [Page 23] draft-ietf-pkix-dcs-02.txt DVCS Protocols October 12, 1999 time T2, regardless of subsequent revocation or expiry at time T1. If the signature of theDCSDVCS is valid, the trust we have in theDCSDVCS allows us to conclude that the original signature on the data was valid at the time included in the dcsInfo field of the data certification token. APPENDIX C - Verifying the Status of a Public Key Certificate We now presentan exampletwo examples of how to produce astand-alone tokendata validation certificate that can be used toconfirm the revocation status ofassert that a public keycertificate. CRLscertificate is valid, trusted, andARLs are updated accordingcan be used for a particular purpose. A client wants to use a given public key certificate either to use it in aschedule at regular intervals. For some purposes, the granularity provided by the CRLs and ARLs is not fine enough. Up-to-date revocation status may be needed before the next CRLsignature orARL update. Since the DCSto use it it for document encryption. A DVCS MUST have access to current information regarding publickeycertificate status, it canalsotherefore be used to verify the revocation status of a certificate inthis situation. In order to produce such a token,at the current time. The following techniqueMAY be used.is used: A) The public key certificate needs to be validated and certified. 1) The certificate is presented to the Data Certification Server in the data field ofDCSReqInfoDVCSReqInfo under service type cpkc and an appropriate policy. 2) The Data Validation and Certification Server verifies that the public key certificate is valid and that it hasn't been revoked and then returns a datacertification token.validation certificate. B) The datacertification tokenvalidation certificate MUST be verified. 1) The signature of the Data Certification Server in the data certification token SHALL be verified using the Data Validation and Certification Server's valid verification key.ThisC) The public key certificate is used. 1) A clients's own public key certificate (i.e., the corresponding private key) can be used to add a signature to a document. The signing certificate and the datacertification tokenvalidation certificate are added as signed attributes to the signature. A data validation certificate can now be used when verifying signatures using the key contained in the public key certificate. This service provided by theDCSDVCS can be thought of Adams, Sylvester, Zolotarev, Zuccherato [Page 24] draft-ietf-pkix-dcs-02.txt DVCS Protocols October 12, 1999 as a supplement to the usual method of checking revocation status.Adams, Sylvester, Zuccherato [Page 21] draft-ietf-pkix-dcs-01.txt DCS Protocols July 12, 1999In other words, signature validation at a later time does not necessarily require access to the revocaton status of the user's signing certificate, access to a DVCS service and validation of the DVC is sufficient to validate the signed document. 2) A public key certificate for for key exchange can be used after having obtained a data validation certification certificate to encrypt data. The DVC can be stored with the data and/or stored by the creator of the encrypted document. If an intended recipient of the document claims that the creator did not use an appropriate encryption key, the DVC (obtained by a recipient's DVCS) can be used as evidence that the recipient's DVCS has authorized the usage of the public key. Appendix D - MIME Registration To: ietf-types@iana.org Subject: Registration of MIME media type application/timestamp MIME media type name: application MIME subtype name:dcsdvcs Required parameters: None Optional parameters: None Encoding considerations: binary or Base64 Security considerations: Carries a request for a data validation and certification service and the response. A request may be cryptographically signed. The response will be cryptographically signed. Interoperability considerations: None Published specification: IETF PKIX Working Group Draft on Data Validation and Certification Server Protocols Applications which use this media type: Data Validation and Certification Server clients Additional information: Adams, Sylvester, Zolotarev, Zuccherato [Page 25] draft-ietf-pkix-dcs-02.txt DVCS Protocols October 12, 1999 Magic number(s): None File extension(s):.dcs.dvc Macintosh File Type Code(s): none Person & email address to contact for further information: Peter Sylvester <peter.sylvester@edelweb.fr> Intended usage: COMMON Author/Change controller: Peter Sylvester <peter.sylvester@edelweb.fr> Appendix E - Acknowledgements This text is based on initial work from Robert Zuccerato and Carlisle Adams, both at Entrust Technologies, and from Denis Pinkas at Bull, for time stamping, notary and data certification services.Thanks to Michael Zolotarev from Baltimore for his useful comments. Adams, Sylvester, Zuccherato [Page 22] draft-ietf-pkix-dcs-01.txt DCS Protocols July 12, 1999Appendix F - Full Copyright Statement Copyright (C) The Internet Society 1999. All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process shall be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Adams, Sylvester, Zolotarev, Zuccherato [Page23]26] ----