<?xml version="1.0" encoding="UTF-8"?>
<rfc category="exp" docName="draft-ietf-pkix-prqp-02" ipr="full3978">

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc toc="yes" ?>
<?rfc tocdepth="5"?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>

  <front>
  <title abbrev="PRQP">PKI Resource Query Protocol (PRQP)</title>
  <author initials="M.P." surname="Pala" fullname="Massimiliano Pala">
    <organization>Dartmouth College</organization>
    <address>
      <postal>
        <street>6211 Sudikoff PKI/Trust Lab</street>
        <city>Hanover</city>
        <region>NH</region>
        <code>03755</code>
        <country>US</country>
      </postal>
      <email>pala@cs.dartmouth.edu</email>
      <uri>http://www.openca.org</uri>
    </address>
  </author>
  <date month="December" year="2008" />
  <area>Security</area>
  <workgroup>PKIX Working Group</workgroup>
  <keyword>PKI</keyword>
  <keyword>Resource Discovery</keyword>
  <keyword>Protocol</keyword>
  <abstract>
    <t>One of the most strategic problems still open in PKIX is locating
   public data and services associated with a Certification Authority (CA).
   This issue impacts interoperability and usability in PKIX.
   <vspace blankLines="1" />
   This draft describes the PKI Resource Query Protocol (PRQP), its design,
   definition, and its impact in already deployed PKIX protocols.
   <vspace blankLines="1" />
   <!--
   An overview of the protocol is provided in section <xref target="intro" />.
   Functional
   requirements are specified in <xref target="proto" />.
   Details of the protocol are in <xref target="prqpover" />. 
   We cover security issues with the protocol in <xref target="rationale" />.
   <xref target="app_A" /> defines PRQP over HTTP, 
   <xref target="asn1" /> accumulates ASN.1 syntactic elements.
   -->
   </t>
  </abstract>
</front>
<middle>
<section title="Requirements notation">
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
"SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",
and "OPTIONAL" in this document are to be interpreted as
described in <xref target="RFC2119"/>.</t>
</section>

<section anchor="intro" title="Introduction"> 
   <t>
   An increasing number of services and protocols are being defined to
   address different needs of users and administrators of PKIs. With
   the deployment of new applications and services, the need to access
   information and services provided by Certificate Service Providers
   (CSPs) is critical. Currently Certification Authorities (CAs) barely
   publish access details on their official web sites, this includes
   URL of provided services and repositories.
   <vspace blankLines="1" />
   Using the PRQP, resources provided by a CA can be automatically
   and securely discovered by an application.
   </t>
   <section anchor="overview" title="Overview of existing solutions">
   <t>
   Currently there are three options to find URLs providing
   access to PKI data:
   <list style="symbols">
     <t>by including such data in certificate extensions</t>
     <t>by searching easily accessible repositories (e.g. DNS, local
     database, etc.)</t>
     <t>by adapting existing protocols (e.g. SLP)</t>
   </list>
   </t>

   <section anchor="exts" title="Certificate Extensions">
   <t>
   To provide pointers to published data it is possible to use
   the Authority Information Access (AIA) Subject Information Access
   (SIA) extensions defined by PKIX <xref target="RFC3280" />.
   <vspace blankLines="1" />
   The former can provide information about services associated with
   the issuer of the certificate,
   while the latter carries information (inside a CA certificate) about
   offered CA services.
   <vspace blankLines="1" />
   AIA and SIA extensions are static, i.e. not modifiable unless the
   certificate is re-issued. 
   If a CA inserts the AIA extension into every certificate it issues,
   e.g., to identify the location of an OCSP
   responder, then changing that location would require re-issuance of
   all these certificates, a substantial barrier to such a change. If a CA
   certificate is self-signed and used as a trust anchor, then re-issuing 
   the certificate to change the content of the SIA extension, e.g., to reflect
   a change in the location of a time stamping server would be very disruptive.
   In closed PKIs, e.g., enterprises,
   use of these extensions may be replaced by manual configuration 
   and management of this data via ad hoc means.
   Because of the centrally controlled nature of such environments,
   the static nature of SIA and AIA extensions is not a concern.
   <vspace blankLines="1" />
   However in order to promote interoperability between PKIs, PRQP enables
   dynamic management of pointers to such services (e.g., adding/removing
   or moving) without requiring changes in the certificate contents or
   third parties to manually configure services in their applications.
   Even in closed environments, PRQP could help manage PKI services 
   analogous the way DHCP facilitates network management.
   </t>
   </section>

   <section anchor="dnssrv" title="DNS SRV records">
   <t>
   The SRV record technique provides pointers to servers via the 
   DNS <xref target="RFC1035" />.
   <vspace blankLines="1" />
   As defined in <xref target="RFC2782" />, the introduction of this 
   type of record allows
   administrators to perform operations similar to what we require
   in order to solve the problem we are addressing in this draft,
   i.e., to provide URLs to services.
   <vspace blankLines="1" />
   The problem in the adoption of this mechanism is that, in contrast to 
   the DNS environment, usually in PKIX there is no fixed mapping
   between certificates and the DNS name space. 
   The only exception is when the
   Domain Component (DC) attributes are used in the certificate's Subject.
   <vspace blankLines="1" />
   Currently this approach is not widely adopted. Moreover, it is not
   always easy to identify the right DNS to query to, when trying to find
   a particular service provided by a CA, because of the lack of such
   information in certificates.
   </t>
   </section>

   <section anchor="lan" title="Local Network Oriented Solutions">
   <t>
   Another approach to provide reliable information is to use existing
   protocols for service location such as Jini, Universal Plug and Play
   protocol (UPnP) or Service Location Protocol (SLP) <xref target="RFC2608" />
   <xref target="RFC2609" />.
   <vspace blankLines="1" />
   The IETF defined the SLP to provide a service location mechanism
   that is language and technology independent.
   Some issues, however, make it not the right choice to solve our
   problem, e.g., the protocol is quite complex to implement when
   considering the scope of the problem we are addressing.
   <vspace blankLines="1" />
   The definition of a specific and simple protocol for PKI service and
   resource location is needed to ease PKI integration into existing and
   future
   applications, especially for mobile devices which have limited
   computational power and communication bandwidth.
   </t>
   </section>
 </section>
</section>
<section anchor="proto" title="Protocol Details">
   <t>
   The PRQP protocol is a request-response protocol, formed by the 
   exchanging of two messages, i.e., a request and a response between a
   client and a server, called the Resource Query Authority (RQA).
   <vspace blankLines="1" />
   The requesting entity (the client) may be any entity that needs
   to access information about repositories and services related
   to a certificate.
   <vspace blankLines="1" />
   The RQA is the authority entitled to answer for a particular CA or to
   act as a PRQP Trusted Authority (PTA) for a set of users, e.g., users
   in an enterprise environment.
   <vspace blankLines="1" />
   In the first case the RQA is directly designated by a CA to act
   as an RQA, by having the CA issue a certificate to the RQA with a
   specific value set in the extendedKeyUsage extension.
   In this case the RQA provides authoritative
   responses for requests regarding the CA that issued the RQA's
   certificate.
   <vspace blankLines="1" />
   When operating as a PTA, the RQA may provide responses about multiple CAs,
   without the need to have been directly certified by them. To operate as
   such, a specific extension (prqpTrustedAuthority) should be present in
   RQA's certificate and its value should be set to TRUE.
   </t>

   <section anchor="rqa" title="The Resource Query Authority (RQA)">
   <t>
   The Resource Query Authority is the designated authority to act as PRQP
   responder. The RQA's signing key needs not to be the same as that of the
   CA that designated it.
   <vspace blankLines="1" />
   The CA may designate an RQA by issuing a certificate containing a unique
   value for the extendedKeyUsage in RQA's certificate. The RQA may also act
   as a trusted responder. PRQP signing delegation SHALL be designated by
   the inclusion of id-kp-PRQPSigning in the extendedKeyUsage extension
   within the PRQP response signer's certificate.
   <list style="hanging">
     <t>id-kp-PRQPSigning OBJECT IDENTIFIER ::= {id-kp 10}</t>
   </list>
   When operating as a PTA, the RQA may provide responses about multiple CAs,
   without the need to have been directly certified by them. To operate as
   a PTA a specific extension (prqpTrustedAuthority) should be present in
   RQA's certificate and its value should be set to TRUE.
   <list style="hanging">
     <t>prqpTrustedAuthority ::= BOOLEAN DEFAULT TRUE</t>
   </list>
   We also define two new OIDs to identify the PRQP protocol and the PTA
   extension as follows:
   <list style="hanging">
     <t>id-prqp                 OBJECT IDENTIFIER ::= { id-pkix 23 }</t>
     <t>id-prqp-pta             OBJECT IDENTIFIER ::= { id-prqp 1 }</t>
   </list>
   </t>
 </section>

<section anchor="prqpover" title="PRQP Overview">
   <t>
   The protocol encompasses the exchange of a single round of messages
   between a client and an RQA:
   <list style="numbers">
     <t>the client requests a resource token by sending a request to the
         RQA</t>
     <t>the RQA replies by sending a response to the client</t>
   </list>
   Upon receiving the response the client MUST verify the status error
   returned in the response. If no error is present, the client MUST
   verify the
   various fields contained in the ResourceResponseToken and the validity
   of the associated digital signature (if present).
   A nonce MAY be used to guarantee that the response is associated with a
   specific request in order to avoid reply attacks.
   <vspace blankLines="1" />
   The client also SHOULD check the validity period of the response. It
   SHOULD NOT, in order to minimize the load on an RQA, request again the
   location of the same resource within this interval to the same RQA.
   <vspace blankLines="1" />
   If the response is signed, the client SHOULD check the RQA's certificate
   validity.
   </t>

   <section anchor="req" title="PRQP Request">
   <t>
   A PRQP request contains the following data:
   <list style="symbols">
     <t>protocol version</t>
     <t>nonce</t>
     <t>MaxResponse</t>
     <t>ResourceRequestToken</t>
     <t>Extensions</t>
   </list>
   The ASN.1 syntax imports terms defined in <xref target="RFC4210" />.
   For signature calculation,
   the data to be signed is encoded by using the DER format. ASN.1 EXPLICIT
   tagging is used as a default unless specified otherwise. The terms
   imported from <xref target="RFC3280" /> are: Extensions, Certificate, 
   CertificateSerialNumber, SubjectPublicKeyInfo, Name, AlgorithmIdentifier.
   </t>

   <section anchor="reqsyn" title="Request Syntax">
   <t>
   The PRQP request syntax is as follows:
   </t>
   <figure>
    <artwork>
    PRQPRequest ::= SEQUENCE {
        requestData            TBSReqData,
        signature              [0] EXPLICIT Signature OPTIONAL }

    TBSReqData ::= SEQUENCE {
        version                INTEGER { v(1) },
        nonce              [0] INTEGER              OPTIONAL,
              -- very large number
        producedAt             GeneralizedTime,
              -- time when the request has been generated
        serviceToken           ResourceRequestToken,
              -- token identifying the requested service
        extensions         [1] IMPLICIT Extensions  OPTIONAL }
    </artwork>
   </figure>
   <t>
   The version field (currently v1) describes the version of the PRQP
   request. The nonce field, if present, is an integer between 80 bits
   and 256 bit in length.
   The producedAt define the time-frame when the request has been
   generated.
<!--
   <vspace blankLines="1" />
   The ResourceRequestToken is used to identify the requested services.
   It carries information about the requested services. It contains
   a CA identifier and optionally one or more service identifiers.
