<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" ipr="trust200902" submissionType="IETF" category="std" consensus="true" docName="draft-ietf-ipsecme-labeled-ipsec-12" number="9478" xml:lang="en" updates="" obsoletes="" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" prepTime="2023-10-10T17:41:11" indexInclude="true" scripts="Common,Latin">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-ipsecme-labeled-ipsec-12" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9478" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Labeled IPsec">Labeled IPsec Traffic Selector Support for the Internet Key Exchange Protocol Version 2 (IKEv2)</title>
    <seriesInfo name="RFC" value="9478" stream="IETF"/>
    <author initials="P." surname="Wouters" fullname="Paul Wouters">
      <organization showOnFrontPage="true">Aiven</organization>
      <address>
        <email>paul.wouters@aiven.io</email>
      </address>
    </author>
    <author fullname="Sahana Prasad" initials="S." surname="Prasad">
      <organization showOnFrontPage="true">Red Hat</organization>
      <address>
        <email>sahana@redhat.com</email>
      </address>
    </author>
    <date month="10" year="2023"/>
    <area>sec</area>
    <workgroup>ipsecme</workgroup>
    <keyword>IKEv2</keyword>
    <keyword>SPD</keyword>
    <keyword>SAD</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1"> This document defines a new Traffic Selector Type (TS Type) for
      the Internet Key Exchange Protocol version 2 (IKEv2) to add support for negotiating
      Mandatory Access Control (MAC) security labels as a Traffic Selector 
      of the Security Policy Database (SPD). Security Labels for IPsec
      are also known as "Labeled IPsec".  The new TS Type, TS_SECLABEL,
      consists of a variable length opaque field that specifies the
      security label.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9478" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2023 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Revised BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Revised BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
              </li>
              <li pn="section-toc.1-1.1.2.2">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.2.1"><xref derivedContent="1.2" format="counter" sectionFormat="of" target="section-1.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-traffic-selector-clarificat">Traffic Selector Clarification</xref></t>
              </li>
              <li pn="section-toc.1-1.1.2.3">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.3.1"><xref derivedContent="1.3" format="counter" sectionFormat="of" target="section-1.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-label-traffic-sele">Security Label Traffic Selector Negotiation</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ts_seclabel-traffic-selecto">TS_SECLABEL Traffic Selector Type</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t indent="0" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ts_seclabel-payload-format">TS_SECLABEL Payload Format</xref></t>
              </li>
              <li pn="section-toc.1-1.2.2.2">
                <t indent="0" pn="section-toc.1-1.2.2.2.1"><xref derivedContent="2.2" format="counter" sectionFormat="of" target="section-2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ts_seclabel-properties">TS_SECLABEL Properties</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-traffic-selector-negotiatio">Traffic Selector Negotiation</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
              <li pn="section-toc.1-1.3.2.1">
                <t indent="0" pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-example-ts-negotiation">Example TS Negotiation</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.2">
                <t indent="0" pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-considerations-for-using-mu">Considerations for Using Multiple TS Types in a TS</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1"> In computer security, Mandatory Access Control (MAC) usually
        refers to systems in which all subjects and objects are assigned
        a security label. A security label is composed of a set of
        security attributes. Along with a system
        authorization policy, the security labels determine access. Rules within the system
        authorization policy determine whether the access will be granted
      based on the security attributes of the subject and object.</t>
      <t indent="0" pn="section-1-2"> Historically, security labels used by Multi-Level Secure
        (MLS) systems are comprised of a sensitivity level (or classification)
        field and a compartment (or category) field, as defined in <xref target="RFC5570" format="default" sectionFormat="of" derivedContent="RFC5570"/>. As MAC systems
        evolved, other MAC models gained popularity. For example,
        SELinux, a Flux Advanced Security Kernel (FLASK) implementation,
        has security labels represented as colon-separated ASCII strings
        composed of values for identity, role, and type. The security
        labels are often referred to as security contexts.</t>
      <t indent="0" pn="section-1-3">Traffic Selector (TS) payloads specify the selection criteria
        for packets that will be forwarded over the newly set up IPsec
        Security Association (SA) as enforced by the Security Policy Database
        (SPD) <xref target="RFC4301" format="default" sectionFormat="of" derivedContent="RFC4301"/>.</t>
      <t indent="0" pn="section-1-4">This document specifies a new TS Type,
        TS_SECLABEL, for IKEv2 that can be used to negotiate security
        labels as additional selectors for the SPD
        to further restrict the type of traffic that is allowed to be sent
        and received over the IPsec SA.</t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-1.1">
        <name slugifiedName="name-requirements-language">Requirements Language</name>
        <t indent="0" pn="section-1.1-1">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" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only
        when, they appear in all capitals, as shown here.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-1.2">
        <name slugifiedName="name-traffic-selector-clarificat">Traffic Selector Clarification</name>
        <t indent="0" pn="section-1.2-1">The negotiation of Traffic Selectors is specified in <xref target="RFC7296" sectionFormat="of" section="2.9" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7296#section-2.9" derivedContent="RFC7296"/>, where it defines two TS
        Types (TS_IPV4_ADDR_RANGE and TS_IPV6_ADDR_RANGE). The TS payload format is specified in <xref target="RFC7296" sectionFormat="of" section="3.13" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7296#section-3.13" derivedContent="RFC7296"/>.
        However, the term "Traffic Selector" is used to denote the TS payloads and individual Traffic Selectors of that payload. Sometimes,
        the exact meaning can only be learned from context or if the
        item is written in plural ("Traffic Selectors" or "TSes"). This
        section clarifies these terms as follows:</t>
        <t indent="0" pn="section-1.2-2">A Traffic Selector (capitalized, no acronym) is one selector for traffic
        of a specific Traffic Selector Type (TS Type).  For example, a
        Traffic Selector of TS Type TS_IPV4_ADDR_RANGE for UDP (protocol 17) traffic in
        the IP network 198.51.100.0/24 covering all ports is denoted as
        (17, 0, 198.51.100.0-198.51.100.255).</t>
        <t indent="0" pn="section-1.2-3">A TS payload is a set of one or more Traffic
        Selectors of the same or different TS Types. It typically contains
        one or more of the TS Type of TS_IPV4_ADDR_RANGE and/or TS_IPV6_ADDR_RANGE.
        For example, the above Traffic Selector by itself in a TS payload is denoted as
        TS((17, 0, 198.51.100.0-198.51.100.255))</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-1.3">
        <name slugifiedName="name-security-label-traffic-sele">Security Label Traffic Selector Negotiation</name>
        <t indent="0" pn="section-1.3-1">The negotiation of Traffic Selectors is specified in <xref target="RFC7296" sectionFormat="of" section="2.9" format="default" derivedLink="https://rfc-editor.org/rfc/rfc7296#section-2.9" derivedContent="RFC7296"/> and states that the TSi/TSr payloads <bcp14>MUST</bcp14> contain at least one
        TS Type. This document adds a new TS Type of TS_SECLABEL that is
        valid only with at least one other TS Type. That is, it cannot
        be the only TS Type present in a TSi or TSr payload. It <bcp14>MUST</bcp14> be used along with
        an IP address selector type, such as TS_IPV4_ADDR_RANGE and/or TS_IPV6_ADDR_RANGE.</t>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-ts_seclabel-traffic-selecto">TS_SECLABEL Traffic Selector Type</name>
      <t indent="0" pn="section-2-1">This document defines a new TS Type, TS_SECLABEL, that contains a single new opaque Security Label.</t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-2.1">
        <name slugifiedName="name-ts_seclabel-payload-format">TS_SECLABEL Payload Format</name>
        <figure anchor="tstype_seclabel" align="left" suppress-title="false" pn="figure-1">
          <name slugifiedName="name-labeled-ipsec-traffic-selec">Labeled IPsec Traffic Selector</name>
          <artwork align="left" name="" type="" alt="" pn="section-2.1-1.1">
                     1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------+---------------+-------------------------------+
