<?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.6.17 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-chen-spring-srv6-srh-security-03" category="info" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.1 -->
  <front>
    <title abbrev="SRH protection">SRH and IP header protection</title>
    <seriesInfo name="Internet-Draft" value="draft-chen-spring-srv6-srh-security-03"/>
    <author initials="D." surname="Lu" fullname="Dongjie Lu">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <city>BeiJing</city>
          <country>China</country>
        </postal>
        <email>ludongjie@chinamobile.com</email>
      </address>
    </author>
    <author initials="" surname="Chen" fullname="Meiling Chen" role="editor">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <city>BeiJing</city>
          <country>China</country>
        </postal>
        <email>chenmeiling@chinamobile.com</email>
      </address>
    </author>
    <author initials="L." surname="Su" fullname="Li Su">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <city>BeiJing</city>
          <country>China</country>
        </postal>
        <email>suli@chinamobile.com</email>
      </address>
    </author>
    <author initials="W." surname="Pan" fullname="Wei Pan">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <city>BeiJing</city>
          <country>China</country>
        </postal>
        <email>william.panwei@huawei.com</email>
      </address>
    </author>
    <author initials="C." surname="Li" fullname="Cheng Li">
      <organization>Huawei Technologies</organization>
      <address>
        <postal>
          <city>BeiJing</city>
          <country>China</country>
        </postal>
        <email>c.l@huawei.com</email>
      </address>
    </author>
    <date year="2022" month="October" day="15"/>
    <area>Security</area>
    <workgroup>Spring</workgroup>
    <keyword>Internet-Draft</keyword>
    <keyword>keyword2</keyword>
    <abstract>
      <t>This document proposes a method to protect SRH and IP header using signature which stored in the TLV, this scheme can apply to SRv6 and G-SRv6. By defining a new type of TLV which is used for signature protection based on asymmetric secret keys. Of course, we have designed the process of signature and verification, and tips for verifying optimization process.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>SRv6 is a protocol for forwarding IPv6 packets over a network based on the concept of source routing. By inserting a Segment Routing Header (SRH) into the IPv6 packet, an explicit IPv6 address stack is pressed into the SRH, and the destination address and offset address stack are constantly updated by the intermediate node to complete hop-by-hop forwarding, SRH is defined in <xref target="RFC8754"/>.</t>
      <t>G-SRv6 is generalized Segment Routing over IPv6 which can reduce the overhead of SRv6 by encoding the Generalized SIDs in SID list, the compression solution is designed in the draft [I-D.cl-spring-generalized-srv6-for-cmpr].</t>
      <t>As an emerging source routing protocol, SRv6 is confronted with various threat of source routing attacks. By defining SRH, attackers can construct various source routing attacks, such as bypassing key detection nodes of network and constructing malicious loops.</t>
      <t>SRv6 networks generally define SRv6 trust domains for basic security protection, which is also mentioned in the draft [I.D.li-spring-srv6-security-consideration] and <xref target="RFC8754"/>. Firstly, the address space in the SRv6 trust domain is defined to avoid SRv6 trust domain address leakage. Then ACL filtering is enabled at the boundary of the trust domain, and packets whose destination address is SRv6 trust domain are discarded to avoid source routing attack on SRV6 trust domain by attacking packets.</t>
      <t>SRv6 trust domains use Segment Bingding technology for basic security. RFC8754 defines SRv6 HMAC TLV for IPv6 source address and SRH integrity protection which based on SRv6 trust domain, identity authentication based on the shared key, to prevent illegal access and tamper header, so as to prevent various source routing attacks. However, there is a problem with this scheme, HMAC verification is based on symmetric key verification, that means all network nodes that need to be verified have to share the same key, there may exist a problems.</t>
      <t>Secret key leak problem: when a single point's key was leaked, then all the trust domain was compromised.</t>
      <t>In this document we present an alternative method for Segment Routing Header protection.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>This document uses the terminology defined in <xref target="RFC8754"/>.</t>
    </section>
    <section anchor="new-tlv-type-for-signature">
      <name>New TLV Type for Signature</name>
      <t>This section describes how to use the certificate to authenticate the header. The source address field in IP header and several fields in SRH are protected by signature, and the result of signature is stored in TLV, the TLV format is consistent with the HMAC TLV defined in RFC8754, we describe this in Figure 1.</t>
      <t>By defining a new type of TLV which the Type is 6 and we call it Auth TLV, indicates that the TLV is used for signature protection based on asymmetric secret keys. Auth TLV is described in Figure 1.</t>
      <artwork><![CDATA[
+--------+---------------------------+
|  Type  |  Length |D| RESERVED      |
+--------+---------------------------+
|          AUTH Key ID(4 octets)     |
+------------------------------------+
|                                    |
|          AUTH(variable)            |
|                                    |
+------------------------------------+
Figure 1: Auth TLV format
]]></artwork>
      <t>Type:  6.
