<?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.18 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-httpapi-privacy-02" category="bcp" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.0 -->
  <front>
    <title abbrev="privacy">API Keys and Privacy</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-httpapi-privacy-02"/>
    <author fullname="Rich Salz">
      <organization>Akamai Technologies</organization>
      <address>
        <email>rsalz@akamai.com</email>
      </address>
    </author>
    <author fullname="Mike Bishop">
      <organization>Akamai Technologies</organization>
      <address>
        <email>mbishop@evequefou.be</email>
      </address>
    </author>
    <author fullname="Marius Kleidl">
      <organization>Transloadit</organization>
      <address>
        <email>marius@transloadit.com</email>
      </address>
    </author>
    <date year="2025" month="June" day="25"/>
    <area>Web and Internet Transport</area>
    <workgroup>Building Blocks for HTTP APIs</workgroup>
    <abstract>
      <?line 48?>

<t>Redirecting HTTP requests to HTTPS, a common pattern for human-facing web
resources, can be an anti-pattern for authenticated API traffic. This document
discusses the pitfalls and makes deployment recommendations for authenticated
HTTP APIs. It does not specify a protocol.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://ietf-wg-httpapi.github.io/draft-ietf-httpapi-privacy/draft-ietf-httpapi-privacy.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-httpapi-privacy/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Building Blocks for HTTP APIs Working Group mailing list (<eref target="mailto:httpapi@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/httpapi/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/httpapi/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/ietf-wg-httpapi/httpapi-privacy"/>.</t>
    </note>
  </front>
  <middle>
    <?line 55?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>It is a common pattern for HTTP servers to prefer serving resources over HTTPS.
Because HTTPS uses TLS, clients receive authentication of the server and
confidentiality of the resource bodies supplied by the server.</t>
      <t>In order to implement this preference, HTTP servers often listen for unencrypted
requests and respond with a 3XX status code directing the client to the
equivalent resource over an encrypted connection. For unauthenticated web
browsing, this is a reasonable user experience bridge. Users often type bare
hostnames (not URIs) into a user agent; if the user agent defaults to an
unencrypted connection, the server can correct this default and require the use
of encryption. This pattern is so well established that many HTTP server and
intermediary implementations have a prominently displayed option to enable it
automatically.</t>
      <t>When client authentication is used, more care must be taken. The client's
initial request may include a Bearer token or other credential; once the request
has been sent on the network, any passive attacker who can see the traffic can
acquire this credential and use it.</t>
      <t>If the server performs a redirect in this situation, it does not mitigate
exposure of the credential. Further, because the request will ultimately succeed
if the client follows the redirect, an application developer or user who
accidentally configures an unencrypted API endpoint will not necessarily notice
the misconfiguration.</t>
      <t>This document describes actions API servers and clients should take in order to
safeguard credentials. These recommendations are not directed at resources where
no authentication is used.</t>
      <section anchor="conventions-and-definitions">
        <name>Conventions and Definitions</name>
        <t>Although this document is not an IETF Standards Track publication, it
adopts the conventions for normative language to provide clarity of
instructions to the implementer.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" 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.
<?line -9?>
        </t>
      </section>
    </section>
    <section anchor="server-recommendations">
      <name>Server Recommendations</name>
      <section anchor="pre-connection-redirects">
        <name>Pre-Connection Redirects</name>
        <t>Various mechanisms exist to inform clients that unencrypted requests to a server
are never appropriate:</t>
        <ul spacing="normal">
          <li>
            <t>HTTP Strict Transport Security (HSTS) <xref target="RFC6797"/> informs clients who make a
successful connection over HTTPS that secure connections are a requirement in
the future.</t>
          </li>
          <li>
            <t>HTTPS DNS records <xref target="RFC9460"/> inform clients at connection time to use only
secure connections to the indicated server.</t>
          </li>
        </ul>
        <t>Neither mechanism is foolproof. An attacker with control of the network or the
DNS server could block resolution of HTTPS records on a client connecting to a
new server, while HSTS requires a successful prior connection to the server and
relies on the client to implement persistent storage of the HSTS directive.</t>
        <t>Used together, however, both approaches make clients less likely to send any
requests over an insecure channel. Servers with authenticated endpoints SHOULD
employ both mechanisms.</t>
      </section>
      <section anchor="connection-blocking">
        <name>Connection Blocking</name>
        <t>If an API request succeeds despite having an unencrypted endpoint configured,
the developer or user is less likely to notice the misconfiguration. Where
possible, it is advantageous for such a misconfiguration to fail immediately so
that the error can be noticed and corrected.</t>
        <t>Servers MAY induce such an early failure by not accepting unencrypted
connections, e.g. on port 80. This makes it impossible for a client to send a
credential over an insecure channel to the authentic server, as no such channel
can be opened. Servers MAY alternatively restrict connections on port 80 to
network sources which are more trusted, such as a VPN or virtual network
interface.</t>
        <t>However, this mitigation is limited against active network attackers, who can
impersonate the server and accept the client's insecure connection attempt.</t>
      </section>
      <section anchor="credential-restriction">
        <name>Credential Restriction</name>
        <t>Whenever possible, credentials should include an indicator to clients that the
