<?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-01" 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-01"/>
    <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="21"/>
    <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>Leaning on that experience, this document proposes extending 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.</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-Token: "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>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. For example:</t>
      <sourcecode type="header"><![CDATA[
OTP-Token: "123456"; origin="https://example.com"
]]></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 Parameters (Section 3.1.2 of <xref target="STRUCTURED-FIELDS"/>)
representing the origin to which the OTP is bound.</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 might 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 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:</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>
        </ul>
        <t>Unknown Parameters are ignored in order to make future expansion possible if necessary (such as the
supplemental verification tokens discussed in <xref target="future-work"/>).</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>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>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="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 (and see <xref target="future-work"/> for discussion of
potential mechanisms to further mitigate manual phishing 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. Also note that these proposals address only one piece of a larger system by
allowing automated extraction of OTPs, but leave 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), so the most we can say here is that matching origins at the boundary
points is a cricial part of any security improvement this proposal offers.</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="future-work">
      <name>Future Work</name>
      <t>This document defines the simplest possible thing, matching the capabilities that the standardized
SMS format offers. Given that we have a header which isn't human-visible (at least, not without
effort), there are likely improvements we could explore that could increase the system's robustness.</t>
      <section anchor="distinguishing-automated-delivery">
        <name>Distinguishing Automated Delivery</name>
        <t>Origin-bound OTPs as described here are an incomplete solution to phishing only insofar as they
support systems which make it easy to hand the OTP to its asserted origin. In a perfect world,
users would become accustomed to the low-friction automation of such a system, and would see the
requiement to manually type an OTP into a page whose origin didn't match the OTPs assertion as an
indication that something was off.</t>
        <t>While we're waiting for the ubiquity of user expectations around such systems, it might be possible
to help sites distinguish between manually-typed OTPs and those delivered via an automated system.
This distinction seems potentially useful as an additional signal for risk analysis, as the latter
can be trusted to perform security checks that the former might mistakenly bypass.</t>
        <t>The simplest version of this distinction could add a supplemental validation token to the
<tt>OTP-Token</tt> header that would be difficult for a human to access:</t>
        <sourcecode type="header"><![CDATA[
OTP-Token: "123456"; origin="https://example.com"; token=:NjU0MzIx:
]]></sourcecode>
        <t>In this model, the <tt>token</tt> parameter would carry a high-entropy Byte Sequence (Section 3.3.5 of
<xref target="STRUCTURED-FIELDS"/>); think of it as a second, longer OTP. Because this value resides only in
email headers, it won't be visible to users in the message body, and will therefore be difficult
to ask users to copy/paste into a form.</t>
        <t>Automated systems could deliver this token alongside (or instead of?) the human-visible OTP after
matching the asserted origin, and refuse to hand it over in the absence of such a match. Sites
receiving OTPs could take the presence of this token as a strong signal that the entity submitting
the form had access to the entire email, not just to a portion of it that a user might have typed
elsewhere.</t>
        <t>Because manual entry carries an inherently higher risk of phishing or relay attacks, relying
parties could treat OTP-only submissions as higher risk, potentially requiring (another) step-up
authentication, restricting sensitive actions, or tightening session lifetimes.</t>
      </section>
    </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 header's name: <tt>OTP-Token</tt>, <tt>OTP</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 342?>

<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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
66KmJv9yI3ZAvE+6VR+51D2M/hdZAAiYVzYAAA==

-->

</rfc>