Length:  The length of the variable-length data in bytes.
D:  1 bit. 1 indicates that the Destination Address verification is disabled due to use of a reduced Segment List.
RESERVED:  15 bits.  MUST be 0 on transmission.
AUTH Key ID:  A 4-octet opaque number that uniquely identifies the hash algorithm, signature algorithm, and certificate serial number used for signature authentication.
AUTH:  the content of the signature that protects the field, in multiples of 8 octets, at most 32 octets.
The AUTH TLV is used to protect IPv6 source address, SRH header for signature protection. Which fields are in the range of the signature check? they are described in Figure 2 and Figure 3, Figure 2 is for SRv6 and Figure 5 is for G-SRv6.
The AUTH Key ID field is opaque--i.e.,it has neither syntax nor semantic except as an identifier of the right combination of hash algorithm, signature algorithm and certificate serial number.
Hash Algorithm indicates the hash algorithm used in the header, such as SHA256, and we do not recommend using SHA1.
Signature Algorithm indicates the asymmetric signature algorithm used, such as ECDSA and RAS2048. 
Certificate Serial number used to identify certificate that issued by CA, if a custom certificate is used, the Certificate Serial number represents the identity of the custom certificate.</t>
    </section>
    <section anchor="srh-protection-used-in-srv6-and-g-srv6">
      <name>SRH protection used in SRv6 and G-SRv6</name>
      <t>Segment routing header is defined in RFC8754, when user choose to use the method proposed in this draft, the complete SRv6 header with Auth TLV is show as figure 2, and figure 3 is for G-SRV6.</t>
      <artwork><![CDATA[
+--------------+----------------+----------------------------+
|  Version     |  Traffic class | Flow Label                 |
+--------------+--------------------------------+------------+
|    Payload Length             |  Next=43      |  Hop Limit |
+-------------------------------+---------------+------------+
|               Source Address                               |
+------------------------------------------------------------+
|               Destination Address                          |
+--------------+---------------------------------------------+
| Next Header  | Hdr Ext Len    |Routing Type=4 |Segment Left|
+------------------------------------------------------------+
| Last Entry   | Flags          |       Tag                  |
+--------------+----------------+----------------------------+
|                 Segment List[0]                            |
+------------------------------------------------------------+
|                 Segment List[1]                            |
+------------------------------------------------------------+
|                 Segment List[2]                            |
+--------------+----------------+---+------------------------+
|  Type=6      |  Length        | D |    Reserved            |
+--------------+----------------+---+------------------------+
|                   Auth Key ID                              |
+------------------------------------------------------------+
|                  Auth(variable)                            |
+------------------------------------------------------------+
|                IPv6 Payload                                |
+-------------------------------------------------------------

Figure 2: Complete SRv6 header with Auth TLV
]]></artwork>
      <t>Figure 3 is the detailed structure for G-SRv6.</t>
      <artwork><![CDATA[
+--------------+----------------+----------------------------+
|  Version     |  Traffic class | Flow Label                 |
+--------------+--------------------------------+------------+
|    Payload Length             |  Next=43      |  Hop Limit |
+-------------------------------+---------------+------------+
|               Source Address                               |
+------------------------------------------------------------+
|               Destination Address                          |
+--------------+---------------------------------------------+
| Next Header  | Hdr Ext Len    |Routing Type=4 |Segment Left|
+------------------------------------------------------------+
| Last Entry   | Flags          |       Tag                  |
+--------------+----------------+----------------------------+
|                 G-SID Container[0]                         |
+------------------------------------------------------------+
|                 G-SID Container[1]                         |
+------------------------------------------------------------+
|                 G-SID Container[2]                         |
+--------------+----------------+---+------------------------+
|  Type=6      |  Length        | D |    Reserved            |
+--------------+----------------+---+------------------------+
|                   Auth Key ID                              |
+------------------------------------------------------------+
|                  Auth(variable)                            |
+------------------------------------------------------------+
|                IPv6 Payload                                |
+-------------------------------------------------------------

Figure 3: Complete SRv6 header with Auth TLV
]]></artwork>
      <t>Signature check those fields that need to be protected will be signed, the range of signatures includes IPv6 Source address, SRH Last Entry, SRH Flags, SRH Segment List, AUTH TLV D, AUTH TLV Reserved, AUTH TLV Auth Key ID.</t>
      <t>what's the difference between this scheme with the AH of the IPv6? In this scheme, the message is protected in the routing extension header with type = 43, and AH uses the extension header with type = 51, they are totally independent. According to the IPv6 protocol, the processing order of AH extension header is lower than that of routing extension header, that is, the AH extension header will not be parsed until the source route forwarding is completed and the routing extension header pops up. AH cannot be directly used to protect the source route attack.</t>
    </section>
    <section anchor="signing-and-verifying-process">
      <name>signing and verifying process</name>
      <t>First, need the CA center to issue a root certificate to the controller that will generate controller's public and private key, or the controller use custom certificate, it depends on the detail implementation. How to preset and update a CA certificate on a device is out of scope in this document. The process described in this document uses CA certificates by default.</t>
      <t>SRv6 controller uses the private key of the certificate to hash the SRH and IP header, and encapsulates the digital signature generated by SRv6 header and controller in the SRV6 source node. The signature process is divided into three steps.</t>
      <t>Step1: Preset certificates, include private keys and controller certificates on SRv6 controllers, and CA root certificates on key network devices;</t>
      <t>Step2: After the secure connection is established between the controller and the network device on the control plane, perform public key certificate distribution and signature algorithm selection, and inform the key node the selection result.</t>
      <t>Step3: SRv6 controller uses the private key, the hash algorithm and the asymmetric algorithm selected in the step2 to sign the packet header which generated according to the routing result, and store the signature results in the TLV, finally sends the routing result which include the signature to the source node, the source node wraps and forwards an SRv6 packet with a signature, the SRv6 network structure is described in Figure 4.</t>
      <artwork><![CDATA[
                  +------------+ Public key
                  | Controller | Private key
                  +-----^------+
                        |
    +------------+------+-----+-------------+
    |            |            |             |
    |            |            |             |
    |            |certificate |             |
    |            |            |             |
    |            |            |             |
+---+--+     +---v--+      +--+---+     +---+--+
| RT A +-----+ RT B +------+ RT C +-----+ RT D |
+------+     +------+      +------+     +------+

          Figure 4: SRv6 network structure
]]></artwork>
      <t>Signature verification is required at key network nodes, it's also divided into three steps.
Step1: Enable signature verification at the key nodes.
Step2: Request a public key certificate from the controller.
Step3: calculate the hash value according to the header, and use the public key to decrypt the signature in the message, compare the decryption result with the hash value, if verify successful, forward the message, otherwise, the message is discarded.</t>
    </section>
    <section anchor="verifying-optimization-process">
      <name>verifying optimization process</name>
      <t>When asymmetric key is used to verify the signature of the forward message on the data plane, the processing efficiency of the forward message is reduced. An efficient lookup table forwarding mechanism for signature verification can be considered, which verifies the signature of the first packet of the data, and records the hash result and signature of the packet header into the hash table. The subsequent packets can directly find the hash table and compare the signature result, no more need to decrypt, also can divide into three steps.</t>
      <t>Step1: When the interface of signature verification is opened and the SRV6 message is received, the hash value of the message header is calculated and finds if the local hash table is hit, the local hash table contains hash value and signature value, and they are bound.</t>
      <t>Step2: If the local hash table is not hit, the controller's public key is used to decrypt the signature and compare whether the decrypted result is consistent with the calculated hash value. If not, the message is discarded. If the hash value and decrypted result are consistently then recorded to the local hash table, and the processing packet is forwarded.</t>
      <t>Step3: If the local hash table is hit, the signature value in message is compared with hash table's signature value, if yes then forwarded to process the message, if not then discarded.</t>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>SRv6 is threatened by various source routing attacks. By defining SRH, an attacker can construct various source routing attacks, such as bypassing the key detection nodes of the network and constructing malicious loops, in this draft we propose a method, it can prevent a single device from being compromised and exposes the network's shared key, then the entire network is under threat.</t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>This document does not require any action from IANA.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="RFC8754" target="https://www.rfc-editor.org/info/rfc8754">
        <front>
          <title>IPv6 Segment Routing Header (SRH)</title>
          <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils">
            <organization/>
          </author>
          <author fullname="D. Dukes" initials="D." role="editor" surname="Dukes">
            <organization/>
          </author>
          <author fullname="S. Previdi" initials="S." surname="Previdi">
            <organization/>
          </author>
          <author fullname="J. Leddy" initials="J." surname="Leddy">
            <organization/>
          </author>
          <author fullname="S. Matsushima" initials="S." surname="Matsushima">
            <organization/>
          </author>
          <author fullname="D. Voyer" initials="D." surname="Voyer">
            <organization/>
          </author>
          <date month="March" year="2020"/>
          <abstract>
            <t>Segment Routing can be applied to the IPv6 data plane using a new type of Routing Extension Header called the Segment Routing Header (SRH). This document describes the SRH and how it is used by nodes that are Segment Routing (SR) capable.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8754"/>
        <seriesInfo name="DOI" value="10.17487/RFC8754"/>
      </reference>
    </references>
  </back>
  <!-- ##markdown-source:
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
Jum3ru6f/wLPHp6qLzsAAA==

-->

</rfc>
