<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.19 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-rfc5019bis-11" category="std" consensus="true" submissionType="IETF" obsoletes="5019" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.0 -->
  <front>
    <title abbrev="Lightweight OCSP Profile Update">Updates to Lightweight OCSP Profile for High Volume Environments</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-rfc5019bis-11"/>
    <author fullname="伊藤 忠彦" asciiFullname="Tadahiko Ito">
      <organization>SECOM CO., LTD.</organization>
      <address>
        <email>tadahiko.ito.public@gmail.com</email>
      </address>
    </author>
    <author fullname="Clint Wilson">
      <organization>Apple, Inc.</organization>
      <address>
        <email>clintw@apple.com</email>
      </address>
    </author>
    <author fullname="Corey Bonnell">
      <organization>DigiCert, Inc.</organization>
      <address>
        <email>corey.bonnell@digicert.com</email>
      </address>
    </author>
    <author fullname="Sean Turner">
      <organization>sn3rd</organization>
      <address>
        <email>sean@sn3rd.com</email>
      </address>
    </author>
    <date year="2024" month="September" day="13"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 48?>

<t>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.</t>
      <t>This specification obsoletes RFC 5019. The profile specified in RFC 5019
has been updated to allow and recommend the use of SHA-256 over SHA-1.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/tadahik/RFC5019bis"/>.</t>
    </note>
  </front>
  <middle>
    <?line 62?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Online Certificate Status Protocol <xref target="RFC6960"/> 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, the term "OCSP" is used herein to denote the
verification of certificate status; however, it should be noted
that this protocol is employed solely to ascertain the
revocation status of a certificate.)</t>
      <t>To date, numerous OCSP deployments have been implemented to provide timely
and secure certificate status information, crucial for high-value
electronic transactions and the handling of highly sensitive information,
such as within the banking and financial sectors.
Therefore, 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.</t>
      <t>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. <xref target="OCSPMP"/></t>
      <t>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.</t>
      <t>This document addresses the scalability issues inherent when using
OCSP in highly scaled PKI environments by defining a message
profile and clarifying OCSP client and responder behavior that will
permit:</t>
      <ol spacing="normal" type="1"><li>
          <t>OCSP response pre-production and distribution.</t>
        </li>
        <li>
          <t>Reduced OCSP message size to lower bandwidth usage.</t>
        </li>
        <li>
          <t>Response message caching both in the network and on the client.</t>
        </li>
      </ol>
      <t>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.</t>
      <t>OCSP does not have the means to signal responder capabilities within the
protocol. Thus, clients may need to use out-of-band mechanisms (e.g.,
agreed upon arrangements between operators of OCSP responders and OCSP
clients) to determine whether a responder conforms to the profile
defined in this document. Regardless of the availability of such
out-of-band mechanisms, this profile ensures that interoperability will
still occur between an OCSP client that fully conforms with <xref target="RFC6960"/>
and a responder that is operating in a mode as described in this
specification.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="ocsp-message-profile">
      <name>OCSP Message Profile</name>
      <t>This section defines a subset of OCSPRequest and OCSPResponse
functionality as defined in <xref target="RFC6960"/>.</t>
      <section anchor="req-profile">
        <name>OCSP Request Profile</name>
        <section anchor="certid">
          <name>OCSPRequest Structure</name>
          <t>Provided for convenience here, a partial extract of the
ASN.1 structure corresponding to the OCSPRequest with the relevant
CertID as defined in <xref target="RFC6960"/>:</t>
          <artwork><![CDATA[
OCSPRequest     ::=     SEQUENCE {
   tbsRequest                  TBSRequest,
   optionalSignature   [0]     EXPLICIT Signature OPTIONAL }

TBSRequest      ::=     SEQUENCE {
   version             [0]     EXPLICIT Version DEFAULT v1,
   requestorName       [1]     EXPLICIT GeneralName OPTIONAL,
   requestList                 SEQUENCE OF Request,
   requestExtensions   [2]     EXPLICIT Extensions OPTIONAL }

Request         ::=     SEQUENCE {
   reqCert                     CertID,
   singleRequestExtensions     [0] EXPLICIT Extensions OPTIONAL }

CertID          ::=     SEQUENCE {
   hashAlgorithm       AlgorithmIdentifier,
   issuerNameHash      OCTET STRING, -- Hash of issuer's DN
   issuerKeyHash       OCTET STRING, -- Hash of issuer's public key
   serialNumber        CertificateSerialNumber }
]]></artwork>
          <t>OCSPRequests that conform to the profile in this document <bcp14>MUST</bcp14>
include only one Request in the OCSPRequest.RequestList structure.</t>
          <t>The CertID.issuerNameHash and CertID.issuerKeyHash fields contain hashes
of the issuer's distinguished name (DN) and public key, respectively.
OCSP clients that conform with this profile <bcp14>MUST</bcp14> use SHA-256 as defined
in <xref section="2.2" sectionFormat="of" target="RFC5754"/> as
the hashing algorithm for the CertID.issuerNameHash and the
CertID.issuerKeyHash values.</t>
          <t>Older OCSP clients which provide backward compatibility with
<xref target="RFC5019"/> use SHA-1 as defined in <xref target="RFC3174"/> as the hashing
algorithm for the CertID.issuerNameHash and the
CertID.issuerKeyHash values. However, these OCSP clients <bcp14>MUST</bcp14>
transition from SHA-1 to SHA-256 as soon as practical.</t>
          <t>Clients <bcp14>MUST NOT</bcp14> include the singleRequestExtensions structure.</t>
          <t>Clients <bcp14>SHOULD NOT</bcp14> 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
<xref target="fresh"/> for issues concerning the use of a nonce in high-volume
OCSP environments.</t>
        </section>
        <section anchor="signed-ocsprequests">
          <name>Signed OCSPRequests</name>
          <t>Clients <bcp14>SHOULD NOT</bcp14> send signed OCSPRequests. Responders <bcp14>MAY</bcp14> ignore
the signature on OCSPRequests.</t>
          <t>If the OCSPRequest is signed, the client <bcp14>SHALL</bcp14> specify its name in
the OCSPRequest.requestorName field; otherwise, clients <bcp14>SHOULD NOT</bcp14>
include the requestorName field in the OCSPRequest. OCSP responders
<bcp14>MUST</bcp14> handle unsigned OCSP requests that contain the
requestorName field, as if the requestorName field were absent.</t>
        </section>
      </section>
      <section anchor="ocsp-response-profile">
        <name>OCSP Response Profile</name>
        <section anchor="ocspresponse-structure">
          <name>OCSPResponse Structure</name>
          <t>Provided for convenience here, a partial extract of the
ASN.1 structure corresponding to the OCSPResponse with the relevant
CertID as defined in <xref target="RFC6960"/>:</t>
          <artwork><![CDATA[
OCSPResponse ::= SEQUENCE {
   responseStatus         OCSPResponseStatus,
   responseBytes          [0] EXPLICIT ResponseBytes OPTIONAL }

ResponseBytes ::=       SEQUENCE {
   responseType   OBJECT IDENTIFIER,
   response       OCTET STRING }

The value for response SHALL be the DER encoding of BasicOCSPResponse.

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

ResponseData ::= SEQUENCE {
   version              [0] EXPLICIT Version DEFAULT v1,
   responderID              ResponderID,
   producedAt               GeneralizedTime,
   responses                SEQUENCE OF SingleResponse,
   responseExtensions   [1] EXPLICIT Extensions OPTIONAL }

SingleResponse ::= SEQUENCE {
   certID                       CertID,
   certStatus                   CertStatus,
   thisUpdate                   GeneralizedTime,
   nextUpdate         [0]       EXPLICIT GeneralizedTime OPTIONAL,
   singleExtensions   [1]       EXPLICIT Extensions OPTIONAL }
]]></artwork>
          <t>Responders <bcp14>MUST</bcp14> generate a BasicOCSPResponse as identified by the
id-pkix-ocsp-basic OID. Clients <bcp14>MUST</bcp14> be able to parse and accept a
BasicOCSPResponse. OCSPResponses that conform to this profile <bcp14>SHOULD</bcp14>
include only one SingleResponse in the
ResponseData.responses structure, but <bcp14>MAY</bcp14> include
additional SingleResponse elements if necessary to improve response
pre-generation performance or cache efficiency, and
to ensure backward compatibility. For instance,
to provide support to OCSP clients which do not yet support the
use of SHA-256 for CertID hash calculation, the OCSP responder
<bcp14>MAY</bcp14> include two SingleResponses in a BasicOCSPResponse.
In that BasicOCSPResponse, the CertID of one of the SingleResponses
uses SHA-1 for the hash calculation, and the CertID in the other
SingleResponse uses SHA-256. OCSP responders <bcp14>SHOULD NOT</bcp14> distribute
OCSP responses that contain CertIDs that use SHA-1 if the OCSP
responder has no clients that require the use of SHA-1.
Operators of OCSP responders may consider logging the hash
algorithm used by OCSP clients to inform their determination of
when it is appropriate to obsolete the distribution of OCSP responses
that employ SHA-1 for CertID field hashes. See <xref target="sha1-sec"/> for more
information on the security considerations for the continued use of
SHA-1.</t>
          <t>The responder <bcp14>SHOULD NOT</bcp14> include responseExtensions. As specified in
<xref target="RFC6960"/>, clients <bcp14>MUST</bcp14> ignore unrecognized non-critical
responseExtensions in the response.</t>
          <t>In the case where a responder does not have the ability to respond to
an OCSP request containing an option not supported by the responder, it
<bcp14>SHOULD</bcp14> 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 <bcp14>SHOULD</bcp14> return a response that does not include a nonce.</t>
          <t>Clients <bcp14>SHOULD</bcp14> attempt to process a response even if the response
