Hi Reshad, Jeff,

Thanks very much for the review. We have posted a new version of the draft
that should address your concerns.

URL:
https://www.ietf.org/archive/id/draft-ietf-bfd-secure-sequence-numbers-07.txt
Status:
https://datatracker.ietf.org/doc/draft-ietf-bfd-secure-sequence-numbers/
Htmlized:
https://datatracker.ietf.org/doc/html/draft-ietf-bfd-secure-sequence-numbers
Htmlized:
https://tools.ietf.org/html/draft-ietf-bfd-secure-sequence-numbers-07

Regards,
Sonal.


On Wed, Dec 2, 2020 at 1:37 PM Jeffrey Haas <jh...@pfrc.org> wrote:

> It's been some time since I've reviewed the entire document, so this is
> almost fresh for me as well. :-)
>
> My comments largely follow Reshad's:
> - I don't know what [S] is intended to be.
> - The chains in the diagrams aren't necessarily clear.  I think they're
>   intended to represent that you can work forward and backward through the
>   mechanism, but I don't think they're helping with clarity.
>
> My memory of our prior conversations were that we'd discussed a hash that
> had the properties we wanted here.  But that hash isn't in the document.
> Alan, could you remind us of the example you gave?
>
> I think my biggest procedural issue is discovering the initial sequence
> number.  Since the Receiver is always receiving the output of the hash
> itself, how does it discover the initial sequence number?  If this is a
> hash
> rather than a symmetric operation, we don't have the property that
> hash(s,k) = H1; hash (H1,k) = s
>
> So, I think we need some clarity for this sentence:
>    Note: The first sequence number can
>    be obtained using the same logic as used in determining Local
>    Discriminator value for the session or by using a random number.
>
> -- Jeff
>
> On Tue, Nov 24, 2020 at 12:09:53AM +0000, Reshad Rahman (rrahman) wrote:
> > Hi,
> >
> > Authors, thank you for addressing my comments in rev-06.
> >
> > I believe there’s some room for clarification in Section 3.
> >
> > Comments:
> >
> >   1.  [0] states monotonically increasing sequence number but the
> sequence number is actually in [S]
> >
> > [A] states Authentication but the authentication format contains the
> sequence #. So this is supposed to be the hash of the BFD packet as
> described in 4.4 of RFC5880.
> >
> >
> >
> >    As currently defined in BFD [RFC5880], a BFD packet with
> >    authentication will undergo the following steps, where:
> >
> >    [O]: original RFC 5880 packet with monotonically increasing sequence
> >    number
> >
> >    [S]: pseudo random sequence number
> >
> >    [A]: Authentication
> >
> >                    Sender                    Receiver
> >
> >                    [O] [S] [A] ------------- [A] [S] [O]
> >
> >
> >   1.  The text below states that “mechanism of provisioning such a key
> is outside the scope of this document”.  But further down H1 and H2 are
> both calculated with key ‘k’. So is the key to calculate the sequence
> number hash the same as the key to calculate the hash for the packet (as
> per section 4.4 of RFC5880)? And if they are the same and the attacker has
> it, can’t the attacker fudge the sequence number hash also? I think I could
> be missing something here.
> >
> >    This document proposes that for enhanced security in sequence number
> >    encoding, the sender would identify a hash algorithm (symmetric) that
> >    would create a 32 bit hash.  The hashing key is provisioned securely
> >    on the sender and receiver of the BFD session.  The mechanism of
> >    provisioning such a key is outside the scope of this document.
> >    Instead of using the sequence number, the sender encodes the sequence
> >    number with the hashing key to produce a hash.
> >
> >
> >   1.  When the receiver does the reverse hash operation to extract the
> sequence number,  > previously received ‘s’  is not enough as per previous
> text which mentions tolerate dropped frames.
> >
> >
> >
> >    k: hashing key
> >
> >
> >
> >    s: sequence number
> >
> >
> >
> >    O: original RFC 5880 packet with monotonically increasing sequence
> >
> >    number
> >
> >
> >
> >   1.  What is meant by “remainder of packet”?
> >
> >
> >
> >    R: remainder of packet
> >
> >
> >
> >    H1: hash of s
> >
> >
> >
> >    H2: hash of entire packet
> >
> >
> >
> >    A: H2 + insertion in packet
> >
> >
> >
> >    hash(s, k) = H1
> >
> >
> >
> >    hash((H1 + R), k) = H2
> >
> >
> >
> >    hash'((Packet - H2), k) == H2 ? Good packet : bad packet
> >
> >
> >
> >    hash'(H1, k) > previously received s ? Good sequence number : bad
> >
> >    sequence number
> >
> >
> >
> >                     Sender                Receiver
> >
> >
> >
> >                     [O] [H1] [A] -------- [A] [H1] [O]
> >
> >
> >
> >    The above diagram describes how the sender encodes and receiver
> >
> >    decodes the sequence number.  The sender starts by taking the
> >
> >    monotonically increasing sequence number and hashing it.  It replaces
> >
> >    the sequence number with the hash.  It then calculates the hash for
> >
> >    the entire packet and appends the hash value to the end of the
> >
> >    packet, before transmitting it.
> >
> >
> >
> >   1.  s/retrieve s/retrieve ‘s’/ and s/monotically/monotonically/
> >
> >
> >
> >    The receiver hashes the entire packet without H2, and compares the
> >
> >    hash value with the received hash (H2).  If the hash values are
> >
> >    equal, it is a good packet, else it is a bad packet.  It then
> >
> >    calculates the hash on the received sequence number to retreive s.
> >
> >    If it is greater than the previously received monotically increasing
> >
> >    sequence number, then the receiver knows it's a valid sequence
> >
> >    number.
> >
> > Regards,
> > Reshad.
> >
> > From: "Reshad Rahman (rrahman)" <rrah...@cisco.com>
> > Date: Sunday, June 14, 2020 at 2:50 PM
> > To: "rtg-bfd@ietf.org" <rtg-bfd@ietf.org>, "
> draft-ietf-bfd-secure-sequence-numb...@ietf.org" <
> draft-ietf-bfd-secure-sequence-numb...@ietf.org>
> > Subject: Shephered writeup for draft-ietf-bfd-secure-sequence-numbers
> >
> > Authors, WG,
> >
> > The writeup is available at
> https://datatracker.ietf.org/doc/draft-ietf-bfd-secure-sequence-numbers/shepherdwriteup/
> >
> > For convenience I’ve copied the comments on the document below.
> >
> > Regards,
> > Reshad.
> >
> >
> > This document updates RFC5880. This is missing from the title page
> header.
> >
> >
> >
> > Abstract
> >
> > s/a security enhancements/a security enhancement/
> >
> > Suggestion: “This document describes a security enhancement for the
> sequence number used in BFD control packets”.
> >
> >
> >
> > Requirements Language
> >
> > Please put this later in the document, e.g. after introduction. Add
> RFC8174, and add it as normative reference.
> >
> >
> >
> > Introduction
> >
> > Don’t use Authentication TLV, instead use “Authentication Section”. E.g.
> >
> > s/in BFD authentication TLVs/in the BFD authentication section/
> >
> >
> >
> >
> >
> > s/pseudo-random sequence numbers on the frame/pseudo-random sequence
> numbers in BFD control packets/
> >
> > I’m not sure I understood the last sentence starting with “Further
> security may be ….”. What is “resetting un-encrypted sequence”? Does it
> mean that when the sequence numbers rolls over, it’s reset to a
> pseudo-random number?
> >
> >
> >
> > Section 2
> >
> > Rename to “Theory of operation”
> >
> > Suggest splitting the  1st sentence, e.g.
> >
> >    Instead of inserting a monotonically, sometimes occasionally,
> increasing
> >
> >    sequence number in BFD control packets, a hash is inserted instead.
> >
> >    The hash is computed, using a shared key, on the sequence number. That
> >
> >    computed hash is then inserted into the sequence number field of the
> >
> >    packet.
> >
> >
> >
> > In the following sentence, the part “used in computing an authenticated
> packet” is referring to computing the SHA1/MD5 hash/digest for the packet?
> That sentence should be clarified then.
> >
> >                                                                    In
> >
> >    case of BFD Authentication [I-D.ietf-bfd-optimizing-authentication],
> >
> >    the sequence number used in computing an authenticated packet would
> >
> >    be this new computed hash.
> >
> >
> >
> > Also, when referring to the optimization draft, better to use e.g.
> “optimized BFD authentication” than “BFD authentication”. The latter
> implies per-RFC5880 BFD authentication.
> >
> >
> >
> > s/psuedo/pseudo/
> >
> > s/ scope of this draft/ scope of this document/
> >
> > s/seuquence/sequence/
> >
> >
> >
> > Not clear to me what the following means.
> >
> >                               Note: The first sequence number can
> >
> >    be obtained using the same logic as the My Discriminator value.
> >
> >
> >
> > The diagram reads well for regular authentication. For secure sequence
> number, I think the diagram would gain clarity from an ordered list of
> steps on the sender and receiver. The current list before the diagram is
> useful,  I believe the sender steps would start at “H1:” and the receiver
> steps at hash’. And yes, hash’ needs an explanation. On the receiver side,
> for validating that ’s’ is a good sequence number, the range has to be
> checked as mentioned in the previous paragraph.
> >
> >
> >
> > Section 5
> >
> > s/ stabiluty/ stability/
> >
> > s/admistratively/administratively/
> >
> > s/Sequential nature/The sequential nature/
> >
>
> > Date: Wed, 05 Aug 2020 16:28:55 -0700
> > From: internet-dra...@ietf.org
> > To: i-d-annou...@ietf.org
> > CC: rtg-bfd@ietf.org
> > Subject: I-D Action: draft-ietf-bfd-secure-sequence-numbers-06.txt
> >
> >
> > A New Internet-Draft is available from the on-line Internet-Drafts
> directories.
> > This draft is a work item of the Bidirectional Forwarding Detection WG
> of the IETF.
> >
> >         Title           : Secure BFD Sequence Numbers
> >         Authors         : Mahesh Jethanandani
> >                           Sonal Agarwal
> >                           Ashesh Mishra
> >                           Ankur Saxena
> >                           Alan DeKok
> >       Filename        : draft-ietf-bfd-secure-sequence-numbers-06.txt
> >       Pages           : 6
> >       Date            : 2020-08-05
> >
> > Abstract:
> >    This document describes a security enhancement for the sequence
> >    number used in BFD control packets.  This document updates RFC 5880.
> >
> >
> > The IETF datatracker status page for this draft is:
> > https://datatracker.ietf.org/doc/draft-ietf-bfd-secure-sequence-numbers/
> >
> > There are also htmlized versions available at:
> > https://tools.ietf.org/html/draft-ietf-bfd-secure-sequence-numbers-06
> >
> https://datatracker.ietf.org/doc/html/draft-ietf-bfd-secure-sequence-numbers-06
> >
> > A diff from the previous version is available at:
> >
> https://www.ietf.org/rfcdiff?url2=draft-ietf-bfd-secure-sequence-numbers-06
> >
> >
> > Please note that it may take a couple of minutes from the time of
> submission
> > until the htmlized version and diff are available at tools.ietf.org.
> >
> > Internet-Drafts are also available by anonymous FTP at:
> > ftp://ftp.ietf.org/internet-drafts/
> >
> >
> >
>
>

Reply via email to