On Jan 15, 2024, at 6:22 PM, Jeffrey Haas <jh...@pfrc.org> wrote:
> 
> Authors,
> 
> Feedback on version -12:

  Thanks.  I'll check these and hopefully push a PR tomorrow.  I just want to 
comment on one suggestion below.

> RFC 5880 defines 
> :    bfd.XmitAuthSeq
> : 
> :       A 32-bit unsigned integer containing the next sequence number for
> :       Keyed MD5 or SHA1 Authentication to be transmitted.  This variable
> :       MUST be initialized to a random 32-bit value.
> 
> Thus, the intention is that we start with a random value.

  Yes.

> If the session is Up with one of the existing types with a known sequence
> number, and then we switch to Meticulous Keyed ISAAC, what is likely
> happening is:
> 1. We learn the Seed for this session for the first time.  This somewhat
> argues we need a bfd.MetKeyIsaacKnown variable.  We require it to not
> change.  Note that it's critical that we say that we're setting it only
> after ISAAC authentication has succeeded.

  That makes sense.

> 2. We need to generate the ISAAC table from the existing sequence number.
> It can't simply be sequence 0 because that's attackable.

  Section 5.1 defines how ISAAC is seeded.  It doesn't use sequence numbers to 
generate the information.

  More below.

> 3. Since we can't set it to zero, and we don't want to generate all
> intervening ISAAC pages to "catch up" to our random sequence number we
> started with,

  But we don't need to "catch up".   We just need to record that we started at 
an agreed-upon sequence number.

The important bit is that we have a transition from

         bfd.MetKeyIsaacKnown=false

  to

         bfd.MetKeyIsaacKnown=true

  When that transition happens, the sequence number in the packet is used as 
the start point.  That number is the new bfd.MetKeyIsaacPageBase variable you 
mentioned.

  Saving that number means that if we get a new sequence number Y, we can do:

        Auth Key index = Y - bfd.MetKeyIsaacPageBase

  If that value is smaller than 256, the sequence number is in the current 
page.  If it's 256 or more, then we need to generate a new page.

  I'll add some text to clarify this.

  Alan DeKok.

Reply via email to