<?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.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-goto-otp-token-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="otp-token">The `OTP-Token` Email Header Field</title>
    <seriesInfo name="Internet-Draft" value="draft-goto-otp-token-00"/>
    <author fullname="Sam Goto">
      <organization>Google</organization>
      <address>
        <email>goto@google.com</email>
      </address>
    </author>
    <author fullname="Mike West">
      <organization>Google</organization>
      <address>
        <email>mkwst@google.com</email>
      </address>
    </author>
    <date year="2026" month="September" day="18"/>
    <area>Security</area>
    <workgroup>One Time Password Authentication</workgroup>
    <keyword>one-time passcode</keyword>
    <keyword>otp</keyword>
    <keyword>email</keyword>
    <keyword>phishing</keyword>
    <keyword>autofill</keyword>
    <abstract>
      <?line 83?>

<t>This document defines the <tt>OTP-Token</tt> email header field, which can be used to deliver One-Time
Passcodes (OTP) in a machine-readable and origin-bound manner alongside the human-readable message
carrying that content today. Recipient Message User Agents (rMUA) can collaborate with other
entities in the ecosystem to assist in the delivery of these codes to the context which wishes to
verify their successful delivery.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://mikewest.github.io/otp-token/draft-goto-otp-token.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-goto-otp-token/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/mikewest/otp-token"/>.</t>
    </note>
  </front>
  <middle>
    <?line 92?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>One-time passcodes delivered via email are widely used as part of flows which require verification
of a user's contact information. Sign-in/-up flows, reauth for high-risk transactions, account
recovery, and so on all might reasonably rely on verifying a user's access to a particular email
address by sending a secret code to that address, and waiting for the user to prove that they know
what code was sent by typing it into some other context.</t>
      <t>Today, actions which require verification through email will begin in one context (say, a sign-in
form on a website), but require users to hop to another context (their rMUA) to track down the
relevant email after waiting for delivery, memorize a short code, and then hop back to the
verifying context to type it in. This flow is frustrating, as context-switching leads to confusion
and failure. It's also phishable, as users can be tricked into typing a code meant for a trusted
context into an attacker-controlled site.</t>
      <t><xref target="SMS-ONE-TIME-CODES"/> showed that a machine-readable, origin-bound format for SMS-based OTPs can
reduce both frustration and phishing by making it possible for software to easily extract OTPs
and feed them into systems like <xref target="WEBOTP"/> or a platform's autofill mechanism. This approach can
dramatically reduce the friction users experience, <em>only</em> in those cases where the context into
which the code is delivered can be verified to be the destination to which the code has asserted
a binding. This doesn't prevent phishing as users can still be tricked into typing the code
manually, but it's a substantial improvement in the system's general security posture.</t>
      <t>Learning from that experience, this document proposes two things: first, we can extend the core
concept of a standardized delivery format from SMS to email, taking advantage of email's distinction
between headers and user-visible content to do so. Second, we suggest that the header can carry
information that's supplemental to the short OTP meant for human consumption, and that such
information might create additional opportunities to improve the entire system's robustness.</t>
      <t>It's important to note, however, that these proposals address only one piece of a larger system,
allowing automated extraction of OTPs, but leaving important, platform-specific details of their
integration with the rest of the system out of scope. Those mechanisms will be defined elsewhere
(e.g. HTML defines <tt>&lt;input autocomplete="one-time-code"&gt;</tt>, iOS defines <tt>NSTextInput</tt> with
<tt>.oneTimeCode</tt>, and so on).</t>
      <section anchor="examples">
        <name>Examples</name>
        <t>A typical email-based OTP message could contain a header like the following, specifying an OTP code
of 123456, and binding that code to the origin <tt>https://example.com</tt>:</t>
        <sourcecode type="header"><![CDATA[
OTP: "123456"; origin="https://example.com"
]]></sourcecode>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <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?>

<t>This document relies on <xref target="RFC5598"/> to define Recpient Mail User Agents (rMUA) and other aspects of
email infrastructure.</t>
      <t>This document further relies on Section 3 of <xref target="STRUCTURED-FIELDS"/> to define a number of concepts
around parsing and syntax, including: String, Byte Sequence, Parameters, and the <tt>sf-item</tt> ABNF
rule.</t>
      <t>This document relies on <xref target="RFC6454"/> for the definition of an origin, and on Section 6.2 of that
document for its ASCII serialization. The <tt>serialized-origin</tt> grammar is defined in Section 7.1.</t>
      <section anchor="one-time-passcode">
        <name>One-Time Passcode</name>
        <t>A One-Time Passcode is a tuple consisting of:</t>
        <ul spacing="normal">
          <li>
            <t><tt>code</tt>: a string, containing the human-readable OTP.</t>
          </li>
          <li>
            <t><tt>origin</tt>: an origin to which the code is bound.</t>
          </li>
          <li>
            <t><tt>token</tt>: <tt>null</tt> or a byte sequence carrying a machine-readable value intended for automated
