BGP over TLS/TCP
Internet-Draft draft-wirtgen-bgp-tls-01
Thomas Wirtgen
UCLouvain & WELRI
thomas.wirtgen@uclouvain.be
Olivier Bonaventure
UCLouvain & WELRI
olivier.bonaventure@uclouvain.be
24 April 2024
Routing
IDR
tcp
tls
bgp
tcp-ao
This document specifies the utilization of TCP/TLS to support BGP.
About This Document
Status information for this document may be found at https://datatracker.ietf.org/doc/draft-wirtgen-bgp-tls/.
Discussion of this document takes place on the IDR Working Group mailing list (mailto:idr@ietf.org), which is archived at https://mailarchive.ietf.org/arch/browse/idr/. Subscribe at https://www.ietf.org/mailman/listinfo/idr/.
Source for this draft and an issue tracker can be found at https://github.com/obonaventure/draft-bgp-tls.
Introduction
The Border Gateway Protocol (BGP) [RFC4271] relies on the TCP protocol to establish BGP sessions between routers. A recent draft [I-D.draft-retana-idr-bgp-quic] has proposed to replace TCP with the QUIC protocol [RFC9000]. QUIC brings many features compared to TCP including security, the support of multiple streams or datagrams.
From a security viewpoint, an important benefit of QUIC compared to TCP is that QUIC by design prevents injection attacks that are possible when TCP is used by BGP [RFC4272]. Several techniques can be used by BGP routers to counter this attacks [RFC5082] [RFC5925]. TCP-AO [RFC5925] authenticates the packets exchanged over a BGP session provides similar features as QUIC. However, it is notoriously difficult to configure the keys used to protect BGP sessions.
The widespread deployment of TLS [RFC8446] combined with the possibility of deriving TCP-AO keys from the TLS handshake [I-D.draft-piraux-tcp-ao-tls] creates an interest in using TLS to secure BGP sessions. This document describes how BGP can operate over TCP/TLS.
Conventions and Definitions
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 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.
This document uses network byte order (that is, big endian) values. Fields are placed starting from the high-order bits of each byte.
Summary of operation
A BGP over TLS/TCP session is established in two phases:
- establish a transport layer connection using TCP
- establish a TLS session over the TCP connection
The TCP connection SHOULD be established on port TBD1.
During the establishment of the TLS session, the router that initiates the connection MUST use the "botls" token in the Application Layer Protocol Negotiation (ALPN) extension [RFC7301]. The support for other ALPN MUST NOT be proposed during the TLS handshake.
Once the TLS handshake is established and finished, the BGP session is initiated as defined in [RFC4271] and the protocol operates in the same way as a classic BGP over TCP session. The difference is that the BGP session is now encrypted and authenticated using the TLS layer. As in [I-D.draft-retana-idr-bgp-quic], the TLS authentication parameters used for this connection are out of the scope of this draft.
Security Considerations
This document improves the security of BGP sessions since the information exchanged over the session is now protected by using TLS.
If TLS encounters a payload injection attack, it will generate an alert that immediately closes the TLS session. The BGP router SHOULD then attempt to reestablish the session. However, this will cause traffic to be interrupted during the connection re-establishement.
If both BGP peer supports TCP-AO, the TLS stack is protected against payload injection and this attack can be avoided. When enabled, TCP-AO counters TCP injection attacks listed in [RFC5082].
Furthermore, if the BGP router supports TCP-AO, we recommend an opportunistic TCP-AO approach as suggested in [I-D.draft-piraux-tcp-ao-tls]. The router will attempt to connect using TCP-AO with a default key. When the TLS handshake is finished, the routers will derive a new TCP-AO key using the TLS key.
TCP-MD5 [RFC2385] MAY be used to protect the TLS session if TCP-AO is not available on the BGP router.
IANA Considerations
IANA is requested to assign a TCP port (TBD1) from the "Service Name and Transport Protocol Port Number Registry" as follows:
- Service Name: botls
- Port Number: TBD1
- Transport Protocol: TCP
- Description: BGP over TLS/TCP
- Assignee: IETF
- Contact: IDR WG
- Registration Data: TBD
- Reference: this document
- Unauthorized Use Reported: idr@ietf.org
It is suggested to use the same port as the one selected for BGP over QUIC [I-D.draft-retana-idr-bgp-quic].
Acknowledgments
The authors thank Dimitri Safonov for the TCP-AO implementation in Linux.
Change log
References
Normative References
[RFC7301]

Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension
S. Friedl
A. Popov
A. Langley
E. Stephan
July 2014
RFC 7301
DOI 10.17487/RFC7301
[RFC4271]

A Border Gateway Protocol 4 (BGP-4)
Y. Rekhter, Ed.
T. Li, Ed.
S. Hares, Ed.
January 2006
RFC 4271
DOI 10.17487/RFC4271
[RFC4272]

BGP Security Vulnerabilities Analysis
S. Murphy
January 2006
RFC 4272
DOI 10.17487/RFC4272
[RFC5925]

The TCP Authentication Option
J. Touch
A. Mankin
R. Bonica
June 2010
RFC 5925
DOI 10.17487/RFC5925
[RFC2385]

Protection of BGP Sessions via the TCP MD5 Signature Option
A. Heffernan
August 1998
RFC 2385
DOI 10.17487/RFC2385
[I-D.draft-piraux-tcp-ao-tls]

Opportunistic TCP-AO with TLS
Maxime Piraux
UCLouvain & WELRI
Olivier Bonaventure
UCLouvain & WELRI
Thomas Wirtgen
UCLouvain & WELRI
4 March 2024
Internet-Draft draft-piraux-tcp-ao-tls-01
[RFC2119]

Key words for use in RFCs to Indicate Requirement Levels
S. Bradner
March 1997
BCP 14
RFC 2119
DOI 10.17487/RFC2119
[RFC8174]

Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words
B. Leiba
May 2017
BCP 14
RFC 8174
DOI 10.17487/RFC8174
Informative References
[I-D.draft-retana-idr-bgp-quic]

BGP over QUIC
Alvaro Retana
Futurewei Technologies
Yingzhen Qu
Futurewei Technologies
Jeffrey Haas
Juniper Networks
Shuanglong Chen
Huawei Technologies
Jeff Tantsura
Nvidia
3 March 2024
Internet-Draft draft-retana-idr-bgp-quic-04
[RFC5082]

The Generalized TTL Security Mechanism (GTSM)
V. Gill
J. Heasley
D. Meyer
P. Savola, Ed.
C. Pignataro
October 2007
RFC 5082
DOI 10.17487/RFC5082
[RFC8446]

The Transport Layer Security (TLS) Protocol Version 1.3
E. Rescorla
August 2018
RFC 8446
DOI 10.17487/RFC8446
[RFC9000]

QUIC: A UDP-Based Multiplexed and Secure Transport
J. Iyengar, Ed.
M. Thomson, Ed.
May 2021
RFC 9000
DOI 10.17487/RFC9000