<?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.36 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-httpapi-privacy-06" category="bcp" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="privacy">Protecting Credentials with HTTP APIs</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-httpapi-privacy-06"/>
    <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="2026" month="May" day="11"/>
    <area>Web and Internet Transport</area>
    <workgroup>Building Blocks for HTTP APIs</workgroup>
    <abstract>
      <?line 48?>

<t>Redirecting HTTP requests to HTTPS is a common pattern for human-facing web
resources.
When done for authenticated HTTP API traffic, client credentials are
exposed to the network.
This document
discusses the pitfalls of the redirect approach
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 59?>

<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. However, <xref target="PERPASS"/> establishes broader
reasons to use HTTPS regardless of whether credentials are transmitted.</t>
      <t>It has been established guidance not to send credentials in the clear for
decades. Nonetheless, a spot-check in May 2024 (<xref target="BLOG"/>) 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>To inform clients that unencrypted requests to a server
are never appropriate, there are various mechanisms available,
including:</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 might 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="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." HTTP API servers SHOULD return status
code 403 to all
requests received over an insecure channel if they included any kind of
credential, regardless of the their validity.</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 header fields <xref target="RFC6797"/> received
from a server. This includes implementing persistent storage of HSTS indications
received from the server.</t>
        <t>Clients that do not follow either, or both, of these recommendations might not
understand the requirements of the server and could have their traffic denied
upon receipt, perhaps after having exposed authentication material in
cleartext on the Internet.</t>
      </section>
      <section anchor="respect-credential-restrictions">
        <name>Respect Credential Restrictions</name>
        <t><xref target="RFC6265"/> prohibits sending a Cookie with the Secure attribute over an
insecure channel.</t>
        <t>Clients MUST NOT send any header field that contains a secret token over an
insecure channel. Such header fields include Authorization and
Proxy-Authorization and are described in Sections 11.6.2 and
11.7.2 of <xref target="RFC9110"/>, respectively.</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, which is distinct from the provided URI, from the user or caller
that an insecure context is expected.
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 document describes how to mitigate exposting
client credentials to the network through plaintext HTTP requests.</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.</t>
      <t>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>
      <t>This can also occur when a legitimate client misbehaves and routinely sends
credentials over HTTP.  HTTP API servers may wish to consider alternatives
such as notification or grace period before revocation.</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="PERPASS">
          <front>
            <title>Pervasive Monitoring Is an Attack</title>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="May" year="2014"/>
            <abstract>
              <t>Pervasive monitoring is a technical attack that should be mitigated in the design of IETF protocols, where possible.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="188"/>
          <seriesInfo name="RFC" value="7258"/>
          <seriesInfo name="DOI" value="10.17487/RFC7258"/>
        </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="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
      </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 268?>

<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:
H4sIAAAAAAAAA5Va3XobOXK9x1MgnIuxv4+kLY/HHmuzmZFlz1ob/yiivN79
klygu0ESq2aDaXRT5ujzu+yz7JPlVBXQP6S0m/jGEtUNoKpOnTpV4Gw2U41r
SnuqJ5e1b2zeuGqlz2tb2Kpxpgz61jVr/e76+lKfXV6EiTJZVtsdnt/Wbmfy
/UTlprErX+9PdZZvlSp8XpkNVixqs2xmzjbL2bpptmbrZvGd2dMXKrTZxoXg
fNXst3j64u31r6pqN5mtT1WBJU9V7qtgq9CGU93UrVXY9Qdlamuw+xebaVMV
+qJqbF3ZRl/XpgpbXzcTdevrm1Xt2y2ee926siCbXpc+vwl66euhNTtbtdhJ
6//j81rLaSdfsAc99gd6jz7fGFfi82jpL2T23Ncr+pOp83X8Uzh98oSepI/c
zs7TY0/ogydZ7W+DfRLXeELvruD+NsPb7MfbVXLlkwOX0rMlvBaawU4H78xl
sbnzTx6OzT/403zdbMqJUqZt1h5R0jNsqvWyLUuJ+JXL13phyt/4c5hlKveb
aRDjU312Y2C4vrb5uvKlXzkb+CkrjqsDXvvF8EPz3G+OF//gbqx+7cLab///
y28yfvEXu7P/09qlb+eZvWcLU7s26H8vrSvKezZhjJXeFK4ZLc6v/dL0f2UL
VOXrDd7cMcCufj1/8ezFj6dKuWo5/MPr95/+cMrLNaZeWcQvhe+vO+cKYOTG
zZcS8BkS09XIUjEupu5ffFsTPvVi7duyqL5v9FV8TrDbeP5/wS9xbunJB7Of
6mdPnz2f8KddTPmfq5Bzf5zrP9EBlFKz2UybLMDCvFEqLU745/VrcmpoQreR
dkEbDSdsfKW3pqEc5VRatxtTzZYmp3dvbaZqG3D63Ia5+rK2lS58ZflJOhBx
ELFL0aUgiMAsly6f6rx0+LPOB1QFalD269YHvICT4H0NZiA2mKvrNY4Eamo3
eFoVLuRtCDbwQ1vXLE2JBfySf09O1ma7rb3J14qYZmNu8Hxht6Xf0yJ4jAy0
VcHoCMenVh1xzPVFg93xfuUbHbY2d8s9PITlG5/7ci4u3riiKOHv74jWal+0
Oa2sFF5+yKG8RbD1ztbs/m1tl7bmT8jFnXu1xxMSnLl6bXPTBhtj1ZIfrt8v
kk8DWWaBzqE1OEdyj+xG7EsMvXTR/67Z9w6UXXXmCySiDu12i6ULne0HK8Do
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
icxKx1yU0pBxtqEH2fbXnHP1v5Q22DlEKgAA

-->

</rfc>