credential is restricted to secure contexts. For example, Cookie-based
authentication SHOULD include the Secure attribute described in <xref section="4.1.2.5" sectionFormat="of" target="RFC6265"/>. Bearer tokens MAY use the format described in <xref target="RFC8959"/>
to indicate the expected usage to the client.</t>
      </section>
      <section anchor="disclosure-response">
        <name>Disclosure Response</name>
        <t>Some deployments may not find it feasible to completely block unencrypted
connections, whether because the hostname is shared with unauthenticated
endpoints or for infrastructure reasons. Therefore, servers need a response for
when a credential has been received over an insecure channel.</t>
        <t>HTTP status code 403 (Forbidden) indicates that "the server understood the
request but refuses to fulfill it" {!HTTP=RFC9110}. While this is generally
understood to mean that "the server considers [the credentials] insufficient to
grant access," it also states that "a request might be forbidden for reasons
unrelated to the credentials." Servers SHOULD return status code 403 to all
requests received over an insecure channel, regardless of the validity of the
presented credentials.</t>
        <t>Because a difference in behavior would enable attackers to guess and check
possible credentials, a server MUST NOT return a different client response
between a valid or invalid credential presented over an insecure connection.
Differences in behavior MUST only be visible on subsequent use of the credential
over a secure channel.</t>
        <section anchor="credential-revocation">
          <name>Credential Revocation</name>
          <t>When a request is received over an unencrypted channel, the presented credential
is potentially compromised. Servers SHOULD revoke such credentials immediately.
When the credential is next used over a secure channel, a server MAY return an
error that indicates why the credential was revoked.</t>
          <t>Credentials in a request can take on different forms. API keys and tokens are simple
modes for authentication, but can be abused by attackers to forge requests and hence
should be revoked if compromised. Requests can also be authenticated using derived values,
where they only include digital signatures or message authentication codes (MACs)
derived from credentials but not the credentials themselves. Since an attacker cannot
abuse the derived values to forge requests, the server MAY choose to not revoke the
credentials in this case.</t>
        </section>
      </section>
    </section>
    <section anchor="client-recommendations">
      <name>Client Recommendations</name>
      <t>The following recommendations increase the success rate of the server
recommendations above.</t>
      <section anchor="implement-relevant-protocols">
        <name>Implement Relevant Protocols</name>
        <t>Clients SHOULD support and query for HTTPS records <xref target="RFC9460"/> when
establishing a connection. This gives servers an opportunity to provide more
complete information about capabilities, some of which are security-relevant.</t>
        <t>Clients SHOULD respect HSTS headers <xref target="RFC6797"/> received
from a server. This includes implementing persistent storage of HSTS indications
received from the server.</t>
      </section>
      <section anchor="respect-credential-restrictions">
        <name>Respect Credential Restrictions</name>
        <t>Clients MUST NOT send a Cookie with the Secure attribute <xref target="RFC6265"/> over an
insecure channel. Clients MUST NOT send an Authorization header containing a
token whose value begins with "secret-token:" over an insecure channel.</t>
      </section>
      <section anchor="disallow-insecure-by-default">
        <name>Disallow Insecure by Default</name>
        <t>When authentication is used, clients SHOULD require an explicit indication from
the user or caller that an insecure context is expected which is distinct from
the provided URI. Depending on the interface, this might be a UI preference or
an API flag.</t>
        <t>Absent such an indication, clients of HTTP APIs MUST implement and use HTTPS
exclusively.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This entire document is about security of HTTP API interactions.</t>
      <t>The behavior recommended in <xref target="credential-revocation"/> creates the potential for