does not include a nonce. See <xref target="fresh"/> for details on validating
responses that do not contain a nonce. See also <xref target="sec-cons"/> for
relevant security considerations.</t>
          <t>Responders that do not have the ability to respond to OCSP requests
that contain an unsupported option such as a nonce <bcp14>MAY</bcp14> forward the
request to an OCSP responder capable of doing so.</t>
          <t>The responder <bcp14>MAY</bcp14> include the singleResponse.singleResponse
extensions structure.</t>
        </section>
        <section anchor="byKey">
          <name>Signed OCSPResponses</name>
          <t>Clients <bcp14>MUST</bcp14> validate the signature on the OCSPResponse.</t>
          <t>If the response is signed by a delegate of the issuing certification
authority (CA), a valid responder certificate <bcp14>MUST</bcp14> be referenced in
the BasicOCSPResponse.certs structure.</t>
          <t>It is <bcp14>RECOMMENDED</bcp14> that the OCSP responder's certificate contain the
id-pkix-ocsp-nocheck extension, as defined in <xref target="RFC6960"/>, to indicate
to the client that it need not check the certificate's status. In
addition, it is <bcp14>RECOMMENDED</bcp14> 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 <bcp14>SHOULD</bcp14> be relatively short-lived and
renewed regularly.</t>
          <t>Clients <bcp14>MUST</bcp14> be able to identify OCSP responder certificates using
the byKey field and <bcp14>SHOULD</bcp14> be able to identify OCSP responder
certificates using the byName field of the
ResponseData.ResponderID <xref target="RFC6960"/> choices.</t>
          <t>Older responders which provide backward compatibility with <xref target="RFC5019"/>
            <bcp14>MAY</bcp14> use the byName field to represent the ResponderID, but should
transition to using the byKey field as soon as practical.</t>
          <t>Newer responders that conform to this profile <bcp14>MUST</bcp14> use the byKey
field to represent the ResponderID to reduce the size of the response.</t>
        </section>
        <section anchor="ocspresponsestatus-values">
          <name>OCSPResponseStatus Values</name>
          <t>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 <bcp14>MUST</bcp14> return an
OCSPResponseStatus of "unauthorized". As such, this profile extends
the <xref target="RFC6960"/> definition of "unauthorized" as follows:</t>
          <t>The response "unauthorized" is returned in cases where the client
is not authorized to make this query to this responder or the responder
is not capable of responding authoritatively.</t>
          <t>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 <bcp14>MAY</bcp14> remove the status
records of expired certificates. Requests from clients for
certificates whose record has been removed will result in an
OCSPResponseStatus of "unauthorized".</t>
          <t>Security considerations regarding the use of unsigned responses are
discussed in <xref target="RFC6960"/>.</t>
        </section>
        <section anchor="times">
          <name>thisUpdate, nextUpdate, and producedAt</name>
          <t>When pre-producing OCSPResponse messages, the responder <bcp14>MUST</bcp14> set the
thisUpdate, nextUpdate, and producedAt times as follows:</t>
          <dl>
            <dt>thisUpdate:</dt>
            <dd>
              <t>The time at which the status being indicated is known to be correct.</t>
            </dd>
            <dt>nextUpdate:</dt>
            <dd>
              <t>The time at or before which newer information will be available
about the status of the certificate.
As described in <xref section="2.4" sectionFormat="of" target="RFC6960"/>, this field is optional.
However, this field <bcp14>MUST</bcp14> be included in the profile specified
in this document to help clients cache responses.
See <xref target="cache-recs"/> for additional information on caching.</t>
            </dd>
            <dt>producedAt:</dt>
            <dd>
              <t>The time at which the OCSP response was signed.</t>
            </dd>
          </dl>
          <aside>
            <t>Note: The values of thisUpdate, nextUpdate, and producedAt are
 set as described in <xref section="2.5" sectionFormat="of" target="RFC6960"/>,
 and in many cases the value of thisUpdate and producedAt are
 the same.</t>
          </aside>
          <t>For the purposes of this profile, ASN.1-encoded GeneralizedTime
values such as thisUpdate, nextUpdate, and producedAt <bcp14>MUST</bcp14> be
expressed Greenwich Mean Time (Zulu) and <bcp14>MUST</bcp14> include seconds (i.e.,
times are YYYYMMDDHHMMSSZ), even where the number of seconds is zero.
GeneralizedTime values <bcp14>MUST NOT</bcp14> include fractional seconds.</t>
        </section>
      </section>
    </section>
    <section anchor="client-behavior">
      <name>Client Behavior</name>
      <section anchor="ocsp-responder-discovery">
        <name>OCSP Responder Discovery</name>
        <t>Clients <bcp14>MUST</bcp14> support the authorityInfoAccess extension as defined in
<xref target="RFC5280"/> and <bcp14>MUST</bcp14> recognize the id-ad-ocsp access method. This
enables CAs to inform clients how they can contact the OCSP service.</t>
        <t>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 <bcp14>SHOULD</bcp14> attempt to contact the OCSP
responder first. Clients <bcp14>MAY</bcp14> attempt to retrieve the CRL if no
OCSPResponse is received from the responder after a locally
configured timeout and number of retries.</t>
      </section>
      <section anchor="sending-an-ocsp-request">
        <name>Sending an OCSP Request</name>
        <t>To avoid needless network traffic, applications <bcp14>MUST</bcp14> 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
<bcp14>MUST NOT</bcp14> be requested.</t>
        <t>Similarly, an application <bcp14>MUST</bcp14> 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 <bcp14>MUST NOT</bcp14> be
requested. Clients <bcp14>SHOULD NOT</bcp14> make a request to check the status of
expired certificates.</t>
      </section>
    </section>
    <section anchor="fresh">
      <name>Ensuring an OCSPResponse Is Fresh</name>
      <t>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.</t>
      <t>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 <bcp14>MUST</bcp14> have access to an accurate source of time.</t>
      <t>Because this profile specifies that clients <bcp14>SHOULD NOT</bcp14> include a
requestExtensions structure in OCSPRequests (see <xref target="req-profile"/>),
clients <bcp14>MUST</bcp14> be able to determine OCSPResponse freshness based on an
accurate source of time. Clients that opt to include a nonce in the
request <bcp14>SHOULD NOT</bcp14> reject a corresponding OCSPResponse solely on the
basis of the nonexistent expected nonce, but <bcp14>MUST</bcp14> fall back to
validating the OCSPResponse based on time.</t>
      <t>Clients that do not include a nonce in the request <bcp14>MUST</bcp14> ignore any
nonce that may be present in the response.</t>
      <t>Clients <bcp14>MUST</bcp14> check for the existence of the nextUpdate field and <bcp14>MUST</bcp14>
ensure the current time, expressed in GMT time as described in
<xref target="times"/>, falls between the thisUpdate and nextUpdate times. If
the nextUpdate field is absent, the client <bcp14>MUST</bcp14> reject the response.</t>
      <t>If the nextUpdate field is present, the client <bcp14>MUST</bcp14> 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
<bcp14>MUST</bcp14> reject the response as stale. Clients <bcp14>MAY</bcp14> 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
(e.g. allow one day difference).</t>
      <t>See the security considerations in <xref target="sec-cons"/> for additional details
on replay and man-in-the-middle attacks.</t>
    </section>
    <section anchor="transport">
      <name>Transport Profile</name>
      <t>OCSP clients can send HTTP-based OCSP requests using either the GET
or POST method.
The OCSP responder <bcp14>MUST</bcp14> 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 <bcp14>MUST</bcp14>
use the GET method (to enable OCSP response caching). OCSP requests
larger than 255 bytes <bcp14>SHOULD</bcp14> be submitted using the POST method. In
all cases, clients <bcp14>MUST</bcp14> follow the descriptions in A.1 of <xref target="RFC6960"/>
when constructing these messages.</t>
      <t>When constructing a GET message, OCSP clients <bcp14>MUST</bcp14> base64-encode the
OCSPRequest structure according to <xref section="4" sectionFormat="of" target="RFC4648"/>. Clients
<bcp14>MUST NOT</bcp14> include whitespace or any other characters that are not part of
the base64 character repertoire in the base64-encoded string. Clients
<bcp14>MUST</bcp14> properly URL-encode the base64-encoded OCSPRequest according to
<xref target="RFC3986"/>. OCSP clients <bcp14>MUST</bcp14> append the base64-encoded OCSPRequest
to the URI specified in the AIA extension <xref target="RFC5280"/>. For example:</t>
      <artwork><![CDATA[
   http://ocsp.example.com/MEowSDBGMEQwQjAKBggqhkiG9w0CBQQQ7sp6GTKpL2dA
   deGaW267owQQqInESWQD0mGeBArSgv%2FBWQIQLJx%2Fg9xF8oySYzol80Mbpg%3D%3D
]]></artwork>
      <t>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 <xref target="RFC9110"/> and <xref target="RFC9111"/> header fields.</t>
      <artwork><![CDATA[
   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 >
]]></artwork>
      <t>See <xref target="http-proxies"/> for details on the use of these HTTP header fields.</t>
    </section>
    <section anchor="cache-recs">
      <name>Caching Recommendations</name>
      <t>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.</t>
      <section anchor="caching-at-the-client">
        <name>Caching at the Client</name>
        <t>To minimize bandwidth usage, clients <bcp14>MUST</bcp14> locally cache authoritative
OCSP responses (i.e., a response with a signature that has been
successfully validated and that indicate an OCSPResponseStatus of
'successful').</t>
        <t>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 <bcp14>MAY</bcp14> indicate when the
