home *** CD-ROM | disk | FTP | other *** search
/ Internet Core Protocols / Oreilly-InternetCoreProtocols.iso / RFCs / rfc2560.txt < prev    next >
Encoding:
Text File  |  1999-10-14  |  43.5 KB  |  1,292 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                           M. Myers
  8. Request for Comments: 2560                                      VeriSign
  9. Category: Standards Track                                      R. Ankney
  10.                                                                   CertCo
  11.                                                               A. Malpani
  12.                                                                 ValiCert
  13.                                                              S. Galperin
  14.                                                                   My CFO
  15.                                                                 C. Adams
  16.                                                     Entrust Technologies
  17.                                                                June 1999
  18.  
  19.  
  20.                 X.509 Internet Public Key Infrastructure
  21.                Online Certificate Status Protocol - OCSP
  22.  
  23. Status of this Memo
  24.  
  25.    This document specifies an Internet standards track protocol for the
  26.    Internet community, and requests discussion and suggestions for
  27.    improvements.  Please refer to the current edition of the "Internet
  28.    Official Protocol Standards" (STD 1) for the standardization state
  29.    and status of this protocol.  Distribution of this memo is unlimited.
  30.  
  31. Copyright Notice
  32.  
  33.    Copyright (C) The Internet Society (1999).  All Rights Reserved.
  34.  
  35. 1.  Abstract
  36.  
  37.    This document specifies a protocol useful in determining the current
  38.    status of a digital certificate without requiring CRLs. Additional
  39.    mechanisms addressing PKIX operational requirements are specified in
  40.    separate documents.
  41.  
  42.    An overview of the protocol is provided in section 2. Functional
  43.    requirements are specified in section 4. Details of the protocol are
  44.    in section 5. We cover security issues with the protocol in section
  45.    6. Appendix A defines OCSP over HTTP, appendix B accumulates ASN.1
  46.    syntactic elements and appendix C specifies the mime types for the
  47.    messages.
  48.  
  49.    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
  50.    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
  51.    document (in uppercase, as shown) are to be interpreted as described
  52.    in [RFC2119].
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Myers, et al.               Standards Track                     [Page 1]
  59.  
  60. RFC 2560                       PKIX OCSP                       June 1999
  61.  
  62.  
  63. 2.  Protocol Overview
  64.  
  65.    In lieu of or as a supplement to checking against a periodic CRL, it
  66.    may be necessary to obtain timely information regarding the
  67.    revocation status of a certificate (cf. [RFC2459], Section 3.3).
  68.    Examples include high-value funds transfer or large stock trades.
  69.  
  70.    The Online Certificate Status Protocol (OCSP) enables applications to
  71.    determine the (revocation) state of an identified certificate. OCSP
  72.    may be used to satisfy some of the operational requirements of
  73.    providing more timely revocation information than is possible with
  74.    CRLs and may also be used to obtain additional status information. An
  75.    OCSP client issues a status request to an OCSP responder and suspends
  76.    acceptance of the certificate in question until the responder
  77.    provides a response.
  78.  
  79.    This protocol specifies the data that needs to be exchanged between
  80.    an application checking the status of a certificate and the server
  81.    providing that status.
  82.  
  83. 2.1  Request
  84.  
  85.    An OCSP request contains the following data:
  86.  
  87.    -- protocol version
  88.    -- service request
  89.    -- target certificate identifier
  90.    -- optional extensions which MAY be processed by the OCSP Responder
  91.  
  92.    Upon receipt of a request, an OCSP Responder determines if:
  93.  
  94.    1. the message is well formed
  95.  
  96.    2. the responder is configured to provide the requested service and
  97.  
  98.    3. the request contains the information needed by the responder If
  99.    any one of the prior conditions are not met, the OCSP responder
  100.    produces an error message; otherwise, it returns a definitive
  101.    response.
  102.  
  103. 2.2  Response
  104.  
  105.    OCSP responses can be of various types.  An OCSP response consists of
  106.    a response type and the bytes of the actual response. There is one
  107.    basic type of OCSP response that MUST be supported by all OCSP
  108.    servers and clients. The rest of this section pertains only to this
  109.    basic response type.
  110.  
  111.  
  112.  
  113.  
  114. Myers, et al.               Standards Track                     [Page 2]
  115.  
  116. RFC 2560                       PKIX OCSP                       June 1999
  117.  
  118.  
  119.    All definitive response messages SHALL be digitally signed. The key
  120.    used to sign the response MUST belong to one of the following:
  121.  
  122.    -- the CA who issued the certificate in question
  123.    -- a Trusted Responder whose public key is trusted by the requester
  124.    -- a CA Designated Responder (Authorized Responder) who holds a
  125.       specially marked certificate issued directly by the CA, indicating
  126.       that the responder may issue OCSP responses for that CA
  127.  
  128.    A definitive response message is composed of:
  129.  
  130.    -- version of the response syntax
  131.    -- name of the responder
  132.    -- responses for each of the certificates in a request
  133.    -- optional extensions
  134.    -- signature algorithm OID
  135.    -- signature computed across hash of the response
  136.  
  137.    The response for each of the certificates in a request consists of
  138.  
  139.    -- target certificate identifier
  140.    -- certificate status value
  141.    -- response validity interval
  142.    -- optional extensions
  143.  
  144.    This specification defines the following definitive response
  145.    indicators for use in the certificate status value:
  146.  
  147.    -- good
  148.    -- revoked
  149.    -- unknown
  150.  
  151.    The "good" state indicates a positive response to the status inquiry.
  152.    At a minimum, this positive response indicates that the certificate
  153.    is not revoked, but does not necessarily mean that the certificate
  154.    was ever issued or that the time at which the response was produced
  155.    is within the certificate's validity interval. Response extensions
  156.    may be used to convey additional information on assertions made by
  157.    the responder regarding the status of the certificate such as
  158.    positive statement about issuance, validity, etc.
  159.  
  160.    The "revoked" state indicates that the certificate has been revoked
  161.    (either permanantly or temporarily (on hold)).
  162.  
  163.    The "unknown" state indicates that the responder doesn't know about
  164.    the certificate being requested.
  165.  
  166.  
  167.  
  168.  
  169.  
  170. Myers, et al.               Standards Track                     [Page 3]
  171.  
  172. RFC 2560                       PKIX OCSP                       June 1999
  173.  
  174.  
  175. 2.3  Exception Cases
  176.  
  177.    In case of errors, the OCSP Responder may return an error message.
  178.    These messages are not signed. Errors can be of the following types:
  179.  
  180.    -- malformedRequest
  181.    -- internalError
  182.    -- tryLater
  183.    -- sigRequired
  184.    -- unauthorized
  185.  
  186.    A server produces the "malformedRequest" response if the request
  187.    received does not conform to the OCSP syntax.
  188.  
  189.    The response "internalError" indicates that the OCSP responder
  190.    reached an inconsistent internal state. The query should be retried,
  191.    potentially with another responder.
  192.  
  193.    In the event that the OCSP responder is operational, but unable to
  194.    return a status for the requested certificate, the "tryLater"
  195.    response can be used to indicate that the service exists, but is
  196.    temporarily unable to respond.
  197.  
  198.    The response "sigRequired" is returned in cases where the server
  199.    requires the client sign the request in order to construct a
  200.    response.
  201.  
  202.    The response "unauthorized" is returned in cases where the client is
  203.    not authorized to make this query to this server.
  204.  
  205. 2.4  Semantics of thisUpdate, nextUpdate and producedAt
  206.  
  207.    Responses can contain three times in them - thisUpdate, nextUpdate
  208.    and producedAt. The semantics of these fields are:
  209.  
  210.    - thisUpdate: The time at which the status being indicated is known
  211.                  to be correct
  212.    - nextUpdate: The time at or before which newer information will be
  213.                  available about the status of the certificate
  214.    - producedAt: The time at which the OCSP responder signed this
  215.                  response.
  216.  
  217.    If nextUpdate is not set, the responder is indicating that newer
  218.    revocation information is available all the time.
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Myers, et al.               Standards Track                     [Page 4]
  227.  
  228. RFC 2560                       PKIX OCSP                       June 1999
  229.  
  230.  
  231. 2.5  Response Pre-production
  232.  
  233.    OCSP responders MAY pre-produce signed responses specifying the
  234.    status of certificates at a specified time. The time at which the
  235.    status was known to be correct SHALL be reflected in the thisUpdate
  236.    field of the response. The time at or before which newer information
  237.    will be available is reflected in the nextUpdate field, while the
  238.    time at which the response was produced will appear in the producedAt
  239.    field of the response.
  240.  
  241. 2.6  OCSP Signature Authority Delegation
  242.  
  243.    The key that signs a certificate's status information need not be the
  244.    same key that signed the certificate. A certificate's issuer
  245.    explicitly delegates OCSP signing authority by issuing a certificate
  246.    containing a unique value for extendedKeyUsage in the OCSP signer's
  247.    certificate. This certificate MUST be issued directly to the
  248.    responder by the cognizant CA.
  249.  
  250. 2.7  CA Key Compromise
  251.  
  252.    If an OCSP responder knows that a particular CA's private key has
  253.    been compromised, it MAY return the revoked state for all
  254.    certificates issued by that CA.
  255.  
  256. 3.  Functional Requirements
  257.  
  258. 3.1  Certificate Content
  259.  
  260.    In order to convey to OCSP clients a well-known point of information
  261.    access, CAs SHALL provide the capability to include the
  262.    AuthorityInfoAccess extension (defined in [RFC2459], section 4.2.2.1)
  263.    in certificates that can be checked using OCSP.  Alternatively, the
  264.    accessLocation for the OCSP provider may be configured locally at the
  265.    OCSP client.
  266.  
  267.    CAs that support an OCSP service, either hosted locally or provided
  268.    by an Authorized Responder, MUST provide for the inclusion of a value
  269.    for a uniformResourceIndicator (URI) accessLocation and the OID value
  270.    id-ad-ocsp for the accessMethod in the AccessDescription SEQUENCE.
  271.  
  272.    The value of the accessLocation field in the subject certificate
  273.    defines the transport (e.g. HTTP) used to access the OCSP responder
  274.    and may contain other transport dependent information (e.g. a URL).
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Myers, et al.               Standards Track                     [Page 5]
  283.  
  284. RFC 2560                       PKIX OCSP                       June 1999
  285.  
  286.  
  287. 3.2  Signed Response Acceptance Requirements
  288.  
  289.    Prior to accepting a signed response as valid, OCSP clients SHALL
  290.    confirm that:
  291.  
  292.    1. The certificate identified in a received response corresponds to
  293.    that which was identified in the corresponding request;
  294.  
  295.    2. The signature on the response is valid;
  296.  
  297.    3. The identity of the signer matches the intended recipient of the
  298.    request.
  299.  
  300.    4. The signer is currently authorized to sign the response.
  301.  
  302.    5. The time at which the status being indicated is known to be
  303.    correct (thisUpdate) is sufficiently recent.
  304.  
  305.    6. When available, the time at or before which newer information will
  306.    be available about the status of the certificate (nextUpdate) is
  307.    greater than the current time.
  308.  
  309. 4.  Detailed Protocol
  310.  
  311.    The ASN.1 syntax imports terms defined in [RFC2459]. For signature
  312.    calculation, the data to be signed is encoded using the ASN.1
  313.    distinguished encoding rules (DER) [X.690].
  314.  
  315.    ASN.1 EXPLICIT tagging is used as a default unless specified
  316.    otherwise.
  317.  
  318.    The terms imported from elsewhere are: Extensions,
  319.    CertificateSerialNumber, SubjectPublicKeyInfo, Name,
  320.    AlgorithmIdentifier, CRLReason
  321.  
  322. 4.1  Requests
  323.  
  324.    This section specifies the ASN.1 specification for a confirmation
  325.    request. The actual formatting of the message could vary depending on
  326.    the transport mechanism used (HTTP, SMTP, LDAP, etc.).
  327.  
  328. 4.1.1  Request Syntax
  329.  
  330.    OCSPRequest     ::=     SEQUENCE {
  331.        tbsRequest                  TBSRequest,
  332.        optionalSignature   [0]     EXPLICIT Signature OPTIONAL }
  333.  
  334.    TBSRequest      ::=     SEQUENCE {
  335.  
  336.  
  337.  
  338. Myers, et al.               Standards Track                     [Page 6]
  339.  
  340. RFC 2560                       PKIX OCSP                       June 1999
  341.  
  342.  
  343.        version             [0]     EXPLICIT Version DEFAULT v1,
  344.        requestorName       [1]     EXPLICIT GeneralName OPTIONAL,
  345.        requestList                 SEQUENCE OF Request,
  346.        requestExtensions   [2]     EXPLICIT Extensions OPTIONAL }
  347.  
  348.    Signature       ::=     SEQUENCE {
  349.        signatureAlgorithm      AlgorithmIdentifier,
  350.        signature               BIT STRING,
  351.        certs               [0] EXPLICIT SEQUENCE OF Certificate
  352.    OPTIONAL}
  353.  
  354.    Version         ::=             INTEGER  {  v1(0) }
  355.  
  356.    Request         ::=     SEQUENCE {
  357.        reqCert                     CertID,
  358.        singleRequestExtensions     [0] EXPLICIT Extensions OPTIONAL }
  359.  
  360.    CertID          ::=     SEQUENCE {
  361.        hashAlgorithm       AlgorithmIdentifier,
  362.        issuerNameHash      OCTET STRING, -- Hash of Issuer's DN
  363.        issuerKeyHash       OCTET STRING, -- Hash of Issuers public key
  364.        serialNumber        CertificateSerialNumber }
  365.  
  366.    issuerNameHash is the hash of the Issuer's distinguished name. The
  367.    hash shall be calculated over the DER encoding of the issuer's name
  368.    field in the certificate being checked. issuerKeyHash is the hash of
  369.    the Issuer's public key. The hash shall be calculated over the value
  370.    (excluding tag and length) of the subject public key field in the
  371.    issuer's certificate. The hash algorithm used for both these hashes,
  372.    is identified in hashAlgorithm. serialNumber is the serial number of
  373.    the certificate for which status is being requested.
  374.  
  375. 4.1.2  Notes on the Request Syntax
  376.  
  377.    The primary reason to use the hash of the CA's public key in addition
  378.    to the hash of the CA's name, to identify the issuer, is that it is
  379.    possible that two CAs may choose to use the same Name (uniqueness in
  380.    the Name is a recommendation that cannot be enforced). Two CAs will
  381.    never, however, have the same public key unless the CAs either
  382.    explicitly decided to share their private key, or the key of one of
  383.    the CAs was compromised.
  384.  
  385.    Support for any specific extension is OPTIONAL. The critical flag
  386.    SHOULD NOT be set for any of them.  Section 4.4 suggests several
  387.    useful extensions.  Additional extensions MAY be defined in
  388.    additional RFCs. Unrecognized extensions MUST be ignored (unless they
  389.    have the critical flag set and are not understood).
  390.  
  391.  
  392.  
  393.  
  394. Myers, et al.               Standards Track                     [Page 7]
  395.  
  396. RFC 2560                       PKIX OCSP                       June 1999
  397.  
  398.  
  399.    The requestor MAY choose to sign the OCSP request. In that case, the
  400.    signature is computed over the tbsRequest structure. If the request
  401.    is signed, the requestor SHALL specify its name in the requestorName
  402.    field. Also, for signed requests, the requestor MAY include
  403.    certificates that help the OCSP responder verify the requestor's
  404.    signature in the certs field of Signature.
  405.  
  406. 4.2  Response Syntax
  407.  
  408.    This section specifies the ASN.1 specification for a confirmation
  409.    response. The actual formatting of the message could vary depending
  410.    on the transport mechanism used (HTTP, SMTP, LDAP, etc.).
  411.  
  412. 4.2.1  ASN.1 Specification of the OCSP Response
  413.  
  414.    An OCSP response at a minimum consists of a responseStatus field
  415.    indicating the processing status of the prior request. If the value
  416.    of responseStatus is one of the error conditions, responseBytes are
  417.    not set.
  418.  
  419.    OCSPResponse ::= SEQUENCE {
  420.       responseStatus         OCSPResponseStatus,
  421.       responseBytes          [0] EXPLICIT ResponseBytes OPTIONAL }
  422.  
  423.    OCSPResponseStatus ::= ENUMERATED {
  424.        successful            (0),  --Response has valid confirmations
  425.        malformedRequest      (1),  --Illegal confirmation request
  426.        internalError         (2),  --Internal error in issuer
  427.        tryLater              (3),  --Try again later
  428.                                    --(4) is not used
  429.        sigRequired           (5),  --Must sign the request
  430.        unauthorized          (6)   --Request unauthorized
  431.    }
  432.  
  433.    The value for responseBytes consists of an OBJECT IDENTIFIER and a
  434.    response syntax identified by that OID encoded as an OCTET STRING.
  435.  
  436.    ResponseBytes ::=       SEQUENCE {
  437.        responseType   OBJECT IDENTIFIER,
  438.        response       OCTET STRING }
  439.  
  440.    For a basic OCSP responder, responseType will be id-pkix-ocsp-basic.
  441.  
  442.    id-pkix-ocsp           OBJECT IDENTIFIER ::= { id-ad-ocsp }
  443.    id-pkix-ocsp-basic     OBJECT IDENTIFIER ::= { id-pkix-ocsp 1 }
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Myers, et al.               Standards Track                     [Page 8]
  451.  
  452. RFC 2560                       PKIX OCSP                       June 1999
  453.  
  454.  
  455.    OCSP responders SHALL be capable of producing responses of the id-
  456.    pkix-ocsp-basic response type. Correspondingly, OCSP clients SHALL be
  457.    capable of receiving and processing responses of the id-pkix-ocsp-
  458.    basic response type.
  459.  
  460.    The value for response SHALL be the DER encoding of
  461.    BasicOCSPResponse.
  462.  
  463.    BasicOCSPResponse       ::= SEQUENCE {
  464.       tbsResponseData      ResponseData,
  465.       signatureAlgorithm   AlgorithmIdentifier,
  466.       signature            BIT STRING,
  467.       certs                [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL }
  468.  
  469.    The value for signature SHALL be computed on the hash of the DER
  470.    encoding ResponseData.
  471.  
  472.    ResponseData ::= SEQUENCE {
  473.       version              [0] EXPLICIT Version DEFAULT v1,
  474.       responderID              ResponderID,
  475.       producedAt               GeneralizedTime,
  476.       responses                SEQUENCE OF SingleResponse,
  477.       responseExtensions   [1] EXPLICIT Extensions OPTIONAL }
  478.  
  479.    ResponderID ::= CHOICE {
  480.       byName               [1] Name,
  481.       byKey                [2] KeyHash }
  482.  
  483.    KeyHash ::= OCTET STRING -- SHA-1 hash of responder's public key
  484.    (excluding the tag and length fields)
  485.  
  486.    SingleResponse ::= SEQUENCE {
  487.       certID                       CertID,
  488.       certStatus                   CertStatus,
  489.       thisUpdate                   GeneralizedTime,
  490.       nextUpdate         [0]       EXPLICIT GeneralizedTime OPTIONAL,
  491.       singleExtensions   [1]       EXPLICIT Extensions OPTIONAL }
  492.  
  493.    CertStatus ::= CHOICE {
  494.        good        [0]     IMPLICIT NULL,
  495.        revoked     [1]     IMPLICIT RevokedInfo,
  496.        unknown     [2]     IMPLICIT UnknownInfo }
  497.  
  498.    RevokedInfo ::= SEQUENCE {
  499.        revocationTime              GeneralizedTime,
  500.        revocationReason    [0]     EXPLICIT CRLReason OPTIONAL }
  501.  
  502.    UnknownInfo ::= NULL -- this can be replaced with an enumeration
  503.  
  504.  
  505.  
  506. Myers, et al.               Standards Track                     [Page 9]
  507.  
  508. RFC 2560                       PKIX OCSP                       June 1999
  509.  
  510.  
  511. 4.2.2  Notes on OCSP Responses
  512.  
  513. 4.2.2.1  Time
  514.  
  515.    The thisUpdate and nextUpdate fields define a recommended validity
  516.    interval. This interval corresponds to the {thisUpdate, nextUpdate}
  517.    interval in CRLs. Responses whose nextUpdate value is earlier than
  518.    the local system time value SHOULD be considered unreliable.
  519.    Responses whose thisUpdate time is later than the local system time
  520.    SHOULD be considered unreliable. Responses where the nextUpdate value
  521.    is not set are equivalent to a CRL with no time for nextUpdate (see
  522.    Section 2.4).
  523.  
  524.    The producedAt time is the time at which this response was signed.
  525.  
  526. 4.2.2.2  Authorized Responders
  527.  
  528.    The key that signs a certificate's status information need not be the
  529.    same key that signed the certificate. It is necessary however to
  530.    ensure that the entity signing this information is authorized to do
  531.    so.  Therefore, a certificate's issuer MUST either sign the OCSP
  532.    responses itself or it MUST explicitly designate this authority to
  533.    another entity.  OCSP signing delegation SHALL be designated by the
  534.    inclusion of id-kp-OCSPSigning in an extendedKeyUsage certificate
  535.    extension included in the OCSP response signer's certificate.  This
  536.    certificate MUST be issued directly by the CA that issued the
  537.    certificate in question.
  538.  
  539.    id-kp-OCSPSigning OBJECT IDENTIFIER ::= {id-kp 9}
  540.  
  541.    Systems or applications that rely on OCSP responses MUST be capable
  542.    of detecting and enforcing use of the id-ad-ocspSigning value as
  543.    described above. They MAY provide a means of locally configuring one
  544.    or more OCSP signing authorities, and specifying the set of CAs for
  545.    which each signing authority is trusted. They MUST reject the
  546.    response if the certificate required to validate the signature on the
  547.    response fails to meet at least one of the following criteria:
  548.  
  549.    1. Matches a local configuration of OCSP signing authority for the
  550.    certificate in question; or
  551.  
  552.    2. Is the certificate of the CA that issued the certificate in
  553.    question; or
  554.  
  555.    3. Includes a value of id-ad-ocspSigning in an ExtendedKeyUsage
  556.    extension and is issued by the CA that issued the certificate in
  557.    question."
  558.  
  559.  
  560.  
  561.  
  562. Myers, et al.               Standards Track                    [Page 10]
  563.  
  564. RFC 2560                       PKIX OCSP                       June 1999
  565.  
  566.  
  567.    Additional acceptance or rejection criteria may apply to either the
  568.    response itself or to the certificate used to validate the signature
  569.    on the response.
  570.  
  571. 4.2.2.2.1  Revocation Checking of an Authorized Responder
  572.  
  573.    Since an Authorized OCSP responder provides status information for
  574.    one or more CAs, OCSP clients need to know how to check that an
  575.    authorized responder's certificate has not been revoked. CAs may
  576.    choose to deal with this problem in one of three ways:
  577.  
  578.    - A CA may specify that an OCSP client can trust a responder for the
  579.    lifetime of the responder's certificate. The CA does so by including
  580.    the extension id-pkix-ocsp-nocheck. This SHOULD be a non-critical
  581.    extension. The value of the extension should be NULL. CAs issuing
  582.    such a certificate should realized that a compromise of the
  583.    responder's key, is as serious as the compromise of a CA key used to
  584.    sign CRLs, at least for the validity period of this certificate. CA's
  585.    may choose to issue this type of certificate with a very short
  586.    lifetime and renew it frequently.
  587.  
  588.    id-pkix-ocsp-nocheck OBJECT IDENTIFIER ::= { id-pkix-ocsp 5 }
  589.  
  590.    - A CA may specify how the responder's certificate be checked for
  591.    revocation. This can be done using CRL Distribution Points if the
  592.    check should be done using CRLs or CRL Distribution Points, or
  593.    Authority Information Access if the check should be done in some
  594.    other way. Details for specifying either of these two mechanisms are
  595.    available in [RFC2459].
  596.  
  597.    - A CA may choose not to specify any method of revocation checking
  598.    for the responder's certificate, in which case, it would be up to the
  599.    OCSP client's local security policy to decide whether that
  600.    certificate should be checked for revocation or not.
  601.  
  602. 4.3  Mandatory and Optional Cryptographic Algorithms
  603.  
  604.    Clients that request OCSP services SHALL be capable of processing
  605.    responses signed used DSA keys identified by the DSA sig-alg-oid
  606.    specified in section 7.2.2 of [RFC2459]. Clients SHOULD also be
  607.    capable of processing RSA signatures as specified in section 7.2.1 of
  608.    [RFC2459]. OCSP responders SHALL support the SHA1 hashing algorithm.
  609.  
  610. 4.4  Extensions
  611.  
  612.    This section defines some standard extensions, based on the extension
  613.    model employed in X.509 version 3 certificates see [RFC2459]. Support
  614.    for all extensions is optional for both clients and responders.  For
  615.  
  616.  
  617.  
  618. Myers, et al.               Standards Track                    [Page 11]
  619.  
  620. RFC 2560                       PKIX OCSP                       June 1999
  621.  
  622.  
  623.    each extension, the definition indicates its syntax, processing
  624.    performed by the OCSP Responder, and any extensions which are
  625.    included in the corresponding response.
  626.  
  627. 4.4.1  Nonce
  628.  
  629.    The nonce cryptographically binds a request and a response to prevent
  630.    replay attacks. The nonce is included as one of the requestExtensions
  631.    in requests, while in responses it would be included as one of the
  632.    responseExtensions. In both the request and the response, the nonce
  633.    will be identified by the object identifier id-pkix-ocsp-nonce, while
  634.    the extnValue is the value of the nonce.
  635.  
  636.    id-pkix-ocsp-nonce     OBJECT IDENTIFIER ::= { id-pkix-ocsp 2 }
  637.  
  638. 4.4.2  CRL References
  639.  
  640.    It may be desirable for the OCSP responder to indicate the CRL on
  641.    which a revoked or onHold certificate is found. This can be useful
  642.    where OCSP is used between repositories, and also as an auditing
  643.    mechanism. The CRL may be specified by a URL (the URL at which the
  644.    CRL is available), a number (CRL number) or a time (the time at which
  645.    the relevant CRL was created). These extensions will be specified as
  646.    singleExtensions. The identifier for this extension will be id-pkix-
  647.    ocsp-crl, while the value will be CrlID.
  648.  
  649.    id-pkix-ocsp-crl       OBJECT IDENTIFIER ::= { id-pkix-ocsp 3 }
  650.  
  651.    CrlID ::= SEQUENCE {
  652.       crlUrl               [0]     EXPLICIT IA5String OPTIONAL,
  653.       crlNum               [1]     EXPLICIT INTEGER OPTIONAL,
  654.       crlTime              [2]     EXPLICIT GeneralizedTime OPTIONAL }
  655.  
  656.    For the choice crlUrl, the IA5String will specify the URL at which
  657.    the CRL is available. For crlNum, the INTEGER will specify the value
  658.    of the CRL number extension of the relevant CRL. For crlTime, the
  659.    GeneralizedTime will indicate the time at which the relevant CRL was
  660.    issued.
  661.  
  662. 4.4.3  Acceptable Response Types
  663.  
  664.    An OCSP client MAY wish to specify the kinds of response types it
  665.    understands. To do so, it SHOULD use an extension with the OID id-
  666.    pkix-ocsp-response, and the value AcceptableResponses.  This
  667.    extension is included as one of the requestExtensions in requests.
  668.    The OIDs included in AcceptableResponses are the OIDs of the various
  669.    response types this client can accept (e.g., id-pkix-ocsp-basic).
  670.  
  671.  
  672.  
  673.  
  674. Myers, et al.               Standards Track                    [Page 12]
  675.  
  676. RFC 2560                       PKIX OCSP                       June 1999
  677.  
  678.  
  679.    id-pkix-ocsp-response  OBJECT IDENTIFIER ::= { id-pkix-ocsp 4 }
  680.  
  681.    AcceptableResponses ::= SEQUENCE OF OBJECT IDENTIFIER
  682.  
  683.    As noted in section 4.2.1, OCSP responders SHALL be capable of
  684.    responding with responses of the id-pkix-ocsp-basic response type.
  685.    Correspondingly, OCSP clients SHALL be capable of receiving and
  686.    processing responses of the id-pkix-ocsp-basic response type.
  687.  
  688. 4.4.4  Archive Cutoff
  689.  
  690.    An OCSP responder MAY choose to retain revocation information beyond
  691.    a certificate's expiration. The date obtained by subtracting this
  692.    retention interval value from the producedAt time in a response is
  693.    defined as the certificate's "archive cutoff" date.
  694.  
  695.    OCSP-enabled applications would use an OCSP archive cutoff date to
  696.    contribute to a proof that a digital signature was (or was not)
  697.    reliable on the date it was produced even if the certificate needed
  698.    to validate the signature has long since expired.
  699.  
  700.    OCSP servers that provide support for such historical reference
  701.    SHOULD include an archive cutoff date extension in responses.  If
  702.    included, this value SHALL be provided as an OCSP singleExtensions
  703.    extension identified by id-pkix-ocsp-archive-cutoff and of syntax
  704.    GeneralizedTime.
  705.  
  706.    id-pkix-ocsp-archive-cutoff  OBJECT IDENTIFIER ::= { id-pkix-ocsp 6 }
  707.  
  708.    ArchiveCutoff ::= GeneralizedTime
  709.  
  710.    To illustrate, if a server is operated with a 7-year retention
  711.    interval policy and status was produced at time t1 then the value for
  712.    ArchiveCutoff in the response would be (t1 - 7 years).
  713.  
  714. 4.4.5  CRL Entry Extensions
  715.  
  716.    All the extensions specified as CRL Entry Extensions - in Section 5.3
  717.    of [RFC2459] - are also supported as singleExtensions.
  718.  
  719. 4.4.6  Service Locator
  720.  
  721.    An OCSP server may be operated in a mode whereby the server receives
  722.    a request and routes it to the OCSP server which is known to be
  723.    authoritative for the identified certificate.  The serviceLocator
  724.    request extension is defined for this purpose.  This extension is
  725.    included as one of the singleRequestExtensions in requests.
  726.  
  727.  
  728.  
  729.  
  730. Myers, et al.               Standards Track                    [Page 13]
  731.  
  732. RFC 2560                       PKIX OCSP                       June 1999
  733.  
  734.  
  735.    id-pkix-ocsp-service-locator OBJECT IDENTIFIER ::= { id-pkix-ocsp 7 }
  736.  
  737.    ServiceLocator ::= SEQUENCE {
  738.        issuer    Name,
  739.        locator   AuthorityInfoAccessSyntax OPTIONAL }
  740.  
  741.    Values for these fields are obtained from the corresponding fields in
  742.    the subject certificate.
  743.  
  744. 5.  Security Considerations
  745.  
  746.    For this service to be effective, certificate using systems must
  747.    connect to the certificate status service provider. In the event such
  748.    a connection cannot be obtained, certificate-using systems could
  749.    implement CRL processing logic as a fall-back position.
  750.  
  751.    A denial of service vulnerability is evident with respect to a flood
  752.    of queries. The production of a cryptographic signature significantly
  753.    affects response generation cycle time, thereby exacerbating the
  754.    situation. Unsigned error responses open up the protocol to another
  755.    denial of service attack, where the attacker sends false error
  756.    responses.
  757.  
  758.    The use of precomputed responses allows replay attacks in which an
  759.    old (good) response is replayed prior to its expiration date but
  760.    after the certificate has been revoked. Deployments of OCSP should
  761.    carefully evaluate the benefit of precomputed responses against the
  762.    probability of a replay attack and the costs associated with its
  763.    successful execution.
  764.  
  765.    Requests do not contain the responder they are directed to. This
  766.    allows an attacker to replay a request to any number of OCSP
  767.    responders.
  768.  
  769.    The reliance of HTTP caching in some deployment scenarios may result
  770.    in unexpected results if intermediate servers are incorrectly
  771.    configured or are known to possess cache management faults.
  772.    Implementors are advised to take the reliability of HTTP cache
  773.    mechanisms into account when deploying OCSP over HTTP.
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786. Myers, et al.               Standards Track                    [Page 14]
  787.  
  788. RFC 2560                       PKIX OCSP                       June 1999
  789.  
  790.  
  791. 6.  References
  792.  
  793.    [RFC2459] Housley, R., Ford, W., Polk, W. and D. Solo, "Internet
  794.              X.509 Public Key Infrastructure Certificate and CRL
  795.              Profile", RFC 2459, January 1999.
  796.  
  797.    [HTTP]    Fielding, R., Gettys, J., Mogul, J., Frystyk, H. and T.
  798.              Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC
  799.              2068, January 1997.
  800.  
  801.    [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
  802.              Requirement Levels", BCP 14, RFC 2119, March 1997.
  803.  
  804.    [URL]     Berners-Lee, T., Masinter, L. and M. McCahill, "Uniform
  805.              Resource Locators (URL)", RFC 1738, December 1994.
  806.  
  807.    [X.690]   ITU-T Recommendation X.690 (1994) | ISO/IEC 8825-1:1995,
  808.              Information Technology - ASN.1 encoding rules:
  809.              Specification of Basic Encoding Rules (BER), Canonical
  810.              Encoding Rules (CER) and Distinguished Encoding Rules
  811.              (DER).
  812.  
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842. Myers, et al.               Standards Track                    [Page 15]
  843.  
  844. RFC 2560                       PKIX OCSP                       June 1999
  845.  
  846.  
  847. 7.  Authors' Addresses
  848.  
  849.    Michael Myers
  850.    VeriSign, Inc.
  851.    1350 Charleston Road
  852.    Mountain View, CA 94043
  853.  
  854.    EMail: mmyers@verisign.com
  855.  
  856.  
  857.    Rich Ankney
  858.    CertCo, LLC
  859.    13506 King Charles Dr.
  860.    Chantilly, VA  20151
  861.  
  862.    EMail: rankney@erols.com
  863.  
  864.  
  865.    Ambarish Malpani
  866.    ValiCert, Inc.
  867.    1215 Terra Bella Ave.
  868.    Mountain View, CA 94043
  869.  
  870.    Phone: 650.567.5457
  871.    EMail: ambarish@valicert.com
  872.  
  873.  
  874.    Slava Galperin
  875.    My CFO, Inc.
  876.    1945 Charleston Road
  877.    Mountain View, CA
  878.  
  879.    EMail: galperin@mycfo.com
  880.  
  881.  
  882.    Carlisle Adams
  883.    Entrust Technologies
  884.    750 Heron Road, Suite E08
  885.    Ottawa, Ontario
  886.    K1V 1A7
  887.    Canada
  888.  
  889.    EMail: cadams@entrust.com
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898. Myers, et al.               Standards Track                    [Page 16]
  899.  
  900. RFC 2560                       PKIX OCSP                       June 1999
  901.  
  902.  
  903. Appendix A.
  904.  
  905. A.1 OCSP over HTTP
  906.  
  907.    This section describes the formatting that will be done to the
  908.    request and response to support HTTP.
  909.  
  910. A.1.1 Request
  911.  
  912.    HTTP based OCSP requests can use either the GET or the POST method to
  913.    submit their requests. To enable HTTP caching, small requests (that
  914.    after encoding are less than 255 bytes), MAY be submitted using GET.
  915.    If HTTP caching is not important, or the request is greater than 255
  916.    bytes, the request SHOULD be submitted using POST.  Where privacy is
  917.    a requirement, OCSP transactions exchanged using HTTP MAY be
  918.    protected using either TLS/SSL or some other lower layer protocol.
  919.  
  920.    An OCSP request using the GET method is constructed as follows:
  921.  
  922.    GET {url}/{url-encoding of base-64 encoding of the DER encoding of
  923.    the OCSPRequest}
  924.  
  925.    where {url} may be derived from the value of AuthorityInfoAccess or
  926.    other local configuration of the OCSP client.
  927.  
  928.    An OCSP request using the POST method is constructed as follows: The
  929.    Content-Type header has the value "application/ocsp-request" while
  930.    the body of the message is the binary value of the DER encoding of
  931.    the OCSPRequest.
  932.  
  933. A.1.2 Response
  934.  
  935.    An HTTP-based OCSP response is composed of the appropriate HTTP
  936.    headers, followed by the binary value of the DER encoding of the
  937.    OCSPResponse. The Content-Type header has the value
  938.    "application/ocsp-response". The Content-Length header SHOULD specify
  939.    the length of the response. Other HTTP headers MAY be present and MAY
  940.    be ignored if not understood by the requestor.
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954. Myers, et al.               Standards Track                    [Page 17]
  955.  
  956. RFC 2560                       PKIX OCSP                       June 1999
  957.  
  958.  
  959. Appendix B.  OCSP in ASN.1
  960.  
  961. OCSP DEFINITIONS EXPLICIT TAGS::=
  962.  
  963. BEGIN
  964.  
  965. IMPORTS
  966.  
  967.       -- Directory Authentication Framework (X.509)
  968.              Certificate, AlgorithmIdentifier, CRLReason
  969.              FROM AuthenticationFramework { joint-iso-itu-t ds(5)
  970.                       module(1) authenticationFramework(7) 3 }
  971.  
  972.  
  973. -- PKIX Certificate Extensions
  974.              AuthorityInfoAccessSyntax
  975.           FROM PKIX1Implicit88 {iso(1) identified-organization(3)
  976.                   dod(6) internet(1) security(5) mechanisms(5) pkix(7)
  977.                   id-mod(0) id-pkix1-implicit-88(2)}
  978.  
  979.  
  980.           Name, GeneralName, CertificateSerialNumber, Extensions,
  981.            id-kp, id-ad-ocsp
  982.              FROM PKIX1Explicit88 {iso(1) identified-organization(3)
  983.                   dod(6) internet(1) security(5) mechanisms(5) pkix(7)
  984.                   id-mod(0) id-pkix1-explicit-88(1)};
  985.  
  986. OCSPRequest     ::=     SEQUENCE {
  987.     tbsRequest                  TBSRequest,
  988.     optionalSignature   [0]     EXPLICIT Signature OPTIONAL }
  989.  
  990. TBSRequest      ::=     SEQUENCE {
  991.     version             [0] EXPLICIT Version DEFAULT v1,
  992.     requestorName       [1] EXPLICIT GeneralName OPTIONAL,
  993.     requestList             SEQUENCE OF Request,
  994.     requestExtensions   [2] EXPLICIT Extensions OPTIONAL }
  995.  
  996. Signature       ::=     SEQUENCE {
  997.     signatureAlgorithm   AlgorithmIdentifier,
  998.     signature            BIT STRING,
  999.     certs                [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL }
  1000.  
  1001. Version  ::=  INTEGER  {  v1(0) }
  1002.  
  1003. Request ::=     SEQUENCE {
  1004.     reqCert                    CertID,
  1005.     singleRequestExtensions    [0] EXPLICIT Extensions OPTIONAL }
  1006.  
  1007.  
  1008.  
  1009.  
  1010. Myers, et al.               Standards Track                    [Page 18]
  1011.  
  1012. RFC 2560                       PKIX OCSP                       June 1999
  1013.  
  1014.  
  1015. CertID ::= SEQUENCE {
  1016.     hashAlgorithm            AlgorithmIdentifier,
  1017.     issuerNameHash     OCTET STRING, -- Hash of Issuer's DN
  1018.     issuerKeyHash      OCTET STRING, -- Hash of Issuers public key
  1019.     serialNumber       CertificateSerialNumber }
  1020.  
  1021. OCSPResponse ::= SEQUENCE {
  1022.    responseStatus         OCSPResponseStatus,
  1023.    responseBytes          [0] EXPLICIT ResponseBytes OPTIONAL }
  1024.  
  1025. OCSPResponseStatus ::= ENUMERATED {
  1026.     successful            (0),      --Response has valid confirmations
  1027.     malformedRequest      (1),      --Illegal confirmation request
  1028.     internalError         (2),      --Internal error in issuer
  1029.     tryLater              (3),      --Try again later
  1030.                                     --(4) is not used
  1031.     sigRequired           (5),      --Must sign the request
  1032.     unauthorized          (6)       --Request unauthorized
  1033. }
  1034.  
  1035. ResponseBytes ::=       SEQUENCE {
  1036.     responseType   OBJECT IDENTIFIER,
  1037.     response       OCTET STRING }
  1038.  
  1039. BasicOCSPResponse       ::= SEQUENCE {
  1040.    tbsResponseData      ResponseData,
  1041.    signatureAlgorithm   AlgorithmIdentifier,
  1042.    signature            BIT STRING,
  1043.    certs                [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL }
  1044.  
  1045. ResponseData ::= SEQUENCE {
  1046.    version              [0] EXPLICIT Version DEFAULT v1,
  1047.    responderID              ResponderID,
  1048.    producedAt               GeneralizedTime,
  1049.    responses                SEQUENCE OF SingleResponse,
  1050.    responseExtensions   [1] EXPLICIT Extensions OPTIONAL }
  1051.  
  1052. ResponderID ::= CHOICE {
  1053.    byName   [1] Name,
  1054.    byKey    [2] KeyHash }
  1055.  
  1056. KeyHash ::= OCTET STRING --SHA-1 hash of responder's public key
  1057.                          --(excluding the tag and length fields)
  1058.  
  1059. SingleResponse ::= SEQUENCE {
  1060.    certID                       CertID,
  1061.    certStatus                   CertStatus,
  1062.    thisUpdate                   GeneralizedTime,
  1063.  
  1064.  
  1065.  
  1066. Myers, et al.               Standards Track                    [Page 19]
  1067.  
  1068. RFC 2560                       PKIX OCSP                       June 1999
  1069.  
  1070.  
  1071.    nextUpdate           [0]     EXPLICIT GeneralizedTime OPTIONAL,
  1072.    singleExtensions     [1]     EXPLICIT Extensions OPTIONAL }
  1073.  
  1074. CertStatus ::= CHOICE {
  1075.     good                [0]     IMPLICIT NULL,
  1076.     revoked             [1]     IMPLICIT RevokedInfo,
  1077.     unknown             [2]     IMPLICIT UnknownInfo }
  1078.  
  1079. RevokedInfo ::= SEQUENCE {
  1080.     revocationTime              GeneralizedTime,
  1081.     revocationReason    [0]     EXPLICIT CRLReason OPTIONAL }
  1082.  
  1083. UnknownInfo ::= NULL -- this can be replaced with an enumeration
  1084.  
  1085. ArchiveCutoff ::= GeneralizedTime
  1086.  
  1087. AcceptableResponses ::= SEQUENCE OF OBJECT IDENTIFIER
  1088.  
  1089. ServiceLocator ::= SEQUENCE {
  1090.     issuer    Name,
  1091.     locator   AuthorityInfoAccessSyntax }
  1092.  
  1093. -- Object Identifiers
  1094.  
  1095. id-kp-OCSPSigning            OBJECT IDENTIFIER ::= { id-kp 9 }
  1096. id-pkix-ocsp                 OBJECT IDENTIFIER ::= { id-ad-ocsp }
  1097. id-pkix-ocsp-basic           OBJECT IDENTIFIER ::= { id-pkix-ocsp 1 }
  1098. id-pkix-ocsp-nonce           OBJECT IDENTIFIER ::= { id-pkix-ocsp 2 }
  1099. id-pkix-ocsp-crl             OBJECT IDENTIFIER ::= { id-pkix-ocsp 3 }
  1100. id-pkix-ocsp-response        OBJECT IDENTIFIER ::= { id-pkix-ocsp 4 }
  1101. id-pkix-ocsp-nocheck         OBJECT IDENTIFIER ::= { id-pkix-ocsp 5 }
  1102. id-pkix-ocsp-archive-cutoff  OBJECT IDENTIFIER ::= { id-pkix-ocsp 6 }
  1103. id-pkix-ocsp-service-locator OBJECT IDENTIFIER ::= { id-pkix-ocsp 7 }
  1104.  
  1105.  
  1106. END
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122. Myers, et al.               Standards Track                    [Page 20]
  1123.  
  1124. RFC 2560                       PKIX OCSP                       June 1999
  1125.  
  1126.  
  1127. Appendix C. MIME registrations
  1128.  
  1129. C.1 application/ocsp-request
  1130.  
  1131.    To: ietf-types@iana.org
  1132.    Subject: Registration of MIME media type application/ocsp-request
  1133.  
  1134.    MIME media type name: application
  1135.  
  1136.    MIME subtype name: ocsp-request
  1137.  
  1138.    Required parameters: None
  1139.  
  1140.    Optional parameters: None
  1141.  
  1142.    Encoding considerations: binary
  1143.  
  1144.    Security considerations: Carries a  request for information. This
  1145.    request may optionally be cryptographically signed.
  1146.  
  1147.    Interoperability considerations: None
  1148.  
  1149.    Published specification: IETF PKIX Working Group Draft on Online
  1150.    Certificate Status Protocol - OCSP
  1151.  
  1152.    Applications which use this media type: OCSP clients
  1153.  
  1154.    Additional information:
  1155.  
  1156.       Magic number(s): None
  1157.       File extension(s): .ORQ
  1158.       Macintosh File Type Code(s): none
  1159.  
  1160.    Person & email address to contact for further information:
  1161.    Ambarish Malpani <ambarish@valicert.com>
  1162.  
  1163.    Intended usage: COMMON
  1164.  
  1165.    Author/Change controller:
  1166.    Ambarish Malpani <ambarish@valicert.com>
  1167.  
  1168. C.2 application/ocsp-response
  1169.  
  1170.    To: ietf-types@iana.org
  1171.    Subject: Registration of MIME media type application/ocsp-response
  1172.  
  1173.    MIME media type name: application
  1174.  
  1175.  
  1176.  
  1177.  
  1178. Myers, et al.               Standards Track                    [Page 21]
  1179.  
  1180. RFC 2560                       PKIX OCSP                       June 1999
  1181.  
  1182.  
  1183.    MIME subtype name: ocsp-response
  1184.  
  1185.    Required parameters: None
  1186.  
  1187.    Optional parameters: None
  1188.    Encoding considerations: binary
  1189.  
  1190.    Security considerations: Carries a cryptographically signed response
  1191.  
  1192.    Interoperability considerations: None
  1193.  
  1194.    Published specification: IETF PKIX Working Group Draft on Online
  1195.    Certificate Status Protocol - OCSP
  1196.  
  1197.    Applications which use this media type: OCSP servers
  1198.  
  1199.    Additional information:
  1200.  
  1201.    Magic number(s): None
  1202.    File extension(s): .ORS
  1203.    Macintosh File Type Code(s): none
  1204.  
  1205.    Person & email address to contact for further information:
  1206.    Ambarish Malpani <ambarish@valicert.com>
  1207.  
  1208.    Intended usage: COMMON
  1209.  
  1210.    Author/Change controller:
  1211.    Ambarish Malpani <ambarish@valicert.com>
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234. Myers, et al.               Standards Track                    [Page 22]
  1235.  
  1236. RFC 2560                       PKIX OCSP                       June 1999
  1237.  
  1238.  
  1239. Full Copyright Statement
  1240.  
  1241.    Copyright (C) The Internet Society (1999).  All Rights Reserved.
  1242.  
  1243.    This document and translations of it may be copied and furnished to
  1244.    others, and derivative works that comment on or otherwise explain it
  1245.    or assist in its implementation may be prepared, copied, published
  1246.    and distributed, in whole or in part, without restriction of any
  1247.    kind, provided that the above copyright notice and this paragraph are
  1248.    included on all such copies and derivative works.  However, this
  1249.    document itself may not be modified in any way, such as by removing
  1250.    the copyright notice or references to the Internet Society or other
  1251.    Internet organizations, except as needed for the purpose of
  1252.    developing Internet standards in which case the procedures for
  1253.    copyrights defined in the Internet Standards process must be
  1254.    followed, or as required to translate it into languages other than
  1255.    English.
  1256.  
  1257.    The limited permissions granted above are perpetual and will not be
  1258.    revoked by the Internet Society or its successors or assigns.
  1259.  
  1260.    This document and the information contained herein is provided on an
  1261.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  1262.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  1263.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  1264.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  1265.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  1266.  
  1267. Acknowledgement
  1268.  
  1269.    Funding for the RFC Editor function is currently provided by the
  1270.    Internet Society.
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290. Myers, et al.               Standards Track                    [Page 23]
  1291.  
  1292.