<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<?rfc strict="yes" ?>
<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc category="std" docName="draft-hb-intarea-eap-mka-00" ipr="trust200902">
  <front>
    <title abbrev="MKA over IP">MKA over IP</title>

    <author fullname="Hooman Bidgoli" initials="H." role="editor"
            surname="Bidgoli">
      <organization>Nokia</organization>

      <address>
        <postal>
          <street/>

          <city>Ottawa</city>

          <region/>

          <code/>

          <country>Canada</country>
        </postal>

        <phone/>

        <email>hooman.bidgoli@nokia.com</email>
      </address>
    </author>

    <author fullname="Nicklous Morris" initials="N." surname="Morris">
      <organization>Verizon</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country>USA</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>nicklous.morris@verizonwireless.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Nabeel Cocker" initials="N." surname="Cocker">
      <organization>Redhat</organization>

      <address>
        <postal>
          <street/>

          <city>New York</city>

          <region/>

          <code/>

          <country>USA</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>ncocker@redhat.com</email>

        <uri/>
      </address>
    </author>

    <date day="29" month="February" year="2024"/>

    <abstract>
      <t>Extensible Authentication Protocol (EAP) is described in <xref
      target="RFC3748"/>. EAP typically runs directly over data link layers
      such as Point-to-Point Protocol (PPP) or IEEE 802, without requiring IP.
      IEEE802.1X-2004 clarifies some aspect of the EAP over Layer 2 PDUs.
      IEEE802.1X-2010 introduces MACsec Key Agreement Protocol (MKA) which
      uses EAPOL. In IEEE 802.1X-2010 the existing EAPOL (EAP over LANs) PDU
      formats have not been modified, but additional EAPOL PDUs have been
      added to support MKA. MKA is used for discovering peers and their mutual
      authentication, to agree the secrete keys (SAKs) used by MACsec for
      symmetric shared key cryptography. This document describes procedures to
      transport EAP and ultimately MKA PDUs over a IP network to distribute
      SAKs for symmetric key cryptography.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <!-- 1 -->

      <t>Currently, most encryption protocols use Public Key Infrastructure
      (PKI) to distribute symmetric shared keys. Current PKIs algorithms and
      key lengths are vulnerable to post quantum computers attacks such as
      "steal/harvest now, decrypt later" and most highly secure organizations
      are looking for options of quantum safe key distribution.</t>

      <t>IIEEE802.1X-2010 introduces MKA, a secure fully distributed
      point-to-point or multipoint-to-multipoint transport. MKA consists of a
      number of applications for that transport, including the distribution of
      SAKs by an elected key server using AES Key Wrap.. It is widely accepted
      that AES ciphers with key length of 256 are safe Post-quantum
      Cryptography (PQC). IEEE802.1X-2010 farther explains in section 9.3.3
      that the keys derived for AES cipher is from a secure Connectivity
      Association Key (CAK) and a Key Derivation Function (KDF), the CAK can
      be drived from multiple methods including Pre-shared keys (PSKs), as an
      example these PSKs can be manually configured via a secure management
      connection and consist of a 64 Hex string for CMAC-AES-256 key wrap.</t>

      <t>With those attributes in mind, MKA can be a PQC protocol to
      distribute symmetric shared keys within a network.</t>

      <t>As such, it would be ideal to extend EAP and MKA into IP networks to
      allow MKA to distribute symmetric shared keys within an IP domain. This
      document describes a simple method to identify EAP packet with in a IP
      network and process them according, including MKA PDUs.</t>
    </section>

    <section title="Conventions used in this document">
      <!-- 2 -->

      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in <xref
      target="RFC2119"/>.</t>
    </section>

    <section title="EAP over IP">
      <!-- 3-->

      <t>802.1x-2010 section 9 explains the MKA (MACSec Key Agreement
      Protocol) in detail. The first and most important note is in the last
      paragraph of section 9.4 which points out that MKA is designed for
      mutual authentication of participants in a connectivity association
      (CA), and can be used for any application.</t>

      <t>Section 9 of IEEE802.1x-2010 also points out that MKA:</t>

      <t>1. allows PEERs to discover each other and authenticate each other
      via the CAK, and agree on a symmetric secret keys (SAKs) used by the
      application.</t>

      <t>2. MKA protects and distributes SAKs via AES Key wrap, and more
      importantly a PQC AES-256 key wrap</t>

      <t>3. The SAK is created by the Key Server and distributed to the PEERs
      with in the connectivity association, section 9 of the IEEE802.1x-2010
      describes the key server selection.</t>

      <t>4. MKA manages the SAK installation which is used by the applications
      that secure the data transmitted and received.</t>

      <t>5. The root of key hierarchy for any given instance of MKA is the
      secure CAK. Each CAK is identified by the CA key NAME (CKN) that allows
      each of the MKA participants to select which CAK to use to process a
      received MKA PDUs.</t>

      <t>These attributes are ideal to use MKA to authenticate peers and
      distribute symmetric keys in a PQC fashion even in an IP or MPLS
      network. As an example MKA over IP can be used for signaling symmetric
      keys for proprietary MPLS encryption or such.</t>

      <t>To distribute MKA over an IP network there is two concerns to be
      solved:</t>

      <t>1. How to identify the MKA PDUs with in an IP domain</t>

      <t>2. How to transport MKA PDUs from one PEER to another</t>

      <section title="Use of UDP to identify MKA">
        <t>To solve the first problem of identifying EAP or MKA PDUs within an
        IP domain, the destination PEER needs to identify this packet as an
        MKA packet and extract it, to be processed as described in
        IEEE802.1X-2010. To identify the PDU as a MKA PDU within IP domain,
        UDP can be used. More precisely, a specific UDP port assigned to MKA,
        to identify MKA PDUs uniquely in the network. This UDP port can be a
        random UDP port chosen by the provider, or it can be a well known UDP
        port assigned by IANA, either case it has to be same network wide. UDP
        is ideal for this MKA identification, as it is best effort protocol
        and does not have a retransmission mechanism as TCP does, in case of
        lost packets. MKA fits well with this use-case because it has a
        heartbeat built in, where loss of MKA packets would bring the MKA
        session down.</t>
      </section>

      <section title="IP header">
        <t>Any IP address family (AF) can be used to transport the MKA over
        UDP through the IP domain. The source IP can be the loopback IP
        address used by the source of the application and the destination IP
        can be the loopback IP used by the application on its PEER. Of course
        the IP protocol will be set to UDP. With this method when the packet
        arrives on the PEER router, the UDP port can be examined and the
        packet processed accordingly. In this case the UDP packet will
        identify the PDU as a MKA PDU and will extract it to the MKA
        application to authenticate the PEER and extract the SAK by decrypting
        the key wrap via the CAK that is identified by the CKN and CMAC
        AES-256. From this point on the SAK can be used by the application to
        encrypt the datapath. As an example, if the symmetric key size is 256
        it can be used with the AES algorithm to create a PQC secure datapath
        for the application.</t>
      </section>

      <section title="Security Channel Identifier">
        <t>MACsec uses the PORT ID as its security channel Identifier (SCI).
        The SCI, for IP or MPLS applications can be modified based on the
        application requirements and how the application flow can be uniquely
        identified within the network. As an example for MPLS the SCI can be a
        unique encryption SID that identifies the encrypting node within the
        network and the MPLS flowID or tunnelID within that encrypting node.
        The assignment of SCI for different IP/MPLS applications is beyond the
        scope of this document.</t>
      </section>

      <section title="Packet format">
        <t>The packet format reuses the entire 802.1x packet format as
        described in the IEEE802.1X-2010 (i.e. it reuses the packet format
        that follows the Ethernet header with ethertype (0x888e) minus the
        Ethernet header.). Doing so will allow the routers that have
        implementations of MACsec and MKA, to leverage the current EAPoL and
        MKA implementations, and extend these implemention to be used to
        process the EAP over IP packet. An example of this without reinventing
        the wheel would be to remove the IP and UDP headers and send the
        802.1x-2010 packet (with type MKA) to the MKA application to process
        the MKA PDU.</t>

        <t>As such the final packet format is Ethernet header with ethertype
        of (IP) followed by IP header with protocol (UDP) where the UDP port
        is a well known MKA UDP port or a a UDP port that is assigned within
        the network to identify the MKA PDU.</t>
      </section>
    </section>

    <section title="IANA Consideration">
      <!-- 6 -->

      <t>Assign a UDP port for EAP over IP identification.</t>
    </section>

    <section title="Security Considerations">
      <!-- 8 -->

      <t>NA</t>
    </section>

    <section title="Acknowledgments">
      <!-- 9 -->

      <t/>
    </section>
  </middle>

  <back>
    <references title="Informative References">
      <!-- 10.2 -->

      <reference anchor="RFC2119">
        <front>
          <title>S. Bradner "Key words for use in RFCs to Indicate
          Requirements Levels"</title>

          <author>
            <organization/>
          </author>

          <date/>
        </front>
      </reference>

      <reference anchor="RFC3748">
        <front>
          <title>B. Aboda, L. Blunk, J. Vollbrecht, J.Carlson "Extensible
          Authentication Protocol"</title>

          <author>
            <organization/>
          </author>

          <date month="June" year="2004"/>
        </front>
      </reference>
    </references>
  </back>
</rfc>
<!-- generated from file C:\Users\hbidgoli\Downloads\draft-ietf-bier-pim-signaling-08.nroff with nroff2xml 0.1.0 by Tomek Mrugalski -->
