<?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.21 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dekok-emu-teapv2-02" category="std" consensus="true" submissionType="IETF" obsoletes="7170" updates="9427" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.24.0 -->
  <front>
    <title abbrev="TEAP">Tunnel Extensible Authentication Protocol (TEAP) Version 2</title>
    <seriesInfo name="Internet-Draft" value="draft-dekok-emu-teapv2-02"/>
    <author initials="A." surname="DeKok" fullname="Alan DeKok">
      <organization>InkBridge Networks</organization>
      <address>
        <email>alan.dekok@inkbridge.io</email>
      </address>
    </author>
    <date year="2026" month="January" day="07"/>
    <area>Internet</area>
    <workgroup>EMU working group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 47?>

<t>This document defines the Tunnel Extensible Authentication Protocol
(TEAP) version 2.  It addresses a number of security and
interoperability issues in TEAPv1 which was defined in
<xref target="I-D.ietf-emu-rfc7170bis"/>.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-dekok-emu-teapv2/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        EMU Working Group mailing list (<eref target="mailto:emu@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/emu/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/emu/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/inkbridgenetworks/teapv2.git"/>.</t>
    </note>
  </front>
  <middle>
    <?line 54?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Tunnel Extensible Authentication Protocol (TEAP) version 1 was first
defined in <xref target="RFC7170"/>.  However, implementations of that
specification were found to have limited interoperability, due to the
complexity and under-specification of the cryptographic key
deriviations that it defined.</t>
      <t>TEAPv1 was updated and clarified in <xref target="I-D.ietf-emu-rfc7170bis"/>.  That
document described a large amount of potential functionality in the
protocol, but also noted in <xref section="5.1" sectionFormat="comma" target="I-D.ietf-emu-rfc7170bis"/>
that only a small subset of that functionality was interoperable.  In
addition, the interoperable parts of the protocol security issues
which could potentially allow on-path attackers control control over
the data being transported inside of the TLS tunnel.</t>
      <t>We do not review the full security issues with TEAPv1 here.  Instead,
we define TEAPv2, with new and simpler cryptographic key deriviations.
These derivations address all of the known issues with TEAPv1.</t>
      <section anchor="changes-from-teapv1">
        <name>Changes from TEAPv1</name>
        <t>Most parts of TEAPv1 are unchanged.  The message and TLV formats are
the same, as are the derivations for the session_key_seed
(<xref section="6.1" sectionFormat="comma" target="I-D.ietf-emu-rfc7170bis"/>), the Master Session Key
(MSK) and the Extended Master Session Key (EMSK)
(<xref section="6.4" sectionFormat="comma" target="I-D.ietf-emu-rfc7170bis"/>).</t>
        <t>The Crypto-Binding TLV <xref section="4.2.13" sectionFormat="comma" target="I-D.ietf-emu-rfc7170bis"/>
format is also the same as for TEAPv1, even though its value is now
calculated via a different derivation.</t>
        <t>The main difference between TEAPv1 and TEAPv2 is in the cryptographic
calculations.  The changes between TEAPv1 and TEAPv2 simplify the key
deriviations, and address issues seen with TEAPv1:</t>
        <t>The Crypto-Binding TLV calculation in TEAPv1 had significant
differences between theory and practice.  This difference was due to
complex derivations of multiple keys, some of which were defined
ambiguously.  This complexity and lack of clarity lead to
interoperability problems.  TEAPv2 simplifies the key deriviations,
reduces the number of intermediate keys, and gives smaller (and
therefore clearer) definitions for the derivations.</t>
        <t>The result is a protocol which is simpler and more extensible.</t>
      </section>
      <section anchor="outline-of-this-document">
        <name>Outline of this Document</name>
        <t>This document largely follows the same outline as
<xref target="I-D.ietf-emu-rfc7170bis"/>.  Where changes from that document are
made, the same section titles are used in order to ensure easy
comparison of the documents.  New sections are added, with new titles.
For parts of TEAP which are not mentioned herein, this document makes
no changes from <xref target="I-D.ietf-emu-rfc7170bis"/>.</t>
      </section>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>Round</t>
        <ul empty="true">
          <li>
            <t>A round is one set of inner message exchanges.  Each round finishes
with an Interim-Result TLV and a Cryptographic-Binding TLV.  Other
TLVs may also be included in a round.</t>
            <t>A round can include multiple inner message exchanges, e.g. EAP-TLS.</t>
            <t>This term was used in <xref target="I-D.ietf-emu-rfc7170bis"/>, but was not
defined in that document.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="negotiation">
      <name>Negotiation</name>
      <t>TEAPv2 uses the same version negotiation method as is defined in
<xref section="3.1" sectionFormat="comma" target="I-D.ietf-emu-rfc7170bis"/>, with the Version field set
to two (2) for TEAPv2.</t>
      <t>TEAPv2 MUST use TLS 1.3 or later.  TEAPv2 MUST NOT use TLS-PSK.</t>
    </section>
    <section anchor="cryptographic-calculations">
      <name>Cryptographic Calculations</name>
      <t>The crytographic calculations for TEAPv2 have been substantially
simplified from those defined in <xref section="6" sectionFormat="comma" target="I-D.ietf-emu-rfc7170bis"/>.</t>
      <section anchor="key-derivations">
        <name>TEAP Authentication Phase 1: Key Derivations</name>
        <t>The session key seed is the same as defined in
<xref section="6.2.1" sectionFormat="comma" target="I-D.ietf-emu-rfc7170bis"/> for TEAPv2.  That
definition is reproduced here verbatim:</t>
        <artwork><![CDATA[
   session_key_seed = TLS-Exporter(
                      "EXPORTER: teap session key seed",, 40)
]]></artwork>
      </section>
      <section anchor="intermediate-compound-key">
        <name>Intermediate Compound Key Derivations</name>
        <t>The intermediate key derivation in TEAPv2 proceeds via the following
steps:</t>
        <ul spacing="normal">
          <li>
            <t>Combine the seed with the MSK/EMSK from the current round.  If MSK
or EMSK is not available, the relevant field is set to zero.  The
resulting data is the "RoundSeed", which is used to seed the
intermediate key derivations.</t>
          </li>
          <li>
            <t>At the conclusion of an inner round, call the TLS-Exporter()
function (<xref section="7.5" sectionFormat="comma" target="RFC8446"/>) with the above data as the
"context_value" in order to derive intermediate keying data.</t>
          </li>
          <li>
            <t>Split the resulting intermediate keying data into two subkeys.  One
subkey is used in the seed to the next round.  The other subkey is
the Compound MAC Key (CMK) which is used to calculate the
Crypto-Binding TLV.</t>
          </li>
        </ul>
        <t>The following sections explain how the round seed is created
(<xref target="key-seeding"/>), how the seed is used to derive an intermediate key
(<xref target="derived-key"/>), how the seed is updated after each round
(<xref target="updating-roundseed"/>), and finally how the master keys are
generated from the final round seed (<xref target="master-key"/>).</t>
        <section anchor="key-seeding">
          <name>Intermediate Key Seeding</name>
          <t>The intermediate compound key deriviations for TEAPv2 depend on the
following RoundSeed structure.  The RoundSeed structure is defined
using the same syntax as is used for TLS <xref target="RFC8446"/>:</t>
          <artwork><![CDATA[
   struct {
       opaque PrevRoundKey[40]
       opaque MSK[32];
       opaque EMSK[32]
    } RoundSeed
]]></artwork>
          <t>The RoundSeed structure fields have the following definitions:</t>
          <t>PrevRoundKey</t>
          <ul empty="true">
            <li>
              <t>A key which ties the current round to the previous round.</t>
            </li>
          </ul>
          <t>MSK</t>
          <ul empty="true">
            <li>
              <t>The Master Session Key (MSK) from the inner authentication method.</t>
            </li>
          </ul>
          <t>EMSK</t>
          <ul empty="true">
            <li>
              <t>The Extended Master Session Key (EMSK) from the inner authentication
method.</t>
            </li>
          </ul>
          <t>At the start of Phase 2, the first 40 octets of the session_key_seed
MUST be copied to the PrevRoundKey field of the RoundSeed structure.
All other fields MUST be set to zero.</t>
          <t>The RoundSeed structure is updated after the DerivedKey structure
(<xref target="derived-key"/>, below) is calculated.  The update process is
defined below in <xref target="updating-roundseed"/>.</t>
        </section>
        <section anchor="derived-key">
          <name>Key Derivation</name>
          <t>After a successful inner round, a DerivedKey is calculated.  The
DerivedKey depends on the current value of RoundSeed via the
following calculation.</t>
          <artwork><![CDATA[
   DerivedKey = TLS-Exporter(
                "EXPORTER: TEAPv2 Inner Methods Compound Keys",
                RoundSeed, 72)
]]></artwork>
          <t>The DerivedKey is 72 octets in length, and is assigned to the
following data structure:</t>
          <artwork><![CDATA[
   struct {
       opaque RoundKey[40];
       opaque CMK[32]
   } DerivedKey
]]></artwork>
          <t>The DerivedKey structure fields have the following definitions:</t>
          <t>RoundKey</t>
          <ul empty="true">
            <li>
              <t>A key which is associated with this round.</t>
              <t>This field is copied to the PrevRoundKey field of the RoundSeed
structure.</t>
            </li>
          </ul>
          <t>CMK</t>
          <ul empty="true">
            <li>
              <t>The Compound MAC Key (CMK)</t>
              <t>The CMK is mixed with with data from the TEAP negotiation to create
the Compound-MAC ({#computing-compound-mac}) which is used in the
Crypto-Binding TLV.</t>
            </li>
          </ul>
        </section>
        <section anchor="updating-roundseed">
          <name>Updating RoundSeed</name>
          <t>The RoundSeed structure MUST be updated after the DerivedKey structure
has been calculated.  Each field is updated via the process defined
below.</t>
          <t>Note that the RoundSeed value is updated at the end of each inner
round, before the Crypto-Binding TLV is calculated.  This update
ensures that the final master key calculation (<xref target="master-key"/>, below)
uses a different value for the RoundSeed structure than was used in
the last inner exchange.</t>
          <t>PrevRoundKey</t>
          <ul empty="true">
            <li>
              <t>The RoundKey field from the DerivedKey structure is copied to the
PrevRoundKey field.</t>
            </li>
          </ul>
          <t>MSK</t>
          <ul empty="true">
            <li>
              <t>If the inner round did not define an MSK, this field is set to all
zeros.</t>
              <t>If the inner method derives an MSK, then only the first 32 octets of
that MSK are copied to this field.</t>
            </li>
          </ul>
          <t>EMSK</t>
          <ul empty="true">
            <li>
              <t>If the inner round did not define an EMSK, this field is set to all
zeros.</t>
              <t>If the inner method derives an EMSK, then only the first 32 octets
of that EMSK are copied to this field.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="computing-compound-mac">
        <name>Computing the Compound-MAC</name>
        <t>The Compound-MAC used in the Crypto-Binding TLV is calculated via
method as for TEAPv1.  That definition is reproduced here verbatim:</t>
        <artwork><![CDATA[
   Compound-MAC = the first 20 octets of MAC( CMK, BUFFER )
]]></artwork>
        <t>CMK is taken from the DerivedKey structure which was calculated for
this round.  The definition of BUFFER is the same as in
<xref section="6.3" sectionFormat="comma" target="I-D.ietf-emu-rfc7170bis"/> for TEAPv1.</t>
        <t>For TEAPv2, only one CMK is derived for each inner message.  This
limitation also means that only one Compound-MAC is derived for the
Crypto-Binding TLV ({#crypto-binding}).</t>
      </section>
      <section anchor="master-key">
        <name>EAP Master Session Key Generation</name>
        <t>The final MSK and ESMK are generated via the following derivation:</t>
        <artwork><![CDATA[
   MSK  = the first 64 octets of TLS-PRF(RoundSeed,
          "Session Key Generating Function")
   EMSK = the first 64 octets of TLS-PRF(RoundSeed,
          "Extended Session Key Generating Function")
]]></artwork>
        <t>This construction ensures that the cryptographic binding requirements
of <xref target="RFC6677"/> are satisfied, while using a much simpler key
derivation than was done for TEAPv1.</t>
      </section>
      <section anchor="teapv2-message-format">
        <name>TEAPv2 Message Format</name>
        <t>The TEAPv2 message format is identical to that of TEAPv1
(<xref section="4.1" sectionFormat="comma" target="I-D.ietf-emu-rfc7170bis"/>) with only one change: the
Ver field is set to "2", to indicate that this is TEAPv2.</t>
      </section>
      <section anchor="teapv2-tlvs">
        <name>TEAPv2 TLVs</name>
        <t>The TEAPv2 TLV format and TLV definitions are identical to that for
TEAPv1 (<xref section="4.2" sectionFormat="comma" target="I-D.ietf-emu-rfc7170bis"/>), with only the
changes and additions noted below.</t>
        <section anchor="crypto-binding">
          <name>Crypto-Binding TLV</name>
          <t>The format of the TEAPv2 Crypto-Binding TLV is the same as for TEAPv1
(<xref section="4.2.13" sectionFormat="comma" target="I-D.ietf-emu-rfc7170bis"/>), with the following
changes:</t>
          <ul spacing="normal">
            <li>
              <t>The Version field MUST set to two (2).</t>
            </li>
            <li>
              <t>The Received-Ver field MUST be set to two (2), to indicate TEAPv2.</t>
            </li>
            <li>
              <t>The Flags field MUST have value 2, to indicate that only the MSK
Compound-MAC is present.</t>
            </li>
            <li>
              <t>the Nonce field is set to a random value.  There is no need to set
the least significant bit to zero or one.  If the least significant
bit is set to a particular value, it has no impact on the protocol.</t>
            </li>
            <li>
              <t>The ESMK Compound-MAC field is not used.  It SHOULD be set to zeros
by the sender.  The receiver MUST ignore it.</t>
            </li>
            <li>
              <t>The MSK Compound-MAC field is calculated as described above in
<xref target="computing-compound-mac"/>.</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="BCP14">
          <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="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC9427">
          <front>
            <title>TLS-Based Extensible Authentication Protocol (EAP) Types for Use with TLS 1.3</title>
            <author fullname="A. DeKok" initials="A." surname="DeKok"/>
            <date month="June" year="2023"/>
            <abstract>
              <t>The Extensible Authentication Protocol-TLS (EAP-TLS) (RFC 5216) has been updated for TLS 1.3 in RFC 9190. Many other EAP Types also depend on TLS, such as EAP-Flexible Authentication via Secure Tunneling (EAP-FAST) (RFC 4851), EAP-Tunneled TLS (EAP-TTLS) (RFC 5281), the Tunnel Extensible Authentication Protocol (TEAP) (RFC 7170). It is possible that many vendor-specific EAP methods, such as the Protected Extensible Authentication Protocol (PEAP), depend on TLS as well. This document updates those methods in order to use the new key derivation methods available in TLS 1.3. Additional changes necessitated by TLS 1.3 are also discussed.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9427"/>
          <seriesInfo name="DOI" value="10.17487/RFC9427"/>
        </reference>
        <reference anchor="I-D.ietf-emu-rfc7170bis">
          <front>
            <title>Tunnel Extensible Authentication Protocol (TEAP) Version 1</title>
            <author fullname="Alan DeKok" initials="A." surname="DeKok">
         </author>
            <date day="28" month="May" year="2025"/>
            <abstract>
              <t>   This document defines the Tunnel Extensible Authentication Protocol
   (TEAP) version 1.  TEAP is a tunnel-based EAP method that enables
   secure communication between a peer and a server by using the
   Transport Layer Security (TLS) protocol to establish a mutually
   authenticated tunnel.  Within the tunnel, TLV objects are used to
   convey authentication-related data between the EAP peer and the EAP
   server.  This document obsoletes RFC 7170 and updates RFC 9427 by
   moving all TEAP specifications from those documents to this one.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-emu-rfc7170bis-22"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6677">
          <front>
            <title>Channel-Binding Support for Extensible Authentication Protocol (EAP) Methods</title>
            <author fullname="S. Hartman" initials="S." role="editor" surname="Hartman"/>
            <author fullname="T. Clancy" initials="T." surname="Clancy"/>
            <author fullname="K. Hoeper" initials="K." surname="Hoeper"/>
            <date month="July" year="2012"/>
            <abstract>
              <t>This document defines how to implement channel bindings for Extensible Authentication Protocol (EAP) methods to address the "lying Network Access Service (NAS)" problem as well as the "lying provider" problem. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6677"/>
          <seriesInfo name="DOI" value="10.17487/RFC6677"/>
        </reference>
        <reference anchor="KAMATH">
          <front>
            <title>Microsoft EAP CHAP Extensions</title>
            <author initials="R. H. and A." surname="Palekar" fullname="Ryan Hurst and Ashwin Palekar">
              <organization/>
            </author>
            <date year="2007" month="June"/>
          </front>
        </reference>
        <reference anchor="RFC7170">
          <front>
            <title>Tunnel Extensible Authentication Protocol (TEAP) Version 1</title>
            <author fullname="H. Zhou" initials="H." surname="Zhou"/>
            <author fullname="N. Cam-Winget" initials="N." surname="Cam-Winget"/>
            <author fullname="J. Salowey" initials="J." surname="Salowey"/>
            <author fullname="S. Hanna" initials="S." surname="Hanna"/>
            <date month="May" year="2014"/>
            <abstract>
              <t>This document defines the Tunnel Extensible Authentication Protocol (TEAP) version 1. TEAP is a tunnel-based EAP method that enables secure communication between a peer and a server by using the Transport Layer Security (TLS) protocol to establish a mutually authenticated tunnel. Within the tunnel, TLV objects are used to convey authentication-related data between the EAP peer and the EAP server.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7170"/>
          <seriesInfo name="DOI" value="10.17487/RFC7170"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
QjZcUT1Tb07enWw9pq/nJjq9Tv4L8dT7Zk4rAAA=

-->

</rfc>
