<?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.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-amarjotgill-origin-bound-cookies-protocol-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Origin-Bound Cookies">Origin-Bound Cookies</title>
    <seriesInfo name="Internet-Draft" value="draft-amarjotgill-origin-bound-cookies-protocol-00"/>
    <author fullname="Amarjot Gill">
      <organization>Google LLC</organization>
      <address>
        <email>amarjotgill@google.com</email>
      </address>
    </author>
    <date year="2025" month="October" day="15"/>
    <workgroup>HTTP</workgroup>
    <keyword>cookies</keyword>
    <keyword>origin-bound</keyword>
    <keyword>privacy</keyword>
    <abstract>
      <?line 46?>

<t>This draft introduces Origin-Bound Cookies which updates <xref target="COOKIES"/> aiming to make cookies more secure by default through binding cookies by port and scheme.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://amarjotgill.github.io/origin-bound-cookies/draft-amarjotgill-origin-bound-cookies-protocol.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-amarjotgill-origin-bound-cookies-protocol/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/amarjotgill/origin-bound-cookies"/>.</t>
    </note>
  </front>
  <middle>
    <?line 50?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Cookies are one of the few components of the web platform that are not scoped to the origin by default. This difference in scoping means that cookies have <eref target="https://httpwg.org/http-extensions/draft-ietf-httpbis-layered-cookies.html#name-weak-confidentiality">weak confidentiality</eref> compared with other storage APIs on the web platform.</t>
      <section anchor="examples">
        <name>Examples</name>
        <ol spacing="normal" type="1"><li>
            <t>https://somesite.com sets a simple cookie, secret=123456, which contains private information about a user. Information that an attacker wishes to learn. To do so the attacker man-in-the-middles the user, and then tricks them into visiting http://somesite.com (note the insecure scheme). When the user visits that page their browser will send the secret cookie and the attacker can see it.</t>
          </li>
          <li>
            <t>Similarly, if the attacker has somehow compromised a service running on a different port on the same server, let's say port 345, as https://somesite.com then they could trick the user into visiting https://somesite.com:345, the user's browser will send the secret cookie, and once again the attacker can see it.
  Even more, through the same techniques, an attacker can also modify a user's cookies, sending a Set-Cookie field instead of simply eavesdropping.</t>
          </li>
        </ol>
        <t>All of these examples are possible because cookies by default do not care about the scheme or port of their connection. As long as the host matches the cookie will be accessible.</t>
        <t>This document proposes changes to <xref target="COOKIES"/> by binding cookies to port and scheme which will prevent against these attacks and greatly improve cookie security.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>An aliasing cookie refers to a cookie which shares the same cookie-name, cookie-value and sub domain with another cookie but differs via scheme or port.</t>
        <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>
        <?line -18?>

</section>
    </section>
    <section anchor="user-agent-requirements">
      <name>User Agent Requirements</name>
      <section anchor="origin-bound-behavior">
        <name>Origin-Bound Behavior</name>
        <section anchor="port-bound">
          <name>Port Bound</name>
          <t>First, alter <eref target="https://httpwg.org/http-extensions/draft-ietf-httpbis-layered-cookies.html#name-cookie-struct">Section 5.1.2 of COOKIES</eref> by adding port to the Cookie Struct, this would be necessary to keep track of the port the cookie was set on.</t>
          <t>Below is the definition of the port attribute.</t>
          <blockquote>
            <t>A cookie's port is either null or a 16-bit unsigned integer.  It is initially null.</t>
          </blockquote>
          <t>For port matching algorithms below will be updated to compare integers to ensure port values match.
Pre-existing cookies with unspecified "port" will have a null value. This value will cause the cookie to be treated with legacy behavior (The cookie will not be bound to port).</t>
          <t>Example:</t>
          <t>The new behavior will behave as the following.</t>
          <t>A cookie set by origin https://example.com will only ever be sent to https://example.com(:443). It will never be sent to a different port value such as https://example.com:8443.</t>
        </section>
        <section anchor="scheme-bound">
          <name>Scheme Bound</name>
          <t>First, alter <eref target="https://httpwg.org/http-extensions/draft-ietf-httpbis-layered-cookies.html#name-cookie-struct">Section 5.1.2 of COOKIES</eref> by adding scheme to the Cookie Struct, this would be necessary to keep track of the port the cookie was set on.</t>
          <t>Below is the definition of the scheme attribute.</t>
          <blockquote>
            <t>A cookie's scheme is null or a byte sequence.  It is initially null.</t>
          </blockquote>
          <t>Pre-existing cookies with unspecified "scheme" will have a null value. This value will cause the cookie to be treated with legacy behavior (The cookie will not be bound to scheme).</t>
          <t>Example:</t>
          <t>The new behavior will behave as the following.</t>
          <t>A cookie set by origin https://example.com will only ever be sent to https://example.com. It will never be sent to a different scheme value such as http://example.com.</t>
        </section>
      </section>
      <section anchor="storage">
        <name>Storage</name>
        <t>We update the storage model in <eref target="https://httpwg.org/http-extensions/draft-ietf-httpbis-layered-cookies.html#name-store-a-cookie">Section 5.4.3 of COOKIES</eref> to ensure that port and scheme are being considered when comparing with existing cookies.</t>
        <t>Step number 18 of this section will need to be altered to:</t>
        <blockquote>
          <t>If the user agent's cookie store contains a cookie oldCookie whose name is cookie's name, host is host-equal to cookie's host, host-only is cookie's host-only, path is path-equal to cookie's path, and scheme is equal to cookie's scheme</t>
        </blockquote>
        <t>A new substep should also be added to step number 18:</t>
        <ol spacing="normal" type="1"><li>
            <t>If cookie's host-only is set to true and port does not equal cookie's port then skip the remaining sub-steps.</t>
          </li>
        </ol>
        <t>Note the addition of checking port and scheme, this will prevent a cookie with differing port or scheme values from overwriting the oldCookie, instead this cookie would be stored as a separate cookie and the oldCookie will not be deleted.