|   TS Type     |    Reserved   |       Selector Length         |
+---------------+---------------+-------------------------------+
|                                                               |
~                         Security Label*                       ~
|                                                               |
+---------------------------------------------------------------+
</artwork>
        </figure>
        <t indent="0" pn="section-2.1-2">Note: All fields other than TS Type and Selector Length depend on
   the TS Type. The fields shown are for TS Type TS_SECLABEL, which is the
   selector that this document defines.
        </t>
        <dl newline="true" indent="3" spacing="normal" pn="section-2.1-3">
          <dt pn="section-2.1-3.1">TS Type (one octet):</dt>
          <dd pn="section-2.1-3.2">Set to 10 for TS_SECLABEL.</dd>
          <dt pn="section-2.1-3.3">Selector Length (two octets, unsigned integer):</dt>
          <dd pn="section-2.1-3.4">Specifies the
      length of this Traffic Selector substructure including the header.</dd>
          <dt pn="section-2.1-3.5">Security Label:</dt>
          <dd pn="section-2.1-3.6">An opaque byte stream of at least one octet.</dd>
        </dl>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-2.2">
        <name slugifiedName="name-ts_seclabel-properties">TS_SECLABEL Properties</name>
        <t indent="0" pn="section-2.2-1">The TS_SECLABEL TS Type does not support narrowing or
      wildcards. It <bcp14>MUST</bcp14> be used as an exact match value.</t>
        <t indent="0" pn="section-2.2-2">The TS_SECLABEL TS Type <bcp14>MUST NOT</bcp14> be the only TS Type
      present in the TS payload, as TS_SECLABEL is complimentary to another
      type of Traffic Selector. There <bcp14>MUST</bcp14> be an IP address Traffic Selector
      Type in addition to the TS_SECLABEL TS Type in the TS payload. If a TS payload is received with only TS_SECLABEL
      TS Types, the exchange <bcp14>MUST</bcp14> be aborted with an Error Notify
      message containing TS_UNACCEPTABLE.</t>
        <t indent="0" pn="section-2.2-3">The Security Label contents are opaque to the IKE implementation.
   That is, the IKE implementation might not have any knowledge regarding
   the meaning of this selector other than recognizing it as a type and
   opaque value to pass to the SPD.</t>
        <t indent="0" pn="section-2.2-4">A zero-length Security Label <bcp14>MUST NOT</bcp14> be used. If a received
      TS payload contains a TS Type of TS_SECLABEL with a zero-length
      Security Label, that specific TS payload <bcp14>MUST</bcp14> be ignored. If no other TS payload contains an acceptable TS_SECLABEL TS Type, the exchange <bcp14>MUST</bcp14> be aborted with a TS_UNACCEPTABLE Error Notify
      message. A zero-length Security Label <bcp14>MUST NOT</bcp14> be interpreted as a
      wildcard security label.</t>
        <t indent="0" pn="section-2.2-5"> If multiple Security Labels are allowed for a Traffic Selector's IP address range, protocol, and port range, the initiator includes all of these acceptable Security Labels. The responder <bcp14>MUST</bcp14> select exactly one of the Security Labels.</t>
        <t indent="0" pn="section-2.2-6">A responder that selected a TS with TS_SECLABEL <bcp14>MUST</bcp14> use the Security
      Label for all selector operations on the resulting TS. It <bcp14>MUST NOT</bcp14> select a TS_SECLABEL without using the specified Security Label,
      even if it deems the Security Label optional, as the initiator has
      indicated (and expects) that the Security Label will be set for all 
      traffic matching the negotiated TS.</t>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-traffic-selector-negotiatio">Traffic Selector Negotiation</name>
      <t indent="0" pn="section-3-1">If the TSi payload contains a Traffic Selector with TS Type
     TS_SECLABEL (along with another TS Type), the responder <bcp14>MUST</bcp14> create
     each TS response for the other TS Types using its normal rules
     specified for each of those TS Types, such as narrowing them following
     the rules specified for that TS Type and then adding exactly one for the
     TS Type of TS_SECLABEL to the TS payload(s). If this is not possible,
     it <bcp14>MUST</bcp14> return a TS_UNACCEPTABLE Error Notify payload.</t>
      <t indent="0" pn="section-3-2">If the Security Label TS Type is optional from a
      configuration point of view, an initiator will add the
      TS_SECLABEL to the TSi/TSr payloads. If the responder replies with
      TSi/TSr payloads that include the TS_SECLABEL, then the Child SA
      <bcp14>MUST</bcp14> be created and include the negotiated Security Label. If the
      responder did not include a TS_SECLABEL in its response, then the
      initiator (which deemed the Security Label optional) will install
      the Child SA without including any Security Label. If the initiator
      required the TS_SECLABEL, it <bcp14>MUST NOT</bcp14> install the Child SA and it <bcp14>MUST</bcp14>
      send a Delete notification for the Child SA so the responder can
      uninstall its Child SA.</t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.1">
        <name slugifiedName="name-example-ts-negotiation">Example TS Negotiation</name>
        <t indent="0" pn="section-3.1-1">An initiator could send the following:</t>
        <figure anchor="tstype_example_i" align="left" suppress-title="false" pn="figure-2">
          <name slugifiedName="name-initiator-ts-payloads-examp">Initiator TS Payloads Example</name>
          <artwork align="left" name="" type="" alt="" pn="section-3.1-2.1">
