Skip to main content

Shepherd writeup
draft-ietf-bfd-optimizing-authentication

Update Nov 23rd 2020

All comments have been addressed.

Update July 23rd 2020

Revised comments on draft-ietf-bfd-optimizing-authentication-10

General: both "BFD control packet" and "BFD packet" are used. I think we should
stick to "BFD control packet". General: s/BFD Control packet/BFD control packet/

Introduction, next-to last paragraph. Instead of "The interval of this
non-state change frame can be...", I'd suggest "The interval of these BFD
packets can be..." or "The interval of the BFD packets without a significant
change can be...". Anyway remove "frame" as previously discussed and avoid use
of "non-state change" now that you've defined what a significant change is.

Section 1.2. The new table could be incorrectly interpreted as having 1 entry.
Suggest changing this to bullet form would make it clearer.

Section 1.2 introduces the term "configured interval" but section 2 uses the
term "configured period". Also for the description, what about "interval at
which BFD control packets are authenticated in the UP state". Also wondering if
instead we should have a new bfd.AuthUpStateInterval state variable (see 6.8.1
of RFC5880) since having this value may not always be configured
(implementation specific)?

Section 2. Replace  "frame" by "packet" or "BFD control packet"  as appropriate.

Section 2. Thanks for modifying the table as per our discussions. Regarding
adding AdminDown to the table, I believe I misled you. Our discussion was based
on "what happens if we're UP and receive a packet which says AdminDown"? As per
6.2 of RFC5880, the receiver would go to DOWN state. However the rows/columns
in the table are for the local state (new and old), and not for state in
received packet. Since we can't go to AdminDown state or leave AdmnDown state
based on a packet received, AdminDown state should be removed from this table .
I think it'd be good to add a reference to the BFD FSM (6.8.2 of RFC5880) in
the paragraph before the table.

Section 2. For configured period (or whatever we decide to call it) add a
reference to section 1.2.

Section 4. s/to to/to/

=============================================================

(1) What type of RFC is being requested (BCP, Proposed Standard, Internet
Standard, Informational, Experimental, or Historic)? Why is this the proper
type of RFC? Is this type of RFC indicated in the title page header? Standards
Track as indicated on title page.

(2) The IESG approval announcement includes a Document Announcement Write-Up.
Please provide such a Document Announcement Write-Up. Recent examples can be
found in the "Action" announcements for approved documents. The approval
announcement contains the following sections:

Technical Summary:
This document describes an optimization to BFD Authentication as described in
Section 6.7 of RFC5880. To remove the computational load on end-systems running
BFD, it removes the requirement to authenticate all BFD control packets while
providing a mechanism to keep the BFD sessions secure.

Relevant content can frequently be found in the abstract and/or introduction of
the document. If not, this may be an indication that there are deficiencies in
the abstract or introduction.

Working Group Summary:
Initial revision of the document is from  February 2015. Since then there have
been many discussions on the mailing list and in-person at BFD WG meetings. The
document has improved significantly based on the various suggestions. There is
consistency on the technical content.

One action which has been postponed is updating the BFD YANG model to enable
this functionality (requires a -bis of the BFD YANG document due to the new
auth-type)

There has been controversy because of the IPR Disclosure, see below.

Was there anything in WG process that is worth noting? For example, was there
controversy about particular points or were there decisions where the consensus
was particularly rough?

Document Quality:

Are there existing implementations of the protocol? Have a significant number
of vendors indicated their plan to implement the specification? Are there any
reviewers that merit special mention as having done a thorough review, e.g.,
one that resulted in important changes or a conclusion that the document had no
substantive issues? If there was a MIB Doctor, YANG Doctor, Media Type or other
expert review, what was its course (briefly)? In the case of a Media Type
review, on what date was the request posted?

The document is well-written, concise and technically accurate, but requires
some editorial changes before being forwarded to the IESG.

Personnel:

Who is the Document Shepherd?
Reshad Rahman, BFD co-chair.

Who is the Responsible Area Director?
Martin Vigoureux is the responsible AD.