-->
   </t>
   <figure>
      <artwork>
      ResourceRequestToken ::= SEQUENCE {
        ca                      CertIdentifier,
        servicesList        [0] SET OF ResourceIdentifier OPTIONAL }
      </artwork>
   </figure>
   <t>
   The ca field is of type CertIdentifier. This is used to identify
   the certificate of the CA whose services are requested.
   <vspace blankLines="1" />
   The CertIdentifier syntax is as follows:
   </t>
   <figure>
      <artwork>
      BasicCertIdentifier ::= SEQUENCE {
        issuerNameHash              OCTET STRING,
        serialNumber                CertificateSerialNumber  }

      ExtendedCertInfo ::= SEQUENCE {
        certificateHash             OCTET STRING,
        subjectKeyHash              OCTET STRING,
        subjectKeyIdentifier    [0] KeyIdentifier          OPTIONAL,
        issuerKeyIdentifier     [1] KeyIdentifier          OPTIONAL  }
        
      CertIdentifier ::= SEQUENCE {
        hashAlgorithm               AlgorithmIdentifier,
        basicCertIdentifier         BasicCertIdentifier,
        extInfo                     [0] ExtendedCertInfo    OPTIONAL,
        caCertificate               [1] Certificate         OPTIONAL,
        issuedCertificate           [2] Certificate         OPTIONAL }
      </artwork>
    </figure>
    <t>
    The resourceList specifies the resources or services being requested.
    </t>
    <figure>
      <artwork>
      ResourceIdentifier ::= SEQUENCE {
        resourceId             OBJECT IDENTIFIER,
        version            [0] INTEGER             OPTIONAL
          --- version of the protocol or data format (if applicable) }
      </artwork>
    </figure>
    <t>
   The ResourceIdentifier is formed by an OID that identifies the service
   or the data being requested (e.g. OCSP, LDAP, CRL, etc... ) and an optional
   version number that may be used to better identify the requested resource.
   All fields SHOULD be used whenever applicable.
   <vspace blankLines="1" />
   If one or more ResourceIdentifier are provided in the request, the RQA
   should report back the location for each of the requested services. If
   no ResourceIdentifier is present in the request, the response should
   carry all the available service locations for the specified CA (with
   respect to the MaxResponse and optional parameters constrain).
   <vspace blankLines="1" />
   The signature field is of type Signature and it is defined in
   <xref target="RFC2560" />:
   </t>
   <figure>
      <artwork>
      Signature ::= SEQUENCE {
        signatureAlgorithm     AlgorithmIdentifier,
        signature              BIT STRING,
        certs              [0] EXPLICIT SEQUENCE OF Certificate 
                                                          OPTIONAL }
      </artwork>
   </figure>
   <t>
   Extensions can be used for future protocol enhancement.
   </t>
   </section>
 </section>
 <section anchor="prqpresp" title="PRQP Response">
   <t>
   The PRQP response contains the following data:
   <list style="symbols">
   <t>protocol version</t>
   <t>nonce</t>
   <t>status</t>
   <t>CA identifier</t>
   <t>ResourceResponseToken</t>
   <t>Extensions</t>
   </list>
   </t>

   <section anchor="respsyn" title="Response Syntax">
   <t>
   The response syntax is as follows:
   </t>
   <figure>
      <artwork>
      PRQPResponse ::= SEQUENCE {
        respData               TBSRespData,
        signature          [0] EXPLICIT Signature OPTIONAL }

      TBSRespData ::= SEQUENCE {
        version                INTEGER { v(1)},
        nonce              [0] INTEGER              OPTIONAL,
              -- as duplicated from the request
        producedAt             GeneralizedTime,
              -- time when the response has been generated
        nextUpdate         [1] GeneralizedTime      OPTIONAL,
              -- time till when the response should be considered valid
        pkiStatus              PKIStatusInfo,
              -- status of the response
        caCertId               CertIdentifier,
              -- identifier of the CA certificate that issued the
              -- targeted certificate
        responseToken      [2] SEQUENCE OF ResourceResponseToken 
                                                              OPTIONAL,
              -- token carrying information about
              -- requested services
        extensions         [3] EXPLICIT Extensions  OPTIONAL }
      </artwork>
   </figure>
   <t>
   The version field (currently v1) describes the version of the used PRQP
   response. The nonce, if present, binds the response to a specific request.
   The usage of the nonce is meaningful only in signed responses
   and its value must be copied directly from the corresponding request.
   If not present in the request, the nonce MUST be omitted.
   <vspace blankLines="1" />
   The pkiStatus field is based on the definition of status in section 3.2.3
   of <xref target="RFC4210" />. However, to limit the complexity of the
   field, the statusString field is of type UTF8String instead of PKIFreeText.
   </t>
   <figure>
      <artwork>
      PKIStatusInfo ::= SEQUENCE {
        status        PKIStatus,
        statusString  [0] UTF8String     OPTIONAL,
        failInfo      [1] PKIFailureInfo  OPTIONAL  }
      </artwork>
   </figure>
   <t>
   If status has value zero, a responseToken MUST be present in the response.
   When the status value is non zero, the responseToken MUST be omitted 
   and the reason code MUST be one of the values in PKIStatus.
   </t>
   <figure>
      <artwork>
      PKIStatus ::= INTEGER {
        ok                     (0),
           -- when the PKIStatus contains the value zero one or 
              more responseToken is present
        badRequest             (1),
           -- the request is badly formatted
        caNotPresent           (2),
           -- the requested CA is not present
        systemFailure          (3)
           -- a system failure has occurred }
      </artwork>
   </figure>
   <t>
   The signature field is of type Signature and it is defined in 
   <xref target="RFC2560" />:
   </t>
   <figure>
      <artwork>
      Signature ::= SEQUENCE {
        signatureAlgorithm     AlgorithmIdentifier,
        signature              BIT STRING,
        certs              [0] EXPLICIT SEQUENCE OF Certificate 
                                                          OPTIONAL }
      </artwork>
   </figure>
   <t>
   The responseToken carries information about the services requested by
   the client. For each of the requested service, the RQA should include
   a ResourceResponseToken which bears the OID of the service and the
   corresponding URI.
   <vspace blankLines="1" />
   The ResourceResponseToken syntax is described below:
   </t>
   <figure>
      <artwork>
      ResourceResponseToken ::= SEQUENCE {
        resourceId              OBJECT IDENTIFIER,
            --- resource identifier
        resourceLocatorList [0] EXPLICIT SEQUENCE OF IA5String,
            --- sequence of resource locators (URI)
        version             [1] INTEGER             OPTIONAL,
            --- version of the protocol or data format (if applicable)
        resourceInfo        [2] UTF8Sting           OPTIONAL,
            --- additional service Info (eg. technical contacts) }
      </artwork>
   </figure>
   <t>
   The resourceId field value is copied from the corresponding request
   and it bears the OID of the service about which the client inquired.
   In section <xref target="oids" /> we define a list of default PKI
   resources.
   </t>
   <t>
   <vspace blankLines="1" />
   The producedAt and nextUpdate define the time-frame when the response
   data is to be considered valid. Within the defined period, the client
   SHOULD NOT request for the same service. Use of wider time-frames values
   can help the RQA avoid duplication of requests from the same client
   thus potentially lowering the load of the responder. However, providing
   this data to a client does not ensure a lower query rate, as a server
   cannot rely on clients to obey the advice provided in the response.
   <vspace blankLines="1" />
   The resourceLocator bears access information for the service identified
   by the serviceId. The name MUST be an absolute URL, and it MUST follow
   the URL syntax and encoding rules specified in <xref target="RFC4248" />
   and <xref target="RFC4266" />.
   The resourceLocator
   includes both a scheme (e.g., HTTP or FTP) and a scheme specific part.
   The scheme specific part is supposed to carry information on how to
   reach the requested service, this is, for example, a fully qualified
   domain name or IP address as the host. If the requested service is not
   available or it is unknown by the server, the resourceLocator value
   should be empty.
   <vspace blankLines="1" />
   Optional Extensions may be added if requested.
   </t>
   </section>
  </section>
 </section>
</section>

