Optimizing BFD Authentication
draft-ietf-bfd-optimizing-authentication-35
Yes
No Objection
Andy Newton
Erik Kline
Jim Guichard
Abstain
Recuse
No Record
Orie Steele
Note: This ballot was opened for revision 28 and is now closed.
Ketan Talaulikar
Yes
Comment
(2025-08-19 for -28)
Not sent
This document is one of a 3 document set from the BFD WG that enhances BFD authentication mechanism. The suggested order for reviewing them is as follows: 1) draft-ietf-bfd-optimizing-authentication (specifies extension to BFD auth with an optimized auth mechanism) 2) draft-ietf-bfd-secure-sequence-numbers (specifies an optimized auth mechanism based on meticulously keyed ISAAC that uses (1)) 3) draft-ietf-bfd-stability (is not an auth mechanism but uses the auth sequence numbers for monitoring loss of BFD packets)
Andy Newton
No Objection
Deb Cooley
(was Discuss)
No Objection
Comment
(2025-10-11)
Sent
Update: Many thanks for the hard work to resolve my discuss. I will be interested in seeing the results of the experiment! [Note: I'm leaving my original comments below, just for the record.] Thanks to Stephen Farrell for their secdir review. His comments are relevant. General: Please change 'strong authentication' to 'authentication' throughout the specification. One can hardly call MD5 and SHA1 keyed hashes 'strong'. [Note: while SHA-1 keyed hashes might not be currently deprecated, they are definitely on NIST's list to deprecate.] Intro: There is a link to MD5, but not to SHA-1? I suggest: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf. Intro: Please add a little bit more explanation to remind the reader why these normally fast hashes are too slow/hard. Please address both speed of the transmission and capability of the device performing the hashes. Section 3, para 1: Would one characterize 'Simple Password Authentication' as 'strong'? or even 'adequate'? Is there a reason it was left off the list of examples? [Given there are only three options, it seems strange to use examples here.] Section 3, para 4: 'as defined later in this document', which section is that? Section 3, last para: please ref which section in the specification this will be described. Section 4, bullet list: Why not list 'Simple Password Authentication', or 'NULL Auth'? Are these not also less computationally intensive? [assuming 'Simple Password Auth' was not listed because it isn't even 'adequate'. And if NULL Authentication is ONLY suitable when the CPUs aren't capable of any processing, then that needs to be stated much more clearly in the stability draft.] Section 4: Please add a sentence about how other mechanisms might be added. [since this specification is not meant to be prescriptive with respect to the use of ISAAC.] Section 5: Do both sides (sender/receiver) calculate the timing of the Poll sequence? [to prevent the ability of the adversary to corrupt/block the Poll sequence messages] Section 7: Is the 'authentication present (A)' bit transmitted? If so, where in Figure 1 is it? Perhaps in the Opt. Mode? If so, it would be easier to see if the same words were used in Para 1 as in the numbered list for Opt. Mode/Optimized Authentication Mode. Section 7.2, para 2, Section 10.1, para 1: If the goal is to allow other mechanisms, then the links to the ISAAC specification can be removed. [Note: there may be other places in the specification where this needs to be done.] Section 7.2, para 3: Do I understand this correctly? If there is an issue switching from the original authentication mode to a 'computationally less intensive' mode, then the session is torn down? That seems unfortunate. If that isn't what this means, then perhaps revise. Section 10: Designating any of these mechanisms as 'strong' is disingenuous at best. Please remove the word 'strong' from this specification. Para 2 points out why this is true. Section 10: Please add a sentence here which explains (justifies?) the level of authentication that is possible/practical for these systems. Please address both speed of transmission and CPU capabilities. Section 10: Normally I would expect to see how the provision of symmetric keys (for keyed hashes, etc.) is accomplished. According to RFC 5880, keys are shipped across the network in the clear via the local/remote discriminator field. This helps the attacker. Please address this issue here, or point back to the relevant section in RFC 5880 where the mitigation is outlined.
Erik Kline
No Objection
Gorry Fairhurst
(was Discuss, No Objection)
No Objection
Comment
(2025-10-16)
Sent
Thanks for preparing this I-D, and amending the abstract. I have the following comments which I hope will help revise this I-D. ### 1. Thank you to Marcus Ihlar for his TSV-ART review, see: https://datatracker.ietf.org/doc/review-ietf-bfd-optimizing-authentication-28-tsvart-lc-ihlar-2025-08-18/ As noted in the reviwe, could the editors please add a short discussion on loss and reauthentication in Section 5, or in an Operational Considerations section? ### 2. The I-D text ought to say why the document is experimental, please could you add to the Introduction by citing the Appendix that explains this. ### 3. The I-D currently states: "All BFD Control Packets with the states AdminDown, Down, and Init require strong authentication." - could this be a RFC-2119 requirement? Please consider making this a nomative case for this I-D , i.e. make this "REQUIRES", or the REQUIRES in the following: "In addition to these requirements, BFD "significant changes" require strong authentication." ### 5. The I-D currently states: "When using the less computationally intensive authentication mechanism, BFD should periodically test the session using the strong authentication mechanism." - I'd agree, but I do think the text needs to explain why this is desirable, i.e. to justify why people SHOULD think seriously about enabling this test. ### 6. The I-D currently states: "Once enabled, every packet must have Authentication Bit set and the associated Authentication Type appended." - Please cit the section here, I could not be sure what was cited? ### 7. The I-D currently states: "As a security precaution, it mentions that authentication state be allowed to change at most once" Whereas, RFC 5880 use RFC-2119 text: "In order to avoid security risks, implementations using this method SHOULD only allow the authentication state to be changed at most once without some form of intervention." - Could this RFC 5880 text be quoted as-is, in the current I-D (with a reference?) ### NiTs ==== /It provides procedure where BFD state/It provides a procedure where BFD state/ /describes enabling and disabling/describe enabling and disabling/ /authentication state be allowed to change at most once/the authentication state be allowed to change at most once/
Gunter Van de Velde
No Objection
Comment
(2025-09-08 for -32)
Sent
# Gunter Van de Velde, RTG AD, comments for draft-ietf-bfd-optimizing-authentication-32 # The line numbers used are rendered from IETF idnits tool: https://author-tools.ietf.org/api/idnits?url=https://www.ietf.org/archive/id/draft-ietf-bfd-optimizing-authentication-32.txt # for your convenience, please find some non-blocking COMMENTS # I am missing an operational guidance section to help operators to operate optimized bfd. # comments # ======== 17 Abstract 18 19 This document describes an experimental optimization to BFD 20 Authentication. It provides a procedure where BFD state transitions 21 require strong authentication and permits the majority of BFD Control 22 Packets to use a less computationally intensive authentication 23 mechanism. This enables BFD to scale better when there is a desire 24 to use strong authentication. GV> This draft seems to suggest updating the procedures of RFC5880. Should that not be mentioned in some form or embodiment within the abstract? demand mode changes 143 | significant | State change, a demand mode change (to | 144 | change | D bit) or a poll sequence change (P or | 145 | | F bit). Changes to BFD control packets | 146 | | that do not require a poll sequence, | 147 | | such as bfd.DetectMult are also | 148 | | considered as a significant change. | GV> The abstract mentions only state transitions, but with this definition of "significant change" there may be more included as just state change. Is my assumption correct? What i considered as state change: * Down → Init: When a system starts sending BFD packets to initiate a session. * Init → Up: When a system receives valid BFD packets from the remote peer and both sides agree on session parameters. * Up → Down: When a failure is detected (e.g., missing packets beyond the detection time threshold). * Up → Init: May occur during reinitialization or configuration changes. 162 BFD. For example, MD5 and SHA1 (Section 6.7 of [RFC5880]). GV> If the list is short, maybe display them all and not an example set 164 The intention of these optimized procedures is to permit strong 165 authentication for BFD state changes and utilize the less 166 computationally intensive authentication mechanisms to provide 167 protection for the session in the Up state while performing less 168 overall work. Such procedures will aid BFD session scaling without 169 compromising BFD session security. GV> " The optimized procedures are intended to enable the use of strong authentication for BFD state transitions while relying on less computationally intensive mechanisms to protect sessions in the Up state. This approach reduces overall processing requirements and facilitates BFD session scaling without reducing session security. " 171 All BFD Control Packets with the states AdminDown, Down, and Init 172 MUST use strong authentication. GV> s/Packets with the states/Packets when in the state/ 174 Once the BFD state machine has reached the Up state, it will continue 175 to send BFD Control Packets in the Up state for a period as discussed 176 in Section 7.2. If optimized authentication mechanisms are in use, GV> s/it will continue to send BFD Control Packets/it will continue to send computationally intensive BFD Control Packets/ 180 The contents of an Up packet MUST NOT change aside from the 181 Authentication Section without strong authentication. GV> " The contents of an Up packet, other than the Authentication Section, MUST NOT change unless strong authentication is in use. " 233 This "strong reauthentication interval" for performing such periodic 234 tests using the strong authentication mechanism can be configured 235 depending on the capability of the system. GV> The description here does not suggest min or maximum interval. It would be operational interesting to have a suggested interval guideline, and an absolute minimum of these polls to do per second or minute to avoid security degradation 237 Most packets transmitted on a BFD session are BFD Up packets. 238 Strongly authenticating a small subset of these packets with a Poll 239 sequence as described above, for example every one minute, 240 significantly reduces the computational demand for the system while 241 maintaining security of the session across the configured strong 242 reauthentication interval. GV> " Most packets transmitted in a BFD session are Up packets. Strongly authenticating a limited subset of these packets, for example through a Poll sequence performed once per minute, substantially reduces system computational load while preserving session security across the configured strong reauthentication interval. " 317 The values of the Optimized Authentication Mode field are: 318 319 1. When using the strong authentication type for optimized BFD Auth 320 Types. 321 322 2. When using the less computationally intensive authentication type 323 for optimized BFD Auth Types. GV> are these numerical values "1" and "2" set within the Opt. Mode field? or are both examples? (easy fix to clarify) 329 7.1. Transmitting and Receiving Using Optimized Authentication GV> Would this be non-backward compatible, as rfc5880 assumes (i seem to remember) a single authentication type per session, and now with this experimental proposal we have multiple. Shoud the non-backward compatible property be called out in this section? 418 8.1. Data Model Overview GV> Some of the default values for this experimental draft are already defined in the YANG model. But for the purpose of making things easier to follow, wouldn’t it be helpful to also mention them explicitly in an operational guidance section? That way, readers working with optimized BFD don’t have to go digging through the model just to figure out what defaults they’re expected to use. Kind Regards, Gunter Van de Velde RTG Area Director
Jim Guichard
No Objection
Mohamed Boucadair
No Objection
Comment
(2025-09-03 for -30)
Sent
Hi Mahesh, Ashesh, Ankur, Manav, and Jeffrey,
Thanks for the effort put into this specification.
Thanks also to Jürgen Schönwälder for a review of an early version and to Jeff for the follow-up (especially the clarification about the struggle about the "performance" language).
Please find below some few comments:
# Confusing note
CURRENT:
RFC XXXX, where XXXX is the number assigned to this document at the
time of publication.
Please note that you are using RFC XXXX to refer to two distinct documents:
"RFC XXXX: Optimizing BFD Authentication.";
and
"RFC XXXX: Meticulous Keyed ISAAC for BFD Authentication.";
# Redundant behavior
Section 3
The contents of an Up packet MUST NOT change aside from the
Authentication Section without strong authentication.
Vs.
Section 6:
In this specification, the contents of an Up packet MUST NOT change
aside from the Authentication Section without strong authentication.
Keep the normative language in one place.
# Not only for configuration but also for state reporting
Section 8.1
OLD:
The YANG 1.1 [RFC7950] model defined in this document augments the
"ietf-bfd" module to configuration relevant to the management of
the feature defined in this document.
NEW:
The YANG 1.1 [RFC7950] model defined in this document augments the
"ietf-bfd" module to add data nodes relevant to the management of
the feature defined in this document.
# Add identities, not algos per se
Section 8.1
OLD:
In particular, it adds crypto
algorithms that are described in this model, and in Meticulous Keyed
ISAAC for BFD Authentication [I-D.ietf-bfd-secure-sequence-numbers].
NEW:
In particular, it adds identities for crypto
algorithms that are described in this model, and in Meticulous Keyed
ISAAC for BFD Authentication [I-D.ietf-bfd-secure-sequence-numbers].
# Feature
Consider this change in Section 8.1
OLD:
It adds a feature statement to enable optimized authentication.
NEW:
It adds a feature to indicate optimized authentication.
# YANG terminology
CURRENT:
This YANG module imports YANG Key Chain [RFC8177], A YANG Data Model
for Routing Management (NMDA version) [RFC8349], and YANG Data Model
for Bidirectional Forwarding Detection (BFD) [RFC9314].
This should reason about importing the various modules, not data models. Please refer to 8407bis which says:
“Likewise, "YANG module" should be used when using terms related to YANG module specifications (e.g., augmentation or deviation).“
# Consistency
Section 8.3 has:
CURRENT: prefix "bfdoa";
I suggest to be consistent with the pattern used so far for BFD (bfd-ip-mh, bfd-ip-sh, bfd-lag, etc.).
NEW: prefix bfd-oa;
# Feature Description
OLD:
description
"When enabled, this implementation supports optimized
authentication as described in this document.";
NEW:
description
"Indicates that the implementation supports optimized
authentication.";
Please note also that the module will live outside the document. You may add a reference statement.
# Redundant default statement
OLD:
default "60";
description
"Interval of time after which strong authentication
should be utilized to prevent an on-path-attacker attack.
Default is 1 minute.
NEW:
default "60";
description
"Interval of time after which strong authentication
should be utilized to prevent an on-path-attacker attack.
# Not maintained by IANA
OLD:
name: ietf-bfd-opt-auth
namespace: urn:ietf:params:xml:ns:yang:ietf-bfd-opt-auth
prefix: bfdoa
reference: RFC XXXX
NEW:
name: ietf-bfd-opt-auth
namespace: urn:ietf:params:xml:ns:yang:ietf-bfd-opt-auth
prefix: bfd-oa
maintained by IANA? N
reference: RFC XXXX
# Security template
Please update 10.2 to follow the template in RFC8407bis.
Cheers,
Med
Paul Wouters
No Objection
Comment
(2025-09-17 for -33)
Sent
I support Deb's DISCUSS. Note for a SHA1 reference, you can use RFC3174
Mike Bishop
Abstain
Comment
(2025-09-17 for -33)
Sent
If there are no implementations and no plans to implement, why are we publishing this? I support Deb's DISCUSS regarding the term "strong authentication" throughout. MD5 and SHA1 are *not* strong. In other contexts, they are the primitives that are used when stronger hash functions are too expensive and the additional security doesn't justify the cost. I also support Gorry's DISCUSS on "optimized". I understand the reasoning, but that term doesn't make it clear what property is being improved without loss of function. In Section 10, it even asserts that this "enhances the ability to authenticate a BFD session" when in fact this explicitly *reduces* the authentication of the session. Perhaps this should be "lower effort" instead? Maybe even "lazy", if that's not seen as too judgmental? The rationale for reducing overhead in sending packets that effectively say "nothing has changed" seems reasonable at first glance. However, it seems to me that an attacker who can drop the "significant change" packets could carry out an attack by fabricating "nothing has changed" messages and preventing detection of a change. "Nothing has changed" is still a message that needs to be protected. The requirement to "periodically test the session using the strong authentication mechanism" attempts to bound this risk. This should be discussed in the Security Considerations, emphasizing that the period used is the amount of time the parties are willing to allow an attacker to conceal a state change they attempted to communicate.
Roman Danyliw
(was No Objection)
Abstain
Comment
(2025-09-17 for -33)
Sent
The shepherd report states that there are "no implementations and no known plans to implement." Why publish this document if there no plans to run the experiment? ==== I support the DISCUS positions of Deb Cooley and Éric Vyncke. In particular, Éric emphasizes the need to discuss how an experimental status RFC is making a normative change to PS status RFC (RFC5880). ** idnits reports: == The document seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords -- however, there's a paragraph with a matching beginning. Boilerplate error? (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires).
Éric Vyncke
(was Discuss)
Abstain
Comment
(2025-10-14)
Sent
Thanks for addressing my previous DISCUSS points (see https://mailarchive.ietf.org/arch/msg/rtg-bfd/WN2mVtMWb1e_L2cxyt8visES0vM/). Nevertheless, I am balloting ABSTAIN because of the shepherd's write-up contains `No implementations and no known plans to implement` _AND_ I still think that this I-D is actually updating RFC 5880.
Mahesh Jethanandani
Recuse
Comment
(2025-08-25 for -29)
Not sent
As an author.
Orie Steele
No Record