(3) Briefly describe the review of this document that was performed by the
Document Shepherd. If this version of the document is not ready for
publication, please explain why the document is being forwarded to the IESG.
The shepherd has gone through the document, email archive and meeting minutes.
Comments have been addressed.

(4) Does the document Shepherd have any concerns about the depth or breadth of
the reviews that have been performed? None.

(5) Do portions of the document need review from a particular or from broader
perspective, e.g., security, operational complexity, AAA, DNS, DHCP, XML, or
internationalization? If so, describe the review that took place. This document
was discussed with security experts. This led to draft-ietf-bfd-secure-numbers.

(6) Describe any specific concerns or issues that the Document Shepherd has
with this document that the Responsible Area Director and/or the IESG should be
aware of? For example, perhaps he or she is uncomfortable with certain parts of
the document, or has concerns whether there really is a need for it. In any
event, if the WG has discussed those issues and has indicated that it still
wishes to advance the document, detail those concerns here. None

(7) Has each author confirmed that any and all appropriate IPR disclosures
required for full conformance with the provisions of BCP 78 and BCP 79 have
already been filed. If not, explain why? Yes

(8) Has an IPR disclosure been filed that references this document? If so,
summarize any WG discussion and conclusion regarding the IPR disclosures.
https://datatracker.ietf.org/ipr/3328/ There has been controversy on the IPR
disclosure on this document for 2 main reasons: i) IPR disclosure was late (Nov
2018) ii) The terms of the IPR The IPR disclosure and terms were discussed at
length on the mailing list and in the WG meetings:
https://datatracker.ietf.org/meeting/104/materials/minutes-104-bfd-00.pdf
https://datatracker.ietf.org/meeting/105/materials/minutes-105-bfd-02.pdf

(9) How solid is the WG consensus behind this document? Does it represent the
strong concurrence of a few individuals, with others being silent, or does the
WG as a whole understand and agree with it? Solid consensus on the technical
aspects. There is known opposition from 1 person (because of the IPR
Disclosure).
https://mailarchive.ietf.org/arch/msg/rtg-bfd/u8rvWwvDWRKI3jseGHecAB9WtDo/

(10) Has anyone threatened an appeal or otherwise indicated extreme discontent?
If so, please summarise the areas of conflict in separate email messages to the
Responsible Area Director. (It should be in a separate email because this
questionnaire is publicly available.) None