<section anchor="oids" title="Object Identifiers for PKI resources">
  <t>
   The PRQP defines a set of standard OIDs that are used to identify
   resources related to a Certification Authority. In this section we
   provide a description for each of the defined OIDs.
  </t>
  <t>
   The services are all defined under the id-ad-prqp OID which is defined
   as follows:
     <figure><artwork>
  id-ad-prqp                OBJECT IDENTIFIER ::= {id-ad 12}
     </artwork></figure>
  </t>

  <section anchor="oid_prpq_prqp" title="The RQA Service identifier" >
    <t>
     When id-ad-prqp-rqa is used in a PRQP message, the associated value
     in the response is the location of the PRQP server (i.e., an RQA) using
     the conventions in this document or subsequent updates.
     <figure><artwork>
  id-ad-prqp-rqa            OBJECT IDENTIFIER ::= {id-ad-prqp 0}
     </artwork></figure>
     The version field, if used, indicates the supported protocol version.
    </t>
  </section>

  <section anchor="oid_ocsp" title="The OCSP identifier" >
    <t>
     When id-ad-prqp-ocsp appears in a PRQP request or response, the associated
     value in the response is the location of the OCSP responder, using the conventions defined in
     <xref target="RFC2560" />. The version field, if used, indicates the supported
     protocol version.
     <figure><artwork>
  id-ad-prqp-ocsp           OBJECT IDENTIFIER ::= {id-ad-prqp 1 }
     </artwork></figure>
    </t>
  </section>

  <section anchor="oid_issuerCert" title="The Issuer's Certificate identifier" >
    <t>
     When id-ad-issuerCert is used in a PRQP message, the associated value is in the response 
     the location of the DER formatted certificate of the issuer of the identified
     CA. The version field in the request SHOULD NOT be used and SHOULD be ignored
     in case it is present. The version field MAY be used to specify the version
     of the certificate pointed by the URL in a PRQP Response message.
     In order to enhance interoperability between applications and reduce development
     efforts, the URI should point directly to the certificate and not to a redirection
     service.
     <figure><artwork>
  id-ad-prqp-issuerCert     OBJECT IDENTIFIER ::= {id-ad-prqp 2 }
     </artwork></figure>
     HTTP server implementations accessed via the URI SHOULD specify the media type
     "application/x-x509-ca-cert" in the content-type header field of the response.
    </t>
  </section>

  <section anchor="oid_timestamping" title="The Timestamping Service identifier" >
    <t>
     When id-ad-timestamping is used in a PRQP message, the associated value in the response is
     the location of the Timestamping responder, using the conventions defined in
     <xref target="RFC3161" />. The version field, if used, indicates the supported
     protocol version.
     <figure><artwork>
  id-ad-prqp-timestamping   OBJECT IDENTIFIER ::= {id-ad-prqp 3 }
     </artwork></figure>
    </t>
  </section>

  <section anchor="oid_scvp" title="The SCVP Server identifier" >
    <t>
     When id-ad-prqp-scvp appears in a PRQP request or response, the associated
     value in the response is the location of the SCVP responder, using the conventions defined in
     <xref target="RFC5055" />. The version field, if used, indicates the supported
     protocol version.
     <figure><artwork>
  id-ad-prqp-scvp           OBJECT IDENTIFIER ::= {id-ad-prqp 4 }
     </artwork></figure>
    </t>
  </section>

  <section anchor="oid_crlDistribution" title="The CRL Distribution Point identifier" >
    <t>
     When id-ad-prqp-crlDistribution appears in a PRQP message, the associated
     value in the response is a pointer to the current CRL. The URI MUST point to a single DER
     encoded CRL as specified in <xref target="RFC2585" />. The version field,
     if used, indicates the version of the pointed CRL.
     In order to enhance interoperability between applications and reduce development
     efforts, the URI should point directly to the CRL and not to a redirection
     service.
     <figure><artwork>
  id-ad-prqp-crlDistribution   OBJECT IDENTIFIER ::= {id-ad-prqp 5 }
     </artwork></figure>
     HTTP server implementations accessed via the URI SHOULD specify the media type
     "application/pkix-crl" in the content-type header field of the response.
    </t>
  </section>

  <section anchor="oid_certRepository" title="The Certificates Repository identifier" >
    <t>
     When id-ad-prqp-certRepository appears in a PRQP message, the associated
     value in the response is a pointer to a set of certificates. The URI MUST point
     to a  collection of certificates in a DER encoded "certs-only" CMS message as
     specified in <xref target="RFC2797" />.
     <figure><artwork>
  id-ad-prqp-certRepository OBJECT IDENTIFIER ::= {id-ad-prqp 6 }
     </artwork></figure>
     HTTP server implementations accessed via the URI SHOULD specify the media type
     "application/pkcs7-mime" <xref target="RFC2797" /> in the content-type header field
     of the response. The name of the returned file SHOULD have a suffix of ".p7c"
     <xref target="RFC2797" />.
    </t>
  </section>

  <section anchor="oid_crlRepository" title="The CRL Repository identifier" >
    <t>
     When id-ad-prqp-crlRepository appears in a PRQP message, the associated
     value is a pointer to a set of CRL. The URI MUST point to a collection of CRLs
     in a DER encoded CMS message as.
     <figure><artwork>
  id-ad-prqp-crlRepository  OBJECT IDENTIFIER ::= {id-ad-prqp 7 }
     </artwork></figure>
     HTTP server implementations accessed via the URI SHOULD specify the media type
     "application/pkcs7-mime" <xref target="RFC2797" /> in the content-type header field
     of the response. The name of the returned file SHOULD have a suffix of ".p7c"
    </t>
  </section>

  <section anchor="oid_XcertRepository" title="The Cross Certificates Repository identifier" >
    <t>
     When id-ad-prqp-crossCertRepository appears in a PRQP message, the associated
     value in the response is a pointer to a set of Cross Certificates. The URI MUST point
     to a collection of certificates in DER encoded CertificatePair object defined as:
     <figure><artwork>
  CertificatePair ::= SEQUENCE {
     forward [0] Certificate OPTIONAL,
     reverse [1] Certificate OPTIONAL,
     -- at least one of the pair shall be present -- } 
     </artwork></figure>
     The id-ad-prqp-crossCertRepository is defined as follows:
     <figure><artwork>
  id-ad-prqp-crossCertRepository
                            OBJECT IDENTIFIER ::= {id-ad-prqp 8 }
     </artwork></figure>
     As defined in <xref target="RFC4523" />, LDAP implementation store the CertificatePair in
     the crossCertificatePair attribute.
    </t>
  </section>

  <section anchor="oid_cmsGateway" title="The CMS Gateway identifier" >
    <t>
     When id-ad-prqp-cmsGateway appears in a PRQP message, the associated
     value in the response is the location of the CMM over CMS service, using the conventions
     defined in <xref target="RFC2797" />. As the <xref target="RFC2797" /> does not define a version
     for the protocol, if the version field is used to identify the service, applications
     SHOULD ignore it.
     <figure><artwork>
  id-ad-prqp-cmsGateway     OBJECT IDENTIFIER ::= {id-ad-prqp 10 }
     </artwork></figure>
    </t>
  </section>

  <section anchor="oid_scepGateway" title="The SCEP Gateway identifier" >
    <t>
     When id-ad-prqp-scepGateway appears in a PRQP message, the associated
     value in the response is the location of the CMM over CMS service, using the conventions
     defined in <xref target="I-D.nourse-scep" />. The version field used to identify the
     service, if present, SHOULD be set to 0.
     <figure><artwork>
  id-ad-prqp-scepGateway    OBJECT IDENTIFIER ::= {id-ad-prqp 11 }
     </artwork></figure>
    </t>
  </section>

  <section anchor="oid_htmlGateway" title="The HTML Gateway identifier" >
    <t>
     When id-ad-prqp-htmlGateway appears in a PRQP message, the associated
     value in the response is the location of a HTML CA service. The version field identifies
     the version of HTML data.
     <figure><artwork>
  id-ad-prqp-htmlGateway    OBJECT IDENTIFIER ::= {id-ad-prqp 12 }
     </artwork></figure>
    </t>
  </section>

  <section anchor="oid_xkmsGateway" title="The XKMS Gateway identifier" >
    <t>
     When id-ad-prqp-xkmsGateway appears in a PRQP message, the associated
     value in the response is the location of an XKMS server, using the conventions
     defined in <xref target="W3C.xkms" /> and <xref target="W3C.REC-xkms2-20050628" />. The version field used to
     identify the service, if present, SHOULD be set to 1 for services compliant to
     <xref target="W3C.xkms" /> and to 2 for services compliant to <xref target="W3C.REC-xkms2-20050628" />.
     <figure><artwork>
  id-ad-prqp-xkmsGateway    OBJECT IDENTIFIER ::= {id-ad-prqp 13 }
     </artwork></figure>
    </t>
  </section>

  <section anchor="oid_certPolicy" title="The Certificate Policy (CP) identifier" >
    <t>
     When id-ad-prqp-certPolicy appears in a PRQP message, the associated
     value in the response is the location of a certificate Policy (CP).
     A CP may be used by a relying party to help in deciding whether a certificate,
     and the binding therein, are sufficiently trustworthy and otherwise appropriate
     for a particular application.
     <figure><artwork>
  id-ad-prqp-certPolicy     OBJECT IDENTIFIER ::= {id-ad-prqp 20 }
     </artwork></figure>
    More information can be found in <xref target="RFC2527" />.
    </t>
  </section>

  <section anchor="oid_certPracticeStatement" title="The Certification Practice Statement (CPS) identifier" >
    <t>
     When id-ad-prqp-certPolicy appears in a PRQP message, the associated
     value in the response is the location of a Certification Practice Statement (CPS)
     published by the CA.
     A CPS is a document that details the practices and procedures established by a CA
     that will cover the life-cycle of certificates issued by the CA.  That is it
     covers how the certificate will be generated, suspended and revoked.
     An internally focused document covering the internal environment of the CA.
     <figure><artwork>
  id-ad-prqp-certPracticeStatement 
                            OBJECT IDENTIFIER ::= {id-ad-prqp 21 }
     </artwork></figure>
     More information can be found in <xref target="RFC2527" />.
    </t>
  </section>

  <section anchor="oid_endorsedTA" title="The Endorsed Trust Anchors identifier" >
    <t>
     When id-ad-prqp-endorsedTA appears in a PRQP message, the associated
     value in the response is a pointer to a set of Trust Anchors (TA) in the form
     of certificates. The URI MUST point to a collection of certificates in a DER
     encoded CMS signedData message as specified in <xref target="RFC2797" />.
     <figure><artwork>
  id-ad-prqp-endorsedTA     OBJECT IDENTIFIER ::= {id-ad-prqp 22 }
     </artwork></figure>
     HTTP server implementations accessed via the URI SHOULD specify the media type
     "application/pkcs7-mime" <xref target="RFC2797" /> in the content-type header field
     of the response. The name of the returned file SHOULD have a suffix of ".p7"
     <xref target="RFC2797" />. The returned data object SHOULD be signed by the CA
     the endorsedTA service has been requested for.
     The application SHOULD verify the signature on the CMS message before proceeding
     in accepting the set of TAs.
     Moreover the application MAY import the set of certificates in its own certificate store
     as trusted depending on previous trust settings or input from the user.
    </t>
  </section>

<!--
  <section anchor="oid_htmlcerts" title="The HTML Certificate Listing identifier" >
    <t>
     When id-ad-prqp-html-certs appears in a PRQP message, the associated
     value in the response is a pointer to a HTML  list of Issued Certificates.
     The URI MUST point to a valid HTML page carrying information on Issued Certificates.
     The page should contain the needed commands (in the form of links or active content)
     that allow Browsers to navigate the list of issued certificates. The version field,
     if used, indicates the HTML version used.
     <figure><artwork>
  id-ad-prqp-html-certs         OBJECT IDENTIFIER ::= {id-ad-prqp 6 }
     </artwork></figure>
    </t>
  </section>
-->

  <section anchor="oid_loaPolicy" title="The LOA Policy (LP) identifier" >
    <t>
     When id-ad-prqp-loaPolicy appears in a PRQP message, the associated
     value in the response is the location of a Level of Assurance Policy (LP)
     published by the CA.
     An LP is a document that details the practices and procedures established by a CA
     that will cover the requirements for each Level of Assurance.
     <figure><artwork>
  id-ad-prqp-loaPolicy      OBJECT IDENTIFIER ::= {id-ad-prqp 25 }
     </artwork></figure>
     More information can be found in <xref target="RFC2527" />.
    </t>
  </section>


  <section anchor="oid_loaModifier" title="The Certificate LOA Modifier identifier" >
    <t>
     When id-ad-prqp-certLOAModifier appears in a PRQP message, the associated
     value in the response is the location of a LOA Level Modifier.
     The LOA modifier service is used to identify the current LOA Level
     of the certificate (not the LOA under which the certificate has been issued).
     <figure><artwork>
  id-ad-prqp-certLOAModifier OBJECT IDENTIFIER ::= {id-ad-prqp 26 }
     </artwork></figure>
    </t>
  </section>

  <section anchor="oid_htmlRequest" title="The HTML Certificate Request Service identifier" >
    <t>
     When id-ad-prqp-htmlRequestCertificate appears in a PRQP message, the associated
     value in the response is the location of a HTML certificate request service.
     The version field, when present, identifies the version of the supported HTML
     format.
     As not standard exists that describes how to interact with a CA via HTML, this
     locator should be mainly used for browser-based certification requests.
     <figure><artwork>
  id-ad-prqp-htmlRequestCertificate 
                            OBJECT IDENTIFIER ::= {id-ad-prqp 30}
     </artwork></figure>
    </t>
  </section>

  <section anchor="oid_htmlRevoke" title="The HTML Certificate Revoke Service identifier" >
    <t>
     When id-ad-prqp-htmlRevokeCertificate appears in a PRQP message, the associated
     value in the response is the location of a HTML certificate revoking service.
     The version field, when present, identifies the version of the supported HTML
     format.
     As not standard exists that describes how to interact with a CA via HTML, this
     locator should be mainly used for browser-based certification requests.
     <figure><artwork>
  id-ad-prqp-htmlRevokeCertificate 
                            OBJECT IDENTIFIER ::= {id-ad-prqp 31}
     </artwork></figure>
    </t>
  </section>

  <section anchor="oid_htmlRenew" title="The HTML Certificate Renew Service identifier" >
    <t>
     When id-ad-prqp-htmlRenewCertificate appears in a PRQP message, the associated
     value in the response is the location of a HTML certificate renewal service.
     The version field, when present, identifies the version of the supported HTML
     format.
     As not standard exists that describes how to interact with a CA via HTML, this
     locator should be mainly used for browser-based certificate renewal requests.
     <figure><artwork>
  id-ad-prqp-htmlRenewCertificate 
                            OBJECT IDENTIFIER ::= {id-ad-prqp 32}
     </artwork></figure>
    </t>
  </section>

  <section anchor="oid_htmlSuspend" title="The HTML Certificate Suspend Service identifier" >
    <t>
     When id-ad-prqp-htmlSuspendCertificate appears in a PRQP message, the associated
     value in the response is the location of a HTML certificate suspension service.
     The version field, when present, identifies the version of the supported HTML
     format.
     As not standard exists that describes how to interact with a CA via HTML, this
     locator should be mainly used for browser-based certificate suspension requests.
     <figure><artwork>
  id-ad-prqp-htmlRenewCertificate 
                            OBJECT IDENTIFIER ::= {id-ad-prqp 33}
     </artwork></figure>
    </t>
  </section>

  <section anchor="oid_gridBody" title="The Grid Accreditation Body identifier" >
    <t>
     When id-ad-prqp-grid-accreditationBody appears in a PRQP message, the associated
     value in the response is the location of the main information point of the
     Grid Policy Management Authority (GPMA) that accredited the CA.
     The pointer SHOULD NOT be present if the CA has not been accredited by the GPMA.
     <figure><artwork>
  id-ad-prqp-grid-accreditationBody
                                OBJECT IDENTIFIER ::= {id-ad-prqp 50}
     </artwork></figure>
    </t>
  </section>

  <section anchor="oid_gridPolicy" title="The Grid Policy identifier" >
    <t>
     When id-ad-prqp-grid-accreditationPolicy appears in a PRQP message, the associated
     value in the response is the location of an Accreditation Policy published by a
     Grid Policy Management Authority (GPMA).
     The pointer SHOULD NOT be present if the CA has not been accredited by the GPMA.
     A Grid Policy (GP) is a document that details the practices and procedures required
     from a CA in order to be accredited by the GPMA.
     <figure><artwork>
  id-ad-prqp-grid-accreditationPolicy 
                                OBJECT IDENTIFIER ::= {id-ad-prqp 51}
     </artwork></figure>
    </t>
  </section>

  <section anchor="oid_gridDistPolicy" title="The Grid DistributionUpdate identifier" >
    <t>
     When id-ad-prqp-grid-commonDistributionUpdate appears in a PRQP message, the associated
     value in the response is the location of the Grid Distribution Package associated with
     the Grid Policy Management Authority (GPMA) that accredited the CA.
     The pointer SHOULD NOT be present if the CA has not been accredited by the GPMA.
     <figure><artwork>
  id-ad-prqp-grid-commonDistributionUpdate 
                                OBJECT_IDENTIFIER ::= {id-ad-prqp 53}
     </artwork></figure>
    </t>
  </section>


  <section anchor="oid_tampUpdate" title="The TAMP Update identifier" >
    <t>
     When id-ad-prqp-tampUpdate appears in a PRQP message, the associated
     value in the response is the location of a Trust Anchor Management data package,
     using the conventions defined in <xref target="I-D.pkix-tamp" />. The version field used to
     identify the service, if present, SHOULD reflect the supported TAMP version.
     <figure><artwork>
  id-ad-prqp-tampUpdate     OBJECT IDENTIFIER ::= {id-ad-prqp 70 }
     </artwork></figure>
    </t>
  </section>

  <section anchor="oid_caIncidentReport" title="The CA Incident Report identifier" >
    <t>
     When id-ad-prqp-caIncidentReport appears in a PRQP message, the associated
     value in the response is the location of a Incident Report submission service.
     No standard mechanisms are currently defined for this type of service, therefore
     the  The resourceInfo field in the response SHOULD be used to provide information
     on the provided Incident Report service.
     For example while the URI could point to a web-page carrying contacts information
     or a ticketing system for reporting CA-related incidents, the resourceInfo field
     could provide text carrying information that may be displayed to the user (e.g.,
     a support phone number). This would allow support for a wide range of different
     devices and applications as long as they have the ability to display or read the
     content of the resourceInfo field to the user.
     <figure><artwork>
  id-ad-prqp-caIncidentReport
                            OBJECT IDENTIFIER ::= {id-ad-prqp 90}
     </artwork></figure>
    </t>
  </section>

  <section anchor="oid_private" title="The Private Resources identifier" >
    <t>
     When an application wants to identify private resources, i.e. services that are not
     standardized in the PRQP standard definition, id-ad-prqp-private should be used as
     the base OID:
     <figure><artwork>
  id-ad-prqp-private        OBJECT IDENTIFIER ::= {id-ad-prqp 100}
     </artwork></figure>
     The OIDs for a private resource can be identified as follows:
     <figure><artwork>
  myPrivateResource     OBJECT IDENTIFIER ::= {id-ad-prqp-private N}
     </artwork></figure>
    </t>
  </section>

