Shepherd writeup
draft-ietf-bfd-optimizing-authentication-12

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