diff options
| author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 | 
|---|---|---|
| committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 | 
| commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
| tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc5019.txt | |
| parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) | |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc5019.txt')
| -rw-r--r-- | doc/rfc/rfc5019.txt | 1235 | 
1 files changed, 1235 insertions, 0 deletions
diff --git a/doc/rfc/rfc5019.txt b/doc/rfc/rfc5019.txt new file mode 100644 index 0000000..a3403d6 --- /dev/null +++ b/doc/rfc/rfc5019.txt @@ -0,0 +1,1235 @@ + + + + + + +Network Working Group                                          A. Deacon +Request for Comments: 5019                                      VeriSign +Category: Standards Track                                       R. Hurst +                                                               Microsoft +                                                          September 2007 + + +   The Lightweight Online Certificate Status Protocol (OCSP) Profile +                      for High-Volume Environments + +Status of This Memo + +   This document specifies an Internet standards track protocol for the +   Internet community, and requests discussion and suggestions for +   improvements.  Please refer to the current edition of the "Internet +   Official Protocol Standards" (STD 1) for the standardization state +   and status of this protocol.  Distribution of this memo is unlimited. + +Abstract + +   This specification defines a profile of the Online Certificate Status +   Protocol (OCSP) that addresses the scalability issues inherent when +   using OCSP in large scale (high volume) Public Key Infrastructure +   (PKI) environments and/or in PKI environments that require a +   lightweight solution to minimize communication bandwidth and client- +   side processing. + + + + + + + + + + + + + + + + + + + + + + + + + +Deacon & Hurst              Standards Track                     [Page 1] + +RFC 5019                Lightweight OCSP Profile          September 2007 + + +Table of Contents + +   1. Introduction ....................................................3 +      1.1. Requirements Terminology ...................................4 +   2. OCSP Message Profile ............................................4 +      2.1. OCSP Request Profile .......................................4 +           2.1.1. OCSPRequest Structure ...............................4 +           2.1.2. Signed OCSPRequests .................................5 +      2.2. OCSP Response Profile ......................................5 +           2.2.1. OCSPResponse Structure ..............................5 +           2.2.2. Signed OCSPResponses ................................6 +           2.2.3. OCSPResponseStatus Values ...........................6 +           2.2.4. thisUpdate, nextUpdate, and producedAt ..............7 +   3. Client Behavior .................................................7 +      3.1. OCSP Responder Discovery ...................................7 +      3.2. Sending an OCSP Request ....................................7 +   4. Ensuring an OCSPResponse Is Fresh ...............................8 +   5. Transport Profile ...............................................9 +   6. Caching Recommendations .........................................9 +      6.1. Caching at the Client .....................................10 +      6.2. HTTP Proxies ..............................................10 +      6.3. Caching at Servers ........................................12 +   7. Security Considerations ........................................12 +      7.1. Replay Attacks ............................................12 +      7.2. Man-in-the-Middle Attacks .................................13 +      7.3. Impersonation Attacks .....................................13 +      7.4. Denial-of-Service Attacks .................................13 +      7.5. Modification of HTTP Headers ..............................14 +      7.6. Request Authentication and Authorization ..................14 +   8. Acknowledgements ...............................................14 +   9. References .....................................................14 +      9.1. Normative References ......................................14 +      9.2. Informative References ....................................15 +   Appendix A. Example OCSP Messages .................................16 +      A.1. OCSP Request ..............................................16 +      A.2. OCSP Response .............................................16 + + + + + + + + + + + + + + + +Deacon & Hurst              Standards Track                     [Page 2] + +RFC 5019                Lightweight OCSP Profile          September 2007 + + +1.  Introduction + +   The Online Certificate Status Protocol [OCSP] specifies a mechanism +   used to determine the status of digital certificates, in lieu of +   using Certificate Revocation Lists (CRLs).  Since its definition in +   1999, it has been deployed in a variety of environments and has +   proven to be a useful certificate status checking mechanism.  (For +   brevity we refer to OCSP as being used to verify certificate status, +   but only the revocation status of a certificate is checked via this +   protocol.) + +   To date, many OCSP deployments have been used to ensure timely and +   secure certificate status information for high-value electronic +   transactions or highly sensitive information, such as in the banking +   and financial environments.  As such, the requirement for an OCSP +   responder to respond in "real time" (i.e., generating a new OCSP +   response for each OCSP request) has been important.  In addition, +   these deployments have operated in environments where bandwidth usage +   is not an issue, and have run on client and server systems where +   processing power is not constrained. + +   As the use of PKI continues to grow and move into diverse +   environments, so does the need for a scalable and cost-effective +   certificate status mechanism.  Although OCSP as currently defined and +   deployed meets the need of small to medium-sized PKIs that operate on +   powerful systems on wired networks, there is a limit as to how these +   OCSP deployments scale from both an efficiency and cost perspective. +   Mobile environments, where network bandwidth may be at a premium and +   client-side devices are constrained from a processing point of view, +   require the careful use of OCSP to minimize bandwidth usage and +   client-side processing complexity. [OCSPMP] + +   PKI continues to be deployed into environments where millions if not +   hundreds of millions of certificates have been issued.  In many of +   these environments, an even larger number of users (also known as +   relying parties) have the need to ensure that the certificate they +   are relying upon has not been revoked.  As such, it is important that +   OCSP is used in such a way that ensures the load on OCSP responders +   and the network infrastructure required to host those responders are +   kept to a minimum. + +   This document addresses the scalability issues inherent when using +   OCSP in PKI environments described above by defining a message +   profile and clarifying OCSP client and responder behavior that will +   permit: + + + + + + +Deacon & Hurst              Standards Track                     [Page 3] + +RFC 5019                Lightweight OCSP Profile          September 2007 + + +   1) OCSP response pre-production and distribution. +   2) Reduced OCSP message size to lower bandwidth usage. +   3) Response message caching both in the network and on the client. + +   It is intended that the normative requirements defined in this +   profile will be adopted by OCSP clients and OCSP responders operating +   in very large-scale (high-volume) PKI environments or PKI +   environments that require a lightweight solution to minimize +   bandwidth and client-side processing power (or both), as described +   above.  As OCSP does not have the means to signal responder +   capabilities within the protocol, clients needing to differentiate +   between OCSP responses produced by responders conformant with this +   profile and those that are not need to rely on out-of-band mechanisms +   to determine when a responder operates according to this profile and, +   as such, when the requirements of this profile apply.  In the case +   where out-of-band mechanisms may not be available, this profile +   ensures that interoperability will still occur between a fully +   conformant OCSP 2560 client and a responder that is operating in a +   mode as described in this specification. + +1.1.  Requirements Terminology + +   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 [RFC2119]. + +2.  OCSP Message Profile + +   This section defines a subset of OCSPRequest and OCSPResponse +   functionality as defined in [OCSP]. + +2.1.  OCSP Request Profile + +2.1.1.  OCSPRequest Structure + +   OCSPRequests conformant to this profile MUST include only one Request +   in the OCSPRequest.RequestList structure. + +   Clients MUST use SHA1 as the hashing algorithm for the +   CertID.issuerNameHash and the CertID.issuerKeyHash values. + +   Clients MUST NOT include the singleRequestExtensions structure. + +   Clients SHOULD NOT include the requestExtensions structure.  If a +   requestExtensions structure is included, this profile RECOMMENDS that +   it contain only the nonce extension (id-pkix-ocsp-nonce).  See +   Section 4 for issues concerning the use of a nonce in high-volume +   OCSP environments. + + + +Deacon & Hurst              Standards Track                     [Page 4] + +RFC 5019                Lightweight OCSP Profile          September 2007 + + +2.1.2.  Signed OCSPRequests + +   Clients SHOULD NOT send signed OCSPRequests.  Responders MAY ignore +   the signature on OCSPRequests. + +   If the OCSPRequest is signed, the client SHALL specify its name in +   the OCSPRequest.requestorName field; otherwise, clients SHOULD NOT +   include the requestorName field in the OCSPRequest.  OCSP servers +   MUST be prepared to receive unsigned OCSP requests that contain the +   requestorName field, but must realize that the provided value is not +   authenticated. + +2.2.  OCSP Response Profile + +2.2.1.  OCSPResponse Structure + +   Responders MUST generate a BasicOCSPResponse as identified by the +   id-pkix-ocsp-basic OID.  Clients MUST be able to parse and accept a +   BasicOCSPResponse.  OCSPResponses conformant to this profile SHOULD +   include only one SingleResponse in the ResponseData.responses +   structure, but MAY include additional SingleResponse elements if +   necessary to improve response pre-generation performance or cache +   efficiency. + +   The responder SHOULD NOT include responseExtensions.  As specified in +   [OCSP], clients MUST ignore unrecognized non-critical +   responseExtensions in the response. + +   In the case where a responder does not have the ability to respond to +   an OCSP request containing a option not supported by the server, it +   SHOULD return the most complete response it can.  For example, in the +   case where a responder only supports pre-produced responses and does +   not have the ability to respond to an OCSP request containing a +   nonce, it SHOULD return a response that does not include a nonce. + +   Clients SHOULD attempt to process a response even if the response +   does not include a nonce.  See Section 4 for details on validating +   responses that do not contain a nonce.  See also Section 7 for +   relevant security considerations. + +   Responders that do not have the ability to respond to OCSP requests +   that contain an unsupported option such as a nonce MAY forward the +   request to an OCSP responder capable of doing so. + +   The responder MAY include the singleResponse.singleResponse +   extensions structure. + + + + + +Deacon & Hurst              Standards Track                     [Page 5] + +RFC 5019                Lightweight OCSP Profile          September 2007 + + +2.2.2.  Signed OCSPResponses + +   Clients MUST validate the signature on the returned OCSPResponse. + +   If the response is signed by a delegate of the issuing certification +   authority (CA), a valid responder certificate MUST be referenced in +   the BasicOCSPResponse.certs structure. + +   It is RECOMMENDED that the OCSP responder's certificate contain the +   id-pkix-ocsp-nocheck extension, as defined in [OCSP], to indicate to +   the client that it need not check the certificate's status.  In +   addition, it is RECOMMENDED that neither an OCSP authorityInfoAccess +   (AIA) extension nor cRLDistributionPoints (CRLDP) extension be +   included in the OCSP responder's certificate.  Accordingly, the +   responder's signing certificate SHOULD be relatively short-lived and +   renewed regularly. + +   Clients MUST be able to identify OCSP responder certificates using +   both the byName and byKey ResponseData.ResponderID choices. +   Responders SHOULD use byKey to further reduce the size of the +   response in scenarios where reducing bandwidth is an issue. + +2.2.3.  OCSPResponseStatus Values + +   As long as the OCSP infrastructure has authoritative records for a +   particular certificate, an OCSPResponseStatus of "successful" will be +   returned.  When access to authoritative records for a particular +   certificate is not available, the responder MUST return an +   OCSPResponseStatus of "unauthorized".  As such, this profile extends +   the RFC 2560 [OCSP] definition of "unauthorized" as follows: + +      The response "unauthorized" is returned in cases where the client +      is not authorized to make this query to this server or the server +      is not capable of responding authoritatively. + +   For example, OCSP responders that do not have access to authoritative +   records for a requested certificate, such as those that generate and +   distribute OCSP responses in advance and thus do not have the ability +   to properly respond with a signed "successful" yet "unknown" +   response, will respond with an OCSPResponseStatus of "unauthorized". +   Also, in order to ensure the database of revocation information does +   not grow unbounded over time, the responder MAY remove the status +   records of expired certificates.  Requests from clients for +   certificates whose record has been removed will result in an +   OCSPResponseStatus of "unauthorized". + +   Security considerations regarding the use of unsigned responses are +   discussed in [OCSP]. + + + +Deacon & Hurst              Standards Track                     [Page 6] + +RFC 5019                Lightweight OCSP Profile          September 2007 + + +2.2.4.  thisUpdate, nextUpdate, and producedAt + +   When pre-producing OCSPResponse messages, the responder MUST set the +   thisUpdate, nextUpdate, and producedAt times as follows: + +   thisUpdate    The time at which the status being indicated is known +                 to be correct. + +   nextUpdate    The time at or before which newer information will be +                 available about the status of the certificate. +                 Responders MUST always include this value to aid in +                 response caching.  See Section 6 for additional +                 information on caching. + +   producedAt    The time at which the OCSP response was signed. + +   Note: In many cases the value of thisUpdate and producedAt will be +   the same. + +   For the purposes of this profile, ASN.1-encoded GeneralizedTime +   values such as thisUpdate, nextUpdate, and producedAt MUST be +   expressed Greenwich Mean Time (Zulu) and MUST include seconds (i.e., +   times are YYYYMMDDHHMMSSZ), even where the number of seconds is zero. +   GeneralizedTime values MUST NOT include fractional seconds. + +3.  Client Behavior + +3.1.  OCSP Responder Discovery + +   Clients MUST support the authorityInfoAccess extension as defined in +   [PKIX] and MUST recognize the id-ad-ocsp access method.  This enables +   CAs to inform clients how they can contact the OCSP service. + +   In the case where a client is checking the status of a certificate +   that contains both an authorityInformationAccess (AIA) extension +   pointing to an OCSP responder and a cRLDistributionPoints extension +   pointing to a CRL, the client SHOULD attempt to contact the OCSP +   responder first.  Clients MAY attempt to retrieve the CRL if no +   OCSPResponse is received from the responder after a locally +   configured timeout and number of retries. + +3.2.  Sending an OCSP Request + +   To avoid needless network traffic, applications MUST verify the +   signature of signed data before asking an OCSP client to check the +   status of certificates used to verify the data.  If the signature is +   invalid or the application is not able to verify it, an OCSP check +   MUST NOT be requested. + + + +Deacon & Hurst              Standards Track                     [Page 7] + +RFC 5019                Lightweight OCSP Profile          September 2007 + + +   Similarly, an application MUST validate the signature on certificates +   in a chain, before asking an OCSP client to check the status of the +   certificate.  If the certificate signature is invalid or the +   application is not able to verify it, an OCSP check MUST NOT be +   requested.  Clients SHOULD NOT make a request to check the status of +   expired certificates. + +4.  Ensuring an OCSPResponse Is Fresh + +   In order to ensure that a client does not accept an out-of-date +   response that indicates a 'good' status when in fact there is a more +   up-to-date response that specifies the status of 'revoked', a client +   must ensure the responses they receive are fresh. + +   In general, two mechanisms are available to clients to ensure a +   response is fresh.  The first uses nonces, and the second is based on +   time.  In order for time-based mechanisms to work, both clients and +   responders MUST have access to an accurate source of time. + +   Because this profile specifies that clients SHOULD NOT include a +   requestExtensions structure in OCSPRequests (see Section 2.1), +   clients MUST be able to determine OCSPResponse freshness based on an +   accurate source of time.  Clients that opt to include a nonce in the +   request SHOULD NOT reject a corresponding OCSPResponse solely on the +   basis of the nonexistent expected nonce, but MUST fall back to +   validating the OCSPResponse based on time. + +   Clients that do not include a nonce in the request MUST ignore any +   nonce that may be present in the response. + +   Clients MUST check for the existence of the nextUpdate field and MUST +   ensure the current time, expressed in GMT time as described in +   Section 2.2.4, falls between the thisUpdate and nextUpdate times.  If +   the nextUpdate field is absent, the client MUST reject the response. + +   If the nextUpdate field is present, the client MUST ensure that it is +   not earlier than the current time.  If the current time on the client +   is later than the time specified in the nextUpdate field, the client +   MUST reject the response as stale.  Clients MAY allow configuration +   of a small tolerance period for acceptance of responses after +   nextUpdate to handle minor clock differences relative to responders +   and caches.  This tolerance period should be chosen based on the +   accuracy and precision of time synchronization technology available +   to the calling application environment.  For example, Internet peers +   with low latency connections typically expect NTP time +   synchronization to keep them accurate within parts of a second; +   higher latency environments or where an NTP analogue is not available +   may have to be more liberal in their tolerance. + + + +Deacon & Hurst              Standards Track                     [Page 8] + +RFC 5019                Lightweight OCSP Profile          September 2007 + + +   See the security considerations in Section 7 for additional details +   on replay and man-in-the-middle attacks. + +5.  Transport Profile + +   The OCSP responder MUST support requests and responses over HTTP. +   When sending requests that are less than or equal to 255 bytes in +   total (after encoding) including the scheme and delimiters (http://), +   server name and base64-encoded OCSPRequest structure, clients MUST +   use the GET method (to enable OCSP response caching).  OCSP requests +   larger than 255 bytes SHOULD be submitted using the POST method.  In +   all cases, clients MUST follow the descriptions in A.1.1 of [OCSP] +   when constructing these messages. + +   When constructing a GET message, OCSP clients MUST base64 encode the +   OCSPRequest structure and append it to the URI specified in the AIA +   extension [PKIX].  Clients MUST NOT include CR or LF characters in +   the base64-encoded string.  Clients MUST properly URL-encode the +   base64 encoded OCSPRequest.  For example: + +      http://ocsp.example.com/MEowSDBGMEQwQjAKBggqhkiG9w0CBQQQ7sp6GTKpL +      2dAdeGaW267owQQqInESWQD0mGeBArSgv%2FBWQIQLJx%2Fg9xF8oySYzol80Mbpg +      %3D%3D + +   In response to properly formatted OCSPRequests that are cachable +   (i.e., responses that contain a nextUpdate value), the responder will +   include the binary value of the DER encoding of the OCSPResponse +   preceded by the following HTTP [HTTP] headers. + +      content-type: application/ocsp-response +      content-length: <OCSP response length> +      last-modified: <producedAt [HTTP] date> +      ETag: "<strong validator>" +      expires: <nextUpdate [HTTP] date> +      cache-control: max-age=<n>, public, no-transform, must-revalidate +      date: <current [HTTP] date> + +   See Section 6.2 for details on the use of these headers. + +6.  Caching Recommendations + +   The ability to cache OCSP responses throughout the network is an +   important factor in high volume OCSP deployments.  This section +   discusses the recommended caching behavior of OCSP clients and HTTP +   proxies and the steps that should be taken to minimize the number of +   times that OCSP clients "hit the wire".  In addition, the concept of +   including OCSP responses in protocol exchanges (aka stapling or +   piggybacking), such as has been defined in TLS, is also discussed. + + + +Deacon & Hurst              Standards Track                     [Page 9] + +RFC 5019                Lightweight OCSP Profile          September 2007 + + +6.1.  Caching at the Client + +   To minimize bandwidth usage, clients MUST locally cache authoritative +   OCSP responses (i.e., a response with a signature that has been +   successfully validated and that indicate an OCSPResponseStatus of +   'successful'). + +   Most OCSP clients will send OCSPRequests at or near the nextUpdate +   time (when a cached response expires).  To avoid large spikes in +   responder load that might occur when many clients refresh cached +   responses for a popular certificate, responders MAY indicate when the +   client should fetch an updated OCSP response by using the cache- +   control:max-age directive.  Clients SHOULD fetch the updated OCSP +   Response on or after the max-age time.  To ensure that clients +   receive an updated OCSP response, OCSP responders MUST refresh the +   OCSP response before the max-age time. + +6.2.  HTTP Proxies + +   The responder SHOULD set the HTTP headers of the OCSP response in +   such a way as to allow for the intelligent use of intermediate HTTP +   proxy servers.  See [HTTP] for the full definition of these headers +   and the proper format of any date and time values. + +   HTTP Header     Description +   ===========    ==================================================== +   date            The date and time at which the OCSP server generated +                   the HTTP response. + +   last-modified   This value specifies the date and time at which the +                   OCSP responder last modified the response.  This date +                   and time will be the same as the thisUpdate timestamp +                   in the request itself. + +   expires         Specifies how long the response is considered fresh. +                   This date and time will be the same as the nextUpdate +                   timestamp in the OCSP response itself. + +   ETag            A string that identifies a particular version of the +                   associated data.  This profile RECOMMENDS that the +                   ETag value be the ASCII HEX representation of the +                   SHA1 hash of the OCSPResponse structure. + +   cache-control   Contains a number of caching directives. + +                * max-age=<n>     -where n is a time value later than +                                   thisUpdate but earlier than +                                   nextUpdate. + + + +Deacon & Hurst              Standards Track                    [Page 10] + +RFC 5019                Lightweight OCSP Profile          September 2007 + + +                * public          -makes normally uncachable response +                                   cachable by both shared and nonshared +                                   caches. + +                * no-transform    -specifies that a proxy cache cannot +                                   change the type, length, or encoding +                                   of the object content. + +                * must-revalidate -prevents caches from intentionally +                                   returning stale responses. + +   OCSP responders MUST NOT include a "Pragma: no-cache", "Cache- +   Control: no-cache", or "Cache-Control: no-store" header in +   authoritative OCSP responses. + +   OCSP responders SHOULD include one or more of these headers in non- +   authoritative OCSP responses. + +   For example, assume that an OCSP response has the following timestamp +   values: + +      thisUpdate = May 1, 2005  01:00:00 GMT +      nextUpdate = May 3, 2005 01:00:00 GMT +      productedAt = May 1, 2005 01:00:00 GMT + +   and that an OCSP client requests the response on May 2, 2005 01:00:00 +   GMT.  In this scenario, the HTTP response may look like this: + +      content-type: application/ocsp-response +      content-length: 1000 +      date: Fri, 02 May 2005 01:00:00 GMT +      last-modified: Thu, 01 May 2005 01:00:00 GMT +      ETag: "c66c0341abd7b9346321d5470fd0ec7cc4dae713" +      expires: Sat, 03 May 2005 01:00:00 GMT +      cache-control: max-age=86000,public,no-transform,must-revalidate +      <...> + +   OCSP clients MUST NOT include a no-cache header in OCSP request +   messages, unless the client encounters an expired response which may +   be a result of an intermediate proxy caching stale data.  In this +   situation, clients SHOULD resend the request specifying that proxies +   should be bypassed by including an appropriate HTTP header in the +   request (i.e., Pragma: no-cache or Cache-Control: no-cache). + + + + + + + + +Deacon & Hurst              Standards Track                    [Page 11] + +RFC 5019                Lightweight OCSP Profile          September 2007 + + +6.3.  Caching at Servers + +   In some scenarios, it is advantageous to include OCSP response +   information within the protocol being utilized between the client and +   server.  Including OCSP responses in this manner has a few attractive +   effects. + +   First, it allows for the caching of OCSP responses on the server, +   thus lowering the number of hits to the OCSP responder. + +   Second, it enables certificate validation in the event the client is +   not connected to a network and thus eliminates the need for clients +   to establish a new HTTP session with the responder. + +   Third, it reduces the number of round trips the client needs to make +   in order to complete a handshake. + +   Fourth, it simplifies the client-side OCSP implementation by enabling +   a situation where the client need only the ability to parse and +   recognize OCSP responses. + +   This functionality has been specified as an extension to the TLS +   [TLS] protocol in Section 3.6 [TLSEXT], but can be applied to any +   client-server protocol. + +   This profile RECOMMENDS that both TLS clients and servers implement +   the certificate status request extension mechanism for TLS. + +   Further information regarding caching issues can be obtained from RFC +   3143 [RFC3143]. + +7.  Security Considerations + +   The following considerations apply in addition to the security +   considerations addressed in Section 5 of [OCSP]. + +7.1.  Replay Attacks + +   Because the use of nonces in this profile is optional, there is a +   possibility that an out of date OCSP response could be replayed, thus +   causing a client to accept a good response when in fact there is a +   more up-to-date response that specifies the status of revoked.  In +   order to mitigate this attack, clients MUST have access to an +   accurate source of time and ensure that the OCSP responses they +   receive are sufficiently fresh. + + + + + + +Deacon & Hurst              Standards Track                    [Page 12] + +RFC 5019                Lightweight OCSP Profile          September 2007 + + +   Clients that do not have an accurate source of date and time are +   vulnerable to service disruption.  For example, a client with a +   sufficiently fast clock may reject a fresh OCSP response.  Similarly +   a client with a sufficiently slow clock may incorrectly accept +   expired valid responses for certificates that may in fact be revoked. + +   Future versions of the OCSP protocol may provide a way for the client +   to know whether the server supports nonces or does not support +   nonces.  If a client can determine that the server supports nonces, +   it MUST reject a reply that does not contain an expected nonce. +   Otherwise, clients that opt to include a nonce in the request SHOULD +   NOT reject a corresponding OCSPResponse solely on the basis of the +   nonexistent expected nonce, but MUST fall back to validating the +   OCSPResponse based on time. + +7.2.  Man-in-the-Middle Attacks + +   To mitigate risk associated with this class of attack, the client +   must properly validate the signature on the response. + +   The use of signed responses in OCSP serves to authenticate the +   identity of the OCSP responder and to verify that it is authorized to +   sign responses on the CA's behalf. + +   Clients MUST ensure that they are communicating with an authorized +   responder by the rules described in [OCSP], Section 4.2.2.2. + +7.3.  Impersonation Attacks + +   The use of signed responses in OCSP serves to authenticate the +   identity of OCSP responder. + +   As detailed in [OCSP], clients must properly validate the signature +   of the OCSP response and the signature on the OCSP response signer +   certificate to ensure an authorized responder created it. + +7.4.  Denial-of-Service Attacks + +   OCSP responders should take measures to prevent or mitigate denial- +   of-service attacks.  As this profile specifies the use of unsigned +   OCSPRequests, access to the responder may be implicitly given to +   everyone who can send a request to a responder, and thus the ability +   to mount a denial-of-service attack via a flood of requests may be +   greater.  For example, a responder could limit the rate of incoming +   requests from a particular IP address if questionable behavior is +   detected. + + + + + +Deacon & Hurst              Standards Track                    [Page 13] + +RFC 5019                Lightweight OCSP Profile          September 2007 + + +7.5.  Modification of HTTP Headers + +   Values included in HTTP headers, as described in Sections 5 and 6, +   are not cryptographically protected; they may be manipulated by an +   attacker.  Clients SHOULD use these values for caching guidance only +   and ultimately SHOULD rely only on the values present in the signed +   OCSPResponse.  Clients SHOULD NOT rely on cached responses beyond the +   nextUpdate time. + +7.6.  Request Authentication and Authorization + +   The suggested use of unsigned requests in this environment removes an +   option that allows the responder to determine the authenticity of +   incoming request.  Thus, access to the responder may be implicitly +   given to everyone who can send a request to a responder. +   Environments where explicit authorization to access the OCSP +   responder is necessary can utilize other mechanisms to authenticate +   requestors or restrict or meter service. + +8.  Acknowledgements + +   The authors wish to thank Magnus Nystrom of RSA Security, Inc., +   Jagjeet Sondh of Vodafone Group R&D, and David Engberg of CoreStreet, +   Ltd. for their contributions to this specification. + +9.  References + +9.1.  Normative References + +   [HTTP]    Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, +             L., Leach, P., and T. Berners-Lee, "Hypertext Transfer +             Protocol -- HTTP/1.1", RFC 2616, June 1999. + +   [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate +             Requirement Levels", BCP 14, RFC 2119, March 1997. + +   [OCSP]    Myers, M., Ankney, R., Malpani, A., Galperin, S., and C. +             Adams, "X.509 Internet Public Key Infrastructure:  Online +             Certificate Status Protocol - OCSP", RFC 2560, June 1999. + +   [PKIX]    Housley, R., Polk, W., Ford, W., and D. Solo, "Internet +             Public Key Infrastructure - Certificate and Certificate +             Revocation List (CRL) Profile", RFC 3280, April 2002. + +   [TLS]     Dierks, T. and E. Rescorla, "The Transport Layer Security +             Protocol Version  1.1", RFC 4346, April 2006. + + + + + +Deacon & Hurst              Standards Track                    [Page 14] + +RFC 5019                Lightweight OCSP Profile          September 2007 + + +   [TLSEXT]  Blake-Wilson, S., Nystrom, M., Hopwood, D., Mikkelsen, J., +             and T. Wright, "Transport Layer Security (TLS) Extensions", +             RFC 4366, April 2006. + +9.2.  Informative References + +   [OCSPMP]  "OCSP Mobile Profile V1.0", Open Mobile Alliance, +             www.openmobilealliance.org. + +   [RFC3143] Cooper, I. and J. Dilley, "Known HTTP Proxy/Caching +             Problems", RFC 3143, June 2001. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Deacon & Hurst              Standards Track                    [Page 15] + +RFC 5019                Lightweight OCSP Profile          September 2007 + + +Appendix A.  Example OCSP Messages + +A.1.  OCSP Request + +   SEQUENCE { +      SEQUENCE { +        SEQUENCE { +          SEQUENCE { +            SEQUENCE { +              SEQUENCE { +                OBJECT IDENTIFIER sha1 (1 3 14 3 2 26) +                NULL +                } +              OCTET STRING +                C0 FE 02 78 FC 99 18 88 91 B3 F2 12 E9 C7 E1 B2 +                1A B7 BF C0 +              OCTET STRING +                0D FC 1D F0 A9 E0 F0 1C E7 F2 B2 13 17 7E 6F 8D +                15 7C D4 F6 +              INTEGER +                09 34 23 72 E2 3A EF 46 7C 83 2D 07 F8 DC 22 BA +              } +            } +          } +        } +      } + +A.2.  OCSP Response + +   SEQUENCE { +      ENUMERATED 0 +      [0] { +        SEQUENCE { +          OBJECT IDENTIFIER ocspBasic (1 3 6 1 5 5 7 48 1 1) +          OCTET STRING, encapsulates { +            SEQUENCE { +              SEQUENCE { +                [0] { +                  INTEGER 0 +                  } +                [1] { +                  SEQUENCE { +                    SET { +                      SEQUENCE { +                        OBJECT IDENTIFIER organizationName (2 5 4 10) +                        PrintableString 'Example Trust Network' +                        } +                      } + + + +Deacon & Hurst              Standards Track                    [Page 16] + +RFC 5019                Lightweight OCSP Profile          September 2007 + + +                    SET { +                      SEQUENCE { +                        OBJECT IDENTIFIER +                          organizationalUnitName (2 5 4 11) +                        PrintableString 'Example, Inc.' +                        } +                      } +                    SET { +                      SEQUENCE { +                        OBJECT IDENTIFIER +                          organizationalUnitName (2 5 4 11) +                        PrintableString +                      'Example OCSP Responder' +                        } +                      } +                    } +                  } +                GeneralizedTime 07/11/2005 23:52:44 GMT +                SEQUENCE { +                  SEQUENCE { +                    SEQUENCE { +                      SEQUENCE { +                        OBJECT IDENTIFIER sha1 (1 3 14 3 2 26) +                        NULL +                        } +                      OCTET STRING +                      C0 FE 02 78 FC 99 18 88 91 B3 F2 12 E9 C7 E1 B2 +                      1A B7 BF C0 +                      OCTET STRING +                      0D FC 1D F0 A9 E0 F0 1C E7 F2 B2 13 17 7E 6F 8D +                      15 7C D4 F6 +                      INTEGER +                      09 34 23 72 E2 3A EF 46 7C 83 2D 07 F8 DC 22 BA +                      } +                    [0] +                      Error: Object has zero length. +                      GeneralizedTime 07/11/2005 23:52:44 GMT +                    [0] { +                      GeneralizedTime 14/11/2005 23:52:44 GMT +                      } +                    } +                  } +                } +              SEQUENCE { +                OBJECT IDENTIFIER +                  sha1withRSAEncryption (1 2 840 113549 1 1 5) +                NULL +                } + + + +Deacon & Hurst              Standards Track                    [Page 17] + +RFC 5019                Lightweight OCSP Profile          September 2007 + + +              BIT STRING +                0E 9F F0 52 B1 A7 42 B8 6E C1 35 E1 0E D5 A9 E2 +                F5 C5 3C 16 B1 A3 A7 A2 03 8A 2B 4D 2C F1 B4 98 +                8E 19 DB BA 1E 1E 72 FF 32 F4 44 E0 B2 77 1C D7 +                3C 9E 78 F3 D1 82 68 86 63 12 7F A4 6F F0 4D 84 +                EA F8 E2 F7 5D E3 48 44 57 28 80 C7 57 3C FE E1 +                42 0E 5E 17 FC 60 D8 05 D9 EF E2 53 E7 AB 7F 3A +                A8 84 AA 5E 46 5B E7 B8 1F C6 B1 35 AD FF D1 CC +                BA 58 7D E8 29 60 79 F7 41 02 EA E0 82 0E A6 30 +              [0] { +                SEQUENCE { +                  SEQUENCE { +                    SEQUENCE { +                      [0] { +                        INTEGER 2 +                        } +                      INTEGER +                      49 4A 02 37 1B 1E 70 67 41 6C 9F 06 2F D8 FE DA +                      SEQUENCE { +                        OBJECT IDENTIFIER +                          sha1withRSAEncryption (1 2 840 113549 1 1 5) +                        NULL +                        } +                      SEQUENCE { +                        SET { +                          SEQUENCE { +                            OBJECT IDENTIFIER +                              organizationName (2 5 4 10) +                            PrintableString 'Example Trust Network' +                            } +                          } +                        SET { +                          SEQUENCE { +                            OBJECT IDENTIFIER +                              organizationalUnitName (2 5 4 11) +                            PrintableString 'Example, Inc.' +                            } +                          } +                        SET { +                          SEQUENCE { +                            OBJECT IDENTIFIER +                              organizationalUnitName (2 5 4 11) +                            PrintableString +                               'Example CA' +                            } +                          } +                        } +                      SEQUENCE { + + + +Deacon & Hurst              Standards Track                    [Page 18] + +RFC 5019                Lightweight OCSP Profile          September 2007 + + +                        UTCTime 08/10/2005 00:00:00 GMT +                        UTCTime 06/01/2006 23:59:59 GMT +                        } +                      SEQUENCE { +                        SET { +                          SEQUENCE { +                            OBJECT IDENTIFIER +                              organizationName (2 5 4 10) +                            PrintableString 'Example Trust Network' +                            } +                          } +                        SET { +                          SEQUENCE { +                            OBJECT IDENTIFIER +                              organizationalUnitName (2 5 4 11) +                            PrintableString 'Example, Inc.' +                            } +                          } +                        SET { +                          SEQUENCE { +                            OBJECT IDENTIFIER +                              organizationalUnitName (2 5 4 11) +                            PrintableString +                              'Example OCSP Responder' +                            } +                          } +                        } +                      SEQUENCE { +                        SEQUENCE { +                          OBJECT IDENTIFIER +                            rsaEncryption (1 2 840 113549 1 1 1) +                          NULL +                          } +                        BIT STRING, encapsulates { +                          SEQUENCE { +                            INTEGER +                      00 AF C9 7A F5 09 CA D1 08 8C 82 6D AC D9 63 4D +                      D2 64 17 79 CB 1E 1C 1C 0C 6E 28 56 B5 16 4A 4A +                      00 1A C1 B0 74 D7 B4 55 9D 2A 99 1F 0E 4A E3 5F +                      81 AF 8D 07 23 C3 30 28 61 3F B0 C8 1D 4E A8 9C +                      A6 32 B4 D2 63 EC F7 C1 55 7A 73 2A 51 99 00 D5 +                      0F B2 4E 11 5B 83 55 83 4C 0E DD 12 0C BD 7E 41 +                      04 3F 5F D9 2A 65 88 3C 2A BA 20 76 1D 1F 59 3E +                      D1 85 F7 4B E2 81 50 9C 78 96 1B 37 73 12 1A D2 +                              [ Another 1 bytes skipped ] +                            INTEGER 65537 +                            } +                          } + + + +Deacon & Hurst              Standards Track                    [Page 19] + +RFC 5019                Lightweight OCSP Profile          September 2007 + + +                        } +                      [3] { +                        SEQUENCE { +                          SEQUENCE { +                            OBJECT IDENTIFIER +                              basicConstraints (2 5 29 19) +                            OCTET STRING, encapsulates { +                              SEQUENCE {} +                              } +                            } +                          SEQUENCE { +                            OBJECT IDENTIFIER extKeyUsage (2 5 29 37) +                            OCTET STRING, encapsulates { +                              SEQUENCE { +                                OBJECT IDENTIFIER +                                  ocspSigning (1 3 6 1 5 5 7 3 9) +                                } +                              } +                            } +                          SEQUENCE { +                            OBJECT IDENTIFIER keyUsage (2 5 29 15) +                            OCTET STRING, encapsulates { +                              BIT STRING 7 unused bits +                                '1'B (bit 0) +                              } +                            } +                          SEQUENCE { +                            OBJECT IDENTIFIER +                              ocspNoCheck (1 3 6 1 5 5 7 48 1 5) +                            OCTET STRING, encapsulates { +                              NULL +                              } +                            } +                          } +                        } +                      } +                    SEQUENCE { +                      OBJECT IDENTIFIER +                        sha1withRSAEncryption (1 2 840 113549 1 1 5) +                      NULL +                      } +                    BIT STRING +                      3A 68 5F 6A F8 87 36 4A E2 22 46 5C C8 F5 0E CE +                      1A FA F2 25 E1 51 AB 37 BE D4 10 C8 15 93 39 73 +                      C8 59 0F F0 39 67 29 C2 60 20 F7 3F FE A0 37 AB +                      80 0B F9 3D 38 D4 48 67 E4 FA FD 4E 12 BF 55 29 +                      14 E9 CC CB DD 13 82 E9 C4 4D D3 85 33 C1 35 E5 +                      8F 38 01 A7 F7 FD EB CD DE F2 F7 85 86 AE E3 1B + + + +Deacon & Hurst              Standards Track                    [Page 20] + +RFC 5019                Lightweight OCSP Profile          September 2007 + + +                      9C FD 1D 07 E5 28 F2 A0 5E AC BF 9E 0B 34 A1 B4 +                      3A A9 0E C5 8A 34 3F 65 D3 10 63 A4 5E 21 71 5A +                    } +                  } +                } +              } +            } +          } +        } +      } + +Authors' Addresses + +   Alex Deacon +   VeriSign, Inc. +   487 E. Middlefield Road +   Mountain View, CA  94043 +   USA + +   Phone:  1-650-426-3478 +   EMail:  alex@verisign.com + + +   Ryan Hurst +   Microsoft +   One Microsoft Way +   Redmond, WA  98052 +   USA + +   Phone:  1-425-707-8979 +   EMail:  rmh@microsoft.com + + + + + + + + + + + + + + + + + + + + +Deacon & Hurst              Standards Track                    [Page 21] + +RFC 5019                Lightweight OCSP Profile          September 2007 + + +Full Copyright Statement + +   Copyright (C) The IETF Trust (2007). + +   This document is subject to the rights, licenses and restrictions +   contained in BCP 78, and except as set forth therein, the authors +   retain all their rights. + +   This document and the information contained herein are provided on an +   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS +   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND +   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS +   OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF +   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED +   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Intellectual Property + +   The IETF takes no position regarding the validity or scope of any +   Intellectual Property Rights or other rights that might be claimed to +   pertain to the implementation or use of the technology described in +   this document or the extent to which any license under such rights +   might or might not be available; nor does it represent that it has +   made any independent effort to identify any such rights.  Information +   on the procedures with respect to rights in RFC documents can be +   found in BCP 78 and BCP 79. + +   Copies of IPR disclosures made to the IETF Secretariat and any +   assurances of licenses to be made available, or the result of an +   attempt made to obtain a general license or permission for the use of +   such proprietary rights by implementers or users of this +   specification can be obtained from the IETF on-line IPR repository at +   http://www.ietf.org/ipr. + +   The IETF invites any interested party to bring to its attention any +   copyrights, patents or patent applications, or other proprietary +   rights that may cover technology that may be required to implement +   this standard.  Please address the information to the IETF at +   ietf-ipr@ietf.org. + + + + + + + + + + + + +Deacon & Hurst              Standards Track                    [Page 22] +  |