client should fetch an updated OCSP response by using the cache-
control:max-age directive. Clients <bcp14>SHOULD</bcp14> fetch the updated OCSP
Response on or after the max-age time. To ensure that clients
receive an updated OCSP response, OCSP responders <bcp14>MUST</bcp14> refresh the
OCSP response before the max-age time.</t>
      </section>
      <section anchor="http-proxies">
        <name>HTTP Proxies</name>
        <t>The responder <bcp14>SHOULD</bcp14> set the HTTP header fields of the OCSP response in
such a way as to allow for the intelligent use of intermediate HTTP
proxy servers. See <xref target="RFC9110"/> and <xref target="RFC9111"/> for the full definition
of these HTTP header fields and the proper format of any date and time values.</t>
        <table anchor="http-headers">
          <name>HTTP Headers</name>
          <thead>
            <tr>
              <th align="left">HTTP Header Field</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Date</td>
              <td align="left">The date and time at which the OCSP responder generated the HTTP response.</td>
            </tr>
            <tr>
              <td align="left">Last-Modified</td>
              <td align="left">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.</td>
            </tr>
            <tr>
              <td align="left">Expires</td>
              <td align="left">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.</td>
            </tr>
            <tr>
              <td align="left">ETag</td>
              <td align="left">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 SHA-256 hash of the OCSPResponse structure.</td>
            </tr>
            <tr>
              <td align="left">Cache-Control</td>
              <td align="left">Contains a number of caching directives. <br/> * max-age = &lt; n &gt; -where n is a time value later than thisUpdate but earlier than nextUpdate. <br/> * public -makes normally uncachable response cachable by both shared and nonshared caches. <br/> * no-transform -specifies that a proxy cache cannot change the type, length, or encoding of the object content. <br/> * must-revalidate -prevents caches from intentionally returning stale responses.</td>
            </tr>
          </tbody>
        </table>
        <t>OCSP responders <bcp14>MUST NOT</bcp14> include a "Pragma: no-cache", "Cache-
Control: no-cache", or "Cache-Control: no-store" HTTP header fields in
authoritative OCSP responses.</t>
        <t>OCSP responders <bcp14>SHOULD</bcp14> include one or more of these HTTP header fields in non-
authoritative OCSP responses.</t>
        <t>For example, assume that an OCSP response has the following timestamp
values:</t>
        <artwork><![CDATA[
   thisUpdate = March 19, 2023 01:00:00 GMT
   nextUpdate = March 21, 2023 01:00:00 GMT
   productedAt = March 19, 2023 01:00:00 GMT
]]></artwork>
        <t>and that an OCSP client requests the response on March 20, 2023 01:00:00
GMT. In this scenario, the HTTP response may look like this:</t>
        <artwork><![CDATA[
   Content-Type: application/ocsp-response
   Content-Length: 1000
   Date: Mon, 20 Mar 2023 01:00:00 GMT
   Last-Modified: Sun, 19 Mar 2023 01:00:00 GMT
   ETag: "97df3588b5a3f24babc3851b372f0ba7
         1a9dcdded43b14b9d06961bfc1707d9d"
   Expires: Tue, 21 Mar 2023 01:00:00 GMT
   Cache-Control: max-age=86000,public,no-transform,must-revalidate
   <...>
]]></artwork>
        <t>OCSP clients <bcp14>MUST NOT</bcp14> include a no-cache HTTP header field 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 <bcp14>SHOULD</bcp14> resend the request specifying that proxies
should be bypassed by including an appropriate HTTP header field in the
request (i.e., Pragma: no-cache or Cache-Control: no-cache).</t>
      </section>
      <section anchor="caching-at-servers">
        <name>Caching at Servers</name>
        <t>In some scenarios, it is advantageous to include OCSP response
information within the protocol being utilized between the client and
OCSP responder.
Including OCSP responses in this manner has a few attractive effects.</t>
        <t>First, it allows for the caching of OCSP responses on the
OCSP responder, thus lowering the number of hits.</t>
        <t>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 OCSP responder.</t>
        <t>Third, it reduces the number of round trips the client needs to make
in order to complete a handshake.</t>
        <t>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.</t>
        <t>This functionality has been specified as an extension to the TLS
<xref target="I-D.ietf-tls-rfc8446bis"/> protocol in
<xref section="4.4.2" sectionFormat="of" target="I-D.ietf-tls-rfc8446bis"/>,
but can be applied to any client-server protocol.</t>
        <t>This profile RECOMMENDS that both TLS clients and servers implement
the certificate status request extension mechanism for TLS.</t>
        <t>Further information regarding caching issues can be obtained
from <xref target="RFC3143"/>.</t>
      </section>
    </section>
    <section anchor="sec-cons">
      <name>Security Considerations</name>
      <t>The following considerations apply in addition to the security
considerations addressed in <xref section="5" sectionFormat="of" target="RFC6960"/>.</t>
      <section anchor="replay-attacks">
        <name>Replay Attacks</name>
        <t>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 <bcp14>MUST</bcp14> have access to an
accurate source of time and ensure that the OCSP responses they
receive are sufficiently fresh.</t>
        <t>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.</t>
        <t>Future versions of the OCSP protocol may provide a way for the client
to know whether the responder supports nonces or does not support
nonces. If a client can determine that the responder supports nonces,
it <bcp14>MUST</bcp14> reject a reply that does not contain an expected nonce.
Otherwise, clients that opt to include a nonce in the request <bcp14>SHOULD
NOT</bcp14> reject a corresponding OCSPResponse solely on the basis of the
nonexistent expected nonce, but <bcp14>MUST</bcp14> fall back to validating the
OCSPResponse based on time.</t>
      </section>
      <section anchor="man-in-the-middle-attacks">
        <name>Man-in-the-Middle Attacks</name>
        <t>To mitigate risk associated with this class of attack, the client
<bcp14>MUST</bcp14> properly validate the signature on the response.</t>
        <t>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.</t>
        <t>Clients <bcp14>MUST</bcp14> ensure that they are communicating with an authorized
responder by the rules described in <xref section="4.2.2.2" sectionFormat="of" target="RFC6960"/>.</t>
      </section>
      <section anchor="impersonation-attacks">
        <name>Impersonation Attacks</name>
        <t>The use of signed responses in OCSP serves to authenticate the
identity of OCSP responder.</t>
        <t>As detailed in <xref target="RFC6960"/>, 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.</t>
      </section>
      <section anchor="denial-of-service-attacks">
        <name>Denial-of-Service Attacks</name>
        <t>OCSP responders <bcp14>SHOULD</bcp14> 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.</t>
      </section>
      <section anchor="modification-of-http-header-fields">
        <name>Modification of HTTP Header Fields</name>
        <t>Values included in HTTP header fields, as described in <xref target="transport"/>
and <xref target="cache-recs"/>,
are not cryptographically protected; they may be manipulated by an
attacker. Clients <bcp14>SHOULD</bcp14> use these values for caching guidance only
and ultimately <bcp14>SHOULD</bcp14> rely only on the values present in the signed
OCSPResponse <xref section="4.2.2.1" sectionFormat="of" target="RFC6960"/>.
Clients <bcp14>SHOULD NOT</bcp14> rely on cached responses beyond the
nextUpdate time.</t>
      </section>
      <section anchor="request-authentication-and-authorization">
        <name>Request Authentication and Authorization</name>
        <t>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.</t>
      </section>
      <section anchor="sha1-sec">
        <name>Use of SHA-1 for the calculation of CertID field values</name>
        <t>Although the use of SHA-1 for the calculation of CertID field values is
