Internet-Draft | BMP over TLS (BMPS) | August 2024 |
Sharma & Clarke | Expires 6 February 2025 | [Page] |
The BGP Monitoring Protocol (BMP) defines the communication between a BMP station and multiple routers, referred to as network elements (NEs). This document describes BMP over TLS, which uses Transport Layer Security (TLS) to ensure secure transport between the NE and the BMP monitoring station. It updates [RFC7854] regarding BMP session establishment and termination.¶
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 6 February 2025.¶
Copyright (c) 2024 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.¶
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.¶
The BGP Monitoring Protocol (BMP), as defined in [RFC7854], facilitates communication between NEs and a BMP station. Keeping this communication secure is important because it includes sharing sensitive information about BGP peers and monitored prefixes.¶
The Section 11 of [RFC7854] , "Security Considerations" acknowledges that while routes in public networks are generally not confidential, BGP is also utilized in private L3VPN [RFC4364] networks where confidentiality is crucial. It highlights that without mutual authentication through secure transport mechanisms, the channel is vulnerable to various attacks and recommends using IPSec [RFC4303] in tunnel mode with pre-shared keys for enhanced security in such scenarios.¶
Additionally, a recent draft proposal, [draft-hmntsharma-bmp-tcp-ao], titled "TCP-AO Protection for BGP Monitoring Protocol (BMP)" suggests an alternative approach using the TCP Authentication Option [RFC5925]. This method authenticates the endpoints of the TCP session, thereby safeguarding its integrity. TCP-AO is beneficial in situations where full IPSec security may not be feasible, although unlike IPSec, it does not encrypt the session traffic.¶
Alternatively, Transport Layer Security (TLS), offers endpoint authentication, data encryption, and data integrity defined in The Transport Layer Security (TLS) Protocol Version 1.2 [RFC5246] and The Transport Layer Security (TLS) Protocol Version 1.3 [RFC8446].¶
This document describes how to utilize TLS to secure BMP sessions between a monitoring station (acting as the server) and a Network Element (acting as the client). Unlike BGP, where either side can act as the server, BMP's role distinction simplifies the implementation of TLS in a client-server model. Henceforth, the term BMP over TLS will be referred to as BMPS.¶
The operation of BMPS is virtually the same as the original BMP specification defined in [RFC7854], but with an additional layer of security using TLS.¶
In BMPS, the BMP station functions as the TLS server, while NEs act as TLS clients. Following the completion of the TCP three-way handshake, as defined in Section 3.4 of [RFC793], each NE, functioning as a TLS client, initiates a TLS handshake with the BMP monitoring station, acting as the TLS server. Once the TLS connection is successfully established, NEs can immediately start transmitting BMP messages, as there is no separate BMP initiation or handshake phase.¶
The following steps summarize the operational flow of BMPS:¶
The NE initiates and completes a TCP handshake.¶
The NE initiates and completes a TLS handshake with the BMP monitoring station.¶
BMP messages are transmitted by the NE according to [RFC7854].¶
A BMPS session ends when the underlying TCP or TLS session is terminated for any reason.¶
The Section 3.2 of [RFC7854] states, "No BMP message is ever sent from the monitoring station to the router." To adhere to this standard, the monitoring station MUST listen on separate ports for BMP (non-TLS) and BMPS (TLS) sessions. This approach also offers a simplified "make before break" migration from BMP to BMPS.¶
In regular TLS connections, the server has a TLS certificate along with a public/private key pair, whereas the client does not.¶
For BMP over TLS (BMPS), it is REQUIRED to implement mutual TLS (mTLS), wherein both the server (BMP station) and the client (network element) have certificates, and both sides authenticate each other using their respective public/private key pairs.¶
A self-signed "root" TLS certificate is REQUIRED for mTLS, allowing an organization to act as its own certificate authority. The certificates issued to both the BMP station and NEs should correspond to this root certificate.¶
The operational flow of BMP over TLS is similar to standard TLS operations:¶
The NE initiates the connection to the BMP station.¶
The station presents its TLS certificate.¶
The NE verifies the station's certificate.¶
The NE presents its TLS certificate.¶
The station verifies the NE's certificate.¶
The TLS connection is established.¶
The NE begins transmitting BMP data to the station over the encrypted TLS channel.¶
TLS version 1.3, defined in [RFC8446], streamlines the handshake process and supports more robust cipher suites compared to TLS version 1.2 [RFC5246], enhancing both speed and security. However, widespread support for TLS 1.3 remains limited, with many systems still primarily utilizing TLS 1.2.¶
The BMPS is REQUIRED to support TLS 1.2 or higher to ensure secure communication.¶
The BMP over TLS (BMPS) is RECOMMENDED as an alternative mechanism to safeguard BMP sessions in scenarios where alternative protections like IPSec may not be feasible or deployed.¶
The BMPS implementation increases computational demands due to continuous encryption and decryption processes, resulting in high CPU utilization and potential vulnerability to denial-of-service attacks.¶
The TLS cipher suites that provide only data integrity validation without encryption SHOULD NOT be used by default.¶
The BMPS implementation SHOULD follow the best practices and recommendations for using TLS, as per the Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) as defined in [RFC7525].¶
This document has no IANA actions.¶
This document is the result of studying all the referenced RFCs and drawing some parallels from PCEPS [RFC8253], leading to the specification for BMP over TLS (BMPS).¶
We are grateful to the contributors of the RFCs listed in the References section. Their work has been instrumental in shaping and inspiring the development of this specification.¶