(11) Identify any ID nits the Document Shepherd has found in this document.
(See http://www.ietf.org/tools/idnits/ and the Internet-Drafts Checklist).
Boilerplate checks are not enough; this check needs to be thorough. 3 warnings:
  == The copyright year in the IETF Trust and authors Copyright Line does not
     match the current year

  == 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?

  == Outdated reference: A later version (-05) exists of
     draft-ietf-bfd-secure-sequence-numbers-04

Comment about document data being 186 days in the past.

(12) Describe how the document meets any required formal review criteria, such
as the MIB Doctor, YANG Doctor, media type, and URI type reviews. N/A

(13) Have all references within this document been identified as either
normative or informative? Yes

(14) Are there normative references to documents that are not ready for
advancement or are otherwise in an unclear state? If such normative references
exist, what is the plan for their completion? None

(15) Are there downward normative references references (see RFC 3967)? If so,
list these downward references to support the Area Director in the Last Call
procedure. None

(16) Will publication of this document change the status of any existing RFCs?
Are those RFCs listed on the title page header, listed in the abstract, and
discussed in the introduction? If the RFCs are not listed in the Abstract and
Introduction, explain why, and point to the part of the document where the
relationship of this document to the other RFCs is discussed. If this
information is not in the document, explain why the WG considers it
unnecessary. No

(17) Describe the Document Shepherd's review of the IANA considerations
section, especially with regard to its consistency with the body of the
document. Confirm that all protocol extensions that the document makes are
associated with the appropriate reservations in IANA registries. Confirm that
any referenced IANA registries have been clearly identified. Confirm that newly
created IANA registries include a detailed specification of the initial
contents for the registry, that allocations procedures for future registrations
are defined, and a reasonable name for the new registry has been suggested (see
RFC 8126). Assignment from the “BFD Authentication Types” registry requires
Expert review. Checked
https://www.iana.org/assignments/bfd-parameters/bfd-parameters.xhtml

(18) List any new IANA registries that require Expert Review for future
allocations. Provide any public guidance that the IESG would find useful in
selecting the IANA Experts for these new registries. None

(19) Describe reviews and automated checks performed by the Document Shepherd
to validate sections of the document written in a formal language, such as XML
code, BNF rules, MIB definitions, YANG modules, etc. N/A

(20) If the document contains a YANG module, has the module been checked with
any of the recommended validation tools
(https://trac.ietf.org/trac/ops/wiki/yang-review-tools) for syntax and
formatting validation? If there are any resulting errors or warnings, what is
the justification for not fixing them at this time? Does the YANG module comply
with the Network Management Datastore Architecture (NMDA) as specified in
RFC8342? N/A

COMMENTS

General:
        •       Updates RFC5880 missing from title page
        •       Replace BFD frames by BFD packets or BFD control packets. Don’t
        use frames since RFC5880 uses packets. •       Use of term
        Null-authentication TLV. RFC5880 uses authentication section, doesn’t
        mention auth TLV.

Abstract:
Mention that this document updates RFC5880.

Requirements Language
Please put this is a separate (sub)section later, e.g. after introduction.

Introduction
First paragraph: s/is computationally intensive process/is a computationally
intensive process/ Split first sentence into 2, e.g.
   Authenticating every BFD [RFC5880] packet with a Simple Password, or
   with a MD5 Message-Digest Algorithm [RFC1321], or Secure Hash
   Algorithm (SHA-1) algorithms is a computationally intensive process.
   This makes it difficult, if not impossible, to authenticate every packet,
   particularly at faster rates.

2nd paragraph: “… only BFD frames that signal a state change in BFD be
authenticated.” State change is not 100% correct since P/F/D bit changes aren’t
state changes (as mentioned in more detail below in section 2 comments). What
about this instead: “State change, a demand mode change (to D bit) or a poll
sequence change (P or F bit change) in a BFD packet are categorized as a
significant BFD change. This document proposes that all BFD control packets
which signal a significant BFD change MUST be authenticated if the session’s
bfd.AuthType is non-zero. Other BFD control packets MAY be transmitted and
received without the A bit set.” If you do use “significant BFD change”, add it
to terminology section. s/non-state change frame/BFD control packets without
state or D/F/P bit change/, e.g. “To detect a Man In the Middle (MITM) attack,
it is also proposed that BFD control packets without a significant change be
authenticated occasionally.  The interval of these control packets…”

Section 2
POLL and DEMAND are NOT strictly states. POLL refers to “Poll sequence” as
specified in section 6.5 of RFC5880. DEMAND refers to “Demand mode” as
specified in section 6.6 of RFC5880. In the table, the POLL entry refers to
polling sequence enabled and in any BFD state. Likewise, the DEMAND entry
refers to Demand mode. This means that a session in UP state, in demand mode
and polling sequence enabled will match 3 entries in that table. It’s a bit
confusing. Here’s what I suggest instead: 1.      Take POLL out of the table.
Add a paragraph mentioning that if P or F bit changes value, the packet MUST be
authenticated 2.      Take DEMAND out of the table. Add a paragraph mentioning
that if D bit changes value, the packet MUST be authenticated

Another comment on the table. The text says it should be read as state change
from column to row. Column INIT to row UP is n/a whereas column UP to row INIT
is Auth. INIT to UP is a valid transition, UP to INIT is not (has to go through
DOWN first). So I think those entries should be reversed in the table.

Last paragraph: CC frames is not defined in BFD, use “control packets” instead?

Section 3
Sequence number mentions “as defined in [RFC5880]”. Suggest mentioning
bfd.XmitAuthSeq

Security Considerations.
I believe this needs to be beefed up:
1)      Use of sequence number for non-authenticated frames. Secure sequence
numbers even better. 2)      Mention (again) that non-authenticated BFD packets
which have a significant change (state, D/F/P) are dropped. So if someone
injects a non-authenticated packet with Down state to take down the session,
that won’t work.

Section 6.2
RFC5880 should be a normative reference.

Back