not of concern from a cryptographic security standpoint, the continued
use of SHA-1 in an ecosystem requires that software that interoperates
with the ecosystem maintain support for SHA-1. This increases
implementation complexity and potential attack surface for the software
in question. Thus, the continued use of SHA-1 in an ecosystem to
maintain interoperability with legacy software must be weighed against
the increased implementation complexity and potential attack surface.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC6960">
          <front>
            <title>X.509 Internet Public Key Infrastructure Online Certificate Status Protocol - OCSP</title>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="M. Myers" initials="M." surname="Myers"/>
            <author fullname="R. Ankney" initials="R." surname="Ankney"/>
            <author fullname="A. Malpani" initials="A." surname="Malpani"/>
            <author fullname="S. Galperin" initials="S." surname="Galperin"/>
            <author fullname="C. Adams" initials="C." surname="Adams"/>
            <date month="June" year="2013"/>
            <abstract>
              <t>This document specifies a protocol useful in determining the current status of a digital certificate without requiring Certificate Revocation Lists (CRLs). Additional mechanisms addressing PKIX operational requirements are specified in separate documents. This document obsoletes RFCs 2560 and 6277. It also updates RFC 5912.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6960"/>
          <seriesInfo name="DOI" value="10.17487/RFC6960"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC5754">
          <front>
            <title>Using SHA2 Algorithms with Cryptographic Message Syntax</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="January" year="2010"/>
            <abstract>
              <t>This document describes the conventions for using the Secure Hash Algorithm (SHA) message digest algorithms (SHA-224, SHA-256, SHA-384, SHA-512) with the Cryptographic Message Syntax (CMS). It also describes the conventions for using these algorithms with the CMS and the Digital Signature Algorithm (DSA), Rivest Shamir Adleman (RSA), and Elliptic Curve DSA (ECDSA) signature algorithms. Further, it provides SMIMECapabilities attribute values for each algorithm. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5754"/>
          <seriesInfo name="DOI" value="10.17487/RFC5754"/>
        </reference>
        <reference anchor="RFC5019">
          <front>
            <title>The Lightweight Online Certificate Status Protocol (OCSP) Profile for High-Volume Environments</title>
            <author fullname="A. Deacon" initials="A." surname="Deacon"/>
            <author fullname="R. Hurst" initials="R." surname="Hurst"/>
            <date month="September" year="2007"/>
            <abstract>
              <t>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. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5019"/>
          <seriesInfo name="DOI" value="10.17487/RFC5019"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
            <author fullname="R. Fielding" initials="R." surname="Fielding"/>
            <author fullname="L. Masinter" initials="L." surname="Masinter"/>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC9111">
          <front>
            <title>HTTP Caching</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document defines HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages.</t>
              <t>This document obsoletes RFC 7234.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="98"/>
          <seriesInfo name="RFC" value="9111"/>
          <seriesInfo name="DOI" value="10.17487/RFC9111"/>
        </reference>
        <reference anchor="I-D.ietf-tls-rfc8446bis">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="Eric Rescorla" initials="E." surname="Rescorla">
              <organization>Windy Hill Systems, LLC</organization>
            </author>
            <date day="3" month="March" year="2024"/>
            <abstract>
              <t>   This document specifies version 1.3 of the Transport Layer Security
   (TLS) protocol.  TLS allows client/server applications to communicate
   over the Internet in a way that is designed to prevent eavesdropping,
   tampering, and message forgery.

   This document updates RFCs 5705, 6066, 7627, and 8422 and obsoletes
   RFCs 5077, 5246, 6961, and 8446.  This document also specifies new
   requirements for TLS 1.2 implementations.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-rfc8446bis-10"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="OCSPMP">
          <front>
            <title>OCSP Mobile Profile V1.0</title>
            <author>
              <organization>Open Mobile Alliance</organization>
            </author>
            <date/>
          </front>
          <seriesInfo name="www.openmobilealliance.org" value=""/>
        </reference>
        <reference anchor="RFC3174">
          <front>
            <title>US Secure Hash Algorithm 1 (SHA1)</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="P. Jones" initials="P." surname="Jones"/>
            <date month="September" year="2001"/>
            <abstract>
              <t>The purpose of this document is to make the SHA-1 (Secure Hash Algorithm 1) hash algorithm conveniently available to the Internet community. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3174"/>
          <seriesInfo name="DOI" value="10.17487/RFC3174"/>
        </reference>
        <reference anchor="RFC3143">
          <front>
            <title>Known HTTP Proxy/Caching Problems</title>
            <author fullname="I. Cooper" initials="I." surname="Cooper"/>
            <author fullname="J. Dilley" initials="J." surname="Dilley"/>
            <date month="June" year="2001"/>
            <abstract>
              <t>This document catalogs a number of known problems with World Wide Web (WWW) (caching) proxies and cache servers. The goal of the document is to provide a discussion of the problems and proposed workarounds, and ultimately to improve conditions by illustrating problems. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3143"/>
          <seriesInfo name="DOI" value="10.17487/RFC3143"/>
        </reference>
        <reference anchor="RFC9500">
          <front>
            <title>Standard Public Key Cryptography (PKC) Test Keys</title>
            <author fullname="P. Gutmann" initials="P." surname="Gutmann"/>
            <author fullname="C. Bonnell" initials="C." surname="Bonnell"/>
            <date month="December" year="2023"/>
            <abstract>
              <t>This document provides a set of standard Public Key Cryptography (PKC) test keys that may be used wherever pre-generated keys and associated operations like digital signatures are required. Like the European Institute for Computer Antivirus Research (EICAR) virus test and the Generic Test for Unsolicited Bulk Email (GTUBE) spam test files, these publicly known test keys can be detected and recognised by applications consuming them as being purely for testing purposes without assigning any security properties to them.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9500"/>
          <seriesInfo name="DOI" value="10.17487/RFC9500"/>
        </reference>
      </references>
    </references>
    <?line 729?>

<section anchor="differences-from-rfc-5019">
      <name>Differences from RFC 5019</name>
      <t>This document obsoletes <xref target="RFC5019"/>. <xref target="RFC5019"/> defines a lightweight
profile for OCSP that makes the protocol more suitable for use in
high-volume environments. The lightweight profile specifies the
mandatory use of SHA-1 when calculating the values of several fields in
OCSP requests and responses. In recent years, weaknesses have been
demonstrated with the SHA-1 algorithm. As a result, SHA-1 is
increasingly falling out of use even for non-security relevant
use cases. This document obsoletes the lightweight profile as specified
in RFC 5019 to instead recommend the use of SHA-256 where SHA-1 was
previously required. An <xref target="RFC5019"/>-compliant OCSP client is still able
to use SHA-1, but the use of SHA-1 may become obsolete in the future.</t>
      <t>Substantive changes to RFC 5019:</t>
      <ul spacing="normal">
        <li>
          <t><xref target="certid"/> requires new OCSP clients to use SHA-256 to
support migration for OCSP clients.</t>
        </li>
        <li>
          <t><xref target="byKey"/> requires new OCSP responders to use the byKey field,
and support migration from byName fields.</t>
        </li>
        <li>
          <t><xref target="transport"/> clarifies that OCSP clients <bcp14>MUST NOT</bcp14> include
whitespace or any other characters that are not part of
the base64 character repertoire in the base64-encoded string.</t>
        </li>
      </ul>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <section anchor="root-certification-authority-certificate">
        <name>Root Certification Authority Certificate</name>
        <t>This is a self-signed certificate for the certification authority that
issued the end-entity certificate and OCSP delegated responder
example certificates below.</t>
        <t>The key pair for the certification authority is the "testECCP521"
key from <xref section="2.3" sectionFormat="of" target="RFC9500"/>.</t>
        <artwork><![CDATA[
-----BEGIN CERTIFICATE-----
MIICKDCCAYqgAwIBAgIBATAKBggqhkjOPQQDBDA4MQswCQYDVQQGEwJYWDEUMBIG
A1UECgwLQ2VydHMgJ3IgVXMxEzARBgNVBAMMCklzc3VpbmcgQ0EwHhcNMjQwNDAy
MTIzNzQ3WhcNMjUwNDAyMTIzNzQ3WjA4MQswCQYDVQQGEwJYWDEUMBIGA1UECgwL
Q2VydHMgJ3IgVXMxEzARBgNVBAMMCklzc3VpbmcgQ0EwgZswEAYHKoZIzj0CAQYF
K4EEACMDgYYABAHQ/XJXqEx0f1YldcBzhdvr8vUr6lgIPbgv3RUx2KrjzIdf8C/3
+i2iYNjrYtbS9dZJJ44yFzagYoy7swMItuYY2wD2KtIExkYDWbyBiriWG/Dw/A7F
quikKBc85W8A3psVfB5cgsZPVi/K3vxKTCj200LPPvYW/ILTO3KFySHyvzb92KNC
MEAwHQYDVR0OBBYEFI7CFAlgduqQOOk5rhttUsQXfZ++MA8GA1UdEwEB/wQFMAMB
Af8wDgYDVR0PAQH/BAQDAgIEMAoGCCqGSM49BAMEA4GLADCBhwJBbr/1SJiHCgXG
EJ7R+3er1LdWqrdZHgtCwyT7+wFBIJmVswEiom2LGh/oMuu5mD+u/+o1m07vmmZj
/+ipGp8TIwkCQgCoZ4bHte6XkFm7hUXascLN7vkv7qKwXyTsCvIDpEDTRCX8dUFe
73jGebitkumRHjVhlBJLo7n3FMJrFHNoeblMbw==
-----END CERTIFICATE-----
]]></artwork>
        <artwork><![CDATA[
0 552: SEQUENCE {
  4 394:   SEQUENCE {
  8   3:     [0] {
 10   1:       INTEGER 2
       :       }
 13   1:     INTEGER 1
 16  10:     SEQUENCE {
 18   8:       OBJECT IDENTIFIER ecdsaWithSHA512 (1 2 840 10045 4 3 4)
       :       }
 28  56:     SEQUENCE {
 30  11:       SET {
 32   9:         SEQUENCE {
 34   3:           OBJECT IDENTIFIER countryName (2 5 4 6)
 39   2:           PrintableString 'XX'
       :           }
       :         }
 43  20:       SET {
 45  18:         SEQUENCE {
 47   3:           OBJECT IDENTIFIER organizationName (2 5 4 10)
 52  11:           UTF8String 'Certs 'r Us'
       :           }
       :         }
 65  19:       SET {
 67  17:         SEQUENCE {
 69   3:           OBJECT IDENTIFIER commonName (2 5 4 3)
 74  10:           UTF8String 'Issuing CA'
       :           }
       :         }
       :       }
 86  30:     SEQUENCE {
 88  13:       UTCTime 02/04/2024 12:37:47 GMT
103  13:       UTCTime 02/04/2025 12:37:47 GMT
       :       }
118  56:     SEQUENCE {
120  11:       SET {
122   9:         SEQUENCE {
124   3:           OBJECT IDENTIFIER countryName (2 5 4 6)
129   2:           PrintableString 'XX'
       :           }
       :         }
133  20:       SET {
135  18:         SEQUENCE {
137   3:           OBJECT IDENTIFIER organizationName (2 5 4 10)
142  11:           UTF8String 'Certs 'r Us'
       :           }
       :         }
155  19:       SET {
157  17:         SEQUENCE {
159   3:           OBJECT IDENTIFIER commonName (2 5 4 3)
164  10:           UTF8String 'Issuing CA'
       :           }
       :         }
       :       }
176 155:     SEQUENCE {
179  16:       SEQUENCE {
181   7:         OBJECT IDENTIFIER ecPublicKey (1 2 840 10045 2 1)
190   5:         OBJECT IDENTIFIER secp521r1 (1 3 132 0 35)
       :         }
197 134:       BIT STRING
       :         04 01 D0 FD 72 57 A8 4C 74 7F 56 25 75 C0 73 85
       :         DB EB F2 F5 2B EA 58 08 3D B8 2F DD 15 31 D8 AA
       :         E3 CC 87 5F F0 2F F7 FA 2D A2 60 D8 EB 62 D6 D2
       :         F5 D6 49 27 8E 32 17 36 A0 62 8C BB B3 03 08 B6
       :         E6 18 DB 00 F6 2A D2 04 C6 46 03 59 BC 81 8A B8
       :         96 1B F0 F0 FC 0E C5 AA E8 A4 28 17 3C E5 6F 00
       :         DE 9B 15 7C 1E 5C 82 C6 4F 56 2F CA DE FC 4A 4C
       :         28 F6 D3 42 CF 3E F6 16 FC 82 D3 3B 72 85 C9 21
       :         F2 BF 36 FD D8
       :       }
334  66:     [3] {
336  64:       SEQUENCE {
338  29:         SEQUENCE {
340   3:           OBJECT IDENTIFIER subjectKeyIdentifier (2 5 29 14)
345  22:           OCTET STRING, encapsulates {
347  20:             OCTET STRING
       :               8E C2 14 09 60 76 EA 90 38 E9 39 AE 1B 6D 52 C4
       :               17 7D 9F BE
       :             }
       :           }
369  15:         SEQUENCE {
371   3:           OBJECT IDENTIFIER basicConstraints (2 5 29 19)
376   1:           BOOLEAN TRUE
379   5:           OCTET STRING, encapsulates {
381   3:             SEQUENCE {
383   1:               BOOLEAN TRUE
       :               }
       :             }
       :           }
386  14:         SEQUENCE {
388   3:           OBJECT IDENTIFIER keyUsage (2 5 29 15)
393   1:           BOOLEAN TRUE
396   4:           OCTET STRING, encapsulates {
398   2:             BIT STRING 2 unused bits
       :               '100000'B (bit 5)
       :             }
       :           }
       :         }
       :       }
       :     }
402  10:   SEQUENCE {
404   8:     OBJECT IDENTIFIER ecdsaWithSHA512 (1 2 840 10045 4 3 4)
       :     }
414 139:   BIT STRING, encapsulates {
418 135:     SEQUENCE {
421  65:       INTEGER
       :         6E BF F5 48 98 87 0A 05 C6 10 9E D1 FB 77 AB D4
       :         B7 56 AA B7 59 1E 0B 42 C3 24 FB FB 01 41 20 99
       :         95 B3 01 22 A2 6D 8B 1A 1F E8 32 EB B9 98 3F AE
       :         FF EA 35 9B 4E EF 9A 66 63 FF E8 A9 1A 9F 13 23
       :         09
488  66:       INTEGER
       :         00 A8 67 86 C7 B5 EE 97 90 59 BB 85 45 DA B1 C2
       :         CD EE F9 2F EE A2 B0 5F 24 EC 0A F2 03 A4 40 D3
       :         44 25 FC 75 41 5E EF 78 C6 79 B8 AD 92 E9 91 1E
       :         35 61 94 12 4B A3 B9 F7 14 C2 6B 14 73 68 79 B9
       :         4C 6F
       :       }
       :     }
       :   }
]]></artwork>
      </section>
      <section anchor="end-entity-certificate">
        <name>End-entity Certificate</name>
        <t>This is an end-entity certificate whose status is requested and
