<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-httpapi-privacy-03" category="bcp" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.0 -->
  <front>
    <title abbrev="privacy">API Keys and Privacy</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-httpapi-privacy-03"/>
    <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="August" day="26"/>
    <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 HTTP 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 56?>

<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 (such as
a Cookie); 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>
      <t>Some have wondered if this document is really necessary. After all, we have
been telling people not to send passwords and such in the clear for decades.
Regrettably, this lesson seems to be largely forgotten by those developing
Web-based APIs.  The blog post that motivated this document, <xref target="BLOG"/>, did a
spot-check in May, 2024, and found over two dozen websites that were
vulnerable to the issues listed here.</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.
HTTP API 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>HTTP API 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.
HTTP API 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 HTTP API 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, HTTP API 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" <xref target="HTTP"/>. 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." HTTP API 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, an HTTP API 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. HTTP API servers SHOULD revoke such
credentials immediately.
When the credential is next used over a secure channel, the 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 HTTP API 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.
HTTP API 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>
        <reference anchor="HTTP">
          <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>
      </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 251?>

<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:
H4sIAAAAAAAAA5Va25Ybt7F9x1fg0A+W1iKpi2U7miTHHo1saxLdMjOykpVz
HtDdaBKZZoNpdJOitfQv+ZZ8WXZVAX0hR06S5RUNm2igrrt2FbhYLFTr2sqe
6dn520v9R3sI2tSFftu4nckPM2WyrLE7fL1NT3LT2pVvDmc6y7dKFT6vzQYb
FI0p24WzbblYt+3WbN0ivrN4+JUKXbZxIThft4ctVl/+cPOjqrtNZpszVWDL
M5X7Otg6dOFMt01nFU79SpnGGpz+3mYs12Xd2qa2rb5pTB22vmlnau+b21Xj
uy3WPetcVbh6pZ9VPr8NuvSNfnFz81ZDuzBTO1t3OEnr/3C91iLt7D3OoGU/
0Xv0fGNchedR0+9J7aVvVvSVafJ1/CqcPXhAK+mR29llWvaAHjzIGr8P9kHc
4wG9u3LtusvwNttxv0qmfHBkUlpbwWqhHZ109M5SNls6/+DzvvmVr5brdlPN
lDJdu/bwkl7gUK3LrqrE41cuX+trU/3Cz6GWqd0vpoWPz/T5rYHi+sbm69pX
fuVs4FVWDNcEvPa94UXL3G9ON3/lbq1+5sLab//77TcZv/i93dm/d7b03TKz
dxxhGtcF/cfKuqK64xCOscqbwrWTzfm179vhW9ZA1b7Z4M0dB9jVjxffPP7m
6zOlXF2Ov3j28s1PZ7xda5qVhf+S+/62c65AjNy6ZSkOXzS2cI3NW1EuZupf
fNdQfOrrte+qov6y1VdxncRu6/nfa36Jc0vPXpnDXD9++PjJjJ/2PuX/uRo5
94el/pkEUEotFgttsgAN81aptDnFP+/fkFFDG/qD5tpomGDja701LWUoJ9K6
25h6UZqc3tzbTDU2QPbchrnOTa0zi5zGfy1CbvQayWbxkICm6LMRmGDK0uVL
dbN2QQN2ug1WqcKFvAvBQpq11VvXlqaqBMQ25haPC7ut/IHWQnCS0tYFOzic
nqb63F/qyxaH4P3atzpsbe7KA9TcNr71ua+WYqWNK4oKJvuCkKnxRZfTzkrh
ZQh5p1X4iGCbnW3YgtvGlrbhJ2Sn3kbaY4XYd6me2dx0wcpH3ZG6Ny9h97xy
ED6QZhYBNtYGcmhfslXkNLIJgWwJJ2OJqVx7SCvSqTrzBXJJh267xdaFzg6j
HaD0JTZtCmwGyd1mW1k2bEsuEUVsndv5VElftrbWlQv0D5mgq7GqOWzJ4n0w
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
XdJS/QuQRX1WqycAAA==

-->

</rfc>