<!--
  <section anchor="oid_" title="identifier" >
    <t>
     When id-ad-prqp- appears in a PRQP message, the associated
     value is a pointer to . The URI MUST point to .
     <figure><artwork>
  id-ad-prqp-    OBJECT IDENTIFIER ::= {id-ad-prqp }
     </artwork></figure>
    </t>
  </section>
-->

<!--

  <section anchor="oid_" title="identifier" >
    <t>
     When id-ad-prqp- appears in a PRQP message, the associated
     value is a pointer to . The URI MUST point to .
     <figure><artwork>
  id-ad-prqp-    OBJECT IDENTIFIER ::= {id-ad-prqp  }
     </artwork></figure>
    </t>
  </section>

-->

<!--   <t>
   The following list of OIDs SHOULD be used to identify the specified
   PKI resources:
   </t>
   <figure>
     <artwork>

  id-ad-prqp                    OBJECT IDENTIFIER ::= {id-ad 12 }
  id-ad-prqp-rqa                OBJECT IDENTIFIER ::= {id-ad-prqp 0}
  id-ad-prqp-ocsp               OBJECT IDENTIFIER ::= {id-ad-prqp 1}
  id-ad-prqp-issuerCert         OBJECT IDENTIFIER ::= {id-ad-prqp 2}
  id-ad-prqp-timestamping       OBJECT IDENTIFIER ::= {id-ad-prqp 3}
  id-ad-prqp-scvp               OBJECT IDENTIFIER ::= {id-ad-prqp 4}
  id-ad-prqp-crlDistribution    OBJECT IDENTIFIER ::= {id-ad-prqp 5}
  id-ad-prqp-certRepository     OBJECT IDENTIFIER ::= {id-ad-prqp 6}
          --- CMS certificate repository
  id-ad-prqp-crlRepository      OBJECT IDENTIFIER ::= {id-ad-prqp 7}
          --- CMS CRL repository
  id-ad-prqp-crossCertRepository
                                OBJECT IDENTIFIER ::= {id-ad-prqp 8}
          --- CMS Cross Certificate repository

  id-ad-prqp-cmsGateway         OBJECT IDENTIFIER ::= {id-ad-prqp 10}
          --- CMS Gateway
  id-ad-prqp-scepGateway        OBJECT IDENTIFIER ::= {id-ad-prqp 11}
          --- SCEP Gateway
  id-ad-prqp-htmlGateway        OBJECT IDENTIFIER ::= {id-ad-prqp 12}
          --- HTML Gateway
  id-ad-prqp-xkmsGateway        OBJECT IDENTIFIER ::= {id-ad-prqp 13}
          --- XKMS Gateway

  --- Certificate Policies
  id-ad-prqp-certPolicy         OBJECT IDENTIFIER ::= {id-ad-prqp 20}
          --- Certificate Policy (CP) URL
  id-ad-prqp-certPracticesStatement 
                                OBJECT IDENTIFIER ::= {id-ad-prqp 21}
          --- Certification Practices Statement (CPS) URL
  
  id-ad-prqp-endorsedTA         OBJECT IDENTIFIER ::= {id-ad-prqp 22}
          --- CMS Endorsed Trust Anchors

  --- Level Of Assurance
  id-ad-prqp-loaPolicy          OBJECT IDENTIFIER ::= {id-ad-prqp 25}
          --- LOA Policy URL
  id-ad-prqp-certLOALevel       OBJECT IDENTIFIER ::= {id-ad-prqp 26}
          --- Certificate LOA Modifier URL

  --- HTML (Browsers) based services
  id-ad-prqp-htmlRequestCertificate 
                                OBJECT IDENTIFIER ::= {id-ad-prqp 30}
          --- HTML Based Certificate Request Service
  id-ad-prqp-htmlRevokeCertificate  
                                OBJECT IDENTIFIER ::= {id-ad-prqp 31}
          --- HTML Based Certificate Revocation Service
  id-ad-prqp-htmlRenewCertificate   
                                OBJECT IDENTIFIER ::= {id-ad-prqp 32}
          --- HTML Based Certificate Renewal Service
  id-ad-prqp-htmlSuspendCertificate 
                                OBJECT IDENTIFIER ::= {id-ad-prqp 33}
          --- HTML Certificate Suspension Service

  --- Grid Specific Services
  id-ad-prqp-grid-accreditationBody
                                OBJECT IDENTIFIER ::= {id-ad-prqp 50}
          --- CA Accreditation Body(s)
  id-ad-prqp-grid-accreditationPolicy 
                                OBJECT IDENTIFIER ::= {id-ad-prqp 51}
          --- CA Accreditation Policy Document(s)
  id-ad-prqp-grid-accreditationStatus 
                                OBJECT IDENTIFIER ::= {id-ad-prqp 52}
          --- CA Accreditation Status Document(s)
  id-ad-prqp-grid-commonDistributionUpdate 
                                OBJECT_IDENTIFIER ::= {id-ad-prqp 53}
          --- Grid Distribution Package(s)
  id-ad-prqp-grid-accreditedCACerts 
                                OBJECT IDENTIFIER ::= {id-ad-prqp 54}
          --- Certificates of Currently Accredited CAs

  --- Trust Anchor Management Services
  id-ad-prqp-tampUpdate         OBJECT IDENTIFIER ::= {id-ad-prqp 70}

  --- Risk Management Services
  id-ad-prqp-caIncidentReport   OBJECT IDENTIFIER ::= {id-ad-prqp 90}

  --- Private Resource Identifiers
  id-ad-prqp-private            OBJECT IDENTIFIER ::= {id-ad-prqp 100}

     </artwork>
   </figure>
-->
<!--

  --- Webdav Services
  id-ad-prqp-webdavCert         OBJECT IDENTIFIER ::= {id-ad-prqp 40}
          --- Webdav Certificate Validation
  id-ad-prqp-webdavRev          OBJECT IDENTIFIER ::= {id-ad-prqp 41}
          --- Webdav Certificate Revocation
-->
</section>


<section anchor="iana" title="IANA Considerations">
 <t>
    This document has no actions for IANA.
 </t>
</section>

<section anchor="rationale" title="PRQP Design Rationale">
   <t>

   In this section we provide some considerations about the protocol design
   and its details.
   </t>

   <section anchor="complexity" title="Response Complexity">
   <t>
   An important design consideration is the complexity of messages. Some type
   of services, e.g. delta CRLs, can be directly detected upon data
   downloading. On the contrary if a client is looking for a specific
   version of a protocol or data type, the definition of a fine-grained
   query system would allow for data downloading only when it is actually
   supported by the requesting client, thus reducing the server's load.
   <vspace blankLines="1" />
   At present we think that keeping the protocol simple will encourage
   its adoption in current environments because the flexibility introduced
   by PRQP is a big enhancement over the current options.
   <vspace blankLines="1" />
   Moreover, without requiring changes to the protocol, extensions could
   be defined to provide more fine grained options.
   <vspace blankLines="1" />
   Future versions of the protocol may implement extended request
   and response types if required by applications.
   </t>
   </section>

   <section anchor="uri" title="RQA's URL distribution">
   <t>
   The AIA and SIA extensions in certificates can be used to carry the
   pointer to the RQA. If no RQA address is present in the certificate,
   a client application could use a default configured URL.
   <vspace blankLines="1" />
   Although this approach seems to contradict the criticism of Certificate
   extensions use in <xref target="exts" />, using only one extension
   to locate the RQA would provide an easy way to distribute the RQA's URL.
   <vspace blankLines="1" />
   The usage of PRQP will provide a gateway for all the other services
   and data URLs.
   </t>
   </section>

   <section anchor="security" title="Security Considerations">
   <t>
   The PRQP provides URLs for PKI resources. This means that it provides
   locators to data and services, not the data per se. It still remains
   the client's job to access the provided URLs to gather the needed data.
   <vspace blankLines="1" />
   Both NONCEs and signatures are optional in order to provide flexibility
   in how requests and responses are generated.
   <vspace blankLines="1" />
   It is possible to provide pre-computed responses in case the NONCE is
   not provided by the client. This allows the RQA to generate off-line
   signatures for responses, an optimization used in OCSP.
   <vspace blankLines="1" />
   Moreover if an authenticated secure channel is used at the transport level
   between the client and the RQA (e.g. HTTPS or SFTP) signatures in requests
   and responses can be safely omitted.
   </t>
   </section>

   <section anchor="time" title="Time Validity">
   <t>
   The time validity should reflect the frequency of updates in configured
   URLs. An interesting aspect to be considered is how often would users
   execute the protocol for a given set of data.
   <vspace blankLines="1" />
   If the clients query the server often it could be a serious burden
   on the server but, if executed rarely, clients would not be able to
   discover changes in provided resources.
   <vspace blankLines="1" />
   As described in more detail in <xref target="app_A" />,
   the adoption of a validity
   time frame for responses can be used as a mean to balance the trade off
   between this two aspects, but this is merely advisory
   data for clients and thus not a guarantee against DoS attacks by clients.
   </t>
   </section>

   <section anchor="format" title="Message Format">
   <t>
   Two different candidates have been considered. The first one is the
   Extensible Markup Language (XML), while the second one is the
   Distinguished Encoding Rules (DER).
   <vspace blankLines="1" />
   The adoption of the Abstract Syntax Notation (ASN.1) to describe the
   data structures allows a software developer to provide either DER or XML
   based implementations of the protocol.
   <vspace blankLines="1" />
   However we think that a DER based implementation of PRQP is the best
   choice because of compatibility considerations with existing applications
   and APIs. Moreover DER encoded messages are smaller in size then XML
   encoded ones and almost all PKI aware applications already support it.
   </t>
 </section>
</section>
<section anchor="acknowledgments" title="Acknowledgments">
  <t>
  The authors would like to thank Stephen Kent for his insightful comments 
  about PRQP and his help in writing this document.
  </t>
</section>
</middle>
<back>
<references title='Normative References'>

<reference anchor='RFC2119'>
<front>
<title abbrev='RFC Key Words'>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='Scott Bradner'>
<organization>Harvard University</organization>
<address>
<postal>
<street>1350 Mass. Ave.</street>
<street>Cambridge</street>
<street>MA 02138</street></postal>