returned in the OCSP request and response examples below.</t>
        <t>The key pair for the end-entity certificate is the "testECCP256"
key from <xref section="2.3" sectionFormat="of" target="RFC9500"/>.</t>
        <artwork><![CDATA[
-----BEGIN CERTIFICATE-----
MIIB2zCCATygAwIBAgIEAarwDTAKBggqhkjOPQQDBDA4MQswCQYDVQQGEwJYWDEU
MBIGA1UECgwLQ2VydHMgJ3IgVXMxEzARBgNVBAMMCklzc3VpbmcgQ0EwHhcNMjQw
NDAyMTIzNzQ3WhcNMjUwNDAyMTIzNzQ3WjAcMRowGAYDVQQDDBF4bi0tMThqNGQu
ZXhhbXBsZTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABEIlSPiPt4L/teyjdERS
xyoeVY+9b3O+XkjpMjLMRcWxbEzRDEy41bihcTnpSILImSVymTQl9BQZq36QpCpJ
QnKjUDBOMB0GA1UdDgQWBBRbcKeYF/ef9jfS9+PcRGwhCde71DAfBgNVHSMEGDAW
gBSOwhQJYHbqkDjpOa4bbVLEF32fvjAMBgNVHRMBAf8EAjAAMAoGCCqGSM49BAME
A4GMADCBiAJCAIot8SYNFkScrcsY5T81HSmNzhP/0GC87N3WI849CN0qmNa0nMXW
8HnDKGR5nv/D9x+T8uLMBlpFUWmHQmXAJPN8AkIBW8A0XsiyPJyZfaZieODmtnoI
obZP+eTLNWkGUFL6uCtLtQmYtrXpLAJfvkE6WYVqCUl495Kx9l6M9TBLK5X6V3w=
-----END CERTIFICATE-----
]]></artwork>
        <artwork><![CDATA[
0 475: SEQUENCE {
  4 316:   SEQUENCE {
  8   3:     [0] {
 10   1:       INTEGER 2
       :       }
 13   4:     INTEGER 27979789
 19  10:     SEQUENCE {
 21   8:       OBJECT IDENTIFIER ecdsaWithSHA512 (1 2 840 10045 4 3 4)
       :       }
 31  56:     SEQUENCE {
 33  11:       SET {
 35   9:         SEQUENCE {
 37   3:           OBJECT IDENTIFIER countryName (2 5 4 6)
 42   2:           PrintableString 'XX'
       :           }
       :         }
 46  20:       SET {
 48  18:         SEQUENCE {
 50   3:           OBJECT IDENTIFIER organizationName (2 5 4 10)
 55  11:           UTF8String 'Certs 'r Us'
       :           }
       :         }
 68  19:       SET {
 70  17:         SEQUENCE {
 72   3:           OBJECT IDENTIFIER commonName (2 5 4 3)
 77  10:           UTF8String 'Issuing CA'
       :           }
       :         }
       :       }
 89  30:     SEQUENCE {
 91  13:       UTCTime 02/04/2024 12:37:47 GMT
106  13:       UTCTime 02/04/2025 12:37:47 GMT
       :       }
121  28:     SEQUENCE {
123  26:       SET {
125  24:         SEQUENCE {
127   3:           OBJECT IDENTIFIER commonName (2 5 4 3)
132  17:           UTF8String 'xn--18j4d.example'
       :           }
       :         }
       :       }
151  89:     SEQUENCE {
153  19:       SEQUENCE {
155   7:         OBJECT IDENTIFIER ecPublicKey (1 2 840 10045 2 1)
164   8:         OBJECT IDENTIFIER prime256v1 (1 2 840 10045 3 1 7)
       :         }
174  66:       BIT STRING
       :         04 42 25 48 F8 8F B7 82 FF B5 EC A3 74 44 52 C7
       :         2A 1E 55 8F BD 6F 73 BE 5E 48 E9 32 32 CC 45 C5
       :         B1 6C 4C D1 0C 4C B8 D5 B8 A1 71 39 E9 48 82 C8
       :         99 25 72 99 34 25 F4 14 19 AB 7E 90 A4 2A 49 42
       :         72
       :       }
242  80:     [3] {
244  78:       SEQUENCE {
246  29:         SEQUENCE {
248   3:           OBJECT IDENTIFIER subjectKeyIdentifier (2 5 29 14)
253  22:           OCTET STRING, encapsulates {
255  20:             OCTET STRING
       :               5B 70 A7 98 17 F7 9F F6 37 D2 F7 E3 DC 44 6C 21
       :               09 D7 BB D4
       :             }
       :           }
277  31:         SEQUENCE {
279   3:           OBJECT IDENTIFIER authorityKeyIdentifier (2 5 29 35)
284  24:           OCTET STRING, encapsulates {
286  22:             SEQUENCE {
288  20:               [0]
       :               8E C2 14 09 60 76 EA 90 38 E9 39 AE 1B 6D 52 C4
       :               17 7D 9F BE
       :               }
       :             }
       :           }
310  12:         SEQUENCE {
312   3:           OBJECT IDENTIFIER basicConstraints (2 5 29 19)
317   1:           BOOLEAN TRUE
320   2:           OCTET STRING, encapsulates {
322   0:             SEQUENCE {}
       :             }
       :           }
       :         }
       :       }
       :     }
324  10:   SEQUENCE {
326   8:     OBJECT IDENTIFIER ecdsaWithSHA512 (1 2 840 10045 4 3 4)
       :     }
336 140:   BIT STRING, encapsulates {
340 136:     SEQUENCE {
343  66:       INTEGER
       :         00 8A 2D F1 26 0D 16 44 9C AD CB 18 E5 3F 35 1D
       :         29 8D CE 13 FF D0 60 BC EC DD D6 23 CE 3D 08 DD
       :         2A 98 D6 B4 9C C5 D6 F0 79 C3 28 64 79 9E FF C3
       :         F7 1F 93 F2 E2 CC 06 5A 45 51 69 87 42 65 C0 24
       :         F3 7C
411  66:       INTEGER
       :         01 5B C0 34 5E C8 B2 3C 9C 99 7D A6 62 78 E0 E6
       :         B6 7A 08 A1 B6 4F F9 E4 CB 35 69 06 50 52 FA B8
       :         2B 4B B5 09 98 B6 B5 E9 2C 02 5F BE 41 3A 59 85
       :         6A 09 49 78 F7 92 B1 F6 5E 8C F5 30 4B 2B 95 FA
       :         57 7C
       :       }
       :     }
       :   }
]]></artwork>
      </section>
      <section anchor="ocsp-responder-certificate">
        <name>OCSP Responder Certificate</name>
        <t>This is a certificate for the OCSP delegated response that signed the