a denial of service attack where an attacker guesses many possible credentials
over an unencrypted connection in hopes of discovering and revoking a valid one.
Servers implementing this mitigation MUST also guard against such attacks, such
as by limiting the number of requests before closing the connection and
rate-limiting the establishment of insecure connections.</t>
    </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="RFC6265">
          <front>
            <title>HTTP State Management Mechanism</title>
            <author fullname="A. Barth" initials="A." surname="Barth"/>
            <date month="April" year="2011"/>
            <abstract>
              <t>This document defines the HTTP Cookie and Set-Cookie header fields. These header fields can be used by HTTP servers to store state (called cookies) at HTTP user agents, letting the servers maintain a stateful session over the mostly stateless HTTP protocol. Although cookies have many historical infelicities that degrade their security and privacy, the Cookie and Set-Cookie header fields are widely used on the Internet. This document obsoletes RFC 2965. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6265"/>
          <seriesInfo name="DOI" value="10.17487/RFC6265"/>
        </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="RFC6797">
          <front>
            <title>HTTP Strict Transport Security (HSTS)</title>
            <author fullname="J. Hodges" initials="J." surname="Hodges"/>
            <author fullname="C. Jackson" initials="C." surname="Jackson"/>
            <author fullname="A. Barth" initials="A." surname="Barth"/>
            <date month="November" year="2012"/>
            <abstract>
              <t>This specification defines a mechanism enabling web sites to declare themselves accessible only via secure connections and/or for users to be able to direct their user agent(s) to interact with given sites only over secure connections. This overall policy is referred to as HTTP Strict Transport Security (HSTS). The policy is declared by web sites via the Strict-Transport-Security HTTP response header field and/or by other means, such as user agent configuration, for example. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6797"/>
          <seriesInfo name="DOI" value="10.17487/RFC6797"/>
        </reference>
        <reference anchor="RFC9460">
          <front>
            <title>Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)</title>
            <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
            <author fullname="M. Bishop" initials="M." surname="Bishop"/>
            <author fullname="E. Nygren" initials="E." surname="Nygren"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document specifies the "SVCB" ("Service Binding") and "HTTPS" DNS resource record (RR) types to facilitate the lookup of information needed to make connections to network services, such as for HTTP origins. SVCB records allow a service to be provided from multiple alternative endpoints, each with associated parameters (such as transport protocol configuration), and are extensible to support future uses (such as keys for encrypting the TLS ClientHello). They also enable aliasing of apex domains, which is not possible with CNAME. The HTTPS RR is a variation of SVCB for use with HTTP (see RFC 9110, "HTTP Semantics"). By providing more information to the client before it attempts to establish a connection, these records offer potential benefits to both performance and privacy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9460"/>
          <seriesInfo name="DOI" value="10.17487/RFC9460"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="BLOG" target="https://jviide.iki.fi/http-redirects">
          <front>
            <title>Your API Shouldn't Redirect HTTP to HTTPS</title>
            <author initials="J." surname="Viide">
              <organization/>
            </author>
            <date year="2024" month="May"/>
          </front>
        </reference>
        <reference anchor="RFC8959">
          <front>
            <title>The "secret-token" URI Scheme</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>This document registers the "secret-token" URI scheme to aid in the identification of authentication tokens.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8959"/>
          <seriesInfo name="DOI" value="10.17487/RFC8959"/>
        </reference>
      </references>
    </references>
    <?line 234?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>We are grateful to Joachim Viide for his <xref target="BLOG"/> blog posting that brought up the issue.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA5Va63LcthX+j6dA1z9iz+zSlzhOrDSNZcmJlfiiauU4mU5/
gCTIRcUltgS58kbjd+mz9Mn6nQOAl10pbT2ekZYLAuf6ne8caLFYiNa0lT6S
s+PzM/mz3jmp6lyeN2arst1MqDRt9BZfb+KTTLW6tM3uSKbZRojcZrVaY4O8
UUW7MLotFqu23aiNWYR3Fo+eCNela+OcsXW722D12avLH0TdrVPdHIkcWx6J
zNZO165zR7JtOi1w6pdCNVrh9I86ZbnO6lY3tW7lZaNqt7FNOxPXtrkqG9tt
sO5lZ6rc1KV8WdnsysnCNvL15eW5hHZuJra67nCSlP/jeim9tLOPOIOW/Ujv
0fO1MhWeB01fkNqJbUr6SjXZKnzljh4+pJX0yGx1Epc9pAcP08ZeO/0w7PGQ
3i1Nu+pSvM12vC6jKR/umZTWVrCaa0cn7b2T+M0SYx/e7Zs/+CpZtetqJoTq
2pWFl+QCh0pZdFXlPX5hspVcqup3fg61VG1+Vy18fCSPrxQUl5c6W9W2sqXR
jldpb7jG4bUXihclmV0fbv7WXGn50riV3fz/269TfvGF3up/drqwXZLqW45Q
jemc/LnSJq9uOYRjrLIqN+1kc37tRTt8yxqI2jZrvLnlALv44eTZk2dfHQlh
6mL8xcs373884u1a1ZQa/ovu+8fWmBwxcmWSwjt80ejcNDprvXIhU3+zXUPx
KZcr21V5/UUrL8I6H7ut5Z9LfolzS87eqt1cPnn05OmMn/Y+5X+mRs79lMhf
SAAhxGKxkCp10DBrhYibU/zz/g0Z1bWuP2gulYQJ1raWG9VShnIirbq1qheF
yujNa52KRjvInmk3l5mqZaqR0/jfIuRGr5FsGg8JaHJWFIIUhckSebkyTgJx
ujUWiNy4rHNOQ5CVlhvTFqqqPH6t1RUe53pT2R2thcwkoK5z9q07PEj0aZ/I
sxaH4P3attJtdGaKHTTcNLa1ma0Sb6C1yfMK1rpHoNTYvMtoZyHwMoS81SB8
hNPNVjdsvE2jC93wEzJRbx5pscKbNhEvdaY6p/1H2ZG6l29g8qwyEN6RZhqx
NdYGckhbsFX8aWQTwtcC/sUSVZl2F1fEU2Vqc6SRdN1mg61zme5GO0DpM2za
5NgMkpv1ptJs2JZc4hXRdabnUyVt0epaVsbRDzJBV2NVs9uQxfs4Io9BjI3F
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
c4NiyN+0oUsakL+NTzrnOnjmP8npyxeWJQAA

-->

</rfc>
