⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc3029.txt

📁 PKIX的RFC英文文档
💻 TXT
📖 第 1 页 / 共 5 页
字号:
4. Functional Requirements for DVCS   The DVCS MUST   1. provide a signed response in the form of a data validation      certificate to the requester, as defined by policy, or an error      response.  The DVCS service definition and the policy define how      much information that has been used by the DVCS to generate the      response will be included in a data validation certificate, e.g.,      public key certificates, CRLs, and responses from other OCSP      servers, DVCS, or others.   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 monotonically increasing serial number in each      data validation certificate.   4. include a time of day value or a time stamp token into each data      validation certificate.   5. sign each data certification token using a key that has been      certified with a dvcs signing extended key purpose, and include a      reference to this certificate as a signed attribute in the      signature.   6. check the validity of its own signing key and certificate before      delivering data validation certificates and MUST not deliver data      validation certificate in case of failure.   A DVCS SHOULD include within each data validation certificate a   policy identifier to determine the trust and validation policy used   for DVC's signature.5. Data Certification Server Transactions   A DVCS transaction begins with a client preparing a Data Validation   and Certification Request.  The request always contains data for   which validity, correctness or possession is to be certified.   The request MAY be encapsulated using a security envelope to provide   for authentication of both requester and server.  Requester   authentication can be achieved by several of the formats described in   CMS, in particular, signedData.Adams, et al.                 Experimental                      [Page 7]RFC 3029                     DVCS Protocols                February 2001   The DVCS client chooses an appropriate transport mechanism to convey   the requests to a DVCS.  It may also be necessary to choose a   transport mechanism providing confidentiality and, in particular,   allowing authentication of the DVCS by the requestor, e.g., TLS or   CMS or S/MIME encryption.   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 formed as a signed document (CMS   SignedData).   As with the request, it may be necessary to choose a transport   mechanism that provides for confidentiality to carry the DVC.  DVCs   are not necessarily transported the same way as requests, e.g., they   can be returned using e-mail after an online request received via   HTTPS.   If the request was invalid, the DVCS generates a response message   containing an appropriate error notification.   Upon receiving the response, the requesting entity SHOULD verify its   validity, i.e., whether it contains an acceptable time, the correct   name for the DVCS, the correct request information and message   imprint, a valid signature, and satisfactory status, service and   policy fields.   When verifying the validity of a DVC, it is up to the requestor's   application to check whether a DVCS's signing certificate is valid.   Depending on the usage environment, different methods, online or out   of band, e.g., CRLs, DVCS, or OCSP, may have to be used.   After all checks have passed, the data validation certificate can be   used to authenticate the correctness or possession of the   corresponding data.   A DVCS may return more than one DVC corresponding to one request.  In   this case, all but one request have a global status of 'WAITING'.6. Identification of the DVCS   In order to be able to import elements from dvcs the following object   identifier is used as a ASN.1 module identifier.   id-mod-dvcs OBJECT IDENTIFIER ::= {iso(1) identified-organization(3)     dod(6) internet(1) security(5) mechanisms(5) pkix(7) id-mod(0) 15}Adams, et al.                 Experimental                      [Page 8]RFC 3029                     DVCS Protocols                February 2001   The DVCS that use SignedData to provide authentication for DVCs MUST   sign all data certification messages with a key whose corresponding   certificate MUST contain the extended key usage field extension as   defined in [RFC2459] Section 4.2.1.14 with KeyPurposeID having value   id-kp-dvcs.  This extension MUST be marked as critical.   The Data Validation Certificate MUST contain an ESSCertID   authenticated attribute for the certificate used by the DVCS for   signing.   id-kp-dvcs  OBJECT IDENTIFIER ::= {iso(1) identified-organization(3)        dod(6) internet(1) security(5) mechanisms(5) pkix(7) kp(3) 10}   Consistent KeyUsage bits:   digitalSignature, nonRepudiation, keyCertSign, cRLSign   A DVCS's certificate MAY contain an Authority Information Access   extension [RFC2459] in order to convey the method of contacting the   DVCS.  The accessMethod field in this extension MUST contain the OID   id-ad-dvcs:   id-ad-dvcs  OBJECT IDENTIFIER ::= {iso(1) identified-organization(3)        dod(6) internet(1) security(5) mechanisms(5) pkix(7) ad(48) 4}   The value of the 'accessLocation' field defines the transport (e.g.,   an URI) used to access the DVCS.7. Common Data Types   There 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   and describes these types and lists their usages.7.1 Version:   The request and the response include an optional integer field   specifying the version of the data structure.  For both fields the   value is 1, or the field is not present at all in this version of the   protocol.Adams, et al.                 Experimental                      [Page 9]RFC 3029                     DVCS Protocols                February 20017.2 DigestInfo:   This element is defined in [RFC2315].  Since the status of that   document is informational, the definition is repeated here:   DigestInfo ::= SEQUENCE {       digestAlgorithm   DigestAlgorithmIdentifier,       digest            Digest }   Digest ::= OCTET STRING   The fields of type 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 is used in two places:   - as a data portion for the ccpd service, and   - 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.3. Time Values   Indicators of time can be present in requests and responses.  In the   most simple form, the time is represented as GeneralizedTime where   fractions of seconds are allowed.   An alternate form is a timeStampToken from a TSA, or as a DVC (or   some other token) from another third party service.   It is a matter of policy whether a DVCS tries to interpret or   validate a Time Value in a request.   DVCSTime ::= CHOICE  {        genTime                      GeneralizedTime,        timeStampToken               ContentInfo }   Future versions of the protocol MAY include additional time formats.   Time values generated by the DVCS are increasing but not necessarily   unique, an order among DVCs is defined by serial numbers.Adams, et al.                 Experimental                     [Page 10]RFC 3029                     DVCS Protocols                February 20017.4. PKIStatusInfo   This structure is defined in [RFC2510].  It is used as component of   the 'chain' field of a TargetEtcChain structure, and as a global   status indicator in the DVCSResponse structure.  Every occurrence of   PKIStatusInfo is generated by the responding DVCS to reflect the   result of some local verification.7.5. TargetEtcChain   A TargetEtcChain structure contains certificates and other indicators   to describe either (in a request for a cpkc service) information to   be validated, or the result of the verifications.  The structure may   also contain information about policies and policy mappings.   The details about how to fill in and to interpret the structure are   defined later for each service.   The 'pathProcInput' field contains information about policies and   policy mapping to be used or used during a validation.   In a response, the 'pkistatus' and `certstatus' choices can only   occur in the 'chain' sequence.  If present, they contain the result   of a local verification of the immediately preceding element, or of   the target value, if it is the first element in the 'chain' sequence.   If no 'pkistatus' or 'certstatus' is present, the DVCS considers all   elements in the 'chain' as trustworthy.  Note, that there may be a   valid OCSP response or DVC indicating an invalid certificate.   TargetEtcChain ::= SEQUENCE {        target                       CertEtcToken,        chain                        SEQUENCE SIZE (1..MAX) OF                                        CertEtcToken OPTIONAL,        pathProcInput                [0] PathProcInput OPTIONAL }   PathProcInput ::= SEQUENCE {        acceptablePolicySet          SEQUENCE SIZE (1..MAX) OF                                        PolicyInformation,        inhibitPolicyMapping         BOOLEAN DEFAULT FALSE,        explicitPolicyReqd           BOOLEAN DEFAULT FALSE }   CertEtcToken ::= CHOICE {        certificate                  [0] IMPLICIT Certificate ,        esscertid                    [1] ESSCertId ,        pkistatus                    [2] IMPLICIT PKIStatusInfo ,        assertion                    [3] ContentInfo ,        crl                          [4] IMPLICIT CertificateList,Adams, et al.                 Experimental                     [Page 11]RFC 3029                     DVCS Protocols                February 2001        ocspcertstatus               [5] IMPLICIT CertStatus,        oscpcertid                   [6] IMPLICIT CertId ,        oscpresponse                 [7] IMPLICIT OCSPResponse,        capabilities                 [8] SMIMECapabilities,        extension                    Extension }   Certificate, PolicyInformation and CertificateList are defined in   [RFC2459].  ESSCertId is defined in [RFC2634].  CertId, OCSPResponse   and CertStatus are defined in [RFC2560].  PKIStatusField is defined   in [RFC2510].   The choice 'assertion' can contain a data validation certificate, or   a timeStamp, or other assertions.   The choices 'assertion', 'ocspresponse' and 'crl' are provided by   services external to the responding DVCS.  The choices 'certStatus'   and 'pkistatus' reflect decisions made directly by the responding   DVCS.   As a replacement for certificates, certification identifiers   (ESSCertId, CertId)  MAY be used in requests and responses, if this   is sufficient to perform the service, e.g., when the corresponding   certificates are provided elsewhere in a request or response (as part   of the SignedData type).   Certificate or certification identifiers of certification authorities   MAY occur in any order and MAY represent several certification   chains.   The choice 'capabilities' can be used to indicate SMIMECapabilities.   It applies to the certificate identified by the preceding element in   the sequence.7.6. DVCSRequestInformation   A DVCSRequestInformation data structure contains general information   about the Data Validation and Certification Request.  This structure   occurs in a request, and is also included in a corresponding Data   Validation Certificate.   DVCSRequestInformation ::= SEQUENCE  {           version                      INTEGER DEFAULT 1 ,           service                      ServiceType,           nonce                        INTEGER OPTIONAL,           requestTime                  DVCSTime OPTIONAL,           requester                    [0] GeneralNames OPTIONAL,           requestPolicy                [1] PolicyInformation OPTIONAL,Adams, et al.                 Experimental                     [Page 12]RFC 3029                     DVCS Protocols                February 2001           dvcs                         [2] GeneralNames OPTIONAL,           dataLocations                [3] GeneralNames OPTIONAL,           extensions                   [4] IMPLICIT Extensions OPTIONAL   }   The ServiceType type enumerates the DVCS service type of a request.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -