<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com)
     by Daniel M Kohn (private) -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
]>
<rfc category="std" docName="draft-ietf-lsr-pce-discovery-security-support-10"
     ipr="trust200902" updates="5088,5089,8231,8306">
  <front>
    <title abbrev="IGP discovery for PCEP Security">IGP extension for PCEP
    security capability support in PCE discovery</title>

    <author fullname="Diego R. Lopez " initials="D" surname="Lopez">
      <organization>Telefonica I+D</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country>Spain</country>
        </postal>

        <email>diego.r.lopez@telefonica.com</email>
      </address>
    </author>

    <author fullname="Qin Wu" initials="Q." surname="Wu">
      <organization abbrev="Huawei">Huawei Technologies</organization>

      <address>
        <postal>
          <street>101 Software Avenue, Yuhua District</street>

          <city>Nanjing</city>

          <region>Jiangsu</region>

          <code>210012</code>

          <country>China</country>
        </postal>

        <email>bill.wu@huawei.com</email>
      </address>
    </author>

    <author fullname="Dhruv Dhody" initials="D." surname="Dhody">
      <organization abbrev="Huawei">Huawei Technologies</organization>

      <address>
        <postal>
          <street>Divyashree Techno Park, Whitefield</street>

          <city>Bangalore</city>

          <region>Karnataka</region>

          <code>560037</code>

          <country>India</country>
        </postal>

        <email>dhruv.ietf@gmail.com</email>
      </address>
    </author>

    <author fullname="Qiufang Ma" initials="Q." surname="Ma">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>101 Software Avenue, Yuhua District</street>

          <city>Nanjing</city>

          <region>Jiangsu</region>

          <code>210012</code>

          <country>China</country>
        </postal>

        <email>maqiufang1@huawei.com</email>
      </address>
    </author>

    <author fullname="Daniel King" initials="D" surname="King">
      <organization>Old Dog Consulting</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country>UK</country>
        </postal>

        <email>daniel@olddog.co.uk</email>
      </address>
    </author>

    <date year="2022"/>

    <area>Routing Area</area>

    <workgroup>PCE working group</workgroup>

    <keyword>RFC</keyword>

    <keyword>Request for Comments</keyword>

    <keyword>I-D</keyword>

    <keyword>Internet-Draft</keyword>

    <keyword>Path Computation Element</keyword>

    <abstract>
      <t>When a Path Computation Element (PCE) is a Label Switching Router
      (LSR) participating in the Interior Gateway Protocol (IGP), or even a
      server participating in the IGP, its presence and path computation
      capabilities can be advertised using IGP flooding. The IGP extensions
      for PCE discovery (RFC 5088 and RFC 5089) define a method to advertise
      path computation capabilities using IGP flooding for OSPF and IS-IS
      respectively. However these specifications lack a method to advertise
      PCE Communication Protocol (PCEP) security (e.g., Transport Layer Security (TLS), TCP Authentication
      Option (TCP-AO)) support capability.</t>

      <t>This document defines capability flag bits for the PCE-CAP-FLAGS
      sub-TLV that can be announced as an attribute in the IGP advertisement
      to distribute PCEP security support information. In addition, this
      document updates RFC 5088 and RFC 5089 to allow advertisement of a Key
      ID or Key Chain Name Sub-TLV to support TCP-AO security capability. 
      Further, this document updates RFC 8231, and RFC 8306.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>As described in <xref target="RFC5440"/>, PCEP communication privacy
      is one important issue, as an attacker that intercepts a Path
      Computation Element (PCE) message could obtain sensitive information
      related to computed paths and resources.</t>

      <t>Among the possible solutions mentioned in that document, Transport
      Layer Security (TLS) <xref target="RFC8446"/> provides support for peer
      authentication, and message encryption and integrity while TCP
      Authentication Option (TCP-AO) <xref target="RFC5925"/> and
      Cryptographic Algorithms for TCP-AO <xref target="RFC5926"/> offer
      significantly improved security for applications using TCP. As specified
      in section 4 of <xref target="RFC8253"/>, in order for a Path
      Computation Client (PCC) to establish a connection with a PCE server
      using TLS or TCP-AO, the PCC needs to know whether PCE server supports
      TLS or TCP-AO as a secure transport.</t>

      <t><xref target="RFC5088"/> and <xref target="RFC5089"/> define a method
      to advertise path computation capabilities using IGP flooding for OSPF
      and IS-IS respectively. However these specifications lack a method to
      advertise PCEP security (e.g., TLS) support capability.</t>

      <t>This document defines capability flag bits for the PCE-CAP-FLAGS
      sub-TLV that can be announced as attributes in the IGP advertisement to
      distribute PCEP security support information. In addition, this document
      updates [RFC5088] and [RFC5089] to allow advertisement of a Key ID or Key
      Chain Name Sub-TLV to support TCP-AO security capability. </t>

      <t>As per [RFC5088], the IANA created a top-level OSPF registry, the
      "Path Computation Element (PCE) Capability Flags" registry. This
      documents update [RFC5088] and moves the registry to "Interior Gateway
      Protocol (IGP) Parameters". Further, this document updates [RFC8231]
      where it references the registry location as "Open Shortest Path First
      (OSPF) Parameters" registry to "Interior Gateway Protocol (IGP)
      Parameters" registry. This document updates
      [RFC8306] where it uses the term "OSPF PCE Capability Flag" and request
      assignment from OSPF Parameters registry with "PCE Capability Flag" and
      the IGP Parameters registry. </t>
      <t>Note that [RFC5557] uses the term "OSPF registry" instead of 
        the "IGP registry" where as [RFC8623] and [RFC9168] uses the term 
        "OSPF Parameters" instead of "IGP Parameters".</t>

      <t>Note that the PCEP Open message exchange is another way to discover
      PCE capabilities information, but in this instance, the TCP security
      related key parameters need to be known before the PCEP session is
      established and the PCEP Open messages are exchanged. Thus, the use of
      the PCE discovery and capabilities advertisement of the IGP needs to be
      leveraged.</t>
    </section>

    <section title="Conventions used in this document">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
      "OPTIONAL" 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>
    </section>

    <section title="IGP extension for PCEP security capability support">
      <t><xref target="RFC5088"/> defines a PCE Discovery (PCED) TLV carried
      in an OSPF Router Information Link State Advertisement (LSA) as defined
      in <xref target="RFC7770"/> to facilitate PCE discovery using OSPF. This
      document defines two capability flag bits in the OSPF PCE Capability
      Flags to indicate TCP Authentication Option (TCP-AO) support <xref
      target="RFC5925"/><xref target="RFC5926"/> and PCEP over TLS support
      <xref target="RFC8253"/> respectively.</t>

      <t>Similarly, <xref target="RFC5089"/> defines the PCED sub-TLV for use
      in PCE discovery using IS-IS. This document will use the same flag for
      the OSPF PCE Capability Flags sub-TLV to allow IS-IS to indicate TCP
      Authentication Option (TCP-AO) support, PCEP over TLS support
      respectively.</t>

      <t>The IANA assignments for shared OSPF and IS-IS Security Capability
      Flags are documented in <xref target="cap"/> ("PCE Capability
      Flags") of this document.</t>

      <section title="Use of PCEP security capability support for PCE discovery">
        <t>TCP-AO, PCEP over TLS support flag bits are advertised using IGP
        flooding. <list style="symbols">
            <t>PCE supports TCP-AO: IGP advertisement SHOULD include TCP-AO
            support flag bit.</t>

            <t>PCE supports TLS: IGP advertisement SHOULD include PCEP over
            TLS support flag bit.</t>
          </list>If the PCE supports multiple security mechanisms, it SHOULD
        include all corresponding flag bits in its IGP advertisement.</t>

        <t>A client's configuration MAY indicate that support for a given
        security capability is required. If a client is configured to require
        that its PCE server support TCP-AO, the client MUST verify that the
        TCP-AO flag bit in the PCE-CAP-FLAGS sub-TLV for a given server is set
        before it opens a connection to that server. Similarly, if the client
        is configured to require that its PCE server support TLS, the client
        MUST verify that the PCEP over TLS support flag bit in the
        PCE-CAP-FLAGS sub-TLV for a given server is set before it opens a
        connection to that server.</t>
      </section>

      <section anchor="keyid" title="KEY-ID Sub-TLV">
        <t>The KEY-ID sub-TLV specifies an identifier that can be used by the
        PCC to identify the TCP-AO key <xref target="RFC5925"/>.</t>

        <section anchor="keyid-isis" title="IS-IS">
        <t>The KEY-ID sub-TLV MAY be present in the PCED sub-TLV carried
        within the IS-IS Router CAPABILITY TLV when the capability
        flag bit of PCE-CAP-FLAGS sub-TLV in IS-IS is set to indicate TCP
        Authentication Option (TCP-AO) support. </t>

        <t>The KEY-ID sub-TLV has the following format:<list>
            <t>Type: 6</t>

            <t>Length: 1</t>

            <t>KeyID: The one octet Key ID as per <xref target="RFC5925"/> to
            uniquely identify the Master Key Tuple (MKT).</t>
          </list></t>
        </section>

        <section anchor="keyid-ospf" title="OSPF">
        <t>Similarly, this sub-TLV MAY be present in the PCED TLV carried
        within OSPF Router Information LSA when the capability flag bit of
        PCE-CAP-FLAGS sub-TLV in OSPF is set to indicate TCP-AO support.</t>

        <t>The format of KEY-ID sub-TLV is as follows:<figure>
            <artwork>
                     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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Type = 6         |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    KeyID      |                 Reserved                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure><list>
            <t>Type: 6</t>

            <t>Length: 4</t>

            <t>KeyID: The one octet Key ID as per <xref target="RFC5925"/> to
            uniquely identify the Master Key Tuple (MKT).</t>

            <t>Reserved: MUST be set to zero while sending and ignored on
            receipt.</t>
          </list></t>
        </section>
      </section>

      <section anchor="keyname" title="KEY-CHAIN-NAME Sub-TLV">
        <t>The KEY-CHAIN-NAME sub-TLV specifies a keychain name that can be
        used by the PCC to identify the keychain <xref target="RFC8177"/>.</t>

        <section anchor="keyname-ISIS" title="IS-IS">

        <t>The KEY-CHAIN-NAME sub-TLV MAY be present in the PCED sub-TLV
        carried within the IS-IS Router CAPABILITY TLV when the
        capability flag bit of the PCE-CAP-FLAGS sub-TLV in IS-IS is set to
        indicate TCP Authentication Option (TCP-AO) support. </t>

        <t>The KEY-CHAIN-NAME sub-TLV has the following format:<list>
            <t>Type: 7</t>

            <t>Length: Variable, encodes the length of the value field.</t>

            <t>Key Name: The Key Chain Name contains a string to be used to
            identify the key chain. It MUST be encoded using UTF-8. A
            receiving entity MUST NOT interpret invalid UTF-8 sequences. This
            field is not NULL terminated. UTF-8 "Shortest Form" encoding is
            REQUIRED to guard against the technical issues outlined in
            [UTR36]. </t>
          </list></t>
        </section>

        <section anchor="keyname-ospf" title="OSPF">
        <t>Similarly, this sub-TLV MAY be present in the PCED TLV carried
        within the OSPF Router Information LSA when the capability flag bit of
        PCE-CAP-FLAGS sub-TLV in OSPF is set to indicate TCP-AO support. The
        sub-TLV MUST be zero-padded so that the sub-TLV is 4-octet
        aligned.</t>

        <t>The format of KEY-CHAIN-NAME sub-TLV is as follows:<figure>
            <artwork>
                     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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Type = 7         |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
//                     Key Chain Name                          //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
</artwork>
          </figure><list>
            <t>Type: 7</t>

            <t>Length: Variable,padding is not included in the Length
            field</t>

            <t>Key Name: The Key Chain Name contains a string to be used to
            identify the key chain. It MUST be encoded using UTF-8. A
            receiving entity MUST NOT interpret invalid UTF-8 sequences. This
            field is not NULL terminated. UTF-8 "Shortest Form" encoding is
            REQUIRED to guard against the technical issues outlined in
            [UTR36]. The sub-TLV MUST be zero-padded so that the sub-TLV is 
        4-octet aligned.</t>
          </list></t>
      </section>

    </section>
    </section>

    <section title="Update to RFCs">
      <t>Section 4 of <xref target="RFC5088"/> states that no new sub-TLVs
      will be added to the PCED TLV, and no new PCE information will be
      carried in the Router Information LSA. This document updates <xref
      target="RFC5088"/> by allowing the two sub-TLVs defined in this document
      to be carried in the PCED TLV advertised in the Router Information
      LSA.</t>

      <t>Section 4 of <xref target="RFC5089"/> states that no new sub-TLVs
      will be added to the PCED TLV, and no new PCE information will be
      carried in the Router CAPABLITY TLV. This document updates <xref
      target="RFC5089"/> by allowing the two sub-TLVs defined in this document
      to be carried in the PCED TLV advertised in the Router CAPABILITY
      TLV.</t>

      <t>This introduction of additional sub-TLVs should be viewed as an
      exception to the [RFC5088][RFC5089] policy, justified by the requirement
      to discover the PCEP security support prior to establishing a PCEP
      session. The restrictions defined in [RFC5089][RFC5089] should still be
      considered to be in place.</t>

      <t>The registry for the PCE Capability Flags assigned in section 8.3 of [RFC5557], section 8.1 of
      [RFC8231], section 6.9 of [RFC8306], section 11.1 of [RFC8623], and section 10.5 of [RFC9168] has
      changed to the IGP Parameters "Path Computation Element (PCE) Capability
      Flags" registry created in this document.</t>
    </section>

    <section title="Backward Compatibility Considerations">
      <t>An LSR that does not support the IGP PCE capability bits specified in
      this document silently ignores those bits.</t>

      <t>An LSR that does not support the KEYNAME sub-TLV specified in this
      document silently ignores the sub-TLV.</t>

      <t>IGP extensions defined in this document do not introduce any new
      interoperability issues.</t>
    </section>

    <section title="Management Considerations">
      <t>A configuration option may be provided for advertising and
      withdrawing PCEP security capability via OSPF and IS-IS.</t>
    </section>

    <section title="Security Considerations">
      <t>Security considerations as specified by <xref target="RFC5088"/> and
      <xref target="RFC5089"/> are applicable to this document.</t>

      <t>As described in Section 10.2 of [RFC5440], an PCEP speaker MUST
      support TCP MD5 [RFC2385], so no capability advertisement is needed to
      indicate support. However, as noted in [RFC6952], TCP MD5 has been
      obsoleted by TCP-AO [RFC5925] because of security concerns. However,
      TCP-AO is not widely implemented and so it is, therefore, RECOMMENDED
      (per [RFC8253] which updates [RFC5440]) that PCEP is secured using TLS.
      In any case, an implementation SHOULD offer at least one of the two
      security capabilities defined in this document.</t>

      <t>The information related to PCEP security is sensitive and due care
      needs to be taken by the operator. This document defines new capability
      bits that are susceptible to a downgrade attack by setting them to zero.
      The content of Key ID or Key Chain Name Sub-TLV can be altered to enable
      a man-in-the-middle attack. Thus before advertising the PCEP security
      parameters, using the mechanism described in this document, the IGP MUST
      be known to provide authentication and integrity for the PCED TLV using
      the mechanisms defined in [RFC5304], [RFC5310] or [RFC5709].</t>

      <t>Moreover, as stated in the Security Considerations of [RFC5088] and
      [RFC5089], there are no mechanisms defined in OSPF or IS-IS to protect
      the confidentiality of the PCED TLV. For this reason, the operator must
      ensure that no private data is carried in the TLV, e.g. that key-ids or
      key-chain names do not reveal sensitive information about the network.
      </t>
    </section>

    <section title="IANA Considerations">
      <section anchor="cap" title="PCE Capability Flag">
        <t>IANA is requested to move the "Path Computation Element (PCE)
        Capability Flags" registry from the "Open Shortest Path First v2
        (OSPFv2) Parameters" grouping to the "Interior Gateway Protocol (IGP)
        Parameters" grouping.</t>

        <t>IANA is requested to make the following additional assignments from the "Path
        Computation Element (PCE) Capability Flags" registry.</t>

        <figure>
          <artwork>
     Bit           Capability Description  Reference 
     xx            TCP-AO Support          [This.I.D] 
     xx            PCEP over TLS support   [This.I.D] 
</artwork>
        </figure>

        <t>The grouping is located at:
        https://www.iana.org/assignments/igp-parameters/igp-parameters.xhtml.</t>
      </section>

      <section title="PCED sub-TLV Type Indicators">
        <t>The PCED sub-TLVs were defined in <xref target="RFC5088"/> and
        <xref target="RFC5089"/>, but they did not create a registry for it.
        This document requests IANA to create a new registry called "PCED
        sub-TLV type indicators" under the "Interior Gateway Protocol (IGP)
        Parameters" grouping. The registration policy for this registry is
        "IETF Review" [RFC8126]. Values in this registry come from the range
        0-65535.</t>

        <t>This registry should be populated with:</t>

        <figure>
          <artwork>
     Value         Description             Reference 
     0             Reserved                [This.I.D][RFC5088]
     1             PCE-ADDRESS             [This.I.D][RFC5088]
     2             PATH-SCOPE              [This.I.D][RFC5088]
     3             PCE-DOMAIN              [This.I.D][RFC5088]
     4             NEIG-PCE-DOMAIN         [This.I.D][RFC5088]
     5             PCE-CAP-FLAGS           [This.I.D][RFC5088]
     6             KEY-ID                  [This.I.D] 
     7             KEY-CHAIN-NAME          [This.I.D]    
</artwork>
        </figure>

        <t>This registry is used by both the OSPF PCED TLV and the IS-IS PCED
        sub-TLV.</t>

        <t>This grouping is located at:
        https://www.iana.org/assignments/igp-parameters/igp-parameters.xhtml.</t>
      </section>
    </section>

    <section title="Acknowledgments">
      <t>The authors of this document would also like to thank Acee Lindem,
      Julien Meuric, Les Ginsberg, Ketan Talaulikar, Yaron Sheffer, Tom Petch,
      Aijun Wang, Adrian Farrel for the review and comments.</t>

      <t>The authors would also like to speical thank Michale Wang for his
      major contributions to the initial version.</t>

      <t>Thanks to John Scudder for providing an excellent AD review.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119.xml"?>

      <?rfc include="reference.RFC.5088.xml"?>

      <?rfc include="reference.RFC.5089.xml"?>

      <?rfc include="reference.RFC.5557.xml"?>

      <?rfc include="reference.RFC.5925.xml"?>

      <?rfc include="reference.RFC.5926.xml"?>

      <?rfc include="reference.RFC.8253.xml"?>

      <?rfc include="reference.RFC.8177.xml"?>

      <!--<?rfc include="reference.RFC.7210.xml"?>-->

      <!--<?rfc include="reference.RFC.6823.xml"?>-->

      <?rfc include="reference.RFC.8174.xml"?>

      <?rfc include="reference.RFC.7770.xml"?>

      <?rfc include="reference.RFC.5304.xml"?>

      <?rfc include="reference.RFC.5310.xml"?>

      <?rfc include="reference.RFC.5709.xml"?>

      <?rfc include="reference.RFC.8126.xml"?>

      <?rfc include="reference.RFC.8231.xml"?>

      <?rfc include="reference.RFC.8306.xml"?>

      <?rfc include="reference.RFC.8623.xml"?>

      <?rfc include="reference.RFC.9168.xml"?>
    </references>

    <references title="Informative References">
      <?rfc include="reference.RFC.2385.xml"?>
      <?rfc include="reference.RFC.5440.xml"?>
      <?rfc include="reference.RFC.6952.xml"?>

      <?rfc include="reference.RFC.8446.xml"?>

      <reference anchor="UTR36">
        <front>
          <title>Unicode Technical Report #36, Character Encoding
          Model</title>

          <author fullname="M.Davis" initials="M." surname="Davis">
            <organization/>
          </author>

          <date month="February" year="2005"/>
        </front>

        <seriesInfo name="UTR17"
                    value="http://www.unicode.org/unicode/reports/tr36/"/>
      </reference>
    </references>
  </back>
</rfc>