consumption.</t>
          </li>
          <li>
            <t><tt>received</tt>: a timestamp set by the rMUA when the OTP is received.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="otp-token-header">
      <name>The <tt>OTP-Token</tt> Header Field</name>
      <t>The <tt>OTP-Token</tt> header field delivers an origin-bound OTP, optionally including a high-entropy
token. For example:</t>
      <sourcecode type="header"><![CDATA[
OTP-Token: "123456"; origin="https://example.com"; token=:NjU0MzIx:
]]></sourcecode>
      <t>This header is a Structured Field containing a String (Section 3.3.3 of <xref target="STRUCTURED-FIELDS"/>)
representing the OTP, along with with Parameters (Section 3.1.2 of <xref target="STRUCTURED-FIELDS"/>)
representing the origin to which the OTP is bound, and an optional high-entropy token.</t>
      <t><tt>OTP-Token</tt> <bcp14>MUST</bcp14> appear at most once in a message's header section. Instances appearing in the
header sections of MIME body parts <bcp14>MUST</bcp14> be ignored.</t>
      <t>Note that headers including a <tt>token</tt> Parameter are likely to exceed the 998/78 character
limitations specified in Section 2.2.3 of <xref target="RFC5322"/>, and will be folded accordingly. <xref target="parsing"/>
specifies how that common case is to be handled.</t>
      <section anchor="parameters">
        <name>Parameters</name>
        <t>The <tt>OTP-Token</tt> header <bcp14>MUST</bcp14> contain an <tt>origin</tt> Parameter, and <bcp14>MAY</bcp14> contain a <tt>token</tt> Parameter:</t>
        <ul spacing="normal">
          <li>
            <t><tt>origin</tt>: This parameter represents the origin to which the OTP is bound. Its value is a String
containing the ASCII serialization of an origin conforming to Section 6.2 of <xref target="RFC6454"/>. This
value <bcp14>MUST</bcp14> not be the serialization of an opaque origin ("null"), <bcp14>MUST</bcp14> be a potentially
trustworthy origin as defined in <xref target="SECURE-CONTEXTS"/>, and <bcp14>MUST</bcp14> be in canonical form (lowercase,
default ports omitted, ASCII-only).  </t>
            <t>
Note: <xref target="RFC6454"/> and <xref target="URL"/>/<xref target="HTML"/> do not entirely agree on origins or their serialization.
The constraints above keep them more or less aligned for the subset of origins this document
permits; reconciliation beyond that is well outside this document's scope.</t>
          </li>
          <li>
            <t><tt>token</tt>: This parameter represents a validation token associated with the OTP that's meant for
automated systems rather than human interaction. Its value is a Byte Sequence .</t>
          </li>
        </ul>
        <t>Unknown Parameters are ignored in order to make future expansion possible if necessary.</t>
      </section>
      <section anchor="parsing">
        <name>Parsing</name>
        <t>The following algorithm describes the process of parsing and validating the <tt>OTP-Token</tt> header into
an One-Time Passcode object, given a <tt>message</tt> and <tt>receipt-timestamp</tt>. Parsing fails if no valid
OTP is available:</t>
        <ol spacing="normal" type="1"><li>
            <t>If <tt>message</tt>'s header section contains zero or more than one <tt>OTP-Token</tt> header, fail.</t>
          </li>
          <li>
            <t>Let <tt>value</tt> be the result of unfolding <tt>message</tt>'s header section's <tt>OTP-Token</tt> header as
specified in Section 2.2.3 of <xref target="RFC5322"/>.</t>
          </li>
          <li>
            <t>Let <tt>parsed</tt> be the result of parsing <tt>value</tt> as specified in Section 4.2 of
<xref target="STRUCTURED-FIELDS"/>, with a <tt>field_type</tt> of "item". If parsing <tt>value</tt> as a Structured Field
fails, fail.</t>
          </li>
          <li>
            <t>If <tt>parsed</tt>'s <tt>bare_item</tt> is not a String, fail.</t>
          </li>
          <li>
            <t>If <tt>parsed</tt>'s <tt>parameters</tt> contains no item whose key is "origin", fail.</t>
          </li>
          <li>
            <t>Let <tt>origin</tt> be the value of <tt>parsed</tt>'s <tt>parameters</tt>' item whose key is "origin".</t>
          </li>
          <li>
            <t>Fail if any of the following conditions are true:
            </t>
            <ul spacing="normal">
              <li>
                <t><tt>origin</tt> is not a String</t>
              </li>
              <li>
                <t><tt>origin</tt> does not conform to the <tt>serialized-origin</tt> grammar defined in Section 7.1