Also note if the domain attribute is set then we will ignore checking via port so it will overwite the oldCookie.</t>
      </section>
      <section anchor="retrieve-cookies">
        <name>Retrieve Cookies</name>
        <t>The Retrieve Cookies algorithm will need to be updated in <eref target="https://httpwg.org/http-extensions/draft-ietf-httpbis-layered-cookies.html#name-retrieve-cookies">Section 5.4.5 of COOKIES</eref>.</t>
        <t>Retrieve Cookies will now take a <tt>port</tt> (16-bit unsigned integer) and a <tt>scheme</tt> (string).</t>
        <t>The following will need to be added to step 2:</t>
        <ol spacing="normal" type="1"><li>
            <t>cookies host only is true, cookie's port is not null, and port equals cookie's port.</t>
          </li>
          <li>
            <t>cookie's scheme is not null and scheme equals cookie's scheme.</t>
          </li>
        </ol>
        <t>This will ensure that a cookie is only retrieved if the request origin is equal to the cookie's origin, while minimizing disruption to users.
Allowing current sites to continue working as-is, as old cookies are replaced with newer ones, the new cookies will be origin-bound.</t>
      </section>
      <section anchor="cookie-store-eviction">
        <name>Cookie Store Eviction</name>
        <t>The last algorithm that will need to be updated is the Cookie Store Eviction algorithm outlined <eref target="https://httpwg.org/http-extensions/draft-ietf-httpbis-layered-cookies.html#name-remove-excess-cookies-for-a">Section 5.2.2 of COOKIES</eref>.</t>
        <t>First a new algorithm to sort eviction cookies will be added in <eref target="https://httpwg.org/http-extensions/draft-ietf-httpbis-layered-cookies.html#name-subcomponent-algorithms">Section 5.3 of COOKIES</eref></t>
        <t>To <tt>Sort Eviction Cookies</tt>, given a host, run the following steps.</t>
        <ol spacing="normal" type="1"><li>
            <t>Let insecureCookies be a list of cookies in the user agent's cookie store whose host is host-equal to host and whose secure is false.</t>
          </li>
          <li>
            <t>Let insecureDomainCookies be a list of all cookies in insecureCookies whose host-only is false.</t>
          </li>
          <li>
            <t>Sort insecureDomainCookies by earliest last-access-time first.</t>
          </li>
          <li>
            <t>Let insecureOriginCookies be a list of all cookies in insecureCookies whose host-only is true.</t>
          </li>
          <li>
            <t>Sort insecureOriginCookies by earliest last-access-time first.</t>
          </li>
          <li>
            <t>Let sortedInsecureCookies be the result of appending insecureOriginCookies to the end of insecureDomainCookies.</t>
          </li>
          <li>
            <t>Let secureCookies be a list of cookies in the user agent's cookie store whose host is host-equal to host and whose secure is true.</t>
          </li>
          <li>
            <t>Let secureDomainCookies be a list of all cookies in secureCookies whose host-only is false.</t>
          </li>
          <li>
            <t>Sort secureDomainCookies by earliest last-access-time first.</t>
          </li>
          <li>
            <t>Let secureOriginCookies be a list of all cookies in secureCookies whose host-only is true.</t>
          </li>
          <li>
            <t>Sort secureOriginCookies by earliest last-access-time first.</t>
          </li>
          <li>
            <t>Let sortedSecureCookies be the result of appending secureOriginCookies to the end of secureDomainCookies.</t>
          </li>
          <li>
            <t>Return sortedInsecureCookies and sortedSecureCookies.</t>
          </li>
        </ol>
        <t>Step 2 of <eref target="https://httpwg.org/http-extensions/draft-ietf-httpbis-layered-cookies.html#name-remove-excess-cookies-for-a">Section 5.2.2 of COOKIES</eref> need to be updated to replace:</t>
        <blockquote>
          <ol spacing="normal" type="1"><li>
              <t>Let insecureCookies be a list of references to all cookies in the user agent's cookie store whose host is host-equal to host and whose secure is false.</t>
            </li>
            <li>
              <t>Sort insecureCookies by earliest last-access-time first.</t>
            </li>
            <li>
              <t>Let secureCookies be a list of references to all cookies in the user agent's cookie store whose host is host-equal to host and whose secure is true.</t>
            </li>
            <li>
              <t>Sort secureCookies by earliest last-access-time first.</t>
            </li>
          </ol>
        </blockquote>
        <t>With the following:</t>
        <blockquote>
          <ol spacing="normal" type="1"><li>
              <t>Let insecureCookies and secureCookies be the result of running Sort Eviction Cookies.</t>
            </li>
          </ol>
        </blockquote>
        <t>All remaining steps will stay the same.
