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

📄 draft-ietf-pkix-cvp-01.txt

📁 PKIX的RFC英文文档
💻 TXT
📖 第 1 页 / 共 5 页
字号:
signatory MUST contain, when the request is signed, an unambiguous reference to the certificate from the requester. It is used to authenticate the requester.requestExtensions is a way to allow additional elements to be added later on, if needed.   Signature       ::=     SEQUENCE {       signatureAlgorithm        AlgorithmIdentifier,       signature                 BIT STRING,       certs                [0]  EXPLICIT SEQUENCE OF Certificate                                 OPTIONAL   }   CertOrCertRef ::=  CHOICE {       certificate          [1]  Certificate,       certRef              [2]  CertRef   }Pinkas                                                        [Page 12]Internet Draft                   CVP                       October 2002CertOrCertRef may specify the certificate itself or an unambiguous reference of the certificate. CertRef ::= CHOICE {       eSSCertId              [0]   ESSCertID,       certIdWithSignature    [1]   CertIdWithSignature   }   CertIdWithSignature ::= SEQUENCE {        issuerSerial              IssuerSerial,        tbsCertificateHash        BIT STRING,        certSignature             CertSignature   }IssuerSerial is defined in RFC2634 section 5.4.1.tbsCertificateHash contains a hash value computed over the ASN.1 DER encoded tbsCertificate field from the certificate using the hash function identified in the signature algorithm from the signature.certSignature contains the signature fields from the certificate.   CertSignature ::= SEQUENCE {        signatureAlgorithm        AlgorithmIdentifier,        signatureValue            BIT STRING   }   ValOrDiscoPolicy ::= CHOICE {       simplePolicy               SimplePolicy,       otherPolicy                PolicyRef    }ValOrDiscoPolicy is either a simple policy or referenced policy. When it is a referenced policy, then it is composed of an OID or a URN, and optionally of both the hash value of the policy and of the hash algorithm used to compute the hash value of the policy.When it is a simple policy, it must include one mandatory parameter, i.e. a self-signed certificate and may include two additional parameters to define the acceptable certificate policies and the path length constraints, if any. See section 6 for the exact definition of the simple policies defined in this document.   SimplePolicy ::= SEQUENCE {       policyID                 OBJECT IDENTIFIER,       trustanchor              Certificate,                               -- self-signed certificate       acceptablePolicySet  [0] AcceptablePolicySet OPTIONAL,                               -- if not present "any policy"       pathLenConstraint    [1] PathLenConstraint   OPTIONAL                                -- if not present "any length"   }Pinkas                                                        [Page 13]Internet Draft                   CVP                       October 2002trustanchor provides the self signed certificate for the CA that is used as the trust anchor for the start of certificate path processing.acceptablePolicySet identifies the initial set of certificate policies, any of which MUST be included in the certificates from the path.pathLenConstraint indicates the maximum number of CA certificates that may be in a certification path following the trust anchor. A value of zero indicates that only the given trust anchor and an end-entity certificate must form the path. If present, pathLenConstraint must be greater than or equal to zero. Where pathLenConstraint is not present, there is no limit to the allowed length of the certification path.AcceptablePolicySet ::= SEQUENCE OF CertPolicyIdCertPolicyId ::= OBJECT IDENTIFIERAcceptablePolicySet specifies a set of certificate policies. For a certificate to be valid against that criteria, any certificate of the path MUST include one of these policies.     PolicyRef ::=   SEQUENCE{        policyID                 PolicyID,        policyHashAlg            AlgorithmIdentifier    OPTIONAL,        policyHash               PolicyHash             OPTIONAL,        policyLocation           PolicyLocations        OPTIONAL    }   PolicyID :: = CHOICE {        policybyOId               OBJECT IDENTIFIER,        policybyURN               NAME   }   ValPolicyHash ::= OCTET STRINGThe valPolicyID field contains an object-identifier or a URI which uniquely identifies a specific version of the signature policy.The value for valPolicyHash SHALL be computed on the hash of the DER encoding of ValidationPolicyDef when the policy is locally defined or of the definition of the policy when it is externally defined.   ValPolLocations :: = SEQUENCE OF NamevalPolLocation contains web URIs or URL references to the definition of signature policy.   CertificateValues ::= SEQUENCE OF CertificatePinkas                                                        [Page 14]Internet Draft                   CVP                       October 2002UsefulCerts is a set of certificates, some of them may be useful to build the path.    ValidationData ::= CHOICE {       pathInfo                         PathInfo,       tbsResponse                      TBSResponse   }ValidationData may either be:    - information on the path (certificates, CRLs or OCSP responses),    - or a single CVP signed response, from a CVP server trusted under       the validation policy.    PathInfo ::= SEQUENCE {       certificateValues       [0]       CertificateValues   OPTIONAL,       revocationValues        [1]       RevocationValues    OPTIONAL,       certPathRefs            [2]       CertPathRefs        OPTIONAL                                         -- only used for DPV    }RevocationValues is defined in [RFC3126].   CertPathRefs ::=        SEQUENCE {       pathRefrences           ValidatedPathRefs,       timeStamps              SEQUENCE OF TimeStampToken   OPTIONAL   }   ValidatedPathRefs ::=   SEQUENCE {       certificateRefs                 CompleteCertificateRefs,                                       -- defined in [RFC3126]       revocationRefs                  CompleteRevocationRefs                                       -- defined in [RFC3126]   }PathInfo contains a sequence of certificates, from the certificate to validate up to a trust anchor, exclusive of the self-signed certificate of the trust anchor, if any; a sequence of revocation status information; and optionally the references of the path that may be time-stamped.The hash of the time-stamp token(s) SHALL be computed on the DER encoding of ValidatedPathRefs.5.2.2. Response SyntaxThis section specifies the ASN.1 specification for a confirmationresponse. The actual formatting of the message could vary dependingon the transport mechanism used (HTTP, SMTP, LDAP, etc.).An CVP response at a minimum consists of a cVPStatus fieldindicating the processing status of the prior request. If the valueof cVPStatus is one of the error conditions, tbsResponse and optionalSignature are not set.Pinkas                                                        [Page 15]Internet Draft                   CVP                       October 2002   CvpResponse    ::=     SEQUENCE {      mbsResponse                   MBSResponse,                                    -- May Be Signed Response      optionaldpDSignature     [0]  EXPLICIT Signature     OPTIONAL   }The full response may be signed, only when it is a DPD response. Otherwise, for DPV, individual signatures may be placed on for each individual DPV response data (i.e. individualResponseData).   MBSResponse ::= SEQUENCE {       version              [0]     EXPLICIT Version       DEFAULT v1,       cVPStatus                    CVPResponseStatus,       response                     Response   }cVPStatus status indicates if an error was encountered.   CVPResponseStatus ::= ENUMERATED {       successful            (0),  -- Request was understood       malformedRequest      (1),  -- malformed request       internalError         (2),  -- internal error in issuer       tryLater              (3),  -- try again later       sigRequired           (4),  -- must sign the request       unauthorized          (5),  -- request unauthorized       unknownPolicy         (6)   -- policy unknown   }response may either be a response to a query for listing the policies known to the server or to a DPV or DPD query.    Response ::=   CHOICE {      policyResponse         [0]      PolicyResponse,      responses              [1]      SEQUENCE OF IndividualResponse   }policyResponse is a response to a policy query. Separate lists are provided for validation policies and discovery policies.   PolicyResponse ::= SEQUENCE {      valPolices             [0]     ValOrDiscoPolicies    OPTIONAL,      discoveryPolicies      [1]     ValOrDiscoPolicies    OPTIONAL }   ValOrDiscoPolicies ::= SEQUENCE OF ValOrDiscoPolicyIf one of the simple policies, as defined in the present document, is supported, then the server MUST provide the additional parameters which are associated with it.Pinkas                                                        [Page 16]Internet Draft                   CVP                       October 2002   IndividualResponse ::=     SEQUENCE {       individualResponseData      IndividualResponseData,       optionalSignature      [0]  EXPLICIT Signature    OPTIONAL,       validationData              ValidationData        OPTIONAL,   }The individualResponseData when it is a DPV response is usually signed, unless the client requires the signature to be absent. validationData is not directly part of the signed data but only the hash of this field is included to keep the signed part short.Each IndividualResponse may be individually signed so the client can keep individual signed DPV responses in order to demonstrate that the validation was effectively done by the DPV server.The value for signature SHALL be computed on the hash of the DER encoding of IndividualResponseData.   IndividualResponseData  ::=  SEQUENCE {       version             [0]    EXPLICIT Version          DEFAULT v1,       nonce                      OCTET STRING              OPTIONAL,       majorStatus                MajorStatus,       minorStatus                MinorStatus               OPTIONAL,       certProcessed              CertOrCertRef,       policy                     Policy,       checks                     Checks,                         -- copied from the request       serialNumber               INTEGER                         -- allows to uniquely reference the response,       producedAt                 GeneralizedTime,       validationTime             GeneralizedTime           OPTIONAL,                         -- only for a DPV response       requestHash                AnyHash,                                  -- computed over a single CertQuery       cVPServerCert              ESSCertID                 OPTIONAL,                         -- only if the response is signed       requesterName       [1]    EXPLICIT GeneralName      OPTIONAL,       requesterData       [2]    EXPLICIT CHARACTER STRING OPTIONAL,       validationDataHash  [3]    OCTET STRING              OPTIONAL,       serverContextInfo   [4]    OCTET STRING              OPTIONAL,                         -- only for a DPD response       responseExtensions  [5]    EXPLICIT Extensions       OPTIONAL   }The various parameters from the IndividualResponseData are the following:version allows to identify the version of the protocol.   Version ::=                   INTEGER  {  v1(0) }nonce if present in the request MUST be copied in that field.Pinkas                                                        [Page 17]Internet Draft                   CVP                       October 2002majorStatus indicates the validity of the certificate according to either the validation or the discovery policy. For DPV:   MajorStatus ::= CHOICE {       valid                [0]     IMPLICIT NULL,       invalid              [1]     IMPLICIT NULL,       unknown              [2]     IMPLICIT NULL   }   When the response indicates "valid", this means that the    certificate is valid according to the validation policy.   When the response indicates "invalid", this means that the    certificate is invalid according to the validation policy.    When the response indicates "unknown", this means that information    is missing to build a path between the certificate and a trusted    anchor. This may also be, when the reference to the certificate    is used, because the server is unable to get the actual value of    the certificate.    When the major status indicates that certificate is not valid 

⌨️ 快捷键说明

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