OCSP response example below.</t>
        <t>The key pair for the OCSP Responder certificate is the "testECCP384"
key from <xref section="2.3" sectionFormat="of" target="RFC9500"/>.</t>
        <artwork><![CDATA[
-----BEGIN CERTIFICATE-----
MIICSzCCAa6gAwIBAgIBATAKBggqhkjOPQQDBDA4MQswCQYDVQQGEwJYWDEUMBIG
A1UECgwLQ2VydHMgJ3IgVXMxEzARBgNVBAMMCklzc3VpbmcgQ0EwHhcNMjQwNDAy
MTIzNzQ3WhcNMjUwNDAyMTIzNzQ3WjA8MQswCQYDVQQGEwJYWDEUMBIGA1UECgwL
Q2VydHMgJ3IgVXMxFzAVBgNVBAMMDk9DU1AgUmVzcG9uZGVyMHYwEAYHKoZIzj0C
AQYFK4EEACIDYgAEWwkBuIUjKW65GdUP+hqcs3S8TUCVhigr/soRsdla27VHNK9X
C/grcijPImvPTCXdvP47GjrTlDDv92Ph1o0uFR2Rcgt3lbWNprNGOWE6j7m1qNpI
xnRxF/mRnoQk837Io4GHMIGEMB0GA1UdDgQWBBQK46D+ndQldpi163Lrygznvz31
8TAfBgNVHSMEGDAWgBSOwhQJYHbqkDjpOa4bbVLEF32fvjAMBgNVHRMBAf8EAjAA
MA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDCTAPBgkrBgEFBQcw
AQUEAgUAMAoGCCqGSM49BAMEA4GKADCBhgJBFCqM1gpsZcd0Zd8RW8H/+L4OIbTa
GtpT2QY0pd6JBw91lFqNCxj+F1k9XJrKSQAVVAa/b3JaZOsRrH6vihlO3MYCQUkL
C0mmLubTRDH2v+6A1aycIVKIpR3G6+PuaD2Um3PSF7FElkoU4NYkbl1SH/8FzbDy
/LCBhih25e7hAtyg/XsI
-----END CERTIFICATE-----
]]></artwork>
        <artwork><![CDATA[
0 587: SEQUENCE {
  4 430:   SEQUENCE {
  8   3:     [0] {
 10   1:       INTEGER 2
       :       }
 13   1:     INTEGER 1
 16  10:     SEQUENCE {
 18   8:       OBJECT IDENTIFIER ecdsaWithSHA512 (1 2 840 10045 4 3 4)
       :       }
 28  56:     SEQUENCE {
 30  11:       SET {
 32   9:         SEQUENCE {
 34   3:           OBJECT IDENTIFIER countryName (2 5 4 6)
 39   2:           PrintableString 'XX'
       :           }
       :         }
 43  20:       SET {
 45  18:         SEQUENCE {
 47   3:           OBJECT IDENTIFIER organizationName (2 5 4 10)
 52  11:           UTF8String 'Certs 'r Us'
       :           }
       :         }
 65  19:       SET {
 67  17:         SEQUENCE {
 69   3:           OBJECT IDENTIFIER commonName (2 5 4 3)
 74  10:           UTF8String 'Issuing CA'
       :           }
       :         }
       :       }
 86  30:     SEQUENCE {
 88  13:       UTCTime 02/04/2024 12:37:47 GMT
103  13:       UTCTime 02/04/2025 12:37:47 GMT
       :       }
118  60:     SEQUENCE {
120  11:       SET {
122   9:         SEQUENCE {
124   3:           OBJECT IDENTIFIER countryName (2 5 4 6)
129   2:           PrintableString 'XX'
       :           }
       :         }
133  20:       SET {
135  18:         SEQUENCE {
137   3:           OBJECT IDENTIFIER organizationName (2 5 4 10)
142  11:           UTF8String 'Certs 'r Us'
       :           }
       :         }
155  23:       SET {
157  21:         SEQUENCE {
159   3:           OBJECT IDENTIFIER commonName (2 5 4 3)
164  14:           UTF8String 'OCSP Responder'
       :           }
       :         }
       :       }
180 118:     SEQUENCE {
182  16:       SEQUENCE {
184   7:         OBJECT IDENTIFIER ecPublicKey (1 2 840 10045 2 1)
193   5:         OBJECT IDENTIFIER secp384r1 (1 3 132 0 34)
       :         }
200  98:       BIT STRING
       :         04 5B 09 01 B8 85 23 29 6E B9 19 D5 0F FA 1A 9C
       :         B3 74 BC 4D 40 95 86 28 2B FE CA 11 B1 D9 5A DB
       :         B5 47 34 AF 57 0B F8 2B 72 28 CF 22 6B CF 4C 25
       :         DD BC FE 3B 1A 3A D3 94 30 EF F7 63 E1 D6 8D 2E
       :         15 1D 91 72 0B 77 95 B5 8D A6 B3 46 39 61 3A 8F
       :         B9 B5 A8 DA 48 C6 74 71 17 F9 91 9E 84 24 F3 7E
       :         C8
       :       }
300 135:     [3] {
303 132:       SEQUENCE {
306  29:         SEQUENCE {
308   3:           OBJECT IDENTIFIER subjectKeyIdentifier (2 5 29 14)
313  22:           OCTET STRING, encapsulates {
315  20:             OCTET STRING
       :               0A E3 A0 FE 9D D4 25 76 98 B5 EB 72 EB CA 0C E7
       :               BF 3D F5 F1
       :             }
       :           }
337  31:         SEQUENCE {
339   3:           OBJECT IDENTIFIER authorityKeyIdentifier (2 5 29 35)
344  24:           OCTET STRING, encapsulates {
346  22:             SEQUENCE {
348  20:               [0]
       :               8E C2 14 09 60 76 EA 90 38 E9 39 AE 1B 6D 52 C4
       :               17 7D 9F BE
       :               }
       :             }
       :           }
370  12:         SEQUENCE {
372   3:           OBJECT IDENTIFIER basicConstraints (2 5 29 19)
377   1:           BOOLEAN TRUE
380   2:           OCTET STRING, encapsulates {
382   0:             SEQUENCE {}
       :             }
       :           }
384  14:         SEQUENCE {
386   3:           OBJECT IDENTIFIER keyUsage (2 5 29 15)
391   1:           BOOLEAN TRUE
394   4:           OCTET STRING, encapsulates {
396   2:             BIT STRING 7 unused bits
       :               '1'B (bit 0)
       :             }
       :           }
400  19:         SEQUENCE {
402   3:           OBJECT IDENTIFIER extKeyUsage (2 5 29 37)
407  12:           OCTET STRING, encapsulates {
409  10:             SEQUENCE {
411   8:               OBJECT IDENTIFIER ocspSigning (1 3 6 1 5 5 7 3 9)
       :               }
       :             }
       :           }
421  15:         SEQUENCE {
423   9:           OBJECT IDENTIFIER ocspNoCheck (1 3 6 1 5 5 7 48 1 5)
434   2:           OCTET STRING, encapsulates {
436   0:             NULL
       :             }
       :           }
       :         }
       :       }
       :     }
438  10:   SEQUENCE {
440   8:     OBJECT IDENTIFIER ecdsaWithSHA512 (1 2 840 10045 4 3 4)
       :     }
450 138:   BIT STRING, encapsulates {
454 134:     SEQUENCE {
457  65:       INTEGER
       :         14 2A 8C D6 0A 6C 65 C7 74 65 DF 11 5B C1 FF F8
       :         BE 0E 21 B4 DA 1A DA 53 D9 06 34 A5 DE 89 07 0F
       :         75 94 5A 8D 0B 18 FE 17 59 3D 5C 9A CA 49 00 15
       :         54 06 BF 6F 72 5A 64 EB 11 AC 7E AF 8A 19 4E DC
       :         C6
524  65:       INTEGER
       :         49 0B 0B 49 A6 2E E6 D3 44 31 F6 BF EE 80 D5 AC
       :         9C 21 52 88 A5 1D C6 EB E3 EE 68 3D 94 9B 73 D2
       :         17 B1 44 96 4A 14 E0 D6 24 6E 5D 52 1F FF 05 CD
       :         B0 F2 FC B0 81 86 28 76 E5 EE E1 02 DC A0 FD 7B
       :         08
       :       }
       :     }
       :   }
]]></artwork>
      </section>
      <section anchor="ocsp-request">
        <name>OCSP Request</name>
        <t>This is a base64-encoded OCSP request for the end-entity certificate
above.</t>
        <artwork><![CDATA[
MGEwXzBdMFswWTANBglghkgBZQMEAgEFAAQgOplGd1aAc6cHv95QGGNF5M1hNNsI
Xrqh0QQl8DtvCOoEIEdKbKMB8j3J9/cHhwThx/X8lucWdfbtiC56tlw/WEVDAgQB
qvAN
]]></artwork>
        <artwork><![CDATA[
0  97: SEQUENCE {
  2  95:   SEQUENCE {
  4  93:     SEQUENCE {
  6  91:       SEQUENCE {
  8  89:         SEQUENCE {
 10  13:           SEQUENCE {
 12   9:             OBJECT IDENTIFIER sha-256 (2 16 840 1 101 3 4 2 1)
 23   0:             NULL
       :             }
 25  32:           OCTET STRING
       :             3A 99 46 77 56 80 73 A7 07 BF DE 50 18 63 45 E4
       :             CD 61 34 DB 08 5E BA A1 D1 04 25 F0 3B 6F 08 EA
 59  32:           OCTET STRING
       :             47 4A 6C A3 01 F2 3D C9 F7 F7 07 87 04 E1 C7 F5
       :             FC 96 E7 16 75 F6 ED 88 2E 7A B6 5C 3F 58 45 43
 93   4:           INTEGER 27979789
       :           }
       :         }
       :       }
       :     }
       :   }
]]></artwork>
      </section>
      <section anchor="ocsp-response">
        <name>OCSP Response</name>
        <t>This is a base64-encoded OCSP response for the end-entity certificate
