<?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.20 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-httpapi-privacy-01" category="bcp" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.24.0 -->
  <front>
    <title abbrev="privacy">API Keys and Privacy</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-httpapi-privacy-01"/>
    <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="03"/>
    <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.</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="credential-revocation">
        <name>Credential Revocation</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 valid credential has been received over an insecure channel.</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>
        <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 forfeit 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 forfeit requests, the server MAY choose to not revoke the
credentials in this case.</t>
      </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 and 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. Without such an
indication, attempts to send credentials should fail without producing any
network traffic.</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 216?>

<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:
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

-->

</rfc>
