<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.3.8) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-yang-spring-srv6-verification-02" category="std" consensus="true" submissionType="IETF" xml:lang="en">
  <front>
    <title abbrev="SRv6 Path Verification">SRv6 Path Verification</title>

    <author initials="F." surname="Yang" fullname="Feng Yang">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <country>CN</country>
        </postal>
        <email>yangfeng@chinamobile.com</email>
      </address>
    </author>
    <author initials="X." surname="Zhang" fullname="Xiaoqiu Zhang">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <country>CN</country>
        </postal>
        <email>zhangxiaoqiu@chinamobile.com</email>
      </address>
    </author>
    <author initials="C." surname="Lin" fullname="Changwang Lin">
      <organization>New H3C Technologies</organization>
      <address>
        <postal>
          <country>CN</country>
        </postal>
        <email>linchangwang.04414@h3c.com</email>
      </address>
    </author>
    <author initials="H." surname="Zhang" fullname="Han Zhang">
      <organization>Tsinghua University</organization>
      <address>
        <postal>
          <country>CN</country>
        </postal>
        <email>zhhan@tsinghua.edu.cn</email>
      </address>
    </author>

    <date year="2025" month="December" day="16"/>

    <area>RTG</area>
    <workgroup>SPRING</workgroup>
    

    <abstract>


<?line 46?>

<t>SRv6 is being rapidly deployed and is currently primarily used in trusted-domain backbone networks. However, we have also observed that SRv6 is beginning to extend toward end-user devices, e.g., in SD-WAN deployments. SD-WAN can be deployed in third-party clouds or at customer sites, causing the physical boundary of SRv6 to become blurred. This introduces certain security risks, such as packet injection and path manipulation attacks. Section 6 of <xref target="I-D.draft-ietf-spring-srv6-security"></xref> identifies these risks as well, including Section 6.2.1 on Modification Attacks and Section 6.2.3 on Packet Insertion. This proposal mitigates these risks by enhancing the HMAC mechanism defined in <xref target="RFC8754"></xref>.</t>



    </abstract>



  </front>

  <middle>


<?line 50?>

<section anchor="introduction"><name>Introduction</name>

<t>SRv6 is being rapidly deployed and is currently primarily used in trusted-domain backbone networks. However, we have also observed that SRv6 is beginning to extend toward end-user devices, e.g., in SD-WAN deployments. SD-WAN can be deployed in third-party clouds or at customer sites, causing the physical boundary of SRv6 to become blurred. This introduces certain security risks, such as packet injection and path manipulation attacks. Section 6 of <xref target="I-D.draft-ietf-spring-srv6-security"></xref> identifies these risks as well, including Section 6.2.1 on Modification Attacks and Section 6.2.3 on Packet Insertion. This proposal mitigates these risks by enhancing the HMAC mechanism defined in <xref target="RFC8754"></xref>.</t>

<t><xref target="RFC8754"></xref> describes how to use the HMAC TLV to verify the integrity and authenticity of the SRH(Segment Routing Header) during the transmission process, and to prevent the SRH from being maliciously tampered with or forged. Although the HMAC mechanism specified in RFC 8754 can verify the integrity of the entire SID List, if we want to force the SRv6 endpoints the packet must pass through during forwarding, it is necessary to retain some information each time the packet passes through an SRv6 endpoint. This draft proposes an enhancement to HMAC specificed by RFC 8754 that provides the capability to enforce the packet's forwarding path to go through all or certain SRv6 endpoints in the SID List. Meanwhile, the SRv6 HMAC mechanism performs end-to-end cryptographic verification of the entire IPv6 header and SRH header, which significantly increases the processing performance and storage overhead of forwarding chips, making it challenging to implement in practical commercial deployments.</t>

<t>This document proposes a path verification mechanism for SRv6, which adopts a hop-by-hop cryptographic computation on the destination segment identifier at each node, combined with an end-to-end verification at the last hop. Although the HMAC mechanism specified in RFC 8754 can verify the integrity of the entire SID List, if we want to force the SRv6 endpoints the packet must pass through during forwarding, it is necessary to retain some information each time the packet passes through an SRv6 endpoint. This draft proposes an enhancement to HMAC specificed by RFC 8754 that provides the capability to enforce the packet's forwarding path to go through all or certain SRv6 endpoints in the SID List. And this approach also significantly reduces the processing overhead associated with hop-by-hop path verification.</t>

