Subject: [mobile-ip] Problem with issue 98

From: gabriel montenegro <[email-masked]>
Date: Thu, 17 Oct 2002 04:03:36 +0200

There seems to be a problem with some text in the proposed solution to
issue 98. It stems from allowing two different forms of Kbu calculation
depending on which of the two allowable styles of deleting a BU is in
operation:

    1. lifetime == 0
	Kbu = hash(home keygen token | care-of keygen token)
    2. care-of address == home address
	Kbu = hash(home keygen token)

What happens if a CN receives a BU in which BOTH "lifetime==0"
and "care-of address == home address" are true?

Which Kbu calculation does it use? Maybe we should mandate the short Kbu
calculation for all BU deletions.

In keeping with this, we should just own up to the fact that we really
have *ONLY ONE* style of binding deletion:

    1. lifetime == 0
	Kbu = hash(home keygen token)

This is simpler as it avoids having multiple ways of doing the same thing.

We'd say that for deletions, the care-of address MUST be ignored by the CN.
Since we don't have simultaneous registrations/bindings, this makes no
difference.

Since this deletion style was always there, we're not adding to
the arsenal of the attackers. We're just simplifying implementation requirements
on the legal MIPv6 nodes.

What should the MN set the care-of address to? The following text in 11.7.2
implies that it is set to the care-of address when away from home
or to the home address when at home:

    -  The Source Address of the IPv6 header MUST contain the current
       care-of address of the mobile node.

Which means that this preceding section also in 11.7.2:

   If, instead, the care-of address is set to the mobile node's home
   address and the Lifetime field set to zero, the Binding Update
   requests the correspondent node to delete any existing Binding Cache
   entry that it has for the mobile node.

Should be rewritten along these lines:

   If the Lifetime field is set to zero, the Binding Update
   requests the correspondent node to delete any existing Binding Cache
   entry that it has for the mobile node. In keeping with the Binding
   Update creation rules below, the care-of address MUST be set to the
   home address if the mobile node is at home, or to the current
   care-of address if it is away from home.

Comments?

-gabriel

---

From: Jari Arkko <[email-masked]>
Date: Thu, 17 Oct 2002 12:23:59 +0300

> Comments?
Works for me.

Jari

---

From: Charlie Perkins <[email-masked]>
Date: Thu, 17 Oct 2002 06:57:31 -0700

Hello Gabriel,

I'm generally O.K. with your proposal, but there are difficulties
with disallowing "home address == care-of address".  If you
really think the prohibition is required, then a new error code
is required.  I think that fixing the calculation is enough to fix
the problem, and that we don't have to make the further
prohibition.  However, making the prohibition is fine is O.K.,
except that I think it's more complicated, not simpler.  It's
more complicated, because there is yet another error condition
which is "gratuitous", and more code to generate the error
condition handling, and so on.  Plus, it violates the "generous
in what is accepted" design guideline.  Seems old fashioned
to even say it in today's IETF.  Oh well.

Regards,
Charlie P.

---

From: gabriel montenegro <[email-masked]>
Date: Fri, 18 Oct 2002 15:55:27 +0200

Charlie Perkins wrote:
> with disallowing "home address == care-of address".  

I see how the proposal could be construed this way, but really,
the intent is to use the same Kbu in either situation, so
(as Jari pointed out in private email) the best expression

 >>        Kbu = hash(home keygen token)

But rather:

	if ( lifetime == 0 || coa == hoa)
		Kbu = hash(home keygen token)

Is this better?

-gabriel

> If you

-- 
Gabriel Montenegro (Sun Microsystems Laboratories, Europe)
180, Avenue de l'Europe          Email: [email-masked]
ZIRST de Montbonnot              Mobile: +33 673 99 56 62
38334 Saint Ismier CEDEX, France
Office: +33 476 18 80 45 (sun internal: x38045)
Fax:    +33 476 18 88 88