<?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.6.26 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bonnell-rfc5019bis-01" category="std" consensus="true" submissionType="IETF" updates="5019" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title abbrev="RFC5019bis">Updates to Lightweight OCSP Profile for High Volume Environments</title>
    <seriesInfo name="Internet-Draft" value="draft-bonnell-rfc5019bis-01"/>
    <author fullname="Corey Bonnell">
      <organization>DigiCert, Inc.</organization>
      <address>
        <email>corey.bonnell@digicert.com</email>
      </address>
    </author>
    <author fullname="Clint Wilson">
      <organization>Apple, Inc.</organization>
      <address>
        <email>clintw@apple.com</email>
      </address>
    </author>
    <author fullname="Tadahiko Ito">
      <organization>SECOM CO., LTD.</organization>
      <address>
        <email>tadahiko.ito.public@gmail.com</email>
      </address>
    </author>
    <author fullname="Sean Turner">
      <organization>sn3rd</organization>
      <address>
        <email>sean@sn3rd.com</email>
      </address>
    </author>
    <date year="2023" month="March" day="06"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document updates RFC5019 to allow OCSP clients to use SHA-256.
An RFC5019 compliant OCSP client is still able to use SHA-1, but the use of SHA-1 may become obsolete in the future.</t>
    </abstract>
  </front>
  <middle>
    <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 we refer to OCSP as being used to verify certificate status,
but only the revocation status of a certificate is checked via this
protocol.)</t>
      <t>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.</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 PKI environments described above by defining a message
profile and clarifying OCSP client and responder behavior that will
permit:</t>
      <ol spacing="normal" type="1"><li>OCSP response pre-production and distribution.</li>
        <li>Reduced OCSP message size to lower bandwidth usage.</li>
        <li>Response message caching both in the network and on the client.</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. 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 6960 client 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>
    </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="ocsp-request-profile">
        <name>OCSP Request Profile</name>
        <section anchor="ocsprequest-structure">
          <name>OCSPRequest Structure</name>
          <t>OCSPRequests conformant to this profile <bcp14>MUST</bcp14> include only one Request
in the OCSPRequest.RequestList structure.</t>
          <t>Older OCSP Clients which provide backward compatibility with <xref target="RFC5019"/>
            <bcp14>MUST</bcp14> use SHA-1 as the hashing algorithm for the
CertID.issuerNameHash and the CertID.issuerKeyHash values.</t>
          <t>Newer OCSP Clients that support this document <bcp14>MUST</bcp14>
use SHA-256 as the hashing algorithm for the
CertID.issuerNameHash and the CertID.issuerKeyHash values.</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
Section 5 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 servers
<bcp14>MUST</bcp14> be prepared to receive unsigned OCSP requests that contain the
requestorName field, but must realize that the provided value is not
authenticated.</t>
        </section>
      </section>
      <section anchor="ocsp-response-profile">
        <name>OCSP Response Profile</name>
        <section anchor="ocspresponse-structure">
          <name>OCSPResponse Structure</name>
          <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 conformant 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.</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 server, 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 Section 5 for details on validating
responses that do not contain a nonce. See also Section 8 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="signed-ocspresponses">
          <name>Signed OCSPResponses</name>
          <t>Clients <bcp14>MUST</bcp14> validate the signature on the returned 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
both the byName and byKey ResponseData.ResponderID choices.
Responders <bcp14>SHOULD</bcp14> use byKey to further reduce the size of the
response in scenarios where reducing bandwidth is an issue.</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 server or the server
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="thisupdate-nextupdate-and-producedat">
          <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>
          <t>thisUpdate    The time at which the status being indicated is known to be correct.</t>
          <t>nextUpdate    The time at or before which newer information will be
available about the status of the certificate.
Responders <bcp14>MUST</bcp14> always include this value to aid in
response caching. See Section 7 for additional
information on caching.</t>
          <t>producedAt    The time at which the OCSP response was signed.</t>
          <t>Note: In many cases the value of thisUpdate and producedAt will be
the same.</t>
          <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="ensuring-an-ocspresponse-is-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 Section 3.1),
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
Section 3.2.4, 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.</t>
      <t>See the security considerations in Section 8 for additional details on
replay and man-in-the-middle attacks.</t>
    </section>
    <section anchor="transport-profile">
      <name>Transport Profile</name>
      <t>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 and append it to the URI specified in the AIA
extension <xref target="RFC5280"/>. Clients <bcp14>MUST NOT</bcp14> include CR or LF characters in
the base64-encoded string. Clients <bcp14>MUST</bcp14> properly URL-encode the
base64 encoded OCSPRequest. 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"/> headers.</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 Section 7.2 for details on the use of these headers.</t>
    </section>
    <section anchor="caching-recommendations">
      <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 headers of the OCSP response in