<section anchor="requirements-language"><name>Requirements Language</name>

<t>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"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

</section>
</section>
<section anchor="process"><name>Process</name>

<t>The improved SRv6 path verification mechanism proposed in this document follows the processing flow at the head node, intermediate nodes, and tail nodes as described below:</t>

<figure align="center" title="Example topo"><artwork type="ascii-art"><![CDATA[
Attack traffic: SRH (P1, P3, PE2) w/ HMAC captured from user traffic
                  |         
                  |     +----+                      
                  +---->| P2 |                     
                       /+----+\                    
                      /        \                   
     +------+      +-+--+     +-+--+      +------+   
     | Head |------| P1 |-----| P3 |------| Tail |   
     +---+--+      +----+     +----+      +------+   
         |
         +<----  User traffic: SRH (P1, P3, PE2) w/ correct HMAC
]]></artwork></figure>

<t>Head Node:</t>

<t>The head node sends an IPv6/SRv6 packet. It encrypts the destination segment identifier (i.e., the SID of the first intermediate node) using a predefined encryption algorithm (e.g., HMAC, CRC, or other generic algorithms) and a pre-shared key, generating verification information 1. This verification information 1 is then inserted into a specified field of the packet (e.g., the Segment Routing Header (SRH) label field, SRH TLV field, path segment field, or IPv6 extension header), In this document, it is assumed that the mechanism is implemented by extending the "SRv6 SID Verify TLV" and incorporating it into the SRH (Segment Routing Header). The packet, now containing verification information 1, is forwarded to the first intermediate node.</t>

<t>Intermediate Nodes:</t>

<t>The first intermediate node receives the IPv6/SRv6 packet from the head node, which includes verification information 1 and the destination segment identifier of the next hop (i.e., the SID of the second intermediate node). The intermediate node reads verification information 1 and the segment identifier of the next hop from the packet, and then encrypts the verification information 1 and the segment identifier of the next hop using the same predefined encryption algorithm and pre-shared key, respectively. It then sums up verification information 2 through a predefined operation (e.g., weighted summation), generating verification information 2, which will be inserted into the same specified field of the packet, which is then forwarded to the second intermediate node. Subsequent intermediate nodes repeat this process, sequentially propagating the combined results of their own and all preceding nodes' calculations.</t>

<t>Tail Node:</t>

<t>The tail node receives the packet from the last intermediate node, which carries the combined verification information. It will compare the combined verification information with pre-calculated path verification value. If they do not match, the packet is considered routed by unexpected path and can be discarded. If they match, the packet strictly follows the SID List carried in the packet. In case of a mismatch, tail node can compare these results with its own calculations to identify the specific node where the verification failed, enabling traceability of the verification anomaly.</t>

<t>In summary, the algorithm works in the following way. Define ALG_n(x) = ALG(kn, x), kn is the key for node n, and x is the SID in the destination address, and Yn is the path verification information carried by the packet and updated on each hop. Suppose the SRv6 path starts from Node1 and ends on Node4, the path verification information would be computed as below on each node. Node1: Y1 = ALG_1(SID_2); Node2: Y2 = ALG_2(SID_3) + ALG_2(Y1); Node3: Y3 = ALG_3(SID_4) + ALG_3(Y2); Node4: Y4 = ALG_3(SID_4) + ALG_4(y3). Optionally, on last hop node, if the verication failed it can send the packet to the SDN controller. Because Yn and ALG_n(x) is known to SDN controller, it can identify which nodes has been bypassed.</t>

<t>In this way, the intermediate nodes specified by in the SID list will not be allowed to be bypassed since every hop will have fingerpint in the Yn.</t>

</section>
<section anchor="extensions"><name>Extensions</name>

<section anchor="srv6-sid-verify-tlv"><name>SRv6 SID Verify TLV</name>

<t>A new SRv6 SID Verify TLV is requested from "Segment Routing Header TLVs" in this document.</t>

