Hi Mahesh, On the Section-2 state transitions - the confusion seems to be
around the context of the "state". The section uses it to detect changes at
the receiver - if the frame that is received is different from the one that
was received previously, then should it (or should it not) be
authenticated. In that sense, the receipt of P, F and D represent changes
to the ongoing BFD session and should be authenticated. I agree with Reshad
that poll and demand are not state changes in the BFD state-machine - but
they change the state of the receiver logic (poll, for instance, can change
the interval which can cause instability). Hope that clarifies the
verbiage. Perhaps we can use a different term for it but I can't think of
one :)

--
Ash

On Thu, Jul 2, 2020 at 12:02 PM Reshad Rahman (rrahman) <rrah...@cisco.com>
wrote:

> Hi Mahesh,
>
>
>
> Thanks for the update.  I’ll re-review the updated document when it’s
> available.
>
>
>
> Inline <RR>
>
>
>
> *From: *Mahesh Jethanandani <mjethanand...@gmail.com>
> *Date: *Thursday, July 2, 2020 at 12:13 AM
> *To: *"Reshad Rahman (rrahman)" <rrah...@cisco.com>
> *Cc: *"rtg-bfd@ietf.org" <rtg-bfd@ietf.org>, "
> draft-ietf-bfd-optimizing-authenticat...@ietf.org" <
> draft-ietf-bfd-optimizing-authenticat...@ietf.org>
> *Subject: *Re: Shepherd writeup for
> draft-ietf-bfd-optimizing-authentication
>
>
>
> Hi Reshad,
>
>
>
> Happy Canada day!
>
>
>
> Thanks first of all for the shepherd writeup. Please see my
> comments/questions inline.
>
>
>
> @Ashesh, please comment on the change to the table.
>
>
>
> On Jun 14, 2020, at 11:50 AM, Reshad Rahman (rrahman) <rrah...@cisco.com>
> wrote:
>
>
>
> Authors, WG,
>
>
>
> The writeup is available at
> https://datatracker.ietf.org/doc/draft-ietf-bfd-optimizing-authentication/
>
>
>
> For convenience I’ve copied the comments on the document below.
>
>
>
> Regards,
>
> Reshad.
>
>
>
> General:
>
>    - Updates RFC5880 missing from title page
>
>
>
> Hmm. How does one add the “Updates” tag?
>
>
>
>
>    -
>    - Replace BFD frames by BFD packets or BFD control packets. Don’t use
>    frames since RFC5880 uses packets.
>
>
>
> Done.
>
>
>
>
>    -
>    - Use of term Null-authentication TLV. RFC5880 uses authentication
>    section, doesn’t mention auth TLV.
>
>
>
> Ok. Have changed all references of “NULL Auth TLV” to “NULL Auth Type”.
>
>
>
>
>    -
>
>
>
> Abstract:
>
> Mention that this document updates RFC5880.
>
>
>
> Done.
>
>
>
>
>
> Requirements Language
>
> Please put this is a separate (sub)section later, e.g. after introduction..
>
>
>
> Done.
>
>
>
>
>
> Introduction
>
> First paragraph: s/is computationally intensive process/is a
> computationally intensive process/
>
>
>
> Done.
>
>
>
> 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.
>
>
>
> Done.
>
>
>
>
>
> 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.
>
>
>
> Done.
>
>
>
> 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…”
>
>
>
> Done.
>
>
>
>
>
> 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
>
>
>
> Have made the change as follows. I am hoping Ashesh can comment on it.
>
>
>
> The significant changes for which authentication is being suggested
>
>    include:
>
>
>
>           Read   : On state change from <column> to <row>
>
>           Auth   : Authenticate frame
>
>           NULL   : No Authentication. Use NULL AUTH Type.
>
>           n/a    : Invalid state transition.
>
>           Select : Most packets NULL AUTH. Selective (periodic)
>
>                    packets authenticated.
>
>          +--------+-----------+---------+---------+
>
>          |            | DOWN   | INIT   | UP     |
>
>          +--------+--------+--------+--------+
>
>          | DOWN   |  NULL  |  Auth  |  Auth  |
>
>          +--------+--------+--------+--------+
>
>          | INIT   |  Auth  |  NULL  |  n/a   |
>
>          +--------+--------+--------+--------+
>
>          | UP     |  Auth  |  Auth  | Select |
>
>          +--------+--------+--------+--------+
>
>
>
>                        Optimized Authentication Map
>
>
>
>    If P or F bit changes value, the packet MUST be authenticated.  If
>
>    the D bit changes value, the packet MUST be authenticated.
>
> <RR> I’m good with this. I’m ok with doing this differently too, as long
> as the crux of my concern is still addressed.
>
>
>
>
>    1.
>
>
>
> 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.
>
>
>
> Done.
>
>
>
>
>
> Last paragraph: CC frames is not defined in BFD, use “control packets”
> instead?
>
>
>
> Done.
>
>
>
>
>
> Section 3
>
> Sequence number mentions “as defined in [RFC5880]”. Suggest mentioning
> bfd.XmitAuthSeq
>
>
>
> Done.
>
>
>
>
>
> 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.
>
>
>
> The Security Considerations section now reads as follows:
>
>
>
>   The approach described in this document enhances the ability to
>
>    authentication a BFD session by taking away the onerous requirement
>
> <RR> s/authentication a BFD/authenticate a BFD/
>
>    that every frame be authenticated.  By authenticating packets that
>
> <RR> s/every frame/every BFD control packet/
>
>    affect the state of the session, the security of the BFD session is
>
>    maintained.  In this mode, packets that are a significant change but
>
>    are not authenticated, are dropped by the system.  Therefore, a
>
>    malicious user that tries to inject a non-authenticated packet, e.g.
>
>    with a Down state to take a session down will fail.  That combined
>
>    with the proposal of using sequence number defined in Secure BFD
>
>    Sequence Numbers [I-D.ietf-bfd-secure-sequence-numbers] further
>
>    enhances the security of BFD sessions.
>
>
>
>
>
> Regards,
>
> Reshad.
>
>
>
>
>
>
>    1.
>
>
>
> Section 6.2
>
> RFC5880 should be a normative reference.
>
>
>
> Done.
>
>
>
> Mahesh Jethanandani
>
> mjethanand...@gmail.com
>
>
>
>
>
>
>
>

Reply via email to