Hi,
I'm in the process of (re)doing the shepherd writeup for
draft-ietf-bfd-optimizing-authentication and took a look at -21, comments below.
Regards,Reshad.
1. Introduction
“This document describes an experimental updates to BFD” should be “describes
experimental updates” or “describes an experimental update”.
3rd paragraph, what is “the existing document”, is it RFC5880?
a demand mode change (to D bit) -> a demand mode change (D bit change)?
“ In other words, the contents of
an Up packet MUST NOT change aside from the authentication section
without stronger authentication to take advantage of the method
described in this document.”:
- For “authentication section”, please add a reference to section 6.7 of
RFC5880.
- What is meant by “stronger authentication” here (and elsewhere in the
document), is it stronger algorithms or do you mean authenticating every
packet? Whichever it is, it should be spelled out.
- “of the method” -> “of the optimized authentication method”
“Limiting authentication to
packets that affect a BFD session's state allows more sessions to be
supported with this optimized method of authentication.”
- Should that be “Limiting strong authentication to packets”?
“ * Meticulous Keyed ISAAC authentication as described in
[I-D.ietf-bfd-secure-sequence-numbers]. This authentication type
prevents the attack when the Up packets do not change, because
only the paired devices know the shared secret, key, and sequence
number to select the ISAAC result.”
- Instead of “This authentication type prevents the attack when …”, should this
paragraph say “This authentication type protects the BFD session when ….”
“ When using optimized methods of authentication, BFD sessions should
periodically test the session using strong authentication. Strong
authentication is tested using a Poll sequence. To test strong
authentication, a Poll sequence SHOULD be initiated by the sender
using the strong authentication Auth Type rather than the chosen
optimized Auth Type. ”
- Wrt “Optimized methods” (should be singular or plural?), it may not be 100%
clear what they are comprised of and IMO needs to be spelled out. My
understanding is that the optimized method(s) consists of not (strongly?)
authenticating every BFD control packet and instead using a less
computationally intensive algorithm.
- What is meant by “strong authentication” here? IIRC it means “non-optimized”,
anyway “strong authentication” should be clearly defined.
- The first sentence mentions “test the session using strong authentication”,
the 2nd sentence mentions “strong authentication is tested”, that paragraph
needs some tweaking.
“If a control packet with the Final (F) bit is
not received within the Detect Interval, the session has been
compromised, and should be brought down. “
- “should be brought down” -> “SHOULD/MUST be brought down”?
1.3 Terminology
“Control packets that do not require a poll
sequence, such as bfd.RequiredMinRxInterval
bfd.RequiredMinTxInterval, or bfd.DetectMult
are also considered as a significant change.”
- Should that instead say “Changes to control packets….”?
2. Authentication mode
The cryptographic authentication mechanisms specified in BFD
[RFC5880] describes enabling and disabling of authentication as a one
time operation.
- Add reference specifically to Section 6.7 of RFC5880.
3. Signaling Optimized Authentication
- The new field Optimized has values 1 (for strong) and 2 (for optimized). It
is a bit odd to have a field named Optimized contain a value indicating
Optimized. Suggest renaming the field e.g. to “mode” or “strength” or …
4. Optimized Authentication Operations
“It is RECOMMENDED that when using optimized authentication that
implementations switch from strong authentication to optimized
authentication after sending at least Detect Mult packets. “
- Instead of “when using optimized authentication”, should it say “when using
an optimized authentication Auth type”? Same comment applies to the following
paragraph (and maybe in other laces in the doc), This makes me wonder if the
term “optimized authentication” is a bit overloaded in that it seems to have
multiple meanings.
- The previous paragraph to the one above also mentions DetectMult packets when
the BFD session reached the Up state. So is the recommendation above for the
general case, i.e. not just when the session has reached the Up state?
5.3 The YANG model
identity optimized-md5-meticulous-keyed-isaac {
base key-chain:crypto-algorithm;
description
"BFD Optimized Authentication using Meticulous Keyed MD5 as the
strong authentication and Meticulous Keyed ISAAC Keyed as the
'optimized' authentication.";
reference
"RFC XXXX: Meticulous Keyed ISAAC for BFD Authentication.
I-D.ietf-bfd-secure-sequence-numbers:
Meticulous Keyed ISAAC for BFD Authentication.";
}
identity optimized-sha1-meticulous-keyed-isaac {
base key-chain:crypto-algorithm;
description
"BFD Optimized Authentication using Meticulous Keyed SHA-1 as
the strong authentication and Meticulous Keyed ISAAC Keyed as
the 'optimized' authentication.";
reference
"I-D.ietf-bfd-optimizing-authentication:
Meticulous Keyed ISAAC for BFD Authentication.
I-D.ietf-bfd-secure-sequence-numbers:
Meticulous Keyed ISAAC for BFD Authentication.";
}
- Should RFC XXXX in the reference instead be
I-D.ietf-bfd-optimizing-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 strong authentication
should be utilized to prevent an on-path-attacker attack.
Default is 1 minute.
A value of zero means that we do not do periodic
re-authorization using strong authentication.
This value SHOULD have jitter applied to it to avoid
self-synchronization during expensive authentication
operations.";
}
}
- Are we really doing re-authorization here? Should it instead say “A value of
zero means that we do not do periodic strong authentication”?