<figure align="center" title="SRv6 SID Verify TLV"><artwork type="ascii-art"><![CDATA[
0                   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 2
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Type(TBD)   |    Length     | Algorithm ID  |    Key Len    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Auth Key ID (variable)                 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                              //
|                      Signature (variable)
//
|                                                              //
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Type (1 octets): TBD, SRv6 SID Verify TLV

Length (1 octets): The length of the variable-length data in bytes.

Algorithm ID(1 octets): The ID of encryption Algorithm.

Key Len(1 octet): Length of pre-shared

Auth Key ID:  pre-shared key to encrypt the SID.

Signature:  encrypted SID data, variable, in multiples of 8 octets.

]]></artwork></figure>

</section>
</section>
<section anchor="IANA"><name>IANA Considerations</name>

<section anchor="srv6-sid-verify-tlv-1"><name>SRv6 SID Verify TLV</name>

<t>A new SRv6 SID Verify TLV is requested from "Segment Routing Header TLVs".</t>

<texttable align="center" title="Code Point">
      <ttcol align='left'>Value</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>0</c>
      <c>SRv6 SID Verify TLV</c>
      <c>This document</c>
</texttable>

</section>
</section>
<section anchor="Security"><name>Security Considerations</name>

<t>This document should not affect the security of the Internet.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC8754">
  <front>
    <title>IPv6 Segment Routing Header (SRH)</title>
    <author fullname="C. Filsfils" initials="C." role="editor" surname="Filsfils"/>
    <author fullname="D. Dukes" initials="D." role="editor" surname="Dukes"/>
    <author fullname="S. Previdi" initials="S." surname="Previdi"/>
    <author fullname="J. Leddy" initials="J." surname="Leddy"/>
    <author fullname="S. Matsushima" initials="S." surname="Matsushima"/>
    <author fullname="D. Voyer" initials="D." surname="Voyer"/>
    <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>
<reference anchor="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>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="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>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 title='Informative References' anchor="sec-informative-references">




<reference anchor="I-D.draft-ietf-spring-srv6-security">
   <front>
      <title>Segment Routing IPv6 Security Considerations</title>
      <author fullname="Nick Buraglio" initials="N." surname="Buraglio">
         <organization>Energy Sciences Network</organization>
      </author>
      <author fullname="Tal Mizrahi" initials="T." surname="Mizrahi">
         <organization>Huawei</organization>
      </author>
      <author fullname="tongtian124" initials="" surname="tongtian124">
         <organization>China Unicom</organization>
      </author>
      <author fullname="Luis M. Contreras" initials="L. M." surname="Contreras">
         <organization>Telefonica</organization>
      </author>
      <author fullname="Fernando Gont" initials="F." surname="Gont">
         <organization>SI6 Networks</organization>
      </author>
      <date day="6" month="November" year="2025"/>
      <abstract>
	 <t>   SRv6 is a traffic engineering, encapsulation and steering mechanism
   utilizing IPv6 addresses to identify segments in a pre-defined
   policy.  This document discusses security considerations in SRv6
   networks, including the potential threats and the possible mitigation
   methods.  The document does not define any new security protocols or
   extensions to existing protocols.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-spring-srv6-security-09"/>
   
</reference>



    </references>

</references>



  </back>