such a way as to allow for the intelligent use of intermediate HTTP
proxy servers. See <xref target="RFC9110"/>for the full definition of these headers
and the proper format of any date and time values.</t>
        <table>
          <thead>
            <tr>
              <th align="left">HTTP Header</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 server 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" header in
authoritative OCSP responses.</t>
        <t>OCSP responders <bcp14>SHOULD</bcp14> include one or more of these headers in non-
authoritative OCSP responses.</t>
        <t>For example, assume that an OCSP response has the following timestamp
values:</t>
        <artwork><![CDATA[
thisUpdate = May 1, 2005 01:00:00 GMT
nextUpdate = May 3, 2005 01:00:00 GMT
productedAt = May 1, 2005 01:00:00 GMT
]]></artwork>
        <t>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:</t>
        <artwork><![CDATA[
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
<...>
]]></artwork>
        <t>OCSP clients <bcp14>MUST NOT</bcp14> 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 <bcp14>SHOULD</bcp14> 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).</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
server. Including OCSP responses in this manner has a few attractive
effects.</t>
        <t>First, it allows for the caching of OCSP responses on the server,
thus lowering the number of hits to the OCSP responder.</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 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 Section 4.4.2 <xref 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="security-considerations">
      <name>Security Considerations</name>
      <t>The following considerations apply in addition to the security
considerations addressed in Section 5 of <xref 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 server supports nonces or does not support
nonces. If a client can determine that the server 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
must 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 target="RFC6960"/>, Section 4.2.2.2.</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 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.</t>
      </section>
      <section anchor="modification-of-http-headers">
        <name>Modification of HTTP Headers</name>
        <t>Values included in HTTP headers, as described in Sections 6 and 7,
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. 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>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <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">
              <organization/>
            </author>
            <author fullname="M. Myers" initials="M." surname="Myers">
              <organization/>
            </author>
            <author fullname="R. Ankney" initials="R." surname="Ankney">
              <organization/>
            </author>
            <author fullname="A. Malpani" initials="A." surname="Malpani">
              <organization/>
            </author>
            <author fullname="S. Galperin" initials="S." surname="Galperin">
              <organization/>
            </author>
            <author fullname="C. Adams" initials="C." surname="Adams">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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="RFC5019">
          <front>
            <title>The Lightweight Online Certificate Status Protocol (OCSP) Profile for High-Volume Environments</title>
            <author fullname="A. Deacon" initials="A." surname="Deacon">
              <organization/>
            </author>
            <author fullname="R. Hurst" initials="R." surname="Hurst">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="S. Santesson" initials="S." surname="Santesson">
              <organization/>
            </author>
            <author fullname="S. Farrell" initials="S." surname="Farrell">
              <organization/>
            </author>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen">
              <organization/>
            </author>
            <author fullname="R. Housley" initials="R." surname="Housley">
              <organization/>
            </author>
            <author fullname="W. Polk" initials="W." surname="Polk">
              <organization/>
            </author>
            <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="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding">
              <organization/>
            </author>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham">
              <organization/>
            </author>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke">
              <organization/>
            </author>
            <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="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>Mozilla</organization>
            </author>
            <date day="24" month="October" year="2022"/>
            <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-05"/>
        </reference>
      </references>
      <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="RFC3143">
          <front>
            <title>Known HTTP Proxy/Caching Problems</title>
            <author fullname="I. Cooper" initials="I." surname="Cooper">
              <organization/>
            </author>
            <author fullname="J. Dilley" initials="J." surname="Dilley">
              <organization/>
            </author>
            <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>
      </references>
    </references>
    <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 all of their work to produce the original version
