RFC 9985
Optimizing Bidirectional Forwarding Detection (BFD) Authentication
Optimizing Bidirectional Forwarding Detection (BFD) Authentication ๐
RFC 9985 ๐ Category: Experimental ๐งช ISSN: 2070-1721 โจ Date: June 2026 ๐ Obsoletes / Updates: This document doesn't list any RFCs it obsoletes or updates. ๐
Authors: ๐
- M. Jethanandani (Arrcus)
- A. Mishra (Aalyria Technologies)
- J. Haas (HPE)
- A. Saxena (Ciena Corporation)
- M. Bhatia (Google)
Publisher: Internet Engineering Task Force (IETF) ๐
Abstract โจ
okay so this doc is an experimental optimization for Bidirectional Forwarding Detection (BFD) Authentication ๐ฆ it's for when you want auth on BFD but slapping the same heavy auth mechanism on every single BFD Control Packet would hurt performance, and nobody wants that ๐ญ the trick is to split BFD Authentication into two buckets: a more computationally intensive (MCI) mechanism for BFD significant changes, and a less computationally intensive (LCI) mechanism for the majority of BFD Control Packets. it's giving smart scaling without giving up security ๐ซถ
Status of This Memo ๐
ngl this part is the official paperwork, but here's the tea: this document is not an Internet Standards Track specification ๐ โโ๏ธ it's published for examination, experimental implementation, and evaluation.
it does define an Experimental Protocol for the Internet community ๐งช it's a product of the Internet Engineering Task Force (IETF) and represents the consensus of the IETF community. it got public review and was approved for publication by the Internet Engineering Steering Group (IESG). not every IESG-approved doc is a candidate for any level of Internet Standard, so see Section 2 of RFC 7841 for the deets ๐
for current status, errata, and how to give feedback, check https://www.rfc-editor.org/info/rfc9985 ๐
Copyright Notice ๐ธ
Copyright (c) 2026 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) as in effect on the date of publication. please actually read these, bestie, they spell out your rights and restrictions for this doc ๐ and if you extract Code Components from this document, they must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Revised BSD License โ ๏ธ
Table of Contents ๐บ๏ธ
1. Introduction
1.1. Requirements Language
2. Terminology
3. BFD Control Packets That Require MCI Authentication
3.1. Protecting BFD Significant Changes with MCI Authentication
4. Using LCI Auth Types
5. Periodic MCI Reauthentication
6. Optimized Authentication Modes
7. Signaling Optimized Authentication
7.1. Transmitting and Receiving Using Optimized Authentication
7.2. Optimized Authentication Operations
8. Optimizing Authentication YANG Data Model
8.1. Data Model Overview
8.2. Tree Diagram
8.3. The YANG Data Model
9. IANA Considerations
9.1. IETF XML Registry
9.2. The YANG Module Names Registry
10. Security Considerations
10.1. Protocol Security Considerations
10.2. YANG Security Considerations
11. References
11.1. Normative References
11.2. Informative References
Appendix A. Examples
A.1. Single-Hop BFD Configuration
Appendix B. Experimental Status
Acknowledgments
Contributors
Authors' Addresses
1. Introduction ๐ฆ
okay, so BFD [RFC5880] authentication, when turned on, authenticates every single control packet with the same mechanism ๐ฉ and BFD devices are often resource-constrained, so auth can hit performance hard, which is why people end up skipping it ๐
when it's done in software, BFD Authentication has to fight with all the other work the system is doing โ๏ธ with hardware acceleration it can scale better in some situations, but it still costs something ๐งฎ BFD's whole vibe depends on scaling to lots of sessions and on a Detection Time that relies on sending control packets at a high rate ๐ so implementers and operators are stuck weighing what authentication gets you against what it does to BFD performance โ๏ธ
the authentication mechanisms in [RFC5880], MD5 Message-Digest Algorithm [RFC1321], and Secure Hash Algorithm (SHA-1) [RFC3174] aren't particularly strong in a cryptographic sense ๐ but they may still not scale well in a given implementation. and in the future, folks might want stronger mechanisms than the ones already specified, and those are likely to use even more resources ๐ตโ๐ซ
here's the big picture: BFD is basically the set of procedures that handle state machine changes until the session reaches the Up state. once it's Up, it sends those Up packets at the negotiated high rate ๐๏ธ the number of BFD Control Packets needed to signal state changes (called significant changes) is tiny, while most Control Packets just confirm the session is still Up โ
so this document describes an experimental optimization to BFD Authentication ๐งช it splits auth into a more computationally intensive (MCI) mechanism for authenticating significant changes, and a less computationally intensive (LCI) mechanism for the majority of BFD Control Packets that don't signal those significant changes ๐
the reasons this is experimental are in Appendix B ๐
1.1. Requirements Language ๐
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. ๐
2. Terminology ๐ง
these terms are already defined in BFD [RFC5880], so no need to reinvent the wheel:
- Auth Type
- Detect Multiplier
- Detection Time
and these ones are brand new in this doc โจ
- significant change: a state change, a demand mode change (to D bit), or a poll sequence change (P or F bit). changes to BFD Control Packets that don't need a poll sequence, like
bfd.DetectMult, count as significant changes too ๐ฅ - More Computationally Intensive (MCI) authentication: the auth mechanism applied to BFD Control Packets that are significant changes ๐ช
- Less Computationally Intensive (LCI) authentication: the auth mechanism applied to BFD Control Packets that are NOT significant changes ๐ฟ
- configured MCI reauthentication interval: the interval at which BFD Control Packets get retried using MCI authentication โฐ
the auth mechanisms in this optimization come as a pair, MCI and LCI ๐ฏ usually the relationship is "stronger" and "less strong", but this doc avoids the word "strong" so nobody mixes it up with either mechanism's cryptographic strength ๐ โโ๏ธ the relative criteria for each mechanism is the impact on the implementation ๐ ๏ธ
3. BFD Control Packets That Require MCI Authentication ๐
the whole point of these optimized procedures is to let BFD state changes get the heavier auth, while the lighter auth mechanisms keep the session protected once it's Up ๐ซถ that way the overall work goes down ๐ the goal is helping BFD session scaling without compromising BFD session security ๐
all BFD Control Packets with the state AdminDown, Down, and Init MUST use MCI authentication. no exceptions, bestie ๐ โโ๏ธ
once the BFD state machine reaches Up, it keeps sending BFD Control Packets with MCI authentication for a period, as discussed in Section 7.2. if optimized authentication mechanisms are in use, as defined in Section 6, the session MAY switch to LCI mode ๐ฆ
the contents of an Up packet must not change aside from the Authentication Section unless MCI authentication is in use. this one's a big deal, so don't mess it up ๐
3.1. Protecting BFD Significant Changes with MCI Authentication ๐ก๏ธ
this document proposes that BFD Control Packets signaling a state change, a change in demand mode (D bit), or a poll sequence change (P or F bit change) get categorized as a "significant change" ๐ท๏ธ control packets that don't require a poll sequence, like bfd.DetectMult, are also considered significant changes ๐ธ
significant changes are meant to be protected by more computationally intensive authentication ๐ช
4. Using LCI Auth Types ๐
most packets exchanged in a BFD session in the Up state are not significant changes ๐ this document proposes a new optimized authentication mode where packets that aren't significant changes can use an LCI authentication mechanism โจ
once the session reaches Up, it can use an LCI Auth Type derived from the format in Section 7. right now, that includes:
- Meticulous Keyed ISAAC Authentication, as described in [RFC9986]. this auth type protects the BFD session when BFD Up packets don't change, because only the paired devices know the shared secret, key, and sequence number used to select the ISAAC result ๐
other mechanisms may be defined in the future ๐ฎ
5. Periodic MCI Reauthentication ๐
okay bestie, when a session is using the LCI auth mechanism, BFD should periodically test the session using the MCI authentication mechanism ๐ the way it does that test is with a Poll sequence ๐ so to test MCI auth, a Poll sequence SHOULD be started by the sender using the MCI authentication mode, not the LCI mechanism โจ and if a control packet with the Final (F) bit isn't received using MCI auth within twice the Detect Interval (as calculated by the receiving system), the session has been compromised ๐จ and it MUST be brought down ๐ no cap, that's a hard stop.
the phrase "twice the Detect interval as would be calculated by the receiving system" is roughly twice the number of packets the local system would send to the receiving system within its own Detect Interval ๐งฎ that extra room is there for packet loss from the sending system during the Poll sequence, plus time for the receiving system to send a control packet with the Final (F) bit set back to the local system ๐ฆ
this "MCI reauthentication interval" (the gap between these periodic tests of the MCI authentication mechanism) can be configured depending on what the system is capable of ๐
most packets in a BFD session are BFD Up packets ๐ธ MCI authenticating a limited subset of them with a Poll sequence like this, e.g., every one minute, significantly reduces the computational demand on the system while still keeping the session secure across the configured MCI reauthentication interval ๐ซถ
6. Optimized Authentication Modes ๐
the cryptographic authentication mechanisms in Section 6.7 of BFD [RFC5880] describe turning authentication on and off as a one-time operation ๐ here's what Section 6.7.1 of [RFC5880] says:
... implementations using this method SHOULD only allow the authentication state to be changed at most once without some form of intervention (so that authentication cannot be turned on and off repeatedly simply based on the receipt of BFD Control Packets from remote systems).
once it's enabled, every packet has to have the Authentication Present (A) bit set and the associated Authentication Type appended (Section 4.1 of [RFC5880]) ๐ Section 6.7.1 of [RFC5880] also says that an implementation SHOULD NOT let the authentication state change based on the receipt of a BFD Control Packet ๐ซ
this document proposes an "optimized" authentication mode that lets both an MCI authentication mode and an LCI mode be used inside the same BFD session ๐ that MCI + LCI pairing is carried in new BFD Authentication types, one for each optimized authentication type pairing โจ
this document defines which BFD Control Packets need MCI authentication in Section 3.1 ๐ a BFD Control Packet that fails authentication, or one that was supposed to be MCI-authenticated but wasn't (e.g., a significant change packet), gets discarded ๐๏ธ but the BFD state machine doesn't change at all, because deciding on a significant change still depends on how many valid consecutive packets were received ๐ง
in this specification, the contents of an Up packet MUST NOT change outside the Authentication Section without MCI authentication ๐ the full procedure is in the sections that follow ๐
7. Signaling Optimized Authentication ๐ง
when the Authentication Present (A) bit is set and the Auth Type ([RFC5880], Section 4.1) is a type that supports Optimized BFD Authentication, the Auth Type signals a pairing of an MCI authentication type and an LCI authentication type ๐ that pairing is advertised in one single Auth Type value, so implementations can tell that:
- Optimized BFD procedures are going to be in use. โจ
- The pairing of the MCI and LCI authentication mechanisms is what gets used for that session. ๐
- There's a requirement to carry a Sequence Number. ๐ข
- The current MCI or LCI mode gets carried as described below. ๐ซง
here's the layout, bestie ๐ฆ
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Auth Type | Auth Len | Auth Key ID | Opt. Mode |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Authentication Specific Data ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: Common Optimized BFD Authentication Section ๐ธ
the values of Auth Type and Auth Len are defined in their own Optimized BFD Authentication procedural documents ๐
the values of the Optimized Authentication Mode field are:
- The MCI authentication type for Optimized BFD Auth Types. ๐
- The LCI authentication type for Optimized BFD Auth Types. ๐
Authentication Specific Data: when the more computationally intensive authentication type is in use, the rest of the Authentication Section carries that type's data ๐ช
7.1. Transmitting and Receiving Using Optimized Authentication ๐ก
the procedures for authenticating BFD Control Packets with Optimized Authentication are similar to the existing procedures in Section 6.7 of [RFC5880] โจ Optimized Authentication modes share common procedural requirements for authentication, no matter which of the more or less computationally intensive authentication modes is used ๐ซถ
the required value of the Auth Len field for a given Optimized Authentication mode is defined in the respective specifications for their MCI and LCI modes ๐
these common procedures apply when authenticating BFD Control packets with Optimized Authentication:
- If the received BFD Control Packet does not contain an Authentication Section ([RFC5880], Section 4.1), or the Auth Type is not a supported Optimized Authentication Auth Type, then the received packet MUST be discarded. ๐๏ธ
- If the received BFD Control Packet contains an optimized authentication type using these procedures and the Optimized Authentication Mode field is not 1 or 2, then the received packet MUST be discarded. ๐ โโ๏ธ
- If bfd.SessionState is AdminDown, Down, or Init and the Optimized Authentication Mode field is not 1, then the received packet MUST be discarded. ๐ซ
- If bfd.SessionState is Up and there is a significant change as defined in Section 3.1, and the Optimized Authentication Mode field is not 1, then the received packet MUST be discarded. โ ๏ธ
- If the Auth Len field is not equal to a value appropriate for the Optimized Authentication Mode field, the packet MUST be discarded. ๐
- If bfd.AuthSeqKnown is 1, examine the Sequence Number field. If the sequence number lies outside of the inclusive range of bfd.RcvAuthSeq+1 to bfd.RcvAuthSeq+(3*Detect Mult) when treated as an unsigned 32-bit circular number space, the received packet MUST be discarded. ๐ข
Otherwise (bfd.AuthSeqKnown is 0), bfd.AuthSeqKnown MUST be set to 1, bfd.RcvAuthSeq MUST be set to the value of the received Sequence Number field, and the received packet MUST be accepted. ๐ฑ
for the specified Auth Type and Optimized Authentication Mode, perform the appropriate authentication procedures ๐ if authentication succeeds, the received packet MUST be accepted โ otherwise, the received packet MUST be discarded โ
7.2. Optimized Authentication Operations ๐ฌ
as noted in Section 3.1, when using Optimized BFD procedures, MCI authentication is used in the BFD state machine to bring a BFD session to the Up state, or to make any change of the BFD parameters carried in the BFD Control Packet while in the Up state ๐
once the BFD session has reached the Up state, the BFD Up state MUST be signaled to the remote BFD system using the MCI authentication mode for an interval that is at least the Detection Time before switching to the LCI authentication mode ๐ซ this lets mechanisms like Meticulous Keyed ISAAC for BFD Optimized Authentication [RFC9986], or other approved, less intensive authentication mechanisms, get bootstrapped before the switch to LCI mode ๐ฅฐ
It is RECOMMENDED that when using optimized authentication, implementations switch from MCI authentication to LCI authentication mode after an interval that is at least the Detection Time ๐ in the situation where a BFD session successfully reaches the Up state with MCI authentication but there are problems with LCI authentication, this lets the remote system tear the session down as quickly as possible ๐โโ๏ธ๐จ
BFD sessions using optimized authentication that reach the Up state with MCI authentication but fail with LCI authentication SHOULD bring the issue to the operator's attention ๐ฃ implementations MAY also wish to throttle session restarts ๐ฆ
It is further RECOMMENDED that BFD implementations using optimized authentication defer notifying their client that the session has reached the Up state until it has moved to LCI authentication mode ๐ if LCI authentication is failing in the protocol, this stops failed transitions to LCI mode from being passed up to their clients ๐
8. Optimizing Authentication YANG Data Model ๐ญ
8.1. Data Model Overview ๐บ๏ธ
the YANG 1.1 [RFC7950] data model defined in this document augments the "ietf-bfd" module to add data nodes relevant to managing the feature defined here ๐งฉ it adds an interval value that sets how often the BFD session should be reauthenticated with the more computationally intensive authentication once it's in the Up state โฐ
8.2. Tree Diagram ๐ณ
the tree diagram for the YANG modules defined in this document uses annotations from YANG Tree Diagrams [RFC8340] โจ
module: ietf-bfd-opt-auth
augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh
/bfd-ip-sh:sessions/bfd-ip-sh:session
/bfd-ip-sh:authentication:
+--rw reauth-interval? uint32
augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/bfd:bfd/bfd-ip-mh:ip-mh
/bfd-ip-mh:session-groups/bfd-ip-mh:session-group
/bfd-ip-mh:authentication:
+--rw reauth-interval? uint32
augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/bfd:bfd/bfd-lag:lag
/bfd-lag:sessions/bfd-lag:session/bfd-lag:authentication:
+--rw reauth-interval? uint32
augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/bfd:bfd/bfd-mpls:mpls
/bfd-mpls:session-groups/bfd-mpls:session-group
/bfd-mpls:authentication:
+--rw reauth-interval? uint32
8.3. The YANG Data Model ๐
okay so this is the YANG module, the bit that tells config tools exactly which knobs exist ๐ง it imports the [RFC8349] routing module and the [RFC9314] BFD module, so it can hook right into them. implementations that support the optimization procedures turn it on by using one of the new key-chain crypto-algorithms from the ietf-bfd-met-keyed-isaac YANG module in [RFC9986]. โจ
module ietf-bfd-opt-auth {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-bfd-opt-auth";
prefix bfd-oa;
import ietf-routing {
prefix rt;
reference
"RFC 8349: A YANG Data Model for Routing Management
(NMDA version).";
}
import ietf-bfd {
prefix bfd;
reference
"RFC 9314: YANG Data Model for Bidirectional
Forwarding Detection (BFD).";
}
import ietf-bfd-ip-sh {
prefix bfd-ip-sh;
reference
"RFC 9314: YANG Data Model for Bidirectional
Forwarding Detection (BFD).";
}
import ietf-bfd-ip-mh {
prefix bfd-ip-mh;
reference
"RFC 9314: YANG Data Model for Bidirectional
Forwarding Detection (BFD).";
}
import ietf-bfd-lag {
prefix bfd-lag;
reference
"RFC 9314: YANG Data Model for Bidirectional
Forwarding Detection (BFD).";
}
import ietf-bfd-mpls {
prefix bfd-mpls;
reference
"RFC 9314: YANG Data Model for Bidirectional
Forwarding Detection (BFD).";
}
organization
"IETF Bidirectional Forwarding Detection (BFD) Working Group";
contact
"WG Web: <http://tools.ietf.org/wg/bfd>
WG List: <rtg-bfd@ietf.org>
Authors: Mahesh Jethanandani (mjethanandani@gmail.com)
Ashesh Mishra (ashesh@aalyria.com)
Ankur Saxena (ankurpsaxena@gmail.com)
Manav Bhatia (mnvbhatia@google.com)
Jeffrey Haas (jeffrey.haas@hpe.com).";
description
"This YANG module augments the base BFD YANG module to add
attributes related to the experimental BFD Optimized
Authentication.
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 (RFC 2119) (RFC 8174) when, and only when,
they appear in all capitals, as shown here.
Copyright (c) 2026 IETF Trust and the persons identified as
authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject to
the license terms contained in, the Revised BSD License set
forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents
(https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC 9985
(https://www.rfc-editor.org/info/rfc9985); see the RFC itself
for full legal notices.";
revision "2026-06-19" {
description
"Initial Version.";
reference
"RFC 9985: Optimizing BFD Authentication.";
}
feature optimized-auth {
description
"Indicates that the implementation supports optimized
authentication.";
reference
"RFC 9985: Optimizing BFD Authentication.";
}
grouping bfd-opt-auth-config {
description
"Grouping for BFD Optimized Authentication Parameters.";
leaf reauth-interval {
type uint32;
units "seconds";
default "60";
description
"Interval of time after which more computationally intensive
authentication should be utilized to prevent an
on-path-attacker attack.
A value of zero means that we do not do periodic
reauthentication using the more computationally intensive
authentication method.
This value SHOULD have jitter applied to it to avoid
self-synchronization during expensive authentication
operations.";
}
}
augment "/rt:routing/rt:control-plane-protocols"
+ "/rt:control-plane-protocol/bfd:bfd/bfd-ip-sh:ip-sh"
+ "/bfd-ip-sh:sessions/bfd-ip-sh:session"
+ "/bfd-ip-sh:authentication" {
uses bfd-opt-auth-config;
description
"Augment the 'authentication' container for single-hop BFD
module to add attributes related to BFD Optimized
Authentication.";
}
augment "/rt:routing/rt:control-plane-protocols"
+ "/rt:control-plane-protocol/bfd:bfd/bfd-ip-mh:ip-mh"
+ "/bfd-ip-mh:session-groups/bfd-ip-mh:session-group"
+ "/bfd-ip-mh:authentication" {
uses bfd-opt-auth-config;
description
"Augment the 'authentication' container for multi-hop BFD
module to add attributes related to BFD Optimized
Authentication.";
}
augment "/rt:routing/rt:control-plane-protocols"
+ "/rt:control-plane-protocol/bfd:bfd/bfd-lag:lag"
+ "/bfd-lag:sessions/bfd-lag:session"
+ "/bfd-lag:authentication" {
uses bfd-opt-auth-config;
description
"Augment the 'authentication' container for BFD over LAG
module to add attributes related to BFD Optimized
Authentication.";
}
augment "/rt:routing/rt:control-plane-protocols"
+ "/rt:control-plane-protocol/bfd:bfd/bfd-mpls:mpls"
+ "/bfd-mpls:session-groups/bfd-mpls:session-group"
+ "/bfd-mpls:authentication" {
uses bfd-opt-auth-config;
description
"Augment the 'authentication' container for BFD over MPLS
module to add attributes related to BFD Optimized
Authentication.";
}
}
9. IANA Considerations ๐
okay IANA has assigned one URI and one YANG module, and here's the paperwork ๐
9.1. IETF XML Registry ๐ธ
IANA has registered the following URI in the "ns" registry within the "IETF XML Registry" group [RFC3688]:
URI: urn:ietf:params:xml:ns:yang:ietf-bfd-opt-auth
Registrant Contact: The IESG
XML: N/A; the requested URI is an XML namespace.
9.2. The YANG Module Names Registry ๐ฆ
IANA has registered the following YANG module in the "YANG Module Names" registry [RFC6020] within the "YANG Parameters" registry group:
Name: ietf-bfd-opt-auth
Maintained by IANA: N
Namespace: urn:ietf:params:xml:ns:yang:ietf-bfd-opt-auth
Prefix: bfd-oa
Reference: RFC 9985
10. Security Considerations ๐ฅ
this part is serious, bestie, so read it slowly ๐
10.1. Protocol Security Considerations ๐
Devices implementing BFD are often resource-constrained, whether they're handling a single session or a big multidimensional pile of scaled sessions. Desired detection intervals for the BFD sessions, and how many sessions there are, are common scaling considerations for BFD implementations. Security mechanisms also hit implementation performance, in software or in hardware, because they use extra computational resources. ๐ญ
The optimized procedures in this document give a different level of resistance to attack than methods that use a single authentication mechanism:
- The MCI authentication mechanisms used for optimized authentication are expected to have similar cryptographic strength acceptable for BFD for authenticating the entire session, as described in [RFC5880]. ๐ช
- When the BFD state machine is attempting to move from the Down state to the Up state, the MCI authentication mechanism is intended to protect vs. attempt to inappropriately start BFD sessions. ๐ซ
- When the BFD state machine is in the Up state, the MCI authentication mechanism is intended to protect vs. attempt to change BFD session parameters or to reset the BFD session. ๐ก๏ธ
- When the BFD state machine is in the Up state, the LCI authentication mechanism is intended to provide resistance to keeping a BFD session in the Up state inappropriately. Since the procedures for changing BFD state require utilizing the MCI mechanism, and the LCI mechanism requires that the contents of the Control Packet in the Up state remain unchanged, the only thing that successfully spoofing such packets can do is keep the session Up. ๐
- The periodic, MCI reauthentication procedure provides protection against long-term successful spoofing of the LCI authentication mechanism. โฐ
In other words, the intention of Optimized BFD procedures is to make it difficult to reset or inappropriately start BFD sessions. However, protecting against keeping the session Up is seen as a less interesting attack and can receive less protection. ๐ฅฑ
The recent escalating series of attacks on MD5 and SHA-1 described in Finding Collisions in the Full SHA-1 [SHA-1-attack1] and New Collision Search for SHA-1 [SHA-1-attack2] raise concerns about their remaining useful lifetime as outlined in Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithm [RFC6151] and Security Considerations for the SHA-0 and SHA-1 Message-Digest Algorithm [RFC6194]. If replaced by stronger algorithms, the computational overhead will make the task of authenticating every packet even more difficult to achieve. ๐จ
The procedures described in this document provide a mechanism that could enable implementations to leverage stronger security to address the concerns above when strong authentication is required. However, this requires operators to evaluate the trade-offs of the less computationally intensive mechanisms to adequately address their desired security stance. ๐ง
Keys generated and distributed out of band for the purposes described in this specification are generally limited in the security they can provide. It is essential that these keys are selected well and protected when stored. ๐โจ
10.2. YANG Security Considerations ๐
okay so this section is modeled after the template in Section 3.7.1 of [RFC9907], and it's giving very "guard the gate" energy ๐
The ietf-bfd-opt-auth YANG module is built to be accessed through YANG-based management protocols like the Network Configuration Protocol (NETCONF) [RFC6241] and RESTCONF [RFC8040]. These management protocols (1) have to use a secure transport layer (e.g., Secure Shell (SSH) [RFC4252], TLS [RFC8446], and QUIC [RFC9000]) and (2) have to use mutual authentication. no cap, that's non-negotiable ๐ซถ
The Network Configuration Access Control Model (NACM) [RFC8341] lets you restrict particular NETCONF or RESTCONF users to a preconfigured subset of all the available protocol operations and content. Very main character energy for access control โจ
There are a bunch of data nodes in this module that are writable, creatable, and deletable (that's config true, which is the default) ๐ All writable data nodes are likely to be sensitive or vulnerable in some network environments. Write operations (e.g., edit-config) and delete operations on these nodes without proper protection or authentication can mess with network operations, and nobody wants that ๐ Here are the subtrees and data nodes with particular sensitivities and vulnerabilities:
reauth-intervalspecifies the interval in Up state after which MCI authentication SHOULD be performed to prevent a Person-in-the-Middle (PITM) attack ๐ก๏ธ If this interval is set very low, the optimization procedures lose their usefulness. If it's set very high, attacks detected by the MCI authentication mechanisms might show up overly late ๐ญ
There are no particularly sensitive readable data nodes ๐ธ
There are no RPC operations defined in this model ๐
11. References ๐
11.1. Normative References
- [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997,
https://www.rfc-editor.org/info/rfc2119. - [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10.17487/RFC3688, January 2004,
https://www.rfc-editor.org/info/rfc3688. - [RFC5880] Katz, D. and D. Ward, "Bidirectional Forwarding Detection (BFD)", RFC 5880, DOI 10.17487/RFC5880, June 2010,
https://www.rfc-editor.org/info/rfc5880. - [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, DOI 10.17487/RFC6020, October 2010,
https://www.rfc-editor.org/info/rfc6020. - [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", RFC 7950, DOI 10.17487/RFC7950, August 2016,
https://www.rfc-editor.org/info/rfc7950. - [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017,
https://www.rfc-editor.org/info/rfc8174. - [RFC8341] Bierman, A. and M. Bjorklund, "Network Configuration Access Control Model", STD 91, RFC 8341, DOI 10.17487/RFC8341, March 2018,
https://www.rfc-editor.org/info/rfc8341. - [RFC8349] Lhotka, L., Lindem, A., and Y. Qu, "A YANG Data Model for Routing Management (NMDA Version)", RFC 8349, DOI 10.17487/RFC8349, March 2018,
https://www.rfc-editor.org/info/rfc8349. - [RFC9314] Jethanandani, M., Ed., Rahman, R., Ed., Zheng, L., Ed., Pallagatti, S., and G. Mirsky, "YANG Data Model for Bidirectional Forwarding Detection (BFD)", RFC 9314, DOI 10.17487/RFC9314, September 2022,
https://www.rfc-editor.org/info/rfc9314.
11.2. Informative References
- [RFC1321] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, DOI 10.17487/RFC1321, April 1992,
https://www.rfc-editor.org/info/rfc1321. - [RFC2026] Bradner, S., "The Internet Standards Process -- Revision 3", BCP 9, RFC 2026, DOI 10.17487/RFC2026, October 1996,
https://www.rfc-editor.org/info/rfc2026. - [RFC3174] Eastlake 3rd, D. and P. Jones, "US Secure Hash Algorithm 1 (SHA1)", RFC 3174, DOI 10.17487/RFC3174, September 2001,
https://www.rfc-editor.org/info/rfc3174. - [RFC4252] Ylonen, T. and C. Lonvick, Ed., "The Secure Shell (SSH) Authentication Protocol", RFC 4252, DOI 10.17487/RFC4252, January 2006,
https://www.rfc-editor.org/info/rfc4252. - [RFC6151] Turner, S. and L. Chen, "Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms", RFC 6151, DOI 10.17487/RFC6151, March 2011,
https://www.rfc-editor.org/info/rfc6151. - [RFC6194] Polk, T., Chen, L., Turner, S., and P. Hoffman, "Security Considerations for the SHA-0 and SHA-1 Message-Digest Algorithms", RFC 6194, DOI 10.17487/RFC6194, March 2011,
https://www.rfc-editor.org/info/rfc6194. - [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., and A. Bierman, Ed., "Network Configuration Protocol (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
https://www.rfc-editor.org/info/rfc6241. - [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
https://www.rfc-editor.org/info/rfc8040. - [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018,
https://www.rfc-editor.org/info/rfc8340. - [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
https://www.rfc-editor.org/info/rfc8446. - [RFC8792] Watsen, K., Auerswald, E., Farrel, A., and Q. Wu, "Handling Long Lines in Content of Internet-Drafts and RFCs", RFC 8792, DOI 10.17487/RFC8792, June 2020,
https://www.rfc-editor.org/info/rfc8792. - [RFC9000] Iyengar, J., Ed. and M. Thomson, Ed., "QUIC: A UDP-Based Multiplexed and Secure Transport", RFC 9000, DOI 10.17487/RFC9000, May 2021,
https://www.rfc-editor.org/info/rfc9000. - [RFC9907] Bierman, A., Boucadair, M., Ed., and Q. Wu, "Guidelines for Authors and Reviewers of Documents Containing YANG Data Models", BCP 216, RFC 9907, DOI 10.17487/RFC9907, March 2026,
https://www.rfc-editor.org/info/rfc9907. - [RFC9986] DeKok, A., Jethanandani, M., Agarwal, S., Mishra, A., and J. Haas, "Meticulous Keyed ISAAC for Bidirectional Forwarding Detection (BFD) Optimized Authentication", RFC 9986, June 2026,
https://www.rfc-editor.org/info/rfc9986. - [SHA-1-attack1] Wang, X., Yin, Y., and H. Yu, "Finding Collisions in the Full SHA-1", Advances in Cryptology - CRYPTO 2005, Lecture Notes in Computer Science, vol. 3621, pp. 17-36, DOI 10.1007/11535218_2, 2005,
https://doi.org/10.1007/11535218_2. - [SHA-1-attack2] Wang, X., Yao, A., and F. Yao, "Cryptanalysis on SHA-1", 2005,
https://csrc.nist.gov/csrc/media/events/first-cryptographic-hash-workshop/documents/wang_sha1-new-result.pdf.
Appendix A. Examples ๐ง
okay this section is basically a showcase of how you can actually configure the model, so let's see it in action ๐
A.1. Single-Hop BFD Configuration
this example shows how a single-hop BFD session gets configured for optimized authentication ๐ฆ Line wrapping is used per [RFC8792], so the long lines are split with a backslash:
=============== NOTE: '\' line wrapping per RFC 8792 ===============
<?xml version="1.0" encoding="UTF-8"?>
<key-chains
xmlns="urn:ietf:params:xml:ns:yang:ietf-key-chain"
xmlns:opt-auth="urn:ietf:params:xml:ns:yang:ietf-bfd-opt-auth"
xmlns:bfd-mki="urn:ietf:params:xml:ns:yang:ietf-bfd-met-keyed-i\
saac">
<key-chain>
<name>bfd-auth-config</name>
<description>"An example for BFD Optimized Auth configuration."\
</description>
<key>
<key-id>55</key-id>
<lifetime>
<send-lifetime>
<start-date-time>2017-01-01T00:00:00Z</start-date-time>
<end-date-time>2017-02-01T00:00:00Z</end-date-time>
</send-lifetime>
<accept-lifetime>
<start-date-time>2016-12-31T23:59:55Z</start-date-time>
<end-date-time>2017-02-01T00:00:05Z</end-date-time>
</accept-lifetime>
</lifetime>
<crypto-algorithm>bfd-mki:optimized-sha1-meticulous-keyed-isa\
ac</crypto-algorithm>
<key-string>
<keystring>testvector</keystring>
</key-string>
</key>
</key-chain>
</key-chains>
<interfaces
xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"
xmlns:if-type="urn:ietf:params:xml:ns:yang:iana-if-type">
<interface>
<name>eth0</name>
<type>if-type:ethernetCsmacd</type>
</interface>
</interfaces>
<routing
xmlns="urn:ietf:params:xml:ns:yang:ietf-routing"
xmlns:bfd-types="urn:ietf:params:xml:ns:yang:ietf-bfd-types"
xmlns:iana-bfd-types="urn:ietf:params:xml:ns:yang:iana-bfd-type\
s"
xmlns:opt-auth="urn:ietf:params:xml:ns:yang:ietf-bfd-opt-auth"
xmlns:bfd-mki="urn:ietf:params:xml:ns:yang:ietf-bfd-met-keyed-i\
saac">
<control-plane-protocols>
<control-plane-protocol>
<type>bfd-types:bfdv1</type>
<name>name:BFD</name>
<bfd xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd">
<ip-sh xmlns="urn:ietf:params:xml:ns:yang:ietf-bfd-ip-sh">
<sessions>
<session>
<interface>eth0</interface>
<dest-addr>2001:db8:0:113::101</dest-addr>
<desired-min-tx-interval>10000</desired-min-tx-interv\
al>
<required-min-rx-interval>
10000
</required-min-rx-interval>
<authentication>
<key-chain>bfd-auth-config</key-chain>
<opt-auth:reauth-interval>30</opt-auth:reauth-inter\
val>
</authentication>
</session>
</sessions>
</ip-sh>
</bfd>
</control-plane-protocol>
</control-plane-protocols>
</routing>
Appendix B. Experimental Status ๐งชโจ
Okay bestie, so this whole document is an experiment ๐ฆ It presents a candidate solution to update BFD Authentication, which is currently specified in [RFC5880]. The goal is to get more insight into what happens when the optimized authentication mechanism from this doc actually gets used ๐ Here's why it's on the Experimental track:
- In the early stages there was SO much participation and review from the working group ๐ซถ But then the doc changed a lot. ISAAC got added, ISAAC bootstrapping was allowed when a BFD session comes up, and a single Auth Type got used to indicate optimized authentication. Those changes didn't get significant review from the working group, so they don't meet the bar set in Section 4.1.1 of [RFC2026] ๐ญ
- There are no known implementations at this time ๐
- The work here could become super valuable in the future, especially if the need for deploying BFD Authentication at scale becomes a reality ๐
This document is classified as Experimental and is not part of the IETF Standards Track. Implementations based on this document should not be considered as compliant with BFD [RFC5880] ๐จ
Acknowledgments ๐
The authors would like to thank Qiufang Ma, Stephen Farrell, and Acee Lindem for providing directorate reviews of this document ๐ซถ
Contributors ๐ธ
The authors of this document would like to acknowledge Reshad Rahman as a contributor to this document ๐
Authors' Addresses ๐ฆ
Mahesh Jethanandani Arrcus United States of America Email: mjethanandani@gmail.com
Ashesh Mishra Aalyria Technologies Email: ashesh@aalyria.com
Jeffrey Haas HPE Email: jeffrey.haas@hpe.com
Ankur Saxena Ciena Corporation 3939 N 1st Street San Jose, CA 95134 United States of America Email: ankurpsaxena@gmail.com
Manav Bhatia Google Bagmane Capital Park Bengaluru 560048 Karnataka India Email: mnvbhatia@google.com โจ
๐ฆ where this page comes from
- ietf: rfc9985 2026-06
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms