[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: AD review of draft-ietf-shim6-proto -- sections 7.18 through 14



continuing....

El 13/09/2007, a las 15:35, Jari Arkko escribió:


Still continuing with the review. Sigh, its
a long document... I also noticed a few
things that forced me to go back in the document,
so don't be surprised about Section numbers
below 7.18.

Substantial:

(From Section 5.10)
 CGA Parameter Data Structure (PDS):  Included when the locator list
 is included and the PDS was not included in the I2/
 I2bis/R2 messages, so the receiver can verify the
 locator list.
(From Section 7.10)
 In
 particular, the R2 message includes the Responder's locator list and
 the PDS option.
(From Section 7.16)
 If a CGA Parameter Data Structure (PDS) is
 included in the message, then the host MUST verify that the actual
 PDS contained in the message corresponds to the ULID(peer) as
 specified in Section 7.2.

I am getting confused about when the PDS appears in the
message when not. 7.10 seems to say its always there;
7.16 allows it to not be there; 5.10 explains some
of the thinking. I think we need to be consistent with
these recommendations, perhaps fixing Section 7.10
language.

exactly

the point is that the PDS must be included the first time additional locators are exchanged. This may be in the I2/I2bis/R2 or Update message. Probably the normal situation will be that they are exchanged in the I2/I2bis/R2, but we don't need to rule out that this is delayed till the UPDATE message

I have rephrased sections about I2, R2, I2bis in order to clarify this. The result is that the locator list and the PDS may be included in any of these messages





CGA Parameter Data Structure:  Included when the locator list is
included so the receiver can verify the locator list.

There should be some discussion in the introductory
parts of the document about the (non-)requirements to
use HBA/CGA addresses on both sides. My understanding
is that its OK for my multihomed host to have such
addresses and that Shim6 still works with a host on
the other side that only has one address. Right?


I have addressed this point below...


   A shim control message has the checksum field verified.  The Shim
header length field is also verified against the length of the IPv6 packet to make sure that the shim message doesn't claim to end past the end of the IPv6 packet. Finally, it checks that the neither the
   IPv6 destination field nor the IPv6 source field is a multicast
   address.  If any of those checks fail, the packet is silently
   dropped.

Are multicast addresses only ones that need to be prohibited?
What about unspecified, link local unicast?

i guess we should not allow unspecified. I am not sure we should rule out link local... perhaps someone would want to use shim6 between two local machines with multiple interfaces....

are you ok ruling out unspcified and not mentioning link local?


Section 10:

If a CGA Parameter Data Structure (PDS) is included in the message, then the host MUST verify if the actual PDS contained in the packet
   corresponds to the ULID(peer).  If this verification fails, the
   message is silently discarded.

This is probably explained in more detail elsewhere, but the
above statement "correspond to the ULID(peer)" seems incorrect.
Lets assume we have locators L1, L2, L3, L4. Lets further assume
that ULID=L4. Now, we indeed need to verify that, e.g., the
HBA equations prove L1, L2, L3, and L4 are related. I guess
this can be stated as "PDS corresponds to the ULID(peer)".
But how does this work for CGAs? Lets assume for the sake
of argument that the CGA address = L1 and ULID is still L4.

but this is not enough to provide the required protection. I mean, when using CGAs, the CGA must be the ULID, so identifier ownership can be proven. Actually, when using CGAs, it is not needed that an address that is exclusively used as a locator is a CGAs, but the ULID must be a CGA, hence the text

This seems possible, but it no longer holds that "PDS
corresponds to ULID(peer)". Instead, you need to show
one of the two: each address in the list is either hash(key)
or the key has been used to sign the entire Update message,
showing willingness of the key owner to use these other
addresses.


i think that in this example, it is not enough to prove that the alternative locators are bounded to the ulid by the ulid owner, since it is not signed by the key associated to the uild.

Reformulation of this text is probably needed. It appears
in multiple places in the document, so make sure you fix
all places.


i think that what is needed is to mention that the ulid must be a cga if cgas are used, makes sense?

i have added the following text in the assumptions section (addressing this point and a previous one)

<t> The security of the Shim6 protocol relies on the usage of Hash Based Addresses (HBA) <xref target='I-D.ietf-shim6-hba'/> and/or Cryptographically Generated Addresses (CGA) <xref target='RFC3972'/>. In the case that HBAs are used, all the addresses assigned to the host that are included in the Shim6 protocol (either as a locator or as a ULID) must be part of the same HBA set. In the case that CGAs are used, the address used as ULID must be a CGA but the other addresses that are used as locators do not need to be neither CGAs nor HBAs. It should be noted that it is perfectly acceptable to run the Shim6 protocol between a host that has multiple locators and another host that has a single IP address. In this case, the address of the host with a single address does not need to be an HBA nor a CGA.
</t>



The host uses the Probe message in [9] to verify
that the new locator is reachable before changing Lp(peer).

The host uses the specific message, or runs the
entire protocol?

the whole exploration protocol

I have rephrased as follows

The host uses the reachability exploration procedure described in [9] to verify
that the new locator is reachable before changing Lp(peer).


If the former, please specify in
more detail the contents of the message.
		
o Other control messages (Update, Keepalive, Probe): Deliver to the context with CT(local) equal to the Receiver Context Tag included in the packet. Verify that the IPv6 source address field is part of Ls(peer) and that the IPv6 destination address field is part of
      Ls(local).  If not, send a R1bis message.

Does this prevent properly handling a Probe if the peer
did not bother to / did not have time to report the
address as its own? I would expect that hosts might not
report all addresses, if they have many, and if there's
a sudden rehoming to a previously unknown prefix,
the host HAS to send a Probe from this previously
unknown address. This appears OK from a security
perspective, at least if we are using CGAs and not
HBAs.


I will address this comment later...

regards, marcelo


Jari