Updating these steps will ensure that cookies with the domain attribute set for each origin are deleted before any other cookie.</t>
      </section>
      <section anchor="requirements-specific-to-non-browser-user-agents">
        <name>Requirements Specific to Non-Browser User Agents</name>
        <section anchor="the-cookie-header-field">
          <name>The Cookie Header Field</name>
          <t>The cookie header field outlined in <eref target="https://httpwg.org/http-extensions/draft-ietf-httpbis-layered-cookies.html#name-the-cookie-header-field">Section 5.5.2 of COOKIES</eref> will need to be altered.</t>
          <t>It will be altered to the following:</t>
          <blockquote>
            <ol spacing="normal" type="1"><li>
                <t>Let isSecure be a boolean indicating whether request's URL's scheme is deemed secure, in an implementation-defined manner.</t>
              </li>
              <li>
                <t>Let host be request's host.</t>
              </li>
              <li>
                <t>Let path be request's URL's path.</t>
              </li>
              <li>
                <t>Let httpOnlyAllowed be true.</t>
              </li>
              <li>
                <t>Let sameSite be a string whose value is implementation-defined, but has to be one of "strict-or-less", "lax-or-less", "unset-or-less", or "none".</t>
              </li>
              <li>
                <t>Let port be request's URL's port.</t>
              </li>
              <li>
                <t>Let scheme be request's URL's scheme.</t>
              </li>
              <li>
                <t>Let cookies be the result of running Retrieve Cookies given isSecure, host, path, httpOnlyAllowed, sameSite, port, and scheme.</t>
              </li>
              <li>
                <t>Return the result of running Serialize Cookies given cookies.</t>
              </li>
            </ol>
          </blockquote>
          <t>Note the major change here is extracting the port and scheme from the request and running the new version of Retrieve Cookies based on that.</t>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Origin-Bound Cookies is considered net positive for security, the following would be mitigated by it.</t>
      <t>Weak integrity: This occurs when an insecure site, controlled by a network attacker, sets a malicious cookie that is then sent to the secure version of that site. OBC binds
cookies to their setting origin, preventing such malicious cookies from being accessed by a different origin.</t>
      <t>Weak confidentiality: This refers to an attacker reading sensitive user data set by a secure site, which is unintentionally sent to an insecure site. OBC ensures that cookies are
only accessible by the same origin that set them, preventing this type of data leakage.</t>
      <t>One security concern is how to handle clients that require the use of cookies across origins, this is handled by the following,
when a cookie has a valid Domain attribute specified (hereby called a “domain cookie”) that cookie has relaxed bindings. Namely, the cookie may be sent to:</t>
      <ol spacing="normal" type="1"><li>
          <t>any host which domain matches the Domain value (This is unchanged from legacy behavior)</t>
        </li>
        <li>
          <t>any port value</t>
        </li>
      </ol>
      <t>Importantly a domain cookie is still bound to the scheme of its setting origin.</t>
      <t>This behavior allows developers to opt-out of the stronger protections of an origin cookie which can help with compatibility for usages that need a particular cookie available
across hosts and/or ports.</t>
      <t>Origin binding cookies will obsolete the purpose of Secure but this proposal will not remove support for Secure. Removal for Secure could be a possible future consideration for the HTTP WG.</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="COOKIES" target="https://datatracker.ietf.org/doc/draft-ietf-httpbis-layered-cookies/">
          <front>
            <title>Cookies HTTP State Management Mechanism</title>
            <author>
              <organization/>
            </author>
            <date year="2025" month="May"/>
          </front>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="Cookies-Lack-Integrity" target="https://www.microsoft.com/en-us/research/wp-content/uploads/2017/01/sec15_cookies-lack-integrity-published.pdf">
          <front>
            <title>Cookies Lack Integrity Real-World Implications</title>
            <author>
              <organization/>
            </author>
            <date year="2015" month="August"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 252?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The editors would also like to thank the following individuals for feedback, insight, and implementation of this draft and its predecessors (in alphabetical order):
Dylan Cutler,
Johann Hofmann,
Mike West,
Steven Bingler,</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