TSi = ((17,24233,198.51.100.12-198.51.100.12),
       (0,0,198.51.100.0-198.51.100.255),
       (0,0,192.0.2.0-192.0.2.255),
       TS_SECLABEL1, TS_SECLABEL2)
            
TSr = ((17,53,203.0.113.1-203.0.113.1),
       (0,0,203.0.113.0-203.0.113.255),
       TS_SECLABEL1, TS_SECLABEL2)
</artwork>
        </figure>
        <t indent="0" pn="section-3.1-3">The responder could answer with the following:</t>
        <figure anchor="tstype_example_r" align="left" suppress-title="false" pn="figure-3">
          <name slugifiedName="name-responder-ts-payloads-examp">Responder TS Payloads Example</name>
          <artwork align="left" name="" type="" alt="" pn="section-3.1-4.1">
TSi = ((0,0,198.51.100.0-198.51.100.255),
       TS_SECLABEL1)
            
TSr = ((0,0,203.0.113.0-203.0.113.255),
       TS_SECLABEL1)
</artwork>
        </figure>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.2">
        <name slugifiedName="name-considerations-for-using-mu">Considerations for Using Multiple TS Types in a TS</name>
        <t indent="0" pn="section-3.2-1">It would be unlikely that the traffic for TSi and TSr would have
     a different Security Label, but this specification allows this to
     be specified. 
