Hi Andrew,

Thanks for your comments. See my response as follow:

> "prudent" and "best" are things that will change overtime. I can see the
value in
> publishing some algorithm to generate IID, and maybe the more of these we
> have - the better.
>

That section is related to the use of word "might" for the use of RFC 4086
in order to pick up a random number.

> I see it harmful in marking the core IPv6 specs updated with this
algorithm -
> even
http://datatracker.ietf.org/doc/draft-ietf-6man-stable-privacy-addresses/
> does not do that.

The old version of draft was not like that but I changed it to apply
Fernando's comment. How about change it like before : The node must not
generate its public address based on any algorithm that uses MAC address. It
"MIGHT" generate it based on [stableaddresses] document. 
Does it address your concern?

> Now, beyond the philosophical-political comments, a couple of things on
the
> "meat":
> 
> 1) http://tools.ietf.org/html/draft-ietf-6man-ug-02 - is in the WGLC.
> This seems to me that step 6 of algorithm needs to go.

I did not mention it because that draft relaxed the usage of those bits. So,
I thought it would be useful to use all those bits for IID. I can add a
reference to that document .

> 2) the algorithm components
> 
>    R1=(modifier(16 bytes)||timestamp(8 bytes)|| router prefix)
> 
> it looks to me that it is functionally equivalent of just taking a hash of
16
> random bytes and using that as an interface ID ? 

If I added router prefix , It is only for more randomization and decrease
the chance of pick up the same value for other network. It is true that
prefix is well known, but timestamp and modifier is not known.  


Why the additional
> components ? They're trivially guessable (even remotely) and are the same
for
> the nodes on the segment, so they do not add much in terms of entropy.

Timestamp : you have to consider clock skew and the CPU cycles so not easily
guessable.
Modifier: this value is added in case we have the same vendors as you also
mentioned. The seed can be any value. One can pick up timestamp. But then
based on seed you pick up another number. It is not guessable as well. 

You have to consider that the attacker is not in the same local link as the
node. If he is, he can harm user's privacy based on layer 2 and no need to
look for the IP address of this node. Otherwise we have another mechanism to
also change the MAC address! Which is out of the scope of this document
which talks on layer 3 privacy.

However, I think it is currently have a good randomization (because of my
reasons) but I also can apply a simple step to increase the randomization,
i.e., use any permutation of the s. where  s=(modifier||timestamp||prefix)
and || is the sign for concatenation. As a result, the node will pick up any
different orders of s array of bytes and so the attacker needs to guess on
32 bits and not 16 or 24 bits.

Any thoughts?

> 3) DAD
> 
> If, after 3 tries, it receives the same
>    result, it will consider this an attack and will start using that IP
>    address.
> 
> Uh. So if I have a mass of devices on the segment from the same vendor who
> made a poor implementation of this algorithm there is a plausible race
> condition where they might start using the same address ?
> 
No, the probability of two nodes pick up the same modifier is really low.
Especially if we give a chance for 3 tries. Although they starts at the same
time and we say their clock is completely synchronize but the modifier
change this value.

Any thoughts?

> 4) stable storage.
> 
> If I read it right, I think the node still must have at least enough
storage to keep
> a single IID. If we are talking this a replacement of EUI64, then, again,
why not
> take a random 64bit value, store that, and just use either that value
alone for
> the IID ?

That is almost the same as my algorithm with a small different step, i.e.,
you also use stable storage to keep a value while I think there is no need
to do so. (they use also a hash function on the concatenation of "history"
and EUI-64.). My reason is, as I explained off list, this will increase the
chance for the attacker to guess next value generated by the node in case
the node is compromised and the attacker access the history once (virus or
...). But using my algorithm, the attacker needs to try different values and
he might not have enough time it is because based on that RFC, the node will
keep its IID maximum for a week and in most cases for a day. This means an
attacker need to try different guessed values in a week (2^24) for the
inputs of SHA256 hash function.

Thanks,
Best,
Hosnieh

--------------------------------------------------------------------
IETF IPv6 working group mailing list
ipv6@ietf.org
Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------

Reply via email to