above.</t>
        <artwork><![CDATA[
MIIDnwoBAKCCA5gwggOUBgkrBgEFBQcwAQEEggOFMIIDgTCBsKIWBBQK46D+ndQl
dpi163Lrygznvz318RgPMjAyNDA0MDIxMjM3NDdaMIGEMIGBMFkwDQYJYIZIAWUD
BAIBBQAEIDqZRndWgHOnB7/eUBhjReTNYTTbCF66odEEJfA7bwjqBCBHSmyjAfI9
yff3B4cE4cf1/JbnFnX27YguerZcP1hFQwIEAarwDYAAGA8yMDI0MDQwMzEyMzc0
N1qgERgPMjAyNDA0MTAxMjM3NDdaMAoGCCqGSM49BAMDA2kAMGYCMQDRmVmiIb4D
m9yEXiv2XtoeQi6ftpjLmlBqqRIi+3htfF/OyjdHnFuh38cQKYqqrWYCMQDKiPct
Vu7SQs587d2ZBEHQH20j5AFiGGsbI1b3+C9ZK6NIzgD6DnWlDwpSfilEarOgggJT
MIICTzCCAkswggGuoAMCAQICAQEwCgYIKoZIzj0EAwQwODELMAkGA1UEBhMCWFgx
FDASBgNVBAoMC0NlcnRzICdyIFVzMRMwEQYDVQQDDApJc3N1aW5nIENBMB4XDTI0
MDQwMjEyMzc0N1oXDTI1MDQwMjEyMzc0N1owPDELMAkGA1UEBhMCWFgxFDASBgNV
BAoMC0NlcnRzICdyIFVzMRcwFQYDVQQDDA5PQ1NQIFJlc3BvbmRlcjB2MBAGByqG
SM49AgEGBSuBBAAiA2IABFsJAbiFIyluuRnVD/oanLN0vE1AlYYoK/7KEbHZWtu1
RzSvVwv4K3IozyJrz0wl3bz+Oxo605Qw7/dj4daNLhUdkXILd5W1jaazRjlhOo+5
tajaSMZ0cRf5kZ6EJPN+yKOBhzCBhDAdBgNVHQ4EFgQUCuOg/p3UJXaYtety68oM
57899fEwHwYDVR0jBBgwFoAUjsIUCWB26pA46TmuG21SxBd9n74wDAYDVR0TAQH/
BAIwADAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwkwDwYJKwYB
BQUHMAEFBAIFADAKBggqhkjOPQQDBAOBigAwgYYCQRQqjNYKbGXHdGXfEVvB//i+
DiG02hraU9kGNKXeiQcPdZRajQsY/hdZPVyaykkAFVQGv29yWmTrEax+r4oZTtzG
AkFJCwtJpi7m00Qx9r/ugNWsnCFSiKUdxuvj7mg9lJtz0hexRJZKFODWJG5dUh//
Bc2w8vywgYYoduXu4QLcoP17CA==
]]></artwork>
        <artwork><![CDATA[
0 927: SEQUENCE {
  4   1:   ENUMERATED 0
  7 920:   [0] {
 11 916:     SEQUENCE {
 15   9:       OBJECT IDENTIFIER ocspBasic (1 3 6 1 5 5 7 48 1 1)
 26 901:       OCTET STRING, encapsulates {
 30 897:         SEQUENCE {
 34 176:           SEQUENCE {
 37  22:             [2] {
 39  20:               OCTET STRING
       :               0A E3 A0 FE 9D D4 25 76 98 B5 EB 72 EB CA 0C E7
       :               BF 3D F5 F1
       :               }
 61  15:             GeneralizedTime 02/04/2024 12:37:47 GMT
 78 132:             SEQUENCE {
 81 129:               SEQUENCE {
 84  89:                 SEQUENCE {
 86  13:                   SEQUENCE {
 88   9:                     OBJECT IDENTIFIER
       :                       sha-256 (2 16 840 1 101 3 4 2 1)
 99   0:                     NULL
       :                     }
101  32:                   OCTET STRING
       :               3A 99 46 77 56 80 73 A7 07 BF DE 50 18 63 45 E4
       :               CD 61 34 DB 08 5E BA A1 D1 04 25 F0 3B 6F 08 EA
135  32:                   OCTET STRING
       :               47 4A 6C A3 01 F2 3D C9 F7 F7 07 87 04 E1 C7 F5
       :               FC 96 E7 16 75 F6 ED 88 2E 7A B6 5C 3F 58 45 43
169   4:                   INTEGER 27979789
       :                   }
175   0:                 [0]
177  15:                 GeneralizedTime 03/04/2024 12:37:47 GMT
194  17:                 [0] {
196  15:                   GeneralizedTime 10/04/2024 12:37:47 GMT
       :                   }
       :                 }
       :               }
       :             }
213  10:           SEQUENCE {
215   8:             OBJECT IDENTIFIER
       :               ecdsaWithSHA384 (1 2 840 10045 4 3 3)
       :             }
225 105:           BIT STRING, encapsulates {
228 102:             SEQUENCE {
230  49:               INTEGER
       :               00 D1 99 59 A2 21 BE 03 9B DC 84 5E 2B F6 5E DA
       :               1E 42 2E 9F B6 98 CB 9A 50 6A A9 12 22 FB 78 6D
       :               7C 5F CE CA 37 47 9C 5B A1 DF C7 10 29 8A AA AD
       :               66
281  49:               INTEGER
       :               00 CA 88 F7 2D 56 EE D2 42 CE 7C ED DD 99 04 41
       :               D0 1F 6D 23 E4 01 62 18 6B 1B 23 56 F7 F8 2F 59
       :               2B A3 48 CE 00 FA 0E 75 A5 0F 0A 52 7E 29 44 6A
       :               B3
       :               }
       :             }
332 595:           [0] {
336 591:             SEQUENCE {
340 587:               SEQUENCE {
344 430:                 SEQUENCE {
348   3:                   [0] {
350   1:                     INTEGER 2
       :                     }
353   1:                   INTEGER 1
356  10:                   SEQUENCE {
358   8:                     OBJECT IDENTIFIER
       :                       ecdsaWithSHA512 (1 2 840 10045 4 3 4)
       :                     }
368  56:                   SEQUENCE {
370  11:                     SET {
372   9:                       SEQUENCE {
374   3:                         OBJECT IDENTIFIER countryName (2 5 4 6)
379   2:                         PrintableString 'XX'
       :                         }
       :                       }
383  20:                     SET {
385  18:                       SEQUENCE {
387   3:                         OBJECT IDENTIFIER
       :                           organizationName (2 5 4 10)
392  11:                         UTF8String 'Certs 'r Us'
       :                         }
       :                       }
405  19:                     SET {
407  17:                       SEQUENCE {
409   3:                         OBJECT IDENTIFIER commonName (2 5 4 3)
414  10:                         UTF8String 'Issuing CA'
       :                         }
       :                       }
       :                     }
426  30:                   SEQUENCE {
428  13:                     UTCTime 02/04/2024 12:37:47 GMT
443  13:                     UTCTime 02/04/2025 12:37:47 GMT
       :                     }
458  60:                   SEQUENCE {
460  11:                     SET {
462   9:                       SEQUENCE {
464   3:                         OBJECT IDENTIFIER countryName (2 5 4 6)
469   2:                         PrintableString 'XX'
       :                         }
       :                       }
473  20:                     SET {
475  18:                       SEQUENCE {
477   3:                         OBJECT IDENTIFIER
       :                           organizationName (2 5 4 10)
482  11:                         UTF8String 'Certs 'r Us'
       :                         }
       :                       }
495  23:                     SET {
497  21:                       SEQUENCE {
499   3:                         OBJECT IDENTIFIER commonName (2 5 4 3)
504  14:                         UTF8String 'OCSP Responder'
       :                         }
       :                       }
       :                     }
520 118:                   SEQUENCE {
522  16:                     SEQUENCE {
524   7:                       OBJECT IDENTIFIER
       :                         ecPublicKey (1 2 840 10045 2 1)
533   5:                       OBJECT IDENTIFIER
       :                         secp384r1 (1 3 132 0 34)
       :                       }
540  98:                     BIT STRING
       :               04 5B 09 01 B8 85 23 29 6E B9 19 D5 0F FA 1A 9C
       :               B3 74 BC 4D 40 95 86 28 2B FE CA 11 B1 D9 5A DB
       :               B5 47 34 AF 57 0B F8 2B 72 28 CF 22 6B CF 4C 25
       :               DD BC FE 3B 1A 3A D3 94 30 EF F7 63 E1 D6 8D 2E
       :               15 1D 91 72 0B 77 95 B5 8D A6 B3 46 39 61 3A 8F
       :               B9 B5 A8 DA 48 C6 74 71 17 F9 91 9E 84 24 F3 7E
       :               C8
       :                     }
640 135:                   [3] {
643 132:                     SEQUENCE {
646  29:                       SEQUENCE {
648   3:                         OBJECT IDENTIFIER
       :                           subjectKeyIdentifier (2 5 29 14)
653  22:                         OCTET STRING, encapsulates {
655  20:                           OCTET STRING
       :               0A E3 A0 FE 9D D4 25 76 98 B5 EB 72 EB CA 0C E7
       :               BF 3D F5 F1
       :                           }
       :                         }
677  31:                       SEQUENCE {
679   3:                         OBJECT IDENTIFIER
       :                           authorityKeyIdentifier (2 5 29 35)
684  24:                         OCTET STRING, encapsulates {
686  22:                           SEQUENCE {
688  20:                             [0]
       :               8E C2 14 09 60 76 EA 90 38 E9 39 AE 1B 6D 52 C4
       :               17 7D 9F BE
       :                             }
       :                           }
       :                         }
710  12:                       SEQUENCE {
712   3:                         OBJECT IDENTIFIER
       :                           basicConstraints (2 5 29 19)
717   1:                         BOOLEAN TRUE
720   2:                         OCTET STRING, encapsulates {
722   0:                           SEQUENCE {}
       :                           }
       :                         }
724  14:                       SEQUENCE {
726   3:                         OBJECT IDENTIFIER keyUsage (2 5 29 15)
731   1:                         BOOLEAN TRUE
734   4:                         OCTET STRING, encapsulates {
736   2:                           BIT STRING 7 unused bits
       :                             '1'B (bit 0)
       :                           }
       :                         }
740  19:                       SEQUENCE {
742   3:                         OBJECT IDENTIFIER
       :                           extKeyUsage (2 5 29 37)
747  12:                         OCTET STRING, encapsulates {
749  10:                           SEQUENCE {
751   8:                             OBJECT IDENTIFIER
       :                               ocspSigning (1 3 6 1 5 5 7 3 9)
       :                             }
       :                           }
       :                         }
761  15:                       SEQUENCE {
763   9:                         OBJECT IDENTIFIER
       :                           ocspNoCheck (1 3 6 1 5 5 7 48 1 5)
774   2:                         OCTET STRING, encapsulates {
776   0:                           NULL
       :                           }
       :                         }
       :                       }
       :                     }
       :                   }
778  10:                 SEQUENCE {
780   8:                   OBJECT IDENTIFIER
       :                     ecdsaWithSHA512 (1 2 840 10045 4 3 4)
       :                   }
790 138:                 BIT STRING, encapsulates {
794 134:                   SEQUENCE {
797  65:                     INTEGER
       :               14 2A 8C D6 0A 6C 65 C7 74 65 DF 11 5B C1 FF F8
       :               BE 0E 21 B4 DA 1A DA 53 D9 06 34 A5 DE 89 07 0F
       :               75 94 5A 8D 0B 18 FE 17 59 3D 5C 9A CA 49 00 15
       :               54 06 BF 6F 72 5A 64 EB 11 AC 7E AF 8A 19 4E DC
       :               C6
864  65:                     INTEGER
       :               49 0B 0B 49 A6 2E E6 D3 44 31 F6 BF EE 80 D5 AC
       :               9C 21 52 88 A5 1D C6 EB E3 EE 68 3D 94 9B 73 D2
       :               17 B1 44 96 4A 14 E0 D6 24 6E 5D 52 1F FF 05 CD
       :               B0 F2 FC B0 81 86 28 76 E5 EE E1 02 DC A0 FD 7B
       :               08
       :                     }
       :                   }
       :                 }
       :               }
       :             }
       :           }
       :         }
       :       }
       :     }
       :   }
]]></artwork>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors of this version of the document wish to thank Alex Deacon
and Ryan Hurst for their work to produce the original version
of the lightweight profile for the OCSP protocol.</t>
      <t>The authors of this version of the document wish to thank