If the initiator does not support this and wants to prevent the responder from
picking different labels for the TSi/TSr payloads, it should attempt a Child
SA negotiation and start with the first Security Label only. Upon failure, the
initiator should retry a new Child SA negotiation with only the second
Security Label.</t>
        <t indent="0" pn="section-3.2-2">If different IP ranges can only use different specific Security
     Labels, then these should be negotiated in two different Child SA
     negotiations. In the example above, if the initiator only allows
     192.0.2.0/24 with TS_SECLABEL1 and 198.51.100.0/24 with TS_SECLABEL2,
     then it <bcp14>MUST NOT</bcp14> combine these two ranges and security labels
     into one Child SA negotiation.</t>
      </section>
    </section>
    <section anchor="Security" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-4-1">It is assumed that the Security Label can be matched by the IKE
       implementation to its own configured value, even if the IKE
       implementation itself cannot interpret the Security Label value.</t>
      <t indent="0" pn="section-4-2">A packet that matches an SPD entry for all components, except the
       Security Label, would be treated as "not matching". If no other SPD
       entries match, the (mislabeled) traffic might end up being transmitted
       in the clear. It is presumed that other MAC methods
       are in place to prevent mislabeled traffic from reaching the IPsec
       subsystem or that the IPsec subsystem itself would install a REJECT/DISCARD
       rule in the SPD to prevent unlabeled traffic otherwise matching
       a labeled security SPD rule from being transmitted without IPsec protection.
      </t>
    </section>
    <section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-5-1">IANA has added a new entry in the "IKEv2 Traffic Selector Types" registry <xref target="RFC7296" format="default" sectionFormat="of" derivedContent="RFC7296"/> as follows.</t>
      <table anchor="iana_requests" align="center" pn="table-1">
        <name slugifiedName="name-ikev2-traffic-selector-type">IKEv2 Traffic Selector Types Registry</name>
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Value</th>
            <th align="left" colspan="1" rowspan="1">TS Type</th>
            <th align="left" colspan="1" rowspan="1">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">10</td>
            <td align="left" colspan="1" rowspan="1">TS_SECLABEL</td>
            <td align="left" colspan="1" rowspan="1">RFC 9478</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.jml-ipsec-ikev2-security-label" to="LABELED-IPSEC"/>
    <references pn="section-6">
      <name slugifiedName="name-references">References</name>
      <references pn="section-6.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="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 indent="0">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="RFC7296" target="https://www.rfc-editor.org/info/rfc7296" quoteTitle="true" derivedAnchor="RFC7296">
          <front>
            <title>Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author fullname="C. Kaufman" initials="C." surname="Kaufman"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="Y. Nir" initials="Y." surname="Nir"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <author fullname="T. Kivinen" initials="T." surname="Kivinen"/>
            <date month="October" year="2014"/>
            <abstract>
              <t indent="0">This document describes version 2 of the Internet Key Exchange (IKE) protocol. IKE is a component of IPsec used for performing mutual authentication and establishing and maintaining Security Associations (SAs). This document obsoletes RFC 5996, and includes all of the errata for it. It advances IKEv2 to be an Internet Standard.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="79"/>
          <seriesInfo name="RFC" value="7296"/>
          <seriesInfo name="DOI" value="10.17487/RFC7296"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="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 indent="0">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 pn="section-6.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="I-D.jml-ipsec-ikev2-security-label" target="https://datatracker.ietf.org/doc/html/draft-jml-ipsec-ikev2-security-label-01" quoteTitle="true" derivedAnchor="LABELED-IPSEC">
          <front>
            <title>Security Label Extension to IKE</title>
            <author fullname="Joy Latten" initials="J." surname="Latten"/>
            <author fullname="David Quigley" initials="D." surname="Quigley">
              <organization showOnFrontPage="true">Oracle</organization>
            </author>
            <author fullname="Jarrett Lu" initials="J." surname="Lu">
              <organization showOnFrontPage="true">Oracle</organization>
            </author>
            <date day="28" month="January" year="2011"/>
            <abstract>
              <t indent="0">This document describes extensions to the Internet Key Exchange Protocol Version 2 [RFC5996] to support Mandatory Access Control (MAC) security labels used on deployed systems.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-jml-ipsec-ikev2-security-label-01"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="RFC4301" target="https://www.rfc-editor.org/info/rfc4301" quoteTitle="true" derivedAnchor="RFC4301">
          <front>
            <title>Security Architecture for the Internet Protocol</title>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <author fullname="K. Seo" initials="K." surname="Seo"/>
            <date month="December" year="2005"/>
            <abstract>
              <t indent="0">This document describes an updated version of the "Security Architecture for IP", which is designed to provide security services for traffic at the IP layer. This document obsoletes RFC 2401 (November 1998). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4301"/>
          <seriesInfo name="DOI" value="10.17487/RFC4301"/>
        </reference>
        <reference anchor="RFC5570" target="https://www.rfc-editor.org/info/rfc5570" quoteTitle="true" derivedAnchor="RFC5570">
          <front>
            <title>Common Architecture Label IPv6 Security Option (CALIPSO)</title>
            <author fullname="M. StJohns" initials="M." surname="StJohns"/>
            <author fullname="R. Atkinson" initials="R." surname="Atkinson"/>
            <author fullname="G. Thomas" initials="G." surname="Thomas"/>
            <date month="July" year="2009"/>
            <abstract>
              <t indent="0">This document describes an optional method for encoding explicit packet Sensitivity Labels on IPv6 packets. It is intended for use only within Multi-Level Secure (MLS) networking environments that are both trusted and trustworthy. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5570"/>
          <seriesInfo name="DOI" value="10.17487/RFC5570"/>
        </reference>
      </references>
    </references>
    <section anchor="acknowledgements" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.a-1">A large part of the introduction text was taken verbatim from <xref target="I-D.jml-ipsec-ikev2-security-label" format="default" sectionFormat="of" derivedContent="LABELED-IPSEC"/>, whose
      authors are <contact fullname="Joy Latten"/>, <contact fullname="David       Quigley"/>, and <contact fullname="Jarrett Lu"/>. <contact fullname="Valery Smyslov"/> provided valuable input regarding IKEv2
      Traffic Selector semantics.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author initials="P." surname="Wouters" fullname="Paul Wouters">
        <organization showOnFrontPage="true">Aiven</organization>
        <address>
          <email>paul.wouters@aiven.io</email>
        </address>
      </author>
      <author fullname="Sahana Prasad" initials="S." surname="Prasad">
        <organization showOnFrontPage="true">Red Hat</organization>
        <address>
          <email>sahana@redhat.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