of <xref target="RFC6454"/>.</t>
              </li>
              <li>
                <t><tt>origin</tt> is "null"</t>
              </li>
              <li>
                <t><tt>origin</tt> is not canonical, per <xref target="parameters"/>.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Let <tt>token</tt> be <tt>null</tt>.</t>
          </li>
          <li>
            <t>If <tt>parsed</tt>'s <tt>parameters</tt> contains an item whose key is "token":
            </t>
            <ol spacing="normal" type="1"><li>
                <t>Fail if its value is not a Byte Sequence.</t>
              </li>
              <li>
                <t>Set <tt>token</tt> to its value.</t>
              </li>
            </ol>
          </li>
          <li>
            <t>Return a new One-Time Passcode whose:
            </t>
            <ul spacing="normal">
              <li>
                <t><tt>code</tt> is <tt>parsed</tt>'s <tt>bare_item</tt></t>
              </li>
              <li>
                <t><tt>origin</tt> is <tt>origin</tt></t>
              </li>
              <li>
                <t><tt>token</tt> is <tt>token</tt></t>
              </li>
              <li>
                <t><tt>received</tt> is <tt>receipt-timestamp</tt></t>
              </li>
            </ul>
          </li>
        </ol>
        <t>Note: <xref target="STRUCTURED-FIELDS"/> has no concept of header folding. The ordering of steps 2 and 3 above is
therefore necessary to enable proper parsing of message headers.</t>
      </section>
      <section anchor="syntax">
        <name>Syntax</name>
        <t>The header's ABNF is as follows:</t>
        <sourcecode type="abnf"><![CDATA[
otp-token = sf-item
]]></sourcecode>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO. Probably something about DKIM?</t>
      <section anchor="token-availability">
        <name><tt>token</tt> Availability?</name>
        <t>The <tt>token</tt> value is a bearer token. Its usefulness rests entirely upon its general invisibility to
humans, meaning that a user tricked into inputing an OTP will not be able to easily hand it over.</t>
        <t>While this seems accurate, it is not impossible to overcome. Users could be socially engineered into
accessing the message headers via an rMUA's "show original" affordance. Or they could be convinced
to forward the email to an attacker, headers and all. Likewise, the <tt>token</tt> is only as secure as the
mailbox itself.</t>
        <t>In short, <tt>token</tt> can raise the bar for an attacker, but it does not absolutely prevent phishing.</t>
      </section>
      <section anchor="shouldnt-we-focus-on-more-robustly-phishing-resistant-authentication">
        <name>Shouldn't we focus on more robustly phishing-resistant authentication?</name>
        <t>Authentication mechanisms like federation and <xref target="WEBAUTHN"/> are clearly the directions in which the
ecosystem should move. Improvements to OTP delivery are not arguments in the other direction. Still,
it's important to recognize that email verification often serves as a last-resort fallback mechanism
for account recovery. This document's proposal aims only to create low-cost opportunities to
mitigate some of that validation path's inherent risks.</t>
      </section>
      <section anchor="origin-binding">
        <name>Origin Binding</name>
        <t>TODO: Say something here about identifying the initiating context's origin and how it'll all be
platform-specific.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is asked to update the Provisional Message Header Field Names registry <xref target="RFC3864"/> with the
following entry:</t>
      <ul spacing="normal">
        <li>
          <t>Header Field Name: OTP-Token</t>
        </li>
        <li>
          <t>Protocol: mail</t>
        </li>
        <li>
          <t>Status: provisional</t>
        </li>
        <li>
          <t>Author/Change controller: Mike West</t>
        </li>
        <li>
          <t>Reference: This document</t>
        </li>
        <li>
          <t>Related information: None</t>
        </li>
      </ul>
    </section>
    <section anchor="open-questions">
      <name>Open Questions</name>
      <ol spacing="normal" type="1"><li>
          <t>Is specifying a single <tt>origin</tt> enough? Do we need scoping rules to tie OTPs to multiple
origins? Sites rather than origins?</t>
        </li>
        <li>
          <t>Rather than relying on the relying party to examine the <tt>received</tt> timestamp, should we offer a
<tt>ttl</tt>/<tt>expires</tt> Parameter after which the automated system would refuse to offer the OTP?</t>
        </li>
        <li>
          <t>Should we try to create tighter checks for the OTP's specified origin? That is, should we only
accept origin bindings that can be authenticated via DKIM/DMARC?</t>
        </li>
      </ol>
      <t>And, of course, we should bikeshed the naming. <tt>OTP-Token</tt>, <tt>One-Time-Passcode</tt>,