<!-- ##markdown-source:
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
+/pp4+QOKrXezurshk28/Mt7cbHbOvwn9vDnsSX015+x53H1sG6T17BT87/T
26meW4/tRXbXPefV4t6O4zID94zHvWb4mlR/v0Br6dCd5cdVWkyvedz5gqaF
eN1S3AZ1+ykKO79gtTNIPOb6HFgcWiup4YtUIQk4TFEG9tgZDUWWvjhBypBw
3mEekmFs6b7qd+t44qL7ROemWLWRbWGLVUmFR1UyOWqcd0TTFElCGIstWzfT
Xbri4BI/EM5SHJ2LqUpg2n6z2GzbGokO7ZlQEtoRP7p2peTCaMEbtIP+wEXw
zQsof6DqizqEiKfsOuD5ZSvxwY8oqO7uEgd3AxbM2ipNbEGN20iy4BrsCV1W
LNWC7pUdWSV0NwY5cNrMjQcu6mzGvN1FTbvo0qrsB5EZ766LQQw17pB6AFWy
a9MS29CoqscOY4M0+8Ymc+CuY1suCQCXpU6+urBSqQrJTZUpSbsSUReYmAG2
CeUoH1dSlxh1KY/iyvUjKENMPGmPkQUYZwIbtiC58ZW+c9nNslFY37kUAGzS
blsS6qP44bDw05bk4JNAAZQ7bbAsoyCwYI1pWcmuu5kMHsTeA1iq5VAp0O1N
Fl3Gr0Os6WsZGauf9BjcjlpyALkiG6WWejRnz8a8whiMKLPNbO42eXSbbJqx
N8ECZ9szpachmQ1OtFu3H+Z0div4zDRSO84h266lvvNHPUwNQeeeVsxjE1T6
4qocG+TetsBdzmMgNSSehXUldcPIrUftyx3WNJNTe0muV6rCEgIvI6DAMqqh
1JltFFIKm5GRsWdhOp8gN4l81zfkKpriZytc1anUonUu2yRXqSvXqKTjyzzX
VVlVsblJMYwR1gmV2pziP2SbrXcIfNWNVLAmCb2TUQnhn7Bs5vDSYBRVrCz8
sNu+GTWzIRGYBgEZQHSeuYRpEJyrw0muVetYG5913xy/eq4pEDapkmtnulUR
6AQVVMVhnQ4kmDGKNCpFjJDhjq11Qxy0pEUdUwcCloomNMySBV1zi8Uavu0O
VIWxPXFGhc2qI5mApEIAVIkcR4y8XPqqqpOdaSy2MZI0lrB8igfWRvO5lUjj
Nrj/X13aCobOnkk4jEM2fDE6/eZtsvVuWzynx61bFGjvYOi3iTM9Llapm8Pc
u2ruXTVJAtarzRoZBHndib2pj1pFTRtnlY7G87Ze6YQyCxh1VRuDuzZXZUa1
TtNGsflEgerCWPsha7NOmRNC7KaR/e4DeJmlZURljetKcfFrq5yaCetsmMZQ
3Ays/N4OtiCSt7vbf+CZXczsupldntnbFjvu9WbgVu1h1Z5btcer9qtVe1s3
1Vn7WLW/ftX+1nwPIfIVRw3yYV3ismpwVTVdg6EFzHGHUCacNbcFX+U7h+ec
xeRAj8r74oWiL2UUaZUkW8MHKr5NyBawb3FPt6JQW4V1XtYfhyxYePjxnLtR
gQU0+2fgtFs32Jb8eBM9xvN2zycic2cvR/5nTNYArdm4gbeKikD89ZWgr8Xm
LCTewl+OwSymKs+0bZDSuTfc0hFHVVJquMGzJnn0vBFC/GzdFAkopzBD39VZ
fHY2pM5YbVabMv1/p7xel+C6Ktt7sqaQHKwZ210ztofdA8zsiX3xqXgqPhPP
xOfiZ415VJX+on8elaPXuPnW9YvDbeGK+FOVTGHatrQd1a4QMrDzf4Q/wxpb
iv46PKz9jEpwQcRAeetO5hqOXW2vLPuP8vCwz+PHm064AtgkdVhaN/A2L/8Z
BH/5pT3SvNgaiBRJQ2G2hwIo6K63SoeJhcWUXNnhKrq6G/bcMGKOJCsczwtF
GVwbS8sn2RKmlbrXi7HRIa7agy2nNeEmqQeBBjFDsZTu21Y5H1+5Opxc6wfr
3Sy1CcENMd+tr8Tf0cfIWzSqYU5gnzn++84ZPBIno/OROHCpmUtl3j+i0Q//
BXe31rs5J3ZAmccFdffJd92LN5RqCjLnQ+5AWokvfO7FpZog0SIfz+/Y9qSe
W8evm1r8suueBHNV/c3AinCqmQ/LX5KZkPMHikByMqG+lStZyva3RFzHJ6pw
fyFCf7jh/QssNGEy0ycAAA==

-->

</rfc>

