Subject: Re: draft-ietf-6man-default-iids-08

From: "weigengyu" <[email-masked]>
Date: Thu, 21 Jan 2016 23:09:57 +0800

Hi RayH, 

Thank you for your explanations. 

In Page 8 of RFC7212, 
secret_key:
A secret key that is not known by the attacker. The secret
key SHOULD be of at least 128 bits. It MUST be initialized to
a pseudo-random number (see [RFC4086] for randomness
requirements for security) when the operating system is
installed or when the IPv6 protocol stack is "bootstrapped"
for the first time. An implementation MAY provide the means
for the system administrator to display and change the secret
key.

Based on the above descriptions, it seems that the secret key needs changing for randomness. 
If  the secrete key is changge the new generate IPv6 address will be different. 
Is it right?

Regards, 

Gengyu WEI
Network Technology Center
School of Computer 
Beijing University of Posts and Telecommunications

From: Ray Hunter 
Sent: Wednesday, January 20, 2016 7:52 PM
To: weigengyu 
Cc: 6man WG 
Subject: Re: draft-ietf-6man-default-iids-08

Inline

        Subject: draft-ietf-6man-default-iids-08 
        From: "weigengyu" <[email-masked]> 
        Date: Mon, 18 Jan 2016 16:17:14 +0800 
        To: <[email-masked]> 

  Hi, 

  I have a question about draft-ietf-6man-default-iids-08. 

  Whether an IPv6 address of a host would be changed?
Yes, it can change over time, in some circumstances.

  If it is, in what situations does the IPv6 address change? 
see below.

the RID = F(Prefix, Net_Iface, Network_ID, DAD_Counter, secret_key)

If any of the input variables change, the RID will change, and the resulting IPv6 address will very likely change.

  In Page 3 of the draft, 
  “As a result of the aforementioned issues, this document recommends
  the implementation of an alternative scheme ([RFC7217]) as the
  default stable IID generation scheme for SLAAC, such that the
  aforementioned issues are mitigated.”

  In Page 7 of RFC7212, 
  “Compute a random (but stable) identifier with the expression:
  RID = F(Prefix, Net_Iface, Network_ID, DAD_Counter, secret_key)”

  And in page 9 of RFC7252,
  “2. The Interface Identifier is finally obtained by taking as many
  bits from the RID value (computed in the previous step) as
  necessary, starting from the least significant bit.” 

  If a host which does not move is rebooted, whether its IPv6 address changes?
In the case of a reboot, it could be assumed that the variables (prefix, Net_Iface, Network_ID, DAD_Counter, secret_key) do NOT change (i.e. values are likely to be non-volatile over a reboot). Therefore, the IPv6 address should not change.

An exception could be if a node does not have local storage to remember the value for e.g. the DAD_Counter.

There is generally a VERY SMALL chance that nodes may produce a collision, given sufficient entropy into the RID function.

How this is achieved is an implementation issue.

One corner case is that If nodes do not remember e.g. the DAD_counter over reboots. If there were two or more identical nodes, node-1 could claim an IPv6 address before the other nodes booted, and node-2 to node-n would detect a collision and increment their DAD_Counter and "back off". Previously the collision may have occurred in a different order (because one of the nodes node-2 to node-n booted faster) and node 1 "backed off". That would give the nodes different address assignments. Worse still: the IPv6 addresses would remain the same, but they'd actually be assigned to different machines.

So that's something to watch out for in implementations of identical nodes connected to identical networks, especially without local non-volatile storage.

In that case, some other check should be performed to establish a machine's identity (other than just keying on the IPv6 address), if this is critical.

rfc7217 also suggests using a different source for Network_ID, which can greatly mitigate this risk e.g. using the burned in MAC address.

  If a host move out and back, eg, leave home to go to an office in the morning and get back in the evening, whether its IPv6 address changes?   

IPv6 address in the office would almost certainly be different to home, as "prefix" will certainly be very different (unless using a VPN tunnel).

When returning home, it could be presumed the node will have remembered the previous values of prefix, Net_Iface, Network_ID, DAD_Counter, secret_key

and thus obtain the same IPv6 address in the evening as in the morning.

But strictly speaking, that's an implementation issue.

  Regards,

  Gengyu WEI
  Network Technology Center
  School of Computer 
  Beijing University of Posts and Telecommunications

regards,
RayH