Spring D. Lu Internet-Draft M. Chen Intended status: Standards Track Li. Su Expires: December 30, 2021 China Mobile Wei. Pan Cheng. Li Huawei Technologies June 28, 2021 SRH and IP header protection draft-chen-spring-srv6-srh-security-01 Abstract 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. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on December 30, 2021. Copyright Notice Copyright (c) 2021 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) 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 Simplified BSD License text as described in Section 4.e of Lu, et al. Expires December 30, 2021 [Page 1] Internet-Draft SRH protection June 2021 the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. New TLV Type for Signature . . . . . . . . . . . . . . . . . 3 4. SRH protection used in SRv6 and G-SRv6 . . . . . . . . . . . 4 5. signing and verifying process . . . . . . . . . . . . . . . . 6 6. verifying optimization process . . . . . . . . . . . . . . . 8 7. Security Considerations . . . . . . . . . . . . . . . . . . . 8 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 9. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 8 10. Normative References . . . . . . . . . . . . . . . . . . . . 9 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 1. Introduction 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 RFC8754 [RFC8754] 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]. 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. 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 RFC 8754 [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. 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 Lu, et al. Expires December 30, 2021 [Page 2] Internet-Draft SRH protection June 2021 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. Secret key leak problem: when a single point's key was leaked, then all the trust domain was compromised. In this document we present an alternative method for Segment Routing Header protection. 2. Terminology This document uses the terminology defined in [RFC8754]. 3. New TLV Type for Signature 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. 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. +--------+---------------------------+ | Type | Length |D| RESERVED | +--------+---------------------------+ | AUTH Key ID(4 octets) | +------------------------------------+ | | | AUTH(variable) | | | +------------------------------------+ Figure 1: Auth TLV format 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. Lu, et al. Expires December 30, 2021 [Page 3] Internet-Draft SRH protection June 2021 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. 4. SRH protection used in SRv6 and G-SRv6 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. Lu, et al. Expires December 30, 2021 [Page 4] Internet-Draft SRH protection June 2021 +--------------+----------------+----------------------------+ | 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 Figure 5 is the detailed structure for G-SRv6 Lu, et al. Expires December 30, 2021 [Page 5] Internet-Draft SRH protection June 2021 +--------------+----------------+----------------------------+ | 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 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. 5. signing and verifying process 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. 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. Lu, et al. Expires December 30, 2021 [Page 6] Internet-Draft SRH protection June 2021 Step1: Preset certificates, include private keys and controller certificates on SRv6 controllers, and CA root certificates on key network devices; 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. 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. +------------+ Public key | Controller | Private key +-----^------+ | +------------+------+-----+-------------+ | | | | | | | | | |certificate | | | | | | | | | | +---+--+ +---v--+ +--+---+ +---+--+ | RT A +-----+ RT B +------+ RT C +-----+ RT D | +------+ +------+ +------+ +------+ Figure 4: SRv6 network structure 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. Lu, et al. Expires December 30, 2021 [Page 7] Internet-Draft SRH protection June 2021 6. verifying optimization process 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. 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. 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. 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. 7. Security Considerations 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. 8. IANA Considerations This document does not require any action from IANA. 9. Acknowledgement TBD Lu, et al. Expires December 30, 2021 [Page 8] Internet-Draft SRH protection June 2021 10. Normative References [I-D.cl-spring-generalized-srv6-for-cmpr] Cheng, W., Li, Z., Li, C., Clad, F., Liu, A., Xie, C., Liu, Y., and S. Zadok, "Generalized SRv6 Network Programming for SRv6 Compression", draft-cl-spring- generalized-srv6-for-cmpr-03 (work in progress), April 2021. [RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020, . Authors' Addresses Dongjie Lu China Mobile 32, Xuanwumen West BeiJing, BeiJing 100053 China Email: ludongjie@chinamobile.com Meiling Chen China Mobile 32, Xuanwumen West BeiJing, BeiJing 100053 China Email: chenmeiling@chinamobile.com Lu, et al. Expires December 30, 2021 [Page 9] Internet-Draft SRH protection June 2021 Li Su China Mobile 32, Xuanwumen West BeiJing 100053 China Email: suli@chinamobile.com Wei Pan Huawei Technologies 101 Software Avenue, Yuhuatai District Nanjing China Email: william.panwei@huawei.com Lu, et al. Expires December 30, 2021 [Page 10] Internet-Draft SRH protection June 2021 Cheng Li Huawei Technologies Huawei Campus, No. 156 Beiqing Rd. Beijing 100095 China Email: c.l@huawei.com Lu, et al. Expires December 30, 2021 [Page 11]