Paul Kyzivat, Russ Housley, Rob Stradling, Roman Danyliw, and
Wendy Brown for their reviews, feedback, and suggestions.</t>
      <t>The authors wish to thank Magnus Nystrom of RSA Security, Inc.,
Jagjeet Sondh of Vodafone Group R&amp;D, and David Engberg of CoreStreet,
Ltd. for their contributions to the original <xref target="RFC5019"/> specification.
Listed organizational affiliations reflect the author’s affiliation
at the time of RFC5019 was published.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
CPfuQZgQic/mkfPshqQHsfiKwy+kU8vTB5YTCEG+larQSIGpWxBicJOeZA5T
jlaUCL8mW/MDlFh4QWec8kuj3FO4dIrsYxBggeeI2j5eKejYDwt+61p8Ix5o
9DmBnmXfJD6oPzp+koyuKL+wE7EkbgMlvqFzrMiXolAzD9esorPzkG6YMowX
eHzg9irgu64j+F7B5IZb6GkH6cMYIjbhLiYsEfuVG3u5ABd0p4toHTByVgHl
hPkldzDqRYqfdmk5uAhLlBN+mLWju6ei/Sfx+aHc08wJT66UhpiMiM/hFBbB
eCUOaLtcDVAQUpw/gvZB1dE4v8CyQZOI36nzZyL9ojtN5Q2T8r0S6J8JGTd3
J+K023gliI/2eO38XLyiyiWzXtRP/ndy3tUOv3k23xLdjCmdshW1JZl74n6+
GC/wYq5N+buA42mbL7fBA25JeVC1IR/nF1lQGLuVTgrgYoyQHIiA2RUWlOyF
xbo1VV1yOiC/rIFusuRqbDHaFc6mXE18IV90+qDkxynCgUiHuQYOmGR7yY1k
S9v1X+2NyxfphxA3oRrGea2sflDwaxHQTo4DqeAKwPh2q1bi3jemUnfx0a2D
zikzrAs8jt7Q+ha9VbqdjnFsGoZ2922irTu6NoH/9iNA/v3Zea9n6qZW7faC
tdG7M697vQNrfXR3Y1pXXb1zoGjqlWVM1ie98vVmdNidHFU6k+vb7pP1rF3o
k9NrXet2jYfZ87ByvRzMh5NeyVofToen3fve+tTUNkq333k+fe5VbujlFb2M
391vbzlqWHlPy5OvwdrS7g6Pva+d5/uSofXu2spx1bI0o2tO7u40XTvs7d8e
3X6znkpj9W42GurP09Gj33y88uuzSed8MHmsXFw9lY/9++fOaNw09ivKZ7fs
3p3e+3fh4LI1+np0VK1u2s/25M7bNIJ1txOu7u7Ka7N8HHasp4c782aw0V3f
vTnYN9f7WqOtwOJ/ONaHzdpNU6ssg+uxXhtOgq/n1+7+ceXx6bhv3JdLpZPz
88e7m/3OSf+sctzeXB5uHp8HrfLxqaF0LW19iES6KJ3p+p3V7jSMtjabjFbf
emdnDzV/GoZXQe92/PXz567WROKNrLWl76977a7W1RVt3FwDAbCCc613uK9r
PRN4wepq3oFhfDu47FZbQFBLqx6caKahT9dH+sDfVy+P3ENjcnugWEeNi88V
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
Q6tN1pPJ2ZWcstB6lgXv2lhu0jf04LiTSrIo2SxL82Jy3r3XNqemVuqanafu
fbdyao5sytR0DvRu+2Ft9u6O7jpfO9rNlanoWgcq1KyO+e3rxWJ0Mzk8W+iN
fedKn95fOP3Tu35/YLTrdW9kWUdjrTFY33/TDf3wcr6518adlrIZjyt6dWhV
h2N1/2iwaC9uy427ycrxvw7P1Wm7txZI7TtNO9CaG+gV9Ky37j5bm+7zsKSc
qt8mltztvpZ0O52pMbXyg9Y9uDO6PfNifj13O4OqqcxbG+vWfSzfhp7Tc+vj
cHl/Mp/p375ddNzPlWk4bu+fbe5Hh4v2alppDnvHd9+++TdUybF7PgyV61Xj
shfUmo1R+atuHfYOy6X7mtZ2Dw6CQUcdVD4bra/H9dPO88Ssm4ubmbleXo7d
mWX7Z5PJ5KhPGco+ZigfApjCg5WndQ2t14H/WmtjctcRaTxLW/fWZ6Z10tUe
KDeoT7vGTXvypLRN7ZLnA72uUTqdDRcXzx1jtOm0r5+7F9211ROgcm15NKyc
qvZNbdGxTvWuXr01+52SQhS95xQ9VT18qWberc8LWo4aVopbHq7bccu18556
2uu0j2bDiv44mF/Mhvd6uatrhGRXIii7frnSdU1ztXJH09vBkTZw253NbLW6
WFyb+569ODktPVqqNru78473G8fW4PDrTbhSlYvny8fr9WP1uNLxnjdH/nNp
PasMnj+fPXn1Uq23buyP7qsj+/RkejV6uO2cjGo36r1tP1/cz6Zn3ueaEtr3
9mX3a2l4Ma49fK1bR+ennzfHZ/r02dCnpjaiPGGvarUnvStjdTbZX1aujm7t
u9AJN/Wm11VqIFBaY2t9uKZTM+51fbJue9rVfdC5Mm70cn2pVev9+eqgrF4+
6aPWolFdmxqV7eMJG7iY1pqpnfGWmpS6BLY19Kq2tnilM11bc55Y38HCuzrU
1rAi13dH+LeCL7oarH2t09bMTIob6nUn2npyd2f0Lnrf7k/vjgcHt4ejg9ux
df2o7++7nxXTPSiVp7591Xo4OD2+ddze8Hz09cK+7wV3+9PR1/Prjb15eNDa
172Dx3JrczPv+5b99Nmvel/74fOBoj20j4x1eLR0G/NSqffU8vdXk9ObYGG0
L93jq9HT6vG+MZ+0Zkfhc2nqPF0cfT1un5k3Rwe10dV0H2gwLK+bjxvspjda
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
WcIn8AAA

-->

</rfc>