<tt>Super-Secret-Thing-That-Humans-Should-Not-Read</tt>, etc.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC3864">
          <front>
            <title>Registration Procedures for Message Header Fields</title>
            <author fullname="G. Klyne" initials="G." surname="Klyne"/>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="J. Mogul" initials="J." surname="Mogul"/>
            <date month="September" year="2004"/>
            <abstract>
              <t>This specification defines registration procedures for the message header fields used by Internet mail, HTTP, Netnews and other applications. 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="90"/>
          <seriesInfo name="RFC" value="3864"/>
          <seriesInfo name="DOI" value="10.17487/RFC3864"/>
        </reference>
        <reference anchor="RFC5322">
          <front>
            <title>Internet Message Format</title>
            <author fullname="P. Resnick" initials="P." role="editor" surname="Resnick"/>
            <date month="October" year="2008"/>
            <abstract>
              <t>This document specifies the Internet Message Format (IMF), a syntax for text messages that are sent between computer users, within the framework of "electronic mail" messages. This specification is a revision of Request For Comments (RFC) 2822, which itself superseded Request For Comments (RFC) 822, "Standard for the Format of ARPA Internet Text Messages", updating it to reflect current practice and incorporating incremental changes that were specified in other RFCs. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5322"/>
          <seriesInfo name="DOI" value="10.17487/RFC5322"/>
        </reference>
        <reference anchor="RFC5598">
          <front>
            <title>Internet Mail Architecture</title>
            <author fullname="D. Crocker" initials="D." surname="Crocker"/>
            <date month="July" year="2009"/>
            <abstract>
              <t>Over its thirty-five-year history, Internet Mail has changed significantly in scale and complexity, as it has become a global infrastructure service. These changes have been evolutionary, rather than revolutionary, reflecting a strong desire to preserve both its installed base and its usefulness. To collaborate productively on this large and complex system, all participants need to work from a common view of it and use a common language to describe its components and the interactions among them. But the many differences in perspective currently make it difficult to know exactly what another participant means. To serve as the necessary common frame of reference, this document describes the enhanced Internet Mail architecture, reflecting the current service. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5598"/>
          <seriesInfo name="DOI" value="10.17487/RFC5598"/>
        </reference>
        <reference anchor="RFC6454">
          <front>
            <title>The Web Origin Concept</title>
            <author fullname="A. Barth" initials="A." surname="Barth"/>
            <date month="December" year="2011"/>
            <abstract>
              <t>This document defines the concept of an "origin", which is often used as the scope of authority or privilege by user agents. Typically, user agents isolate content retrieved from different origins to prevent malicious web site operators from interfering with the operation of benign web sites. In addition to outlining the principles that underlie the concept of origin, this document details how to determine the origin of a URI and how to serialize an origin into a string. It also defines an HTTP header field, named "Origin", that indicates which origins are associated with an HTTP request. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6454"/>
          <seriesInfo name="DOI" value="10.17487/RFC6454"/>
        </reference>
        <reference anchor="STRUCTURED-FIELDS">
          <front>
            <title>Structured Field Values for HTTP</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="P-H. Kamp" surname="P-H. Kamp"/>
            <date month="September" year="2024"/>
            <abstract>
              <t>This document describes a set of data types and associated algorithms that are intended to make it easier and safer to define and handle HTTP header and trailer fields, known as "Structured Fields", "Structured Headers", or "Structured Trailers". It is intended for use by specifications of new HTTP fields.</t>
              <t>This document obsoletes RFC 8941.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9651"/>
          <seriesInfo name="DOI" value="10.17487/RFC9651"/>
        </reference>
        <reference anchor="SECURE-CONTEXTS" target="https://w3c.github.io/webappsec-secure-contexts/">
          <front>
            <title>Secure Contexts</title>
            <author initials="M." surname="West" fullname="Mike West">
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="WEBAUTHN" target="https://w3c.github.io/webauthn/">
          <front>
            <title>Web Authentication: An API for accessing Public Key Credentials</title>
            <author>
              <organization/>
            </author>
            <date/>
          </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="HTML" target="https://html.spec.whatwg.org/">
          <front>
            <title>HTML Standard</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="SMS-ONE-TIME-CODES" target="https://wicg.github.io/sms-one-time-codes/">
          <front>
            <title>Origin-bound one-time codes delivered via SMS</title>
            <author initials="T." surname="O'Connor" fullname="Theresa O'Connor">
              <organization/>
            </author>
            <author initials="S." surname="Goto" fullname="Sam Goto">
              <organization/>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="URL" target="https://url.spec.whatwg.org/">
          <front>
            <title>URL Standard</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="WEBOTP" target="https://wicg.github.io/web-otp/">
          <front>
            <title>WebOTP API</title>
            <author initials="S." surname="Goto" fullname="Sam Goto">
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
      </references>
    </references>
    <?line 324?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This can be considered an email-based implementation of <xref target="SMS-ONE-TIME-CODES"/>, which paved the way
to formalizing a machine-readable format for these short-lived verification codes.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
3cC5OKSsEnfBn69VDoL/B5p7pfnZMQAA

-->

</rfc>