<phone>- +1 617 495 3864</phone>
<email>sob@harvard.edu</email></address></author>
<date year='1997' month='March' />
<area>General</area>
<keyword>keyword</keyword>
<abstract>
<t>
   In many standards track documents several words are used to signify
   the requirements in the specification.  These words are often
   capitalized.  This document defines these words as they should be
   interpreted in IETF documents.  Authors who follow these guidelines
   should incorporate this phrase near the beginning of their document:

<list>
<t>
      The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
      NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and
      "OPTIONAL" in this document are to be interpreted as described in
      RFC 2119.

</t></list></t>
<t>
   Note that the force of these words is modified by the requirement
   level of the document in which they are used.
</t></abstract></front>

<seriesInfo name='BCP' value='14' />
<seriesInfo name='RFC' value='2119' />
<format type='TXT' octets='4723' target='ftp://ftp.isi.edu/in-notes/rfc2119.txt' />
<format type='HTML' octets='17491' target='http://xml.resource.org/public/rfc/html/rfc2119.html' />
<format type='XML' octets='5777' target='http://xml.resource.org/public/rfc/xml/rfc2119.xml' />
</reference>

<reference anchor='RFC3280'>
<front>
<title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
<author initials='R.' surname='Housley' fullname='R. Housley'>
<organization /></author>
<author initials='W.' surname='Polk' fullname='W. Polk'>
<organization /></author>
<author initials='W.' surname='Ford' fullname='W. Ford'>
<organization /></author>
<author initials='D.' surname='Solo' fullname='D. Solo'>
<organization /></author>
<date year='2002' month='April' />
<abstract>
<t>This memo profiles the X.509 v3 certificate and X.509 v2 Certificate Revocation List (CRL) for use in the Internet. [STANDARDS TRACK] </t></abstract></front>
<seriesInfo name='RFC' value='3280' />
<format type='TXT' octets='295556' target='ftp://ftp.isi.edu/in-notes/rfc3280.txt' />
</reference>

<reference anchor='RFC1035'>
<front>
<title abbrev='Domain Implementation and Specification'>Domain names - implementation and specification</title>
<author initials='P.' surname='Mockapetris' fullname='P. Mockapetris'>
<organization>USC/ISI</organization>
<address>
<postal>
<street>4676 Admiralty Way</street>
<city>Marina del Rey</city>
<region>CA</region>
<code>90291</code>
<country>US</country></postal>
<phone>+1 213 822 1511</phone></address></author>
<date year='1987' day='1' month='November' /></front>

<seriesInfo name='STD' value='13' />
<seriesInfo name='RFC' value='1035' />
<format type='TXT' octets='125626' target='ftp://ftp.isi.edu/in-notes/rfc1035.txt' />
</reference>

<reference anchor='RFC2782'>
<front>
<title abbrev='DNS SRV RR'>A DNS RR for specifying the location of services (DNS SRV)</title>
<author initials='A.' surname='Gulbrandsen' fullname='Arnt Gulbrandsen'>
<organization>Troll Tech</organization>
<address>
<postal>
<street>Waldemar Thranes gate 98B</street>
<city>Oslo</city>
<region />
<code>N-0175</code>
<country>NO</country></postal>
<phone>+47 22 806390</phone>
<facsimile>+47 22 806380</facsimile>
<email>arnt@troll.no</email></address></author>
<author initials='P.' surname='Vixie' fullname='Paul Vixie'>
<organization>Internet Software Consortium</organization>
<address>
<postal>
<street>950 Charter Street</street>
<city>Redwood City</city>
<region>CA</region>
<code>94063</code>
<country>US</country></postal>
<phone>+1 650 779 7001</phone></address></author>
<author initials='L.' surname='Esibov' fullname='Levon Esibov'>
<organization>Microsoft Corporation</organization>
<address>
<postal>
<street>One Microsoft Way</street>
<city>Redmond</city>
<region>WA</region>
<code>98052</code>
<country>US</country></postal>
<email>levone@microsoft.com</email></address></author>
<date year='2000' month='February' />
<abstract>
<t>This document describes a DNS RR which specifies the location of the
   server(s) for a specific protocol and domain.</t></abstract></front>

<seriesInfo name='RFC' value='2782' />
<format type='TXT' octets='24013' target='ftp://ftp.isi.edu/in-notes/rfc2782.txt' />
</reference>

<reference anchor='RFC4210'>

<front>
<title>Internet X.509 Public Key Infrastructure Certificate Management Protocol (CMP)</title>
<author initials='C.' surname='Adams' fullname='C. Adams'>
<organization /></author>
<author initials='S.' surname='Farrell' fullname='S. Farrell'>
<organization /></author>
<author initials='T.' surname='Kause' fullname='T. Kause'>
<organization /></author>
<author initials='T.' surname='Mononen' fullname='T. Mononen'>
<organization /></author>
<date year='2005' month='September' />
<abstract>
<t>This document describes the Internet X.509 Public Key Infrastructure (PKI) Certificate Management Protocol (CMP). Protocol messages are defined for X.509v3 certificate creation and management. CMP provides on-line interactions between PKI components, including an exchange between a Certification Authority (CA) and a client system. [STANDARDS TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='4210' />
<format type='TXT' octets='212013' target='ftp://ftp.isi.edu/in-notes/rfc4210.txt' />
</reference>

<reference anchor='RFC2560'>
<front>
<title abbrev='PKIX OCSP'>X.509 Internet Public Key Infrastructure Online Certificate Status Protocol - OCSP</title>
<author initials='M.' surname='Myers' fullname='Michael Myers'>
<organization>VeriSign, Inc.</organization>
<address>
<postal>
<street>1350 Charleston Road</street>
<city>Mountain View</city>
<region>CA</region>
<code>94043</code>
<country>US</country></postal>
<email>mmyers@verisign.com</email></address></author>
<author initials='R.' surname='Ankney' fullname='Rich Ankney'>
<organization>CertCo, LLC</organization>
<address>
<postal>
<street>13506 King Charles Dr.</street>
<city>Chantilly</city>
<region>VA</region>
<code>20151</code>
<country>US</country></postal>
<email>rankney@erols.com</email></address></author>
<author initials='A.' surname='Malpani' fullname='Ambarish Malpani'>
<organization>ValiCert, Inc.</organization>
<address>
<postal>
<street>1215 Terra Bella Avenue</street>
<city>Mountain View</city>
<region>CA</region>
<code>94043</code>
<country>US</country></postal>
<phone>+1 650 567 5457</phone>
<email>ambarish@valicert.com</email></address></author>
<author initials='S.' surname='Galperin' fullname='Slava Galperin'>
<organization>My CFO, Inc.</organization>
<address>
<postal>
<street>1945 Charleston Road</street>
<city>Mountain View</city>
<region>CA</region>
<code>94043</code>
<country>US</country></postal>
<email>galperin@mycfo.com</email></address></author>
<author initials='C.' surname='Adams' fullname='Carlisle Adams'>
<organization>Entrust Technologies</organization>
<address>
<postal>
<street>750 Heron Road</street>
<street>Suite E08</street>
<city>Ottawa</city>
<region>Ontario</region>
<code>K1V 1A7</code>
<country>CA</country></postal>
<email>cadams@entrust.com</email></address></author>
<date year='1999' month='June' />
<abstract>
<t>This document specifies a protocol useful in determining the current
   status of a digital certificate without requiring CRLs. Additional
   mechanisms addressing PKIX operational requirements are specified in
   separate documents.</t>
<t>An overview of the protocol is provided in section 2. Functional
   requirements are specified in section 4. Details of the protocol are
   in section 5. We cover security issues with the protocol in section
   6. Appendix A defines OCSP over HTTP, appendix B accumulates ASN.1
   syntactic elements and appendix C specifies the mime types for the
   messages.</t>
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document (in uppercase, as shown) are to be interpreted as described
   in.</t></abstract></front>

<seriesInfo name='RFC' value='2560' />
<format type='TXT' octets='43243' target='ftp://ftp.isi.edu/in-notes/rfc2560.txt' />
</reference>

<reference anchor='RFC4248'>

<front>
<title>The telnet URI Scheme</title>
<author initials='P.' surname='Hoffman' fullname='P. Hoffman'>
<organization /></author>
<date year='2005' month='October' />
<abstract>
<t>This document specifies the telnet Uniform Resource Identifier (URI) scheme that was originally specified in RFC 1738. The purpose of this document is to allow RFC 1738 to be made obsolete while keeping the information about the scheme on standards track. [STANDARDS TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='4248' />
<format type='TXT' octets='7292' target='ftp://ftp.isi.edu/in-notes/rfc4248.txt' />
</reference>

<reference anchor='RFC4266'>

<front>
<title>The gopher URI Scheme</title>
<author initials='P.' surname='Hoffman' fullname='P. Hoffman'>
<organization /></author>
<date year='2005' month='November' />
<abstract>
<t>This document specifies the gopher Uniform Resource Identifier (URI) scheme that was originally specified in RFC 1738. The purpose of this document is to allow RFC 1738 to be made obsolete while keeping the information about the scheme on standards track. [STANDARDS TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='4266' />
<format type='TXT' octets='12083' target='ftp://ftp.isi.edu/in-notes/rfc4266.txt' />
</reference>

<reference anchor='RFC3315'>

<front>
<title>Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</title>
<author initials='R.' surname='Droms' fullname='R. Droms'>
<organization /></author>
<author initials='J.' surname='Bound' fullname='J. Bound'>
<organization /></author>
<author initials='B.' surname='Volz' fullname='B. Volz'>
<organization /></author>
<author initials='T.' surname='Lemon' fullname='T. Lemon'>
<organization /></author>
<author initials='C.' surname='Perkins' fullname='C. Perkins'>
<organization /></author>
<author initials='M.' surname='Carney' fullname='M. Carney'>
<organization /></author>
<date year='2003' month='July' /></front>

<seriesInfo name='RFC' value='3315' />
<format type='TXT' octets='231402' target='ftp://ftp.isi.edu/in-notes/rfc3315.txt' />
</reference>

<reference anchor='I-D.ietf-dhc-option-guidelines'>
<front>
<title>Guidelines for Creating New DHCP Options</title>

<author initials='D' surname='Hankins' fullname='David Hankins'>
    <organization />
</author>

<date month='October' day='14' year='2008' />

<abstract><t>This document seeks to provide guidance to prospective DHCP Option authors, to help them in producing option formats that are easily adoptable.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-dhc-option-guidelines-03' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-dhc-option-guidelines-03.txt' />
</reference>

<reference anchor='RFC3161'>


<front>
<title>Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP)</title>
<author initials='C.' surname='Adams' fullname='C. Adams'>
<organization /></author>
<author initials='P.' surname='Cain' fullname='P. Cain'>
<organization /></author>
<author initials='D.' surname='Pinkas' fullname='D. Pinkas'>
<organization /></author>
<author initials='R.' surname='Zuccherato' fullname='R. Zuccherato'>
<organization /></author>
<date year='2001' month='August' />
<abstract>
<t>This document describes the format of a request sent to a Time Stamping Authority (TSA) and of the response that is returned.  It also establishes several security-relevant requirements for TSA operation, with regards to processing requests to generate responses. [STANDARDS TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='3161' />
<format type='TXT' octets='54585' target='ftp://ftp.isi.edu/in-notes/rfc3161.txt' />
</reference>

<reference anchor='RFC2585'>

<front>
<title abbrev='PKIX Operational Protocols: FTP and HTTP'>Internet X.509 Public Key Infrastructure Operational Protocols: FTP and HTTP</title>
<author initials='R.' surname='Housley' fullname='Russell Housley'>
<organization>SPYRUS</organization>
<address>
<postal>
<street>381 Elden Street</street>
<street>Suite 1120</street>
<street>Suite 1120</street>
<city>Herndon</city>
<region>VA</region>
<code>20170</code>
<country>US</country></postal>
<email>housley@spyrus.com</email></address></author>
<author initials='P.' surname='Hoffman' fullname='Paul Hoffman'>
<organization>Internet Mail Consortium</organization>
<address>
<postal>
<street>127 Segre Place</street>
<city>Santa Cruz</city>
<region>CA</region>
<code>95060</code>
<country>US</country></postal>
<email>phoffman@imc.org</email></address></author>
<date year='1999' month='May' />
<abstract>
<t>The protocol conventions described in this document
satisfy some of
the operational requirements of the Internet Public Key
Infrastructure (PKI).
This document specifies the conventions for
using the File Transfer Protocol (FTP) and the Hypertext Transfer
Protocol (HTTP) to obtain certificates and certificate revocation
lists (CRLs) from PKI repositories.
Additional mechanisms addressing
PKIX operational requirements are specified in separate
documents.</t></abstract></front>

<seriesInfo name='RFC' value='2585' />
<format type='TXT' octets='14813' target='ftp://ftp.isi.edu/in-notes/rfc2585.txt' />
</reference>

<reference anchor='RFC2797'>

<front>
<title>Certificate Management Messages over CMS</title>
<author initials='M.' surname='Myers' fullname='Michael Myers'>
<organization>VeriSign Inc.</organization>
<address>
<postal>
<street>1350 Charleston Road</street>
<city>Mountain View</city>
<region>CA</region>
<code>94043</code>
<country>US</country></postal>
<phone>+1 650 429 3402</phone>
<email>mmyers@verisign.com</email></address></author>
<author initials='X.' surname='Liu' fullname='Xiaoyi Liu'>
<organization>cisco Systems</organization>
<address>
<postal>
<street>170 West Tasman Drive</street>
<city>San Jose</city>
<region>CA</region>
<code>95134</code>
<country>US</country></postal>
<phone>+1 480 526 7430</phone>
<email>xliu@cisco.com</email></address></author>
<author initials='J.' surname='Schaad' fullname='Jim Schaad'>
<organization />
<address>
<email>jimsch@nwlink.com</email></address></author>
<author initials='J.' surname='Weinstein' fullname='Jeff Weinstein'>
<organization />
<address>
<email>jsw@meer.net</email></address></author>
<date year='2000' month='April' />
<abstract>
<t>This document defines a Certificate Management protocol using CMS. This protocol addresses two immediate needs within the Internet PKI community:</t>
<t>1. The need for an interface to public key certification products and services based onand, and
2. The need infor a certificate enrollment protocol for DSA-signed certificates with Diffie-Hellman public keys.</t>
<t>A small number of additional services are defined to supplement the core certificate request service.</t>
<t>Throughout this specification the term CMS is used to refer to bothand.  For both signedData and envelopedData, CMS is a superset of the PKCS7. In general, the use of PKCS7 in this document is aligned to the Cryptographic Message Syntaxthat provides a superset of the PKCS7 syntax. The term CMC refers to this specification.</t>
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC 2119].</t></abstract></front>

<seriesInfo name='RFC' value='2797' />
<format type='TXT' octets='103357' target='ftp://ftp.isi.edu/in-notes/rfc2797.txt' />
</reference>

<reference anchor='RFC2527'>

<front>
<title abbrev='PKIX'>Internet X.509 Public Key Infrastructure Certificate Policy and Certification Practices Framework</title>
<author initials='S.' surname='Chokhani' fullname='Santosh  Chokhani'>
<organization>CygnaCom Solutions, Inc.</organization>
<address>
<postal>
<street>Suite 100 West</street>
<street>7927 Jones Branch Drive</street>
<city>McLean</city>
<region>VA</region>
<code>22102</code>
<country>US</country></postal>
<phone>+1 703 848 0883</phone>
<facsimile>+1 703 848 0960</facsimile>
<email>chokhani@cygnacom.com</email></address></author>
<author initials='W.' surname='Ford' fullname='Warwick  Ford'>
<organization>VeriSign, Inc.</organization>
<address>
<postal>
<street>301 Edgewater Place</street>
<street>Suite 210</street>
<city>Wakefield</city>
<region>MA</region>
<code>01880</code>
<country>US</country></postal>
<phone>+1 781 245 6996 x225</phone>
<facsimile>+1 781 245 6006</facsimile>
<email>wford@verisign.com</email></address></author>
<date year='1999' month='March' />
<abstract>
<t>This document presents a framework to assist the writers of
certificate policies or certification practice statements for
certification authorities and public key infrastructures.
In particular, the framework provides a comprehensive list of topics
that potentially (at the writer's discretion) need to be covered in a
certificate policy definition or a certification practice
statement.</t></abstract></front>

<seriesInfo name='RFC' value='2527' />
<format type='TXT' octets='91860' target='ftp://ftp.isi.edu/in-notes/rfc2527.txt' />
</reference>

<reference anchor='I-D.pkix-tamp'>
<front>
<title>Trust Anchor Management Protocol (TAMP)</title>

<author initials='R' surname='Housley' fullname='Russ Housley'>
    <organization />
</author>

<author initials='S' surname='Ashmore' fullname='S. Ashmore'>
    <organization />
</author>

<author initials='C' surname='Wallace' fullname='C. Wallace'>
    <organization />
</author>

<date month='October' day='6' year='2008' />

<abstract><t>This document describes a transport independent protocol for the
   management of trust anchors and community identifiers stored in a
   trust anchor store.  The protocol makes use of the Cryptographic
   Message Syntax (CMS), and a digital signature is used to provide
   integrity protection and data origin authentication.  The protocol
   can be used to manage trust anchor stores containing trust anchors
   represented as Certificate, TBSCertificate or TrustAnchorInfo
   objects.
</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-pkix-tamp' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-pkix-tamp-00.txt' />
</reference>


<reference anchor='RFC5055'>

<front>
<title>Server-Based Certificate Validation Protocol (SCVP)</title>
<author initials='T.' surname='Freeman' fullname='T. Freeman'>
<organization /></author>
<author initials='R.' surname='Housley' fullname='R. Housley'>
<organization /></author>
<author initials='A.' surname='Malpani' fullname='A. Malpani'>
<organization /></author>
<author initials='D.' surname='Cooper' fullname='D. Cooper'>
<organization /></author>
<author initials='W.' surname='Polk' fullname='W. Polk'>
<organization /></author>
<date year='2007' month='December' />
<abstract>
<t>The Server-Based Certificate Validation Protocol (SCVP) allows a client to delegate certification path construction and certification path validation to a server.  The path construction or validation (e.g., making sure that none of the certificates in the path are revoked) is performed according to a validation policy, which contains one or more trust anchors.  It allows simplification of client implementations and use of a set of predefined validation policies. [STANDARDS TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='5055' />
<format type='TXT' octets='198764' target='ftp://ftp.isi.edu/in-notes/rfc5055.txt' />
</reference>


<reference anchor='RFC2608'>
<front>
<title>Service Location Protocol, Version 2</title>
<author initials='E.' surname='Guttman' fullname='Erik Guttman'>
<organization>Sun Microsystems</organization>
<address>
<postal>
<street>Bahnstr. 2</street>
<city>Waibstadt</city>
<region />
<code>74915</code>
<country>DE</country></postal>
<phone>+49 7263 911701</phone>
<email>Erik.Guttman@sun.com</email></address></author>
<author initials='C.' surname='Perkins' fullname='Charles Perkins'>
<organization>Sun Microsystems</organization>
<address>
<postal>
<street>901 San Antonio Road</street>
<city>Mountain View</city>
<region>CA</region>
<code>94040</code>
<country>US</country></postal>
<phone>+1 650 786 6464</phone>
<email>cperkins@sun.com</email></address></author>
<author initials='J.' surname='Veizades' fullname='John Veizades'>
<organization>@Home Network</organization>
<address>
<postal>
<street>425 Broadway Street</street>
<city>Redwood City</city>
<region>CA</region>
<code>94063</code>
<country>US</country></postal>
<phone>+1 650 569 5243</phone>
<email>veizades@home.net</email></address></author>
<author initials='M.' surname='Day' fullname='Michael Day'>
<organization>Vinca Corporation.</organization>
<address>
<postal>
<street>1201 North 800 East</street>
<city>Orem</city>
<region>UT</region>
<code>84097</code>
<country>US</country></postal>
<phone>+1 801 376 5083</phone>
<email>mday@vinca.com</email></address></author>
<date year='1999' month='June' />
<abstract>
<t>The Service Location Protocol provides a scalable framework for the discovery and selection of network services.  Using this protocol, computers using the Internet need little or no static configuration of network services for network based applications.  This is especially important as computers become more portable, and users
 less tolerant or able to fulfill the demands of network system administration.</t></abstract></front>

<seriesInfo name='RFC' value='2608' />
<format type='TXT' octets='129475' target='ftp://ftp.isi.edu/in-notes/rfc2608.txt' />
</reference>



<reference anchor='RFC2609'>
<front>
<title abbrev='Service Templates and URLs'>Service Templates and Service: Schemes</title>
<author initials='E.' surname='Guttman' fullname='Erik Guttman'>
<organization>Sun Microsystems</organization>
<address>
<postal>
<street>Bahnstr.  2</street>
<city>Waibstadt</city>
<region />
<code>74915</code>
<country>DE</country></postal>
<phone>+49 7263 911484</phone>
<facsimile>+1 650 786 5992</facsimile>
<email>erik.guttman@sun.com</email></address></author>
<author initials='C.' surname='Perkins' fullname='Charles E. Perkins'>
<organization>Sun Microsystems</organization>
<address>
<postal>
<street>15 Network Circle</street>
<city>Menlo Park</city>
<region>CA</region>
<code>94025</code>
<country>US</country></postal>
<phone>+1 650 786 6464</phone>
<facsimile>+1 650 786 6445</facsimile>
<email>cperkins@sun.com</email></address></author>
<author initials='J.' surname='Kempf' fullname='James Kempf'>
<organization>Sun Microsystems</organization>
<address>
<postal>
<street>15 Network Circle</street>
<city>Menlo Park</city>
<region>CA</region>
<code>94025</code>
<country>US</country></postal>
<phone>+1 650 786 5890</phone>
<facsimile>+1 650 786 6445</facsimile>
<email>james.kempf@sun.com</email></address></author>
<date year='1999' month='June' />
<abstract>
<t>The "service:" URL scheme name is used to define URLs (called "service: URLs" in this document) that are primarily intended to be used by the Service Location Protocol in order to distribute service access information.  These schemes provide an extensible framework for client-based network software to obtain configuration information required to make use of network services.  When registering a service: URL, the URL is accompanied by a set of well-defined attributes which define the service.  These attributes convey configuration information to client software, or service characteristics meaningful to end users.</t>
<t>This document describes a formal procedure for defining and standardizing new service types and attributes for use with the service:" scheme.  The formal descriptions of service types and attributes are templates that are human and machine understandable. They SHOULD be used by administrative tools to parse service
   registration information and by client applications to provide localized translations of service attribute strings.</t></abstract></front>

<seriesInfo name='RFC' value='2609' />
<format type='TXT' octets='72842' target='ftp://ftp.isi.edu/in-notes/rfc2609.txt' />
</reference>
</references>

<references title='Non-Normative References'>
<reference anchor="PEACH">
<front>
<title>Peaches and Peers</title>
<author initials='M.P.' surname='Pala' fullname='Massimiliano Pala'>
<organization>
Dartmouth College
</organization>
</author>
<author initials='S.W.S.' surname='Smith' fullname='Sean W. Smith'>
<organization>
Dartmouth College
</organization>
</author>
<date year='2008' month='June' />
<abstract>
<t>
In this paper we propose an extension to PRQP in order to distribute PRQP
messages over a Peer-to-Peer (P2P) network.
In this work we combine PRQP with Distributed Hash Tables (DHTs)
to efficiently distribute contents over a dynamic P2P overlay network.
Our work enhances interoperability between existing PKIs and allows for
easy configuration of applications, thus augmenting PKI technology usability.
</t>
</abstract>
</front>

<seriesInfo name='LNCS' value='5057' />
<format type='PDF' target='http://www.springerlink.com/content/2056p1g137723187/' />
</reference>

<reference anchor="W3C.xkms" target="http://www.w3.org/TR/xkms/">
  <front>
    <title>XML Key Management Specification (XKMS)</title>
    <author initials="W." surname="Ford" fullname="Warwick Ford">
      <organization>VeriSign</organization>
      <address>
        <email>wford@verisign.com</email>
      </address>
    </author>
    <author initials="P." surname="Hallam-Baker" fullname="Phillip Hallam-Baker">
      <organization>VeriSign</organization>
      <address>
        <email>pbaker@verisign.com</email>
      </address>
    </author>
    <author initials="B." surname="Fox" fullname="Barbara Fox">
      <organization>Microsoft</organization>
      <address>
        <email>bfox@EXCHANGE.MICROSOFT.com</email>
      </address>
    </author>
    <author initials="B." surname="Dillaway" fullname="Blair Dillaway">
      <organization>Microsoft</organization>
      <address>
        <email>blaird@microsoft.com</email>
      </address>
    </author>
    <author initials="B." surname="LaMacchia" fullname="Brian LaMacchia">
      <organization>Microsoft</organization>
      <address>
        <email>bal@microsoft.com</email>
      </address>
    </author>
    <author initials="J." surname="Epstein" fullname="Jeremy Epstein">
      <organization>webMethods</organization>
      <address>
        <email>jepstein@webmethods.com</email>
      </address>
    </author>
    <author initials="J." surname="Lapp" fullname="Joe Lapp">
      <organization>webMethods</organization>
      <address>
        <email>jlapp@webmethods.com</email>
      </address>
    </author>
    <date day="30" month="March" year="2001"/>
  </front>
  <seriesInfo value="xkms" name="W3C Note"/>
</reference>

<reference anchor='RFC4523'>

<front>
<title>Lightweight Directory Access Protocol (LDAP) Schema Definitions for X.509 Certificates</title>
<author initials='K.' surname='Zeilenga' fullname='K. Zeilenga'>
<organization /></author>
<date year='2006' month='June' />
<abstract>
<t>This document describes schema for representing X.509 certificates, X.521 security information, and related elements in directories accessible using the Lightweight Directory Access Protocol (LDAP).  The LDAP definitions for these X.509 and X.521 schema elements replace those provided in RFCs 2252 and 2256. [STANDARDS TRACK]</t></abstract></front>

<seriesInfo name='RFC' value='4523' />
<format type='TXT' octets='43753' target='ftp://ftp.isi.edu/in-notes/rfc4523.txt' />
</reference>


<reference anchor='W3C.REC-xkms2-20050628'
           target='http://www.w3.org/TR/2005/REC-xkms2-20050628'>
<front>
<title>XML Key Management Specification (XKMS 2.0)</title>

<author initials='S.' surname='Mysore' fullname='Shivaram H. Mysore'>
    <organization />
</author>

<author initials='P.' surname='Hallam-Baker' fullname='Phillip Hallam-Baker'>
    <organization />
</author>

<date month='June' day='28' year='2005' />
</front>

<seriesInfo name='World Wide Web Consortium Recommendation' value='REC-xkms2-20050628' />
<format type='HTML' target='http://www.w3.org/TR/2005/REC-xkms2-20050628' />
</reference>

<reference anchor='I-D.nourse-scep'>
<front>
<title>Cisco Systems' Simple Certificate Enrollment Protocol</title>

<author initials='X' surname='Liu' fullname='Xiaoyi Liu'>
    <organization />
</author>

<date month='June' day='26' year='2008' />

<abstract><t>This document specifies the Simple Certificate Enrollment Protocol, a PKI communication protocol which leverages existing technology by using PKCS#7 and PKCS#10.  SCEP is the evolution of the enrollment protocol developed by Verisign, Inc. for Cisco Systems, Inc. It now enjoys wide support in both client and CA implementations.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-nourse-scep-17' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-nourse-scep-17.txt' />
</reference>


</references>

<!-- Appendix A -->
<section anchor="app_A" title="Transport Protocol Specifications for PRQP Messages">

 <section anchor="http" title="PRQP over HTTP">
   <t>
   This section describes the formatting needed in order to route PRQP
   request and response over HTTP.
   </t>

   <section anchor="httpreq" title="Request">
   <t>
   HTTP based PRQP requests SHOULD use the POST method to submit their
   requests. Where privacy is a requirement, PRQP transactions
   exchanged using HTTP MAY be protected using either TLS/SSL or some
   other lower layer protocol.
   <vspace blankLines="1" />
   The required HTTP headers for the request are:
   <list style="symbols">
   <t>Content-Type</t>
   <t>Content-Transfer-Encoding</t>
   <t>Content-Length</t>
   </list>
   The Content-Type header SHOULD be set to "application/prqp-request".
   The Content-Transfer-Encoding SHOULD be set to "Binary", while the
   Content-Length SHOULD be set to the length (in bytes) of the body
   of the request. The body of the HTTP message MUST carry the binary
   value of the DER encoding of the PRQPRequest.
   </t>
   </section>

   <section anchor="httpresp" title="Response">
   <t>
   An HTTP-based PRQP response is composed of the appropriate HTTP
   headers, followed by the binary value of the DER encoding of the
   PRQPPResponse.
   <vspace blankLines="1" />
   The required HTTP headers for the response are:
   <list style="symbols">
   <t>Content-Type</t>
   <t>Content-Transfer-Encoding</t>
   <t>Content-Length</t>
   </list>
   The Content-Type header SHOULD be set to "application/prqp-response".
   The Content-Transfer-Encoding SHOULD be set to "Binary", while the
   Content-Length SHOULD be set to the length (in bytes) of the body
   of the request. The body of the HTTP message MUST carry the binary
   value of the DER encoding of the PRQPResponse.
   </t>
   </section>

   <section anchor="caching" title="Message Caching">
   <t>
   To minimize bandwidth usage, clients MUST locally cache authoritative
   PRQP responses for the validity period of the request. To enable
   proxy servers to be able to cache responses as well, additional HTTP
   headers MAY be used in the response.
   <vspace blankLines="1" />
   The PRQP responder MAY ease caching by setting the following headers:
   <list style="symbols">
   <t>date</t>
   <t>last-modified</t>
   <t>expires</t>
   </list>
   In particular, the date field SHOULD carry the date at which the HTTP
   response has been generated. The last-modified, instead, SHOULD bear the
   date at which the response has been modified. This field SHOULD carry
   the same date as the producedAt field of the PRQPResponse.
   The expires field SHOULD carry the date till when the response is to be
   considered valid. This field SHOULD carry the same date as in the
   nextUpdate field of the PRQPResponse.
   <vspace blankLines="1" />
   An example HTTP response would look like:
   </t>
   <figure>
      <artwork>
      HTTP/1.0 200 OK
      Content-Type: application/prqp-response
      Content-Transfer-Encoding: Binary
      Content-Length: 860
      Date: Thu, 03 May 2007 04:43:43 GMT
      Last-Modified: Thu, 03 May 2007 04:43:42 GMT
      Expires: Thu, 04 May 2007 04:43:42 GMT

      &lt;...response data...&gt;
      </artwork>
   </figure>
   <t>
   PRQP clients SHOULD NOT included a no-cache header in PRQP request 
   messages, unless the client encounters an expired response which may 
   be a result of an intermediate proxy caching stale data.
   </t>
   </section>

 </section>

 <section anchor="p2p" title="PRQP over Peer-to-Peer Network">
   <t>
   PRQP offers a starting point for the development of a PKI Resource
   Discovery Architecture where different RQAs cooperate to access data
   not locally available.
   <vspace blankLines="1" />
   One technology that already provides good results in data sharing is
   Peer-to-Peer (P2P) networking.
   <vspace blankLines="1" />
   Signed PRQP requests and responses can be routed also on existing P2P
   networks or a PRQP-specific network can be setup to provide a World
   Wide PKI Resources Discovery Architecture (PRDA), the definition of
   which is out of the scope of this document.
   An example of such an architecture is PEACH <xref target="PEACH" />
   </t>
 </section>
</section>
<!-- Appendix B -->
<section anchor="app_B" title="RQA address Retrieval">

 <section anchor="dhcp_rqa" title="DHCP Specifications">
   <t>
   This section describes the needed steps to distribute RQAs addresses
   by using DHCP extensions. In particular we define the DHCP option needed
   to identify an RQA server and we suggest options parsing for DHCP server
   and clients.
   </t>
   <section anchor="dhcp_pki_resource_query_authority_ipv4" title="PRQP Servers IPv4 Option for DHCPv4">
   <t>We define a prqp-servers option for DHCPv4 that specifies a list
   of Resource Query Authorities (PRQP servers) available to the client.
   The RQA address MUST be expressed as IPv4 addresses.
   Servers SHOULD be listed in order of preference and clients MUST treat
   the list of PRQP servers as an ordered list.
   </t>
   <t>
   The format for the prqp-servers option is as shown below:
   </t>

   <figure>
     <artwork>
     Code   Len  Address 1               Address 2
     +-----+-----+-----+-----+-----+-----+-----+--
     | TBD |  n  | a1  | a2  | a3  | a4  | a1  |  ...
     +-----+-----+-----+-----+-----+-----+-----+--
     </artwork>
   </figure>

   <t>
   The code for the pki resource query authority list option is TBD. The
   minimum length for this option is 1 octets.
   </t>
   </section>
   <section anchor="dhcp_pki_resource_query_authority_ipv6" title="PRQP Servers IPv6 Option for DHCPv6">
   <t>We define a prqp-servers option for DHCPv6 that specifies a list
   of Resource Query Authorities (PRQP servers) available to the client.
   The RQA address MUST be expressed as IPv6 addresses (128-bit).
   Servers SHOULD be listed in order of preference and clients MUST treat
   the list of PRQP servers as an ordered list.
   </t>
<!--
   <t>We define a pki resource query authority option that specifies a list
   of Resource Query Authorities servers available to the client.
   The RQA address SHOULD be expressed as host names which MAY be qualified
   with the local domain name.
   Servers SHOULD be listed in order of preference.
   </t>
-->
   <t>
   The format for the prqp-servers option is as follows:
   </t>

   <figure>
     <artwork>
     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |        OPTION_RQA_LIST        |         option-len            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    |                    PRQP server (IPv6 address)                 |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    |                    PRQP server (IPv6 address)                 |
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                              ...                              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    option-code:  OPTION_PRQP_SERVERS (TBD)

    option-len:   Length of the 'PRQP servers' field in octets; it must
                  be a multiple of 16

    PRQP server:  IPv6 address of Resource Query Authority (PRQP) Server
     </artwork>
   </figure>

   <t>
   The RQA address(es) specified in the 'PRQP server' MUST be encoded as
   IPv6 addresses.
<!-- as specified in <xref target="RFC3315" />. -->
   The code for the prqp-servers option for IPv6 is TBD. The
   minimum length for this option is 1 octets.
   </t>
   </section>
   <section anchor="dhcp_prqa_clients" title="DHCP Configuration">
   <t>
   As reported in <xref target="I-D.ietf-dhc-option-guidelines" />,
   one of the most deployed DHCP package is the ISC DHCP, mostly written by Ted Lemon in
   cooperation with Nominum, Inc. and now maintained by Internet Systems Consortium, Inc. ("ISC").
   In order to provide developers and system administrators with deployment guidelines,
   we provide example configurations for both the server and the client.
   </t>
   <t>
   Below is a sample configuration for the pki resource query authorities option that can
   be added both the dhclient.conf (on clients) and dhcpd.conf (on servers) for IPv4:
   </t>

     <figure>
       <artwork>
     option prqp-servers code TBD = array of ip-address;
       </artwork>
     </figure>
   
   <t>
   If your environment supports IPv6, you should provide the option as a list of IPv6
   addresses as follows:
   </t>

     <figure>
       <artwork>
     option prqp-servers code TBD = array of ipv6-address;
       </artwork>
     </figure>
   
   <t>
   In addition to this, in order for the server to pass on the configuration to the
   clients, the following example configuration options could be used in the server's
   configuration file (typically /etc/dhcpd.conf):
   </t>

     <figure>
       <artwork>
     ...
     subnet XXX.XXX.XXX.XXX netmask YYY.YYY.YYY.YYY {
          ...
          option prqp-servers   rqa.openca.org,
                                rqa3.dartmouth.edu,
                                rqa5.mydomain.org;
     }
     ...
       </artwork>
     </figure>
 
   </section>

   <section anchor="dhcp_client_processing" title="DHCP Client Processing">
   <t>
   In order to provide applications deriving their configuration parameters from values
   provided by this DHCP option, the dhcp client needs to format the on-the-wire
   bits in a more digestible one.
   In particular for the "prqp-servers" option, a configuration file should be
   created as:
   <figure>
     <artwork>
       /etc/pki.conf
     </artwork>
   </figure>
   where the list of addresses can be stored. An example
   of such a file is reported below:
   </t>
     <figure>
       <artwork>
       queryauthority rqa.openca.org
       queryauthority rqa3.dartmouth.edu
       queryauthority 127.0.0.1
       </artwork>
     </figure>
   <t>
   where each line has the format:
   </t>
     <figure>
       <artwork>
       queryauthority &lt;ADDRESS&gt;
       </artwork>
     </figure>

   </section>
   </section>

   <section anchor="dns_rqa" title="DNS SRV Records">
   <t>
   This section describes the needed steps to distribute RQAs addresses
   by using DNS SRV records. In particular we define the format to use
   for the SRV records. As an example we also provide a sample zone file.
   </t>
   <section anchor="dns_rqa_config" title="SRV Record Format for PRQP">
   <t>
   The format for DNS SRV records MUST be compliant with 
   <xref target="RFC2782" />. In particular, in order to support PRQP, a
   DNS server MUST use the following:
   </t>
   <figure>
     <artwork>
   _Service._Proto.Name TTL Class SRV Priority Weight Port Target
     </artwork>
   </figure>
   <t>
   Where:
   <list style="symbols">
    <t>
    Service is the symbolic name of the desired service. This field
    MUST be set to "rqa"
    </t>
    <t>
    Proto is the symbolic name of the protocol to be used. This field 
    MUST be set to "_tcp"
    </t>
    <t>
    Name is the domain this RR refers to, i.e. the hostname of the RQA
    server
    </t>
    <t>
    TTL has the standard DNS meaning, refer to <xref target="RFC1035" />
    for more information.
    </t>
    <t>
    Class has Standard DNS meaning <xref target="RFC1035" />. This field
    MUST be set to "IN"
    </t>
    <t>
    Priority is the priority of this target host. The allowed range of
    values is 0-65535 (16 bit unsigned integer in network byte order).
    </t>
    <t>
     Weight is used for server selection mechanism. The weight field
     specifies a relative weight for entries with the same priority. The
     allowed range of values is 0-65535 (16 bit unsigned integer in
     network byte order). A more detailed description of the Weight usage
     can be found in <xref target="RFC2782" />.
    </t>
    </list>
    </t>
   </section>

   <section anchor="dns_rqa_zone" title="Example: PRQP enabled zone file">
   <t>
   In this section we provide a sample zone file for the domain .openca.org.
   In this example we configure service records for three different RQAs.
   </t>
   <figure>
     <artwork>
      $ORIGIN openca.org.
      @               SOA server.openca.org. root.openca.org. (
                          1995032001 3600 3600 604800 86400 )
                   NS  server.openca.org.
                   NS  ns1.ip-provider.net.
                   NS  ns2.ip-provider.net.
      ; first two rqa server lines, they have the same priority,
      ; but different weight
      _rqa._tcp    SRV 0  1 830 rqa.openca.org.
                   SRV 0  3 830 rqa2.openca.org.
      ; last chance - lower priority because it is a very slow box
                   SRV 10 0 830 rqa-slow.openca.org.
      rqa          A   129.170.214.89
      rqa2         A   129.170.212.31
      rqa-slow     A   64.233.167.99
      ; NO other services are supported
      *._tcp       SRV  0 0 0 .
      *._udp       SRV  0 0 0 .
     </artwork>
   </figure>
   </section>
 </section>
</section>

<!-- Appendix C -->
<section anchor="ans1" title="PRQP ASN1.1 Specification">
<figure>
<artwork>
PRQP DEFINITIONS EXPLICIT TAGS ::=

BEGIN

-- EXPORTS ALL --

IMPORTS

      -- Directory Authentication Framework (X.509)
            Certificate, AlgorithmIdentifier
            FROM AuthenticationFramework { joint-iso-itu-t ds(5)
                     module(1) authenticationFramework(7) 3 }


      --  PKIX Certificate Extensions
            AuthorityKeyIdentifier, SubjectKeyIdentifier, KeyIdentifier,
          FROM PKIX1Implicit88 {iso(1) identified-organization(3)
                  dod(6) internet(1) security(5) mechanisms(5) pkix(7)
                  id-mod(0) id-pkix1-implicit-88(2)}


             CertificateSerialNumber, Extensions, id-kp, id-ad-prqp 
          FROM PKIX1Explicit88 {iso(1) identified-organization(3)
                  dod(6) internet(1) security(5) mechanisms(5) pkix(7)
                  id-mod(0) id-pkix1-explicit-88(1)};


    PRQPRequest ::= SEQUENCE {
        requestData            TBSReqData,
        signature              [0] EXPLICIT Signature OPTIONAL }

    TBSReqData ::= SEQUENCE {
        version                INTEGER { v(1) },
        nonce              [0] INTEGER              OPTIONAL,
              -- very large number
        producedAt             GeneralizedTime,
              -- time when the request has been generated
        serviceToken           ResourceRequestToken,
              -- token identifying the requested service
        extensions         [1] IMPLICIT Extensions  OPTIONAL }

    ResourceRequestToken ::= SEQUENCE {
        ca                      CertIdentifier,
        servicesList        [0] SET OF ResourceIdentifier OPTIONAL }

      BasicCertIdentifier ::= SEQUENCE {
        issuerNameHash              OCTET STRING,
        serialNumber                CertificateSerialNumber  }

      ExtenderCertInfo ::= SEQUENCE {
        certificateHash             OCTET STRING,
        subjectKeyHash              OCTET STRING,
        subjectKeyIdentifier    [0] KeyIdentifier          OPTIONAL,
        issuerKeyIdentifier     [1] KeyIdentifier          OPTIONAL  }

      CertIdentifier ::= SEQUENCE {
        hashAlgorithm               AlgorithmIdentifier,
        basicCertIdentifier         BasicCertIdentifier,
        extInfo                     [0] ExtendedCertInfo    OPTIONAL,
        caCertificate               [1] Certificate         OPTIONAL,
        issuedCertificate           [2] Certificate         OPTIONAL }

    
      ResourceIdentifier ::= SEQUENCE {
        resourceId             OBJECT IDENTIFIER,
        version            [0] INTEGER             OPTIONAL
          --- version of the protocol or data format (if applicable) }


    PRQPResponse ::= SEQUENCE {
        respData               TBSRespData,
        signature          [0] EXPLICIT Signature OPTIONAL           }
        
        
    TBSRespData ::= SEQUENCE {
        version                INTEGER { v(1)},
        nonce                  INTEGER              OPTIONAL,
              -- as duplicated from the request
        producedAt             GeneralizedTime,
              -- time when the response has been generated
        nextUpdate         [0] GeneralizedTime      OPTIONAL,
              -- time till when the response should be considered 
              -- valid
        pkiStatus              PKIStatusInfo,
              -- status of the response
        caCertId               CertIdentifier,
              -- identifier of the CA the targeted certificate is
              -- issued from
        responseToken          SEQUENCE OF ResourceResponseToken 
                                                             OPTIONAL,
              -- token carrying information about
              -- requested services
        extensions         [0] EXPLICIT Extensions  OPTIONAL }


    PKIStatusInfo ::= SEQUENCE {
        status        PKIStatus,
        statusString  [0] UTF8String     OPTIONAL,
        failInfo      [1] PKIFailureInfo  OPTIONAL  }


    PKIStatus ::= INTEGER {
        ok                     (0),
           -- when the PKIStatus contains the value zero one or 
              more responseToken is present
        badRequest             (1),
           -- the request is badly formatted
        caNotPresent           (2),
           -- the requested CA is not present
        systemFailure          (3)
           -- a system failure has occourred }


    Signature ::= SEQUENCE {
        signatureAlgorithm     AlgorithmIdentifier,
        signature              BIT STRING,
        certs              [0] EXPLICIT SEQUENCE OF Certificate 
                                                          OPTIONAL }

    ResourceResponseToken ::= SEQUENCE {
        resourceId              OBJECT IDENTIFIER,
           --- resource identifier
        resourceLocatorList [0] EXPLICIT SEQUENCE OF IA5String,
            --- sequence of resource locators (URI)
        version             [1] INTEGER             OPTIONAL,
            --- version of the protocol or data format (if applicable)
        resourceInfo        [2] UTF8Sting           OPTIONAL,
            --- additional service Info (eg. technical contacts) }


-- Object Identifiers
   
id-kp-PRQPSigning       OBJECT IDENTIFIER ::= { id-kp 10 }
id-prqp                 OBJECT IDENTIFIER ::= { id-pkix 23 }
id-prqp-pta             OBJECT IDENTIFIER ::= { id-prqp 1 }


id-ad-prqp                    OBJECT IDENTIFIER ::= {id-ad 12 }
id-ad-prqp-rqa                OBJECT IDENTIFIER ::= {id-ad-prqp 0}
id-ad-prqp-ocsp               OBJECT IDENTIFIER ::= {id-ad-prqp 1}
id-ad-prqp-issuerCert         OBJECT IDENTIFIER ::= {id-ad-prqp 2}
id-ad-prqp-timestamping       OBJECT IDENTIFIER ::= {id-ad-prqp 3}
id-ad-prqp-scvp               OBJECT IDENTIFIER ::= {id-ad-prqp 4}
id-ad-prqp-crlDistribution    OBJECT IDENTIFIER ::= {id-ad-prqp 5}
id-ad-prqp-certRepository     OBJECT IDENTIFIER ::= {id-ad-prqp 6}
id-ad-prqp-crlRepository      OBJECT IDENTIFIER ::= {id-ad-prqp 7}
id-ad-prqp-crossCertRepository OBJECT IDENTIFIER ::= {id-ad-prqp 8}
id-ad-prqp-cmsGateway         OBJECT IDENTIFIER ::= {id-ad-prqp 10}
id-ad-prqp-scepGateway        OBJECT IDENTIFIER ::= {id-ad-prqp 11}
id-ad-prqp-htmlGateway        OBJECT IDENTIFIER ::= {id-ad-prqp 12}
id-ad-prqp-xkmsGateway        OBJECT IDENTIFIER ::= {id-ad-prqp 13}
id-ad-prqp-certPolicy         OBJECT IDENTIFIER ::= {id-ad-prqp 20}
id-ad-prqp-certPracticesStatement OBJECT IDENTIFIER ::= {id-ad-prqp 21}
id-ad-prqp-endorsedTA         OBJECT IDENTIFIER ::= {id-ad-prqp 22}
id-ad-prqp-loaPolicy          OBJECT IDENTIFIER ::= {id-ad-prqp 25}
id-ad-prqp-certLOALevel       OBJECT IDENTIFIER ::= {id-ad-prqp 26}
id-ad-prqp-htmlRequestCertificate OBJECT IDENTIFIER ::= {id-ad-prqp 30}
id-ad-prqp-htmlRevokeCertificate OBJECT IDENTIFIER ::= {id-ad-prqp 31}
id-ad-prqp-htmlRenewCertificate OBJECT IDENTIFIER ::= {id-ad-prqp 32}
id-ad-prqp-htmlSuspendCertificate OBJECT IDENTIFIER ::= {id-ad-prqp 33}
id-ad-prqp-tampUpdate         OBJECT IDENTIFIER ::= {id-ad-prqp 70}
id-ad-prqp-caIncidentReport   OBJECT IDENTIFIER ::= {id-ad-prqp 90}
id-ad-prqp-private            OBJECT IDENTIFIER ::= {id-ad-prqp 100}

</artwork>
</figure>
</section>
</back>
</rfc>

<!--
id-ad-prqp-grid-accreditationBody
                                OBJECT IDENTIFIER ::= {id-ad-prqp 50}
          --- CA Accreditation Body(s)
  id-ad-prqp-grid-accreditationPolicy 
                                OBJECT IDENTIFIER ::= {id-ad-prqp 51}
          --- CA Accreditation Policy Document(s)
  id-ad-prqp-grid-accreditationStatus 
                                OBJECT IDENTIFIER ::= {id-ad-prqp 52}
          --- CA Accreditation Status Document(s)
  id-ad-prqp-grid-commonDistributionUpdate 
                                OBJECT_IDENTIFIER ::= {id-ad-prqp 53}
          --- Grid Distribution Package(s)
  id-ad-prqp-grid-accreditedCACerts 
                                OBJECT IDENTIFIER ::= {id-ad-prqp 54}
          --- Certificates of Currently Accredited CAs
-->