of the OCSP protocol.</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.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7Vd6XbbRpb+X09Ro5we231ItiRvsTqdCS3JtjqSF1FJJt1n
foBAkUQLBBgUIJpZ5lnmWebJ5m5VqAKoOOmZSXIciQRquet3lyqPx2PV5E1h
TvTBN5ssaYzVTaUv8+Wq2Rr8U787nb3X7+tqkRdGL6pav4GP9bdV0a6NPi/v
8roq16Zs7IFK5vPa3MFQ169Onx4evZjn8GEKgy6reneibZMplVVpmaxhvqxO
Fs14XpWlKYpxvUjljfHhkbLtfJ1bm1dls9vAsxfnN69U2a7npj5RuMoTlVal
NaVt7Ylu6tYomPax+kwntUlO9Oz8FH7eVvXtsq7azYm6NTv4LYORysbUpWnG
Zzi9annPJxonVyppm1UFU+ix0vDPoi0KXuxpVZudfsmLpe+qepmU+Y9JA4s8
0Wf5Mj81dTOCCdIJPWDWSV6c6BTfnMg2v8rguRSem6TVes8sRV42+ru8sFW5
Z5LpZlOYPTPgW9uvEvx2/7g3SZas8ttKXzTVnnGBWu+u9Om7yUhf3pxFYzfy
5iRvqsmmnRd5+tUSv9o/0cwkpb5pgcD1nnls+bjOwtEtPP4VfUrDqbKq1/Ds
HbBX5eWi+02TFF69P6G3ncCSZF5VcxRMJ6DfHk0OD+gpz0stKznR7zamdC9M
iyJPytTQ9yRSepEUln+3ps6NxSWc6O12O6ngxTW9l8hrExhQKTUej3Uyt02d
pI1SN6vcahDwFvVBi2xpUQbUK3i72rJGAddQafDT1ho9ezMdHz99NlHT0r8A
NNngbE34hoYpbJMXBcwL2whePxrpedvoZmXoo2rBn+p1stNzA4PBZ3NbFaYx
Oi/puUXbtLWZ8D7WeZYVRoHigJLUVdamyDbcldHvShAyo1HE80WOKq1nTdK0
FgnfVGlV6J9++hdY+LMXzw5/+UXbjUnhQdh9otcmXYEU2LWCZWW44gyWUK9x
QFyE5YFgvagdTVLotJvGjnCtsPMWHoAB8nIZreLa3FUpyRcYLQv0fHh6fWkf
TfQsBy7pHD7JzCIvc3okL9XRixcvYMxGrxILZAGByMymqHawMpgo0XcJsL7Z
4XJMYNx0Umb4itrU1R28BLuYG3gctgTiH67Y7SddmfQWl+v3P9EPX1W1QhuZ
wwxbo2uzMDWORQymBeEbjk53IIaL3Z7BRwo5XZXFjihYd0ToiJlE7+WyIBj4
Lk/grZy2QqybPAImV6QEI5CWcsfLYbrw7lfJnWFqubWh7a2BgfnawCqAOsqa
FD/ZQwqvy7BA9CAr8CDju6RojTaFSUHYyjxVoESlTUjoYAP8FAyNVj5HMxAO
M9K2TVdIMZHkeVIisRWyCdgNKpqDIIUcnOippbdGQrMf2rw2pKm4JjBcuGtV
G7upyozZIr/gJAfgWAra7oF+mE8MGMulATsHywGOJbo023AAy77SJLBKoibO
Z2zzqJO7fL2p6gbUewIKp5MsIxkdKVgdvD2gPtggmIzFNJLM7crURIBsm2fN
CjiULI0ChpdVg9sCR9oCY1mAYaC6LUF0nDnBj8Hcgahpu7ONWcuAKB2psaRw
m2oLX8uI6HiBVaC9GRgOoGlgcN5/fYHfA0laBhLgfrc0xboiBqLyAytrsLPh
HoCd8EVleLDSwC6JJ9qmSUF2DsdIK9uMzWIBEgNjqD2CFqjatADz3y5XXrVA
OGuYCySKDAJMgULrlX9tTBNMD5uxazDXuIm1yfJ2Pbb5j/AFbBEfSxrHEKCl
IgKhHXAkBPpuQboyGKxBGGJJ6GrSwwTM2RoMUEIUWgGBiONqoHS4eRCjulrr
eQWMBV7C7vMU+JbuPEU0LAPNLdJkosS7xcRlCZGlBJLCnkHDXhK9AV2AXRJR
WDRgwxnK4R0gFovAKmQ9LwtfC6QE0QsQ7i4325ESBSOSpvA2kkfEhHaKhAW7
vAaq9oV3sIhgFnKK5iMY0In+O6OC/1BqIHhzE9p1slcDlVmDFyVjky9QstWq
LTPgGVlP/x38HLqjwBKSXmWkvGQ0wT+x6sbER66hxyiSeglaxCgWhwVi1OCv
AHRU+rastmADLFCt2BExE5jT2Ec8nxfLwPCiCBJtAzWA33cKOeWGacEUkcVB
zaVVo6+4xWV7a5gTpvDWiEZmYYSPydyDxWFzq7fJjmfmVbDCFFWSocSLnRP7
ackW88pZ8MB+1wkIEACLtvYWOGMtsDhxZU0wAMocIPdNQ9CJpaVdT/o4Cywn
vGNlMWwx8gI9LHEIXQSyG54EtqMDQz/B+yvJYkWikRmb1vkczcMcbdZc7AVb
+TVMhNZ1I3CTlBA4C24aHwhxGn7VOZO5AUbmYNOIeluQLrVBDNQA1D2ahKSz
KO5mvPEIjEbKANzAslr8YKKOJwB84GtYJb0py9JoopBYBRnsnlZN1GN8TeZw
r6TgoXDpZGHEmTqG4cQVf8SbAtpfsLRAGAX7yjox9Ng99KzW21oamTEHEQ4p
QLYnqzbo1Oa7GBbj1D15EoOL3IPRwInsWKfGbCcfMqqguPTRkK9Aevgs8jq8
eGen0Cx3US/gZKJ1aKZUR1Dm+14Dxc7yIcyHJH00QjvvhUqRUJHysblHn4e6
6dV8DTERWTCbL0tAHH7/EEhvWLARVm9zICezxsG4kScemgpcCnlb8Jco/DnY
BzUHxqIRiMTNapY15kJAbzCoBLhQc2C6mIGs3KiwREU0OrgPZ6XQAKHsVG0z
rhbjOWEA552tioIAUsskUBbxrCAFKYTPbis4vQ6mH6nEmTAaoYfqyHTH70CE
vCN7zT4JfC47gv2LJPfIdlMndxCwIhAZRUOqzgwCDVApalq72B8Scg7WqhTw
h3b0Tyhm3qmAwsQSjJ5C+xEShacItIDiFbWuQPxCEXOq5mIwDgxAcyGwO63K
O5QFdGw4/pkPjSzHebdmh2kT8IEHV9/Mbg5G/H/99h39fH3+4ZuL6/Mz/BmC
y8tL/4OSJ2Zv3n1zedb91L15+u7q6vztGb8Mn+roI3VwNf3+gFHqwbv3Nxfv
3k4vD/xeOmNfG3HvRG2wlGg9wHFG+395+v6//+voicSkx0dHLyAm5V8+P3r+
BH5BiRmJgQNJ5V/ZfW42JqmJuMA3UDoMSS2psV2hl0aRAXL+8e9Imf840V/M
083Rky/lA9xw9KGjWfQh0Wz4yeBlJuKej/ZM46kZfd6jdLze6ffR747uwYco
NZxnEX8hiRZxwtawi2Izj9jWtnNrGofyrjnq8ebcuR+1aEt6MyFFSSJH8dNP
PpEAdP5MFuCG8gv4TL5xX8wcslAq+DgyY30rQgzLy7RoM8OCUJXGzaTEvgaD
TeT/mGrQHsnAIt8VqKK0zlMxwttVDpAJ0wXoIOZJertN6ozwK2iktxBgV1kw
MeXzyy+KluRTOhQkwBoAwpGXToplVcM7a4qP4BuFyZCLswlBnfptsjZv4FHt
oFf07ddmR19S5G1h1W/Ntr9qsjK23SAY7KkerkwFuar/37W5BTmd8mwikAfz
FUaYcf6xwRQB2rSQJW6ATl+iIepfeVlfLMCy/soTDIFosCz2CJ2uzRhI5xQx
NxA0dfmassLclHED64d5Nt7c5h/HVWo3Y/oWM1jGqJno11OiqeDZFB+oCZEG
sXciw8JEARJioBvlQVhzZgAvTBYKt91LM2swQTB82EFJQgpgSDQ8UoHuMXsA
uhCdJCrwLwF+XPSVijKaNMEogJqaDSI7sR0l8jDHjCm8vlIKoyoSMb3ITZH9
WVcYb29zazpY1O1K7ZGE8HW9R/VZTzhVYllN5wTVIVRzmCc1CIDbMqCXG15U
y8kCqseeiTmFu24t4lKwjT8GgZ6Ykox1RNIxVLJAl47xXxaZSwH6e+ylfBMY
zJCXuDNJbSEqfpnYPI3ew6xbhnPCkgkz4mYiEZ7jO/odaLeO9BiRlGStgWqW
USSAPIzxEjWYaRKt91ctOfNWDWz5TCyFLF346n4/S5pk4nGw8vrNbCCplgFd
eg4QeW9IUwjczBeqNBgFJBCZwPogosZccRzWuZwhKAbgON4NKC0oNwZiACh9
gmfCiKwDgHsMmRu6s1Ec10v2HeVYBd60UwV2fKSxIK4guNWypPQW2JAx4CiU
p0INh3cEdN+gQndwWvIqIWodBjgOHAfp1aZSSRlpi9MT8itgOTdEMRxHfJMX
PNFITGMooRBgwrbmVa0rGgtTRk3ACTTKSTnRrzBF+zFZU11NtPKejZBEyeQ2
iNBNFgRSFKnDjtWnd6x/bceKTDmlZuI9Jd0eyC548no5ZS8w9H9J05g1p1Ik
WA0HowxVvoh4q+4dHF2Tjl0TRHMQIVHiE8xTnnGc3lFGVusyyGQDo+EoDebG
/BzHxFyYuUNlp8oCUhATkGB6WIHQmwR2K5zhE6SP7LKK7DJwBcy3lzERPFds
cD4WLQOskABdYMljtjrJobi9IB+dVcheWw10OzQ1IcARLYt/VWY/4hm4dWfX
YjAl/HETBa6auY+C1hui89udCjmnjXqYAP8Ls6RsOD+HUIXStT47ibVErski
Qx6eTjE1wosJiRVkM53LoCoZmES2Zzj60FPgezE1OFEVhD6dJ40Z9MBGs4Ye
uofLqILW4bbR/XHLiBxAmUlatlIBsOFAXlIlpA80bC+X+8BKUQMTFspXhyRb
O9hWaXIEPF78PKUvwGVOU9R39XB6MX0UwM4Svc715VmQWnyPOXwuop69D5+d
G+dbI3B0HxXBDbnUTbEbiY50T6LkxNLhPDjzu6BMIhpc2EQzLuAXLteAGEDM
ggKzbIukLnb9SCFAGIJRdgN9DNP5nA2m5CeVEXeExdCOz3cQk8RIwVubizNg
WoV1kUlogmQLCMj5bVjFoq2JMTXla0XnfnR60lULMceemjKp88rVJ+gVys36
vCOWj6TyMBkiOinJf0sxFNXmigrdie341cvBY2nAiYrL3qaU/6H6m6IyRIqk
Dsk2cmLWmxj2dACmEoVt0RYHLsmrnE2Z6O8o1UdPkLG8f2rdTa16hWyqa4YJ
uciSohQ4b1mqe1bZljI1YJ6DqDIcYEqS/syS7ga6HTYUDMZCYi8qbPOwJ6GR
Bw73HoSJvK0F5iPscIzvjIUv4/oXKSGd3BpeKrgdBpuc8eM6Lkff8psbIfBC
QixCGiEDSJsiSNTPwA987D2sVDErxT3C4iMhcl41SCN3cQfWZp1himyNpYoO
API7Qs6cTWjtfa5fMeABsF345DanXRLnwCKZ3ZkGOUUFuQOvniOW5fj9e3Ug
li41BWhD8BJIwn0FvoZnsOsimSdWGOP7OMKWCY8oqZrelvOqpdpLhczGjoSB
DgCaqA2V3LsGG88T7Gz5uKHKW2gKJ9pnzKi260IFRGKRydxKmQ5H67oZeL7M
06ktGmLTb1RBhamOfSAPTX0iNYAu2eFD7AB7QxwLEpO21u5PI35GSsJdjiNw
mB8b9zPKkEPz00YpslIdxHeVvX7tzO61PZj9RMv+2yYj/tnYanRvYi8a2hB8
CMv0nFMMmqa4X8gBjQyNCpeSOUcOLAI+YdmuW0F/TCxUmQUGgjx6SUnBUP6c
Gfc2F0uj0mnW9Rv18MtkkFNIim2yswHMhcVyKgPNR07gzhtLKUvGocZztic+
FFfhKrGlRV5SKiDwvSSMa67bxAFaTIxW2A/oCvtsmvEVXq7UlYScPX46YhFx
AEuISaUETltvKhyqV5ga6ens7eRoDBC3Qr1+TUYQkz/ZDaxacU40MJe/SbAE
DkGwsKHyOIxbg6JucftX1KeJFHn4t7ZoH9G7UTIcQi7gnZVWJyVSCkLyPfxz
dXV29ubN1dVs9jcA8RQ7do6ra3BwY8BOfzQ1BD29jUmyd5jiXdSJFAfcGBOq
XjF+fiml9H6uCzUQsGyKZnHXg4VdRtvsg8YB0I0gvZLU/PHn6Pc9kXy+hEOd
bJxkFCI4d7g2MAOgHSqRAKYDlbHqdGo5KECR9dZV2n9QyEoOPdIgRkEXnqf3
ZVm6hlDfaxirZNQCGMW51ncURdQQXRKi9OIFRQ0+Uowdhrlcr9wfT9wzhoYw
o5fz7ecq+iQJ+vMWeY1pWc9ncHrBi4Ct6tyIB4R5uMknckYMwShnK/1MsTlP
Fg3+CSA6TVy1Nl+2lO0F8UUTiJvuBJ7n5Aw7GC2BWGVUv6JWy+SuyjMKAAsk
tOu3aOoE038jqlRLzOyCdm4FRccShOwLB2EQRTgzntjbcF4XdVZdnKk6EekF
Q1HfqYMnVA+JkwW5BdvLsbsYt2DJHqNLICbD5c2oWxQuRXnFn5sOIyIUyNc5
RXf0QjjyJxIY4W4UZZjSFUj76LeTJnZoKgppLwZOLqKIjimi/gmK6IAiqqOI
3lOXoRjAQ+t79qD2Aj20peeIQANaeJ24sPoVqMCKTM4QsFKvoNDN5wddBt+3
eyB3Ol8uzRGZSFmiHyyrKnvglknNG8Cshei565JcYzmp3YybisbrZT67DvOY
aw+kwe3ByC9UUT0lwNxhWtLsfN0G3dsC9872lmORAgzUtgrbQvCxDgoh4btW
fpkkCeJ6K2MSCiGbhXpmOZNoR74cyp4On8dwAPsSyOtSvwrzgcqq8NGYHwiW
BDOjARmxVQ96qFTdA2H9qI2i8ZZCLlu1dcroJifc8tKkSWtNHBSHdEd/cn+V
9RMV1LgyqB/aAOg9nhw9Gqn0nsRO1zkUSS6RucSNOQJi9HHf9uKKd8VOo5fo
1nGhLtxkbf4Ba0URQ4jt4+loQXjWgrugcBCsiXmgDMObj+AnUY1AR2Eorr2k
rvSEW15gAwo2DmACscuqB5VJmcjvVxgXbU3i4v1b8/YjLAgB5uUCBA8gXcKI
IgluDCpAEdJiKyQdAFo2mfq8cBCHcKXVgSoV6Ke0akts2wFYmPr11Y1A+bjl
SXWiczx5MiLaWd9vhYP2IHuwEAK3aN7V3hWiMZrj1iOoIkCQpKBfEbtnq6RF
Zv9IoYGlFC8F/AacYM69X+WAMp1DCj6M+zUx+VMkTTgCPRQWCPeuNVygum+r
1BLVJIXpgTA65OTAEif+CYy6hvoCzCqKxAa8YCWd/uRBEhGUIKhHCBYGr9gr
DOwrsHub8tcAzm59lyM2qrvscVDzcc3IVGK1gssH67CrqgUuYdiMGY4yUCv0
5mRHpO8e2JjmVhKATNFdma7wHAsfdtMNGOeyKqrlrvMVivJ0COKLglxvABCC
Do1eWdKdWIRl4j4o9YQERr7iOYAUjxbKqZlmt8kJq4pR0W9v3tP61GB9lb41
ZoPrWXcuQLpKMfUqAQR7pT8rbCkBMXKT9ltrJSQpacIEArdq2Q5ztQpNCSfo
KD2BHl4XoMHgZkUS87pjDCWFjHOOe5ND8FJUMwzr9F1JEgz4pkiYdRDRj/Ny
DIOO+cAbBg1gYxkW3eAZJIoUgz63fqkjDil9f0fX8E0xPibn3tzcvJ9wOslK
OBC3gyCWoBCA9BPZ/kOb0KGT46dP9XzXULITBAePxT3kgITSBDDUI7HpPu4D
4ZbaRWboiAmdL1g1zebkT38Cfyrp4dJXOEC+nz3xaYewJSfohAi9sGI4YPTr
8xuJcvVDgj3km+OMimRjHvnudqm3ykEI2nG3y678Q4d/G3SIfNwP53v/bnbj
w2qsh1FrpkX8FKEETqJx5ELeYePlZDo5QpEOsoKKkCcfasFWe54ryO9NJBUY
PZLI5umRUdy1zkiFyMpsImqpvZTlgHmzwf6qXBpajP7m+mJonSEO72q+vANO
SfTaa0L0dXqN4nT5CiMgTKegLEj1tMd3jNYx0xYN5VPm31xfjoOtRJuLZCYy
WydK/Sf9o0T8MD0ykS/xsO+frs6r7ezs5eur8w/bD/+Yfv1yufxhdZu/frE9
PH354cOH53bz7PXN15vL42yqMvM6+e742fNq++HDDxfl+ey7D2eH69fm5bSe
Le/+cPzq5XcfLj5c/vUj/Lh88fHV59Vu9v2PVfH54dV8s/zD4zP4zy0IoX0X
SgTFAU5/NL0+t05PUZ7Jisnxv15zQ9DV0LkrynA96ueJ6fhHWO6f5yU2DQXp
RaPPzq+9qrvPohZadEIm6xphWPbxaTQ70lX64ugIU1crk6AXnHi24Grx9AKf
rw88EXFq7HtA3HOFKZfN6kR/0VNy/lx/CVptm/EaVouCi88FqUhcD8dwX6rz
m2R5og++QLHD4qTgWhCdLw8kXLX4ekDE8HVy4WNcVV0VJ2DNP45BDf8Cz+sv
R5pPqI/A64zpNCmydETtdLAjlzbgCwRgCoebwvGdkERp58lxv8clKEWwyegI
/Jk+lSM113joGlxklgQd9kFHCu2lX9pqwEu3y5XLr/uzU+hfVHdIC4PlqnbN
npqbPQfndgXqSJe2L49YkUdZnsm6U0DumJI7pReex0E6YWb9Yy6tThx5m41r
G/YAqkluTXR0Js4MSzqZXopmOVjlvG08PHkQn4tl6IRhyQbby1Xn/IbFQXck
BswRxshgysF53iaIVjcEvapabfLlcofRFfqorhgZHAv3jR03l7MRcQB7lHyN
idN8jtnSWsJGlJJ8951u7LksyS6KNMRl1N7OxPAEfVtBIZPTUERTtwfVFTaL
nU+bZcK7IClzby1TPeiGePAIdnyFDXURz/iQiyl7ZpMrSyUepYgDDGK+fiiH
fmjXHW6SyiQe4PdpUsIL4BTzWwZDnR2lg4cco9KhLT5kQyNz4UaWWBvKDchk
QVeadBpUm2GHQ5g4oeYsoZQ7aiTZCSf0C9OklE/nWx+ynpkEE92BGbZhyhkx
sWEgWLWc4u3n+3hwsjnB6MrH/xVBR0aH+JQbkaPEmzh9J0RRPut1z5qH1X+J
A5mWDtcEe+Qc62ABpCbkkt6z7binsVUKp/yo2NPQ8QW9ZyTZ7jwqn6PmqNPl
HfBwEARZS7qHg+00nRfCo9zOpZAp27mObq40ErZin+mGQuXptXxEJt8fc2Ug
ITCCoicQQZ9vaLqCF1DkZ97lGxpC/6zPOrCqf1Y/n4zHY/4DnqQhfqb0YTza
sJopCN91UWQdPX16AofXkbOmsX0tNs6rfmrCQBdhSO2HjDIiPHw8lDv/6cqk
rkkpyNKQk2gAMfZzVXljTbHgnYi9gD3M/MKxpkaNT1GyIrc+eKRyj+Rkf/PK
+gmjcGU98QzWh3AHFjcVlC1m13XP26jPCcsCthMxmNhWaU585DLMza8cNKE3
aDbmo+xgOju9uNBvzv8dlifJpyQQY3+WBw/x7EOZ4akY3E+Ev2Bjp66emAR1
MIcmvEUD7fpiXn+p/+gtw180QTY9lrsJOOXfKUmctvIygbnRKCnWccVPwSBQ
j7FCYvlcMrq/tnQAPg5R6ROwz5Q6tys6zEEJQniCf3NpIxk/BJd63MuH040I
H503T5OSGzwRg7B8A94eCWoeUcDfg/jVnPJsgrs7usUYVo+BmXfkI3h1XL+k
Y9mc/qBuJ2wvo45jzNJ1QAJZqfZa9yh/rw/e18lynZzglmkaPLp5yt7r1EHw
4DvYjnwdfosnXMyBmEu03XHXX4xxJsOFiXvojnbQcQnKHfVtMeojnmD41BRR
gg3UDLEzs693NpqgVBxceeWXvowu1A3k9C/6CjzT0UgfHx4+1YdHJ4eH8B9m
r8NkJj/1eN9TcvyfwqdfGcyFKx7R9UqbQbYpEHsspMKIx70RFYwox6MxaJBu
1NHQiVBJoKiqW13k0ol48r+OLI8OYQUcmr2q85E+POZFDvbcizRvVi08fHTP
wxJups+epYePnxwl8+z5/MXjJ88eHx9lT588P1xkhyZ9nqZPssQ8P3ochKCz
pIFxH98z7j1x6OfPYBcjCUOjKLQfhH4xmUy6cHOYRYo10SlZp0VRUk11HWlt
KflEX19AC9OWlADCu0ikItyFEOTRgaNqLidesHWP4EuMmTrD1pkUaQ+Qyx1s
3rRyPVOvLkieJ4u8uJzs805RAkvVRZHz3Sahug9Y5y7a444AwFq1R3IBVcJy
nYRLfSOG1mNopeirR4OYbibn/TBrZPEKNd+k7VrxqRG1AeJXrQ1riJEdUXE/
3eDuBnfxV5NTd1RUuOruA5AMLhL8/tiXlBfCH4CA3N4N4cMWk9zUVHVHR8zA
w5AZxGo07YPQs/Xw2THZZQGCtHYp+Xg6dKWo85ZuG3HBTYcCVjnXxIdgkbs9
4UeaWxqkor4KV+2kTliuJN7x2QnTtT0pOUxUcvmUOorCq0tocZQJL/liy1Vw
t5QLgzB7DbIMCotHk+kaLxIpa+j+SXfzhYlWD0Cs5sVzW7/tbb3GDl0NiG8T
aSJObl0Dtwobgv0RtYTKWwA8brlzEE8P0EQ2x8sAPTAPLx/hxn4cYO3h3XzH
dKU70bRXzEGDudx25U4mB9kpf0BTde1uA0dKiDQ+y+8TKF0aOxHL4zLYIhQ3
lzNssLsYn01y0yzGTWHxHtDPnzx5Ns/tL7902hGUeZ5MnkyO9a+9xpfjYT/d
XNqSRDjKnb9UiuMkfwGebOQ+aE3QEFYbZcMkbuwIrwbNQZxFceao27/v3CBJ
hIGR1XJOJDQUXeuzU0h3Apw3V82b4DKun376NwheHx89ecwNz9p3VJ9GRTMO
vztA0yup0S0p3GHPmTfHLleDU/0X5P6lLGTT016thQ3rNdfhplxxCztMfDqV
22K8IXMsoYtPWMjCq9TUpgI1dUIrAAhzp3jYLukfHICtimvhgiCfOG+twlVw
badrCXNNTRqblUJ3ubdbSREe/d3dSv42rotSeWOwBrIvub8NhyZi9ZKGgzae
+/pcSFT7V4YNUs5mp8ImKNvKKWS8Lc91RO1rKuFl7O0h6mUOaqPu2gLTEtLE
I62tmE6tW+Jsr+7tecE5ThUvCrMNXPtHLOq7cTg3Fe0PrwKVdkLVGzPeqKW2
BT8m+HHunsfrLUkWfDddeGjRpRGjRkrfN+MEZW48q1HVKVUr0X6c4/ImD992
l4dwnss7Z04xN3xrHAokGY7OLXfHlEWZquActnzHDT6Wr7pwVEGzEt7NKuKy
f9QRXm0RtoYkpFU7JyDGXxfpDtbGjU4T9a4ZXNHw6WYsHTdjqX+qGUuHzVjq
dzdj6bgZK24q7jdjgdm76noOrrjnwFvAm0Dd69zehkkff+kWXjFnuSFDjEEg
B9Tc6IuYnzrc65uUbjqTOzhK46ILYrw/3eVumaAtcwqL78ndkw1MyriR2HU1
xQfZqJV5CC5Ppw8sVaKKRb+7rGfJdnIt5XrdlhRlAkPc2axupqBiIKXSukXA
GV0ZFR3e7cDGMf1LXLxY402b4IHoq46D/3eEHKDkqZWi4541OpX5LfxXe9Po
voTXF5P4MdpVfAgz6HQNCR0esq0NH0hqmHhnpsyTAnuDZ2L4PQH7+R4JALGG
iLfhyQVrWKjnGACTP05lMh4W9jd2DsW18+ip1fd2rg4OkkVXRo0C1xpX7qUX
krB4mqNrWOZ8HbQyeOykouvsKrKkFPFGHdrBfRKjLkIJcDca9TUG63Si3lEs
3hnd3wyerkBYQhBCUjy8NrUkytcDbxrwhujLl9DS9uTcPnq8NV/bEB4EjFLU
F+8d3sMDFfQYgjLKobracY63sTVkRsX+UbIm9YnnoPYB/Ofjyjo8Xh6WgEaD
2+1mrt3tGRHx+Ui52wfTerdpqmWdbFbSB4f+lFbyZ7YXwkCIj3Ms+sk9Ioif
iLhIt17xTfCp9ceVFnJZCxqbZQvaRl2LJcILWE1bgN2HcWFun/sgv9M5Hxmn
11AbyaGDLnsa/93Nir3KKVrMXcUarXq1Cge+WRCnnQlyt4tORYWT7sZ32y6X
fGZ3eORSpMNh9KAZUI6BUrOC3J3BqJzzC7EyDW6C98aR7aFyAummxApI+3u0
Uznt1L9POyfqfHhdMEADGtYbPN9J6dazGpxRwg5IfycQTisZHr6eqtfCH/qG
7nIogm8wYlPnKRs/pFlwNAwv7J++ne6J8sLb2/gSYH5SLlmfyF9ggKgGR5mm
CCjB1yxp2+qnE85omOwvB/R3Ixz8Ij0sRIDuHGOvbuXn3GJOhbiUlLd6WpiP
4AeSFC8CAeJf74Aeb1o8EEF1eLwlkwbIa83HoSrXRMSVkTpf5tjYKdOpfbh5
Eq8wXsFVsizB4L7dYe/RGme7nk19mMx/s8ZI/TVZ/sMYAJjAQqqJfVtlyQJl
5zX+ZSL6+l/P2HqfgbnL9Hm5BBpRrgz/lpBZU8PLI3XZQFQnkD2vCQa7Q3Fe
cv2OuKWPLgAcXNv5P/Y3aEijZQAA

-->

</rfc>
