<?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-03" 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="2026" month="February" day="09"/>

    <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 specified 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 specified 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 topology"><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 verification 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 fingerprint 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>TBD</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="2" month="February" year="2026"/>
      <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-11"/>
   
</reference>



    </references>

</references>



  </back>

<!-- ##markdown-source:
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
xNrnvn7aOrmLWq27uz67ZRMv//JeXOw1Dv+JPfx5bAn99WfseVw9bNrkLdip
+d/t7lbPjcfmIrvrnjNrcW/HcZm+e8bjYDF8Teq/X6K1cuju6uM6Laa3eNz9
gqaFeN1Q3BZ1+ylKO79gtTNIPOb6HHgcWkupIYxsIQk4UlES9tgZDkWXnjhB
1pBw6mEekmTs6J7qdeqY4gL8ROemWLeTtrDlqqTSoyqaHDVOPaJpijwhjMWO
rZzpLh1xcIkfCGkpjs7FVCUwb3+x2LRtlUSHdk0oCe2IIR27UnJptOQRmnG/
74L49gWUQlD9RT1CxFR2H/D+shHR8SMKqru73MHdgAWzsU4TO1BjG3kW3IM9
ocOKpWrQvbIzq4TuxiAHzpy59cBlnU2a2x1UtcturUqAEJ3x7voYxNDCJVIX
oMp3bWpiWxpV/dhibJBm39h8Dty1bNMlAeCy1MlXF1YqVSm5rTYlaVci6gAT
M8A2oTzl40rqEKMu7VFcu34EZYiLJ80xsgDjTGDLFiQ4vtJ3LsNZNQrrO1eC
gM3bbVNCfRQ/HBp+2pIcfBIogPKnLZZlFAQWbDAtK9lNN5PBg9h7AEu1HCoF
ur3Jssv4dYgtOltGxuonPQY3pFYcQK7IRqmpHs3ZszGvMAYjymw7m3uLXLpJ
Ns3Ym2CBs+2Z0tOQzAYn2q3thzmdvQo+M430jvPIpmup7/xRD1ND0LmnNfPY
BpWeuCrHBvm3rXFXcxlIDclnYV1J3TJy61H+co81zeTUXpJrlqq2hMDLCCiw
jGoodWZbhZTGZmRk7FmYzifITSLfdQ65kKb42QhXdTq1bJ2rNsmF6to1Kun4
Ms91VVpVbG5TDGOEdULVNqf5D9lmax4CX3UjFWxIRO9kVEL4JyybObw0GEUh
Kws/7DRvRu1sSASmQUAGEJ1nLmEaBOfqcJJr1TzWxmfdL45fP9cUCJtUzTWz
3aoQdIIKqgKxTgcSzBhFGpUiRshwx9a6IQ4a0qKeqQMBS0UTGmbJkq65y2IN
3zYIHM59e+KMipt1RzIBSYUAqBI5jhh5ufRVVSs701juZCRpLGH5FA+sjeZz
K5GF2+BvAKpLW8HQ2TMJh3HIhi9Gp9+8TXbetcVzety5RZH2DoZ+mzjT44KV
GjrMvavo3lWTJGC93q+RQZDXvdib+qh11DRxVuloPG/qlU4os4BRV3UyuHFz
VWZU7yw6KTafKFBhGGs/ZG3WKXNCiN00st95AC+ztIyotHGNKS6AbaVTM2Gd
DdMYipu+ld/b/g5E8nav/Qee2cPMnpvZ45lBW+y615u+WzXAqoFbNeBV+9Wq
wc5NddY+Vu1vXrW/Mx8gRL7iqEE+rENcVj2uqq7bgCGLOm4TyoTz5qboq4zn
8JzzmBz4UXlPvFD0xYwivZJsawBBybcJWQP2Le/pVBRqu7Duy3rkkEULHz+e
c0sqsJBmDw2kduou24onX+o5NTo/ERk8+znyQGOyB+jNRg68VVQEIrCvBH01
Nmcx8Rb+ggyGMaXOh7ZtUjr4hjs74qjKSw33eTbkj543QpSfbZoiCeUUaegL
OwvR1pbsGavNem+m9+9U2ZtyXFdoe0821JL9DWN7G8YG2N3HzEDsi0/FU/GZ
eCY+Fz9rzKPC9Bf986givcbNd65fHLaFq+NPVTKFddvqdlR7Q8jAzv8RLg1r
bDX66/Cw8TMqwQURA+WdO5lr+HbVXlv2H+XhYZ/Hj7edcAWwSWqyNG7gbV/+
Mwj+8kt7pHmx0xcp8obCtIcCKOhstkqHiaXFlF/Z4SrAuht23TDCjiQrHM8L
RUlcE0urJ9kqppG914ux0SGu2oMtpzXhRV4PAgvEDMVKxm875nx85etwcq0f
rHez1C0EN8R8p74Sf1EfI3XRKIg5h33m+O85Z/BInIzOR+LAZWcum3n/iEY/
/Bfc3Ubv5pzYASUfF9TkJ991L95QtinInA+5EWklvvS5F5dqglyLnDy/Yxvg
4eY28eumlr/yuifBXFV/OLAmnGrmw+pXZSbkFIJCkJxMqHXlqpay+V0Rl/KJ
KtyfidBfb3j/AgbKfpvYJwAA

-->

</rfc>

