draft-ietf-6man-stable-privacy-addresses-07.txt   draft-ietf-6man-stable-privacy-addresses-08.txt 
IPv6 maintenance Working Group (6man) F. Gont IPv6 maintenance Working Group (6man) F. Gont
Internet-Draft SI6 Networks / UTN-FRH Internet-Draft SI6 Networks / UTN-FRH
Intended status: Standards Track May 19, 2013 Intended status: Standards Track May 24, 2013
Expires: November 20, 2013 Expires: November 25, 2013
A method for Generating Stable Privacy-Enhanced Addresses with IPv6 A method for Generating Stable Privacy-Enhanced Addresses with IPv6
Stateless Address Autoconfiguration (SLAAC) Stateless Address Autoconfiguration (SLAAC)
draft-ietf-6man-stable-privacy-addresses-07 draft-ietf-6man-stable-privacy-addresses-08
Abstract Abstract
This document specifies a method for generating IPv6 Interface This document specifies a method for generating IPv6 Interface
Identifiers to be used with IPv6 Stateless Address Autoconfiguration Identifiers to be used with IPv6 Stateless Address Autoconfiguration
(SLAAC), such that addresses configured using this method are stable (SLAAC), such that addresses configured using this method are stable
within each subnet, but the Interface Identifier changes when hosts within each subnet, but the Interface Identifier changes when hosts
move from one network to another. This method is meant to be an move from one network to another. This method is meant to be an
alternative to generating Interface Identifiers based on IEEE alternative to generating Interface Identifiers based on hardware
identifiers, such that the benefits of stable addresses can be address (e.g., using IEEE identifiers), such that the benefits of
achieved without sacrificing the privacy of users. stable addresses can be achieved without sacrificing the privacy of
users. The method specified in this document applies to all prefixes
a host may be employing, including link-local, global, and unique-
local addresses.
Status of this Memo Status of this Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on November 20, 2013. This Internet-Draft will expire on November 25, 2013.
Copyright Notice Copyright Notice
Copyright (c) 2013 IETF Trust and the persons identified as the Copyright (c) 2013 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 26 skipping to change at page 2, line 29
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14
7. Security Considerations . . . . . . . . . . . . . . . . . . . 15 7. Security Considerations . . . . . . . . . . . . . . . . . . . 15
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 17 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 17
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 18 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 18
9.1. Normative References . . . . . . . . . . . . . . . . . . . 18 9.1. Normative References . . . . . . . . . . . . . . . . . . . 18
9.2. Informative References . . . . . . . . . . . . . . . . . . 18 9.2. Informative References . . . . . . . . . . . . . . . . . . 18
Appendix A. Possible sources for the Net_Iface parameter . . . . 21 Appendix A. Possible sources for the Net_Iface parameter . . . . 21
A.1. Interface Index . . . . . . . . . . . . . . . . . . . . . 21 A.1. Interface Index . . . . . . . . . . . . . . . . . . . . . 21
A.2. Interface Name . . . . . . . . . . . . . . . . . . . . . . 21 A.2. Interface Name . . . . . . . . . . . . . . . . . . . . . . 21
A.3. Link-layer Addresses . . . . . . . . . . . . . . . . . . . 21 A.3. Link-layer Addresses . . . . . . . . . . . . . . . . . . . 21
A.4. Logical Network Service Identity . . . . . . . . . . . . . 22
Appendix B. Privacy issues still present when temporary Appendix B. Privacy issues still present when temporary
addresses are employed . . . . . . . . . . . . . . . 23 addresses are employed . . . . . . . . . . . . . . . 23
B.1. Host tracking . . . . . . . . . . . . . . . . . . . . . . 23 B.1. Host tracking . . . . . . . . . . . . . . . . . . . . . . 23
B.1.1. Tracking hosts across networks #1 . . . . . . . . . . 23 B.1.1. Tracking hosts across networks #1 . . . . . . . . . . 23
B.1.2. Tracking hosts across networks #2 . . . . . . . . . . 24 B.1.2. Tracking hosts across networks #2 . . . . . . . . . . 24
B.1.3. Revealing the identity of devices performing B.1.3. Revealing the identity of devices performing
server-like functions . . . . . . . . . . . . . . . . 24 server-like functions . . . . . . . . . . . . . . . . 24
B.2. Address-scanning attacks . . . . . . . . . . . . . . . . . 24 B.2. Address-scanning attacks . . . . . . . . . . . . . . . . . 24
B.3. Information Leakage . . . . . . . . . . . . . . . . . . . 25 B.3. Information Leakage . . . . . . . . . . . . . . . . . . . 25
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 26 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 26
1. Introduction 1. Introduction
[RFC4862] specifies Stateless Address Autoconfiguration (SLAAC) for [RFC4862] specifies Stateless Address Autoconfiguration (SLAAC) for
IPv6 [RFC2460], which typically results in hosts configuring one or IPv6 [RFC2460], which typically results in hosts configuring one or
more "stable" addresses composed of a network prefix advertised by a more "stable" addresses composed of a network prefix advertised by a
local router, and an Interface Identifier (IID) that typically embeds local router, and an Interface Identifier (IID) that typically embeds
a hardware address (e.g., using IEEE identifiers) [RFC4291]. a hardware address (e.g., using IEEE identifiers) [RFC4291].
Cryptograhically Generated Addresses (CGAs) [RFC3972] are yet Cryptographically Generated Addresses (CGAs) [RFC3972] are yet
another method for generating Interface Identifiers, which bind a another method for generating Interface Identifiers, which bind a
public signature key to an IPv6 address in the SEcure Neighbor public signature key to an IPv6 address in the SEcure Neighbor
Discovery (SEND) [RFC3971] protocol. Discovery (SEND) [RFC3971] protocol.
Generally, the traditional SLAAC addresses are thought to simplify Generally, the traditional SLAAC addresses are thought to simplify
network management, since they simplify Access Control Lists (ACLs) network management, since they simplify Access Control Lists (ACLs)
and logging. However, they have a number of drawbacks: and logging. However, they have a number of drawbacks:
o since the resulting Interface Identifiers do not vary over time, o since the resulting Interface Identifiers do not vary over time,
they allow correlation of node activities within the same network, they allow correlation of node activities within the same network,
thus negatively affecting the privacy of users. thus negatively affecting the privacy of users.
o since the resulting Interface Identifiers are constant across o since the resulting Interface Identifiers are constant across
networks, the resulting IPv6 addresses can be leveraged to track networks, the resulting IPv6 addresses can be leveraged to track
and correlate the activity of a node across multiple networks and correlate the activity of a node across multiple networks
(e.g. track and correlate the activities of a typical client (e.g. track and correlate the activities of a typical client
connecting to the public Internet from different locations), thus connecting to the public Internet from different locations), thus
negatively affecting the privacy of users. negatively affecting the privacy of users.
o since embedding the underlying link-layer address in the Interface o since embedding the underlying link-layer address in the Interface
Identifier results in specific address patterns, such patterns may Identifier will result in specific address patterns, such patterns
be leveraged by attackers to reduce the search space when may be leveraged by attackers to reduce the search space when
performing address scanning attacks. performing address scanning attacks. For example, the IPv6
addresses of all nodes manufactured by the same vendor (at a given
time frame) will likely contain the same IEEE Organizationally
Unique Identifier (OUI) in the Interface Identifier.
o embedding the underlying link-layer address in the Interface o embedding the underlying link-layer address in the Interface
Identifier means that changing the interface hardware results in a Identifier means that replacement of the underlying interface
different Interface Identifier (and hence different IPv6 address). hardware will result in a change of the IPv6 address(es) assigned
to that interface.
The "Privacy Extensions for Stateless Address Autoconfiguration in The "Privacy Extensions for Stateless Address Autoconfiguration in
IPv6" [RFC4941] (henceforth referred to as "temporary addresses") IPv6" [RFC4941] (henceforth referred to as "temporary addresses")
were introduced to complicate the task of eavesdroppers and other were introduced to complicate the task of eavesdroppers and other
information collectors to correlate the activities of a node, and information collectors to correlate the activities of a node, and
basically result in temporary (and random) Interface Identifiers. basically result in temporary (and random) Interface Identifiers.
These temporary addresses are generated *in addition* to the These temporary addresses are generated in addition to the
traditional IPv6 addresses based on IEEE identifiers, with the traditional IPv6 addresses based on IEEE identifiers, with the
"temporary addresses" being employed for "outgoing communications", "temporary addresses" being employed for "outgoing communications",
and the traditional SLAAC addresses being employed for "server" and the traditional SLAAC addresses being employed for "server"
functions (i.e., receiving incoming connections). functions (i.e., receiving incoming connections).
However, even with "temporary addresses" in place, a number of issues However, even with "temporary addresses" in place, a number of issues
remain to be mitigated. Namely, remain to be mitigated. Namely,
o since "temporary addresses" [RFC4941] do not eliminate the use of o since "temporary addresses" [RFC4941] do not eliminate the use of
fixed identifiers for server-like functions, they only *partially* fixed identifiers for server-like functions, they only partially
mitigate host-tracking and activity correlation across networks mitigate host-tracking and activity correlation across networks
(see Appendix B.1 for some example attacks that are still possible (see Appendix B.1 for some example attacks that are still possible
with temporary addresses). with temporary addresses).
o since "temporary addresses" [RFC4941] do not replace the o since "temporary addresses" [RFC4941] do not replace the
traditional SLAAC addresses, an attacker can still leverage traditional SLAAC addresses, an attacker can still leverage
patterns in those addresses to greatly reduce the search space for patterns in those addresses to greatly reduce the search space for
"alive" nodes [Gont-DEEPSEC2011] [CPNI-IPv6] "alive" nodes [Gont-DEEPSEC2011] [CPNI-IPv6]
[I-D.ietf-opsec-ipv6-host-scanning]. [I-D.ietf-opsec-ipv6-host-scanning].
skipping to change at page 4, line 43 skipping to change at page 4, line 46
In scenarios in which temporary addresses are deliberately not used In scenarios in which temporary addresses are deliberately not used
(possibly for any of the aforementioned reasons), all a host is left (possibly for any of the aforementioned reasons), all a host is left
with is the stable addresses that have been generated using e.g. with is the stable addresses that have been generated using e.g.
IEEE identifiers. In such scenarios, it may still be desirable to IEEE identifiers. In such scenarios, it may still be desirable to
have addresses that mitigate address scanning attacks, and that at have addresses that mitigate address scanning attacks, and that at
the very least do not reveal the node's identity when roaming from the very least do not reveal the node's identity when roaming from
one network to another -- without complicating the operation of the one network to another -- without complicating the operation of the
corresponding networks. corresponding networks.
However, even with temporary addresses [RFC4941] in place, We note that even with temporary addresses [RFC4941] in place,
preventing correlation of activities of a node within a network preventing correlation of activities of a node within a network
may be difficult (if at all possible) to achieve. As a trivial may be difficult (if at all possible) to achieve. As a trivial
example, consider a scenario where there is a single node (or a example, consider a scenario where there is a single node (or a
reduced number of nodes) connected to a specific network. An reduced number of nodes) connected to a specific network. An
attacker could detect new addresses in use at that network, an attacker could detect new addresses in use at that network, an
infer which addresses are being employed by which hosts. This infer which addresses are being employed by which hosts. This
task is made particularly easier by the fact that use of task is made particularly easier by the fact that use of
"temporary addresses" can be easily inferred (since the follow "temporary addresses" can be easily inferred (since the follow
different patterns from that of traditional SLAAC addresses), and different patterns from that of traditional SLAAC addresses), and
since they are re-generated periodically (i.e., after a specific since they are re-generated periodically (i.e., after a specific
amount of time has elapsed). amount of time has elapsed).
This document specifies a method to generate Interface Identifiers This document specifies a method to generate Interface Identifiers
that are stable/constant for each network interface within each that are stable/constant for each network interface within each
subnet, but that change as hosts move from one network to another, subnet, but that change as hosts move from one network to another,
thus keeping the "stability" properties of the Interface Identifiers thus keeping the "stability" properties of the Interface Identifiers
specified in [RFC4291], while still mitigating address-scanning specified in [RFC4291], while still mitigating address-scanning
attacks and preventing correlation of the activities of a node as it attacks and preventing correlation of the activities of a node as it
moves from one network to another. moves from one network to another.
For nodes that currently disable "temporary addresses" [RFC4941] for The method specified in this document is a orthogonal to the use of
some of the reasons stated above, this mechanism provides stable "temporary" addresses [RFC4941], since it is meant to improve the
security and privacy properties of the stable addresses that are
employed along with the aforementioned "temporary" addresses. In
scenarios in which "temporary addresses" are employed, implementation
of the mechanism described in this document (in replacement of stable
addresses based on e.g. IEEE identifiers) would mitigate address-
scanning attacks and also mitigate the remaining vectors for
correlating host activities based on the node's IPv6 addresses. On
the other hand, for nodes that currently disable "temporary
addresses" [RFC4941] for some of the reasons described earlier in
this document, implementation of this mechanism will result in stable
privacy-enhanced addresses which address some of the concerns related privacy-enhanced addresses which address some of the concerns related
to addresses that embed IEEE identifiers [RFC4291]. On the other to addresses that embed IEEE identifiers [RFC4291], and which
hand, in scenarios in which "temporary addresses" are employed mitigate IPv6 address-scanning attacks.
together with stable addresses such as those based on IEEE
identifiers, implementation of the mechanism described in this
document would mitigate address-scanning attacks and also mitigate
some vectors for correlating host activities that are not mitigated
by the use of temporary addresses.
We note that this method is incrementally deployable, since it does We note that this method is incrementally deployable, since it does
not pose any interoperability implications when deployed on networks not pose any interoperability implications when deployed on networks
where other nodes do not implement or employ it. Additionally, we where other nodes do not implement or employ it. Additionally, we
note that this document does not update or modify IPv6 StateLess note that this document does not update or modify IPv6 StateLess
Address Auto-Configuration (SLAAC) [RFC4862] itself, but rather only Address Auto-Configuration (SLAAC) [RFC4862] itself, but rather only
specifies an alternative algorithm to generate Interface Identifiers. specifies an alternative algorithm to generate Interface Identifiers.
Therefore, the usual address lifetime properties (as specified in the Therefore, the usual address lifetime properties (as specified in the
corresponding Prefix Information Options) apply when IPv6 addresses corresponding Prefix Information Options) apply when IPv6 addresses
are generated as a result of employing the algorithm specified in are generated as a result of employing the algorithm specified in
skipping to change at page 6, line 20 skipping to change at page 6, line 20
o The resulting Interface Identifiers remain constant/stable for o The resulting Interface Identifiers remain constant/stable for
each prefix used with SLAAC within each subnet. That is, the each prefix used with SLAAC within each subnet. That is, the
algorithm generates the same Interface Identifier when configuring algorithm generates the same Interface Identifier when configuring
an address (for the same interface) belonging to the same prefix an address (for the same interface) belonging to the same prefix
within the same subnet. within the same subnet.
o The resulting Interface Identifiers do change when addresses are o The resulting Interface Identifiers do change when addresses are
configured for different prefixes. That is, if different configured for different prefixes. That is, if different
autoconfiguration prefixes are used to configure addresses for the autoconfiguration prefixes are used to configure addresses for the
same network interface card, the resulting Interface Identifiers same network interface card, the resulting Interface Identifiers
must be (statistically) different. must be (statistically) different. This means that, given two
addresses produced by the method specified in this document, it
must be difficult for an attacker tell whether the addresses have
been generated/used by the same node.
o It must be difficult for an outsider to predict the Interface o It must be difficult for an outsider to predict the Interface
Identifiers that will be generated by the algorithm, even with Identifiers that will be generated by the algorithm, even with
knowledge of the Interface Identifiers generated for configuring knowledge of the Interface Identifiers generated for configuring
other addresses. other addresses.
o Depending on the specific implementation approach (see Section 3 o Depending on the specific implementation approach (see Section 3
and Appendix A), the resulting Interface Identifiers may be and Appendix A), the resulting Interface Identifiers may be
independent of the underlying hardware (e.g. link-layer address). independent of the underlying hardware (e.g. link-layer address).
This means that e.g. replacing a Network Interface Card (NIC) will This means that e.g. replacing a Network Interface Card (NIC) will
not have the (generally undesirable) effect of changing the IPv6 not have the (generally undesirable) effect of changing the IPv6
addresses used for that network interface. addresses used for that network interface.
o The aforementioned Interface Identifiers are meant to be an o The method specified in this document is meant to be an
alternative to those based on e.g. IEEE identifiers, such as alternative to producing IPv6 addresses based on e.g. IEEE
those specified in [RFC2464]. identifiers (as specified in [RFC2464]). It is meant to be
employed for all of the stable (i.e. non-temporary) IPv6 addresses
configured with SLAAC for a given interface, including global,
link-local, and unique-local IPv6 addresses.
We note that of use of the algorithm specified in this document is We note that of use of the algorithm specified in this document is
(to a large extent) orthogonal to the use of "temporary addresses" (to a large extent) orthogonal to the use of "temporary addresses"
[RFC4941]. Hosts that do not implement/use "temporary addresses" [RFC4941]. When employed along "temporary addresses", the method
would have the benefit that they would not be subject to the host- specified in this document will mitigate address-scanning attacks and
tracking and address scanning issues discussed in the previous correlation of node activities across networks (see Appendix B and
section. On the other hand, in the case of hosts employing [IAB-PRIVACY]). On the other hand, hosts that do not implement/use
"temporary addresses", the method specified in this document would "temporary addresses" but employ the method specified in this
mitigate address-scanning attacks and correlation of node activities document would, at the very least, mitigate the host-tracking and
across networks (see Appendix B and [IAB-PRIVACY]). address scanning issues discussed in the previous section.
3. Algorithm specification 3. Algorithm specification
IPv6 implementations conforming to this specification MUST generate IPv6 implementations conforming to this specification MUST generate
Interface Identifiers using the algorithm specified in this section Interface Identifiers using the algorithm specified in this section
in replacement of any other algorithms used for generating "stable" in replacement of any other algorithms used for generating "stable"
addresses (such as that specified in [RFC2464]). The aforementioned addresses (such as that specified in [RFC2464]). However,
algorithm MUST be employed for generating the Interface Identifiers implementations conforming to this specification MAY employ the
for all of the IPv6 addresses configured with SLAAC for a given algorithm specified in [RFC4941] to generate temporary addresses in
interface, including IPv6 link-local addresses. addition to the addresses generated with the algorithm specified in
this document. The method specified in this document MUST be
employed for generating the Interface Identifiers for all the stable
addresses of a given interface, including IPv6 global, link-local,
and unique-local addresses.
This means that this document does not formally obsolete or This means that this document does not formally obsolete or
deprecate any of the existing algorithms to generate Interface deprecate any of the existing algorithms to generate Interface
Identifiers (e.g. such as that specified in [RFC2464]). However, Identifiers (e.g. such as that specified in [RFC2464]). However,
those IPv6 implementations that employ this specification MUST those IPv6 implementations that employ this specification MUST
generate all of their "stable" addresses as specified in this generate all of their "stable" addresses as specified in this
document. document.
Implementations conforming to this specification SHOULD provide the Implementations conforming to this specification SHOULD provide the
means for a system administrator to enable or disable the use of this means for a system administrator to enable or disable the use of this
algorithm for generating Interface Identifiers. Implementations algorithm for generating Interface Identifiers.
conforming to this specification MAY employ the algorithm specified
in [RFC4941] to generate temporary addresses in addition to the
addresses generated with the algorithm specified in this document.
Unless otherwise noted, all of the parameters included in the Unless otherwise noted, all of the parameters included in the
expression below MUST be included when generating an Interface expression below MUST be included when generating an Interface
Identifier. Identifier.
1. Compute a random (but stable) identifier with the expression: 1. Compute a random (but stable) identifier with the expression:
RID = F(Prefix, Net_Iface, Network_ID, DAD_Counter, secret_key) RID = F(Prefix, Net_Iface, Network_ID, DAD_Counter, secret_key)
Where: Where:
RID: RID:
Random (but stable) Interface Identifier Random (but stable) Interface Identifier
F(): F():
A pseudorandom function (PRF) that is not computable from the A pseudorandom function (PRF) that is not computable from the
outside (without knowledge of the secret key), which outside (without knowledge of the secret key), which should
shouldproduce an output of at least 64 bits.The PRF could be produce an output of at least 64 bits.The PRF could be
implemented as a cryptographic hash of the concatenation of implemented as a cryptographic hash of the concatenation of
each of the function parameters. each of the function parameters.
Prefix: Prefix:
The prefix to be used for SLAAC, as learned from an ICMPv6 The prefix to be used for SLAAC, as learned from an ICMPv6
Router Advertisement message. Router Advertisement message, or the link-local IPv6 unicast
prefix.
Net_Iface: Net_Iface:
An implementation-dependent stable identifier associated with An implementation-dependent stable identifier associated with
the network interface for which the RID is being generated. the network interface for which the RID is being generated.
An implementation MAY provide a configuration option to select An implementation MAY provide a configuration option to select
the source of the identifier to be used for the Net_Iface the source of the identifier to be used for the Net_Iface
parameter. A discussion of possible sources for this value parameter. A discussion of possible sources for this value
(along with the corresponding trade-offs) can be found in (along with the corresponding trade-offs) can be found in
Appendix A. Appendix A.
skipping to change at page 9, line 30 skipping to change at page 9, line 35
being used by the victim (which we should expect), and the attacker being used by the victim (which we should expect), and the attacker
can obtain enough material (i.e. addresses configured by the victim), can obtain enough material (i.e. addresses configured by the victim),
the attacker may simply search the entire secret-key space to find the attacker may simply search the entire secret-key space to find
matches. To protect against this, the secret key should be of a matches. To protect against this, the secret key should be of a
reasonable length. Key lengths of at least 128 bits should be reasonable length. Key lengths of at least 128 bits should be
adequate. The secret key is initialized at system installation time adequate. The secret key is initialized at system installation time
to a pseudo-random number, thus allowing this mechanism to be to a pseudo-random number, thus allowing this mechanism to be
enabled/used automatically, without user intervention. enabled/used automatically, without user intervention.
Including the SLAAC prefix in the PRF computation causes the Including the SLAAC prefix in the PRF computation causes the
Interface Identifier to vary across networks that employ different Interface Identifier to vary across each prefix (link-local, global,
prefixes, thus mitigating host-tracking attacks and any other attacks etc.) employed by the node and, as consequently, also across
that benefit from predictable Interface Identifiers (such as address networks. This mitigates the correlation of activities of multi-
scanning attacks). homed nodes (since each of the corresponding addresses will employ a
different Interface ID), host-tracking (since the network prefix will
change as the node moves from one network to another), and any other
attacks that benefit from predictable Interface Identifiers (such as
address scanning attacks).
The Net_Iface is a value that identifies the network interface for The Net_Iface is a value that identifies the network interface for
which an IPv6 address is being generated. The following properties which an IPv6 address is being generated. The following properties
are desirable for the Net_Iface: are required for the Net_Iface parameter:
o it MUST be constant across system bootstrap sequences and other o it MUST be constant across system bootstrap sequences and other
network events (e.g., bringing another interface up or down) network events (e.g., bringing another interface up or down)
o it MUST be different for each network interface o it MUST be different for each network interface simultaneously in
use
Since the stability of the addresses generated with this method Since the stability of the addresses generated with this method
relies on the stability of all arguments of F(), it is key that the relies on the stability of all arguments of F(), it is key that the
Net_Iface be constant across system bootstrap sequences and other Net_Iface be constant across system bootstrap sequences and other
network events. Additionally, the Net_Iface must uniquely identify network events. Additionally, the Net_Iface must uniquely identify
an interface within the node, such that two interfaces connecting to an interface within the node, such that two interfaces connecting to
the same network do not result in duplicate addresses. Different the same network do not result in duplicate addresses. Different
types of operating systems might benefit from different stability types of operating systems might benefit from different stability
properties of the Net_Iface parameter. For example, a client- properties of the Net_Iface parameter. For example, a client-
oriented operating system might want to employ Net_Iface identifiers oriented operating system might want to employ Net_Iface identifiers
that are attached to the underlying network interface card (NIC), that are attached to the underlying network interface card (NIC),
such that a removable NIC always gets the same IPv6 address, such that a removable NIC always gets the same IPv6 address,
irrespective of the system communications port to which it is irrespective of the system communications port to which it is
attached. On the other hand, a server-oriented operating system attached. On the other hand, a server-oriented operating system
might prefer Net_Iface identifers that are attached to system slots/ might prefer Net_Iface identifiers that are attached to system slots/
ports, such that replacement of a network interface card does not ports, such that replacement of a network interface card does not
result in an IPv6 address change. Appendix A discusses possible result in an IPv6 address change. Appendix A discusses possible
sources for the Net_Iface, along with their pros and cons. sources for the Net_Iface, along with their pros and cons.
Including the optional Network_ID parameter when computing the RID Including the optional Network_ID parameter when computing the RID
value above would cause the algorithm to produce a different value above would cause the algorithm to produce a different
Interface Identifier when connecting to different networks, even when Interface Identifier when connecting to different networks, even when
configuring addresses belonging to the same prefix. This means that configuring addresses belonging to the same prefix. This means that
a host would employ a different Interface Identifier as it moves from a host would employ a different Interface Identifier as it moves from
one network to another even for IPv6 link-local addresses or Unique one network to another even for IPv6 link-local addresses or Unique
skipping to change at page 11, line 5 skipping to change at page 11, line 17
method specified in this document results in random Interface IDs, method specified in this document results in random Interface IDs,
the probability of DAD failures is very small. the probability of DAD failures is very small.
o Real world data indicates that MAC address reuse is far more o Real world data indicates that MAC address reuse is far more
common than assumed [HDMoore]. This means that even IPv6 common than assumed [HDMoore]. This means that even IPv6
addresses that employ (allegedly) unique identifiers (such as IEEE addresses that employ (allegedly) unique identifiers (such as IEEE
identifiers) might result in DAD failures, and hence identifiers) might result in DAD failures, and hence
implementations should be prepared to gracefully handle such implementations should be prepared to gracefully handle such
occurrences. occurrences.
Finally, we note that some popular and widely-deployed operating o Since some popular and widely-deployed operating systems (such as
systems (such as Microsoft Windows) do not employ unique identifiers Microsoft Windows) do not employ unique hardware identifiers for
for the Interface IDs of their stable addresses. Therefore, such the Interface IDs of their stable addresses, reliance on such
implementations would not be affected by the method specified in this unique identifiers is more reduced in the deployed world (fewer
document. deployed systems rely on them for the avoidance of address
collisions).
4. Resolving Duplicate Address Detection (DAD) conflicts 4. Resolving Duplicate Address Detection (DAD) conflicts
If as a result of performing Duplicate Address Detection (DAD) If as a result of performing Duplicate Address Detection (DAD)
[RFC4862] a host finds that the tentative address generated with the [RFC4862] a host finds that the tentative address generated with the
algorithm specified in Section 3 is a duplicate address, it SHOULD algorithm specified in Section 3 is a duplicate address, it SHOULD
resolve the address conflict by trying a new tentative address as resolve the address conflict by trying a new tentative address as
follows: follows:
o DAD_Counter is incremented by 1. o DAD_Counter is incremented by 1.
skipping to change at page 15, line 29 skipping to change at page 15, line 29
o They mitigate address-scanning techniques which leverage o They mitigate address-scanning techniques which leverage
predictable Interface Identifiers (e.g., known Organizationally predictable Interface Identifiers (e.g., known Organizationally
Unique Identifiers) [I-D.ietf-opsec-ipv6-host-scanning]. Unique Identifiers) [I-D.ietf-opsec-ipv6-host-scanning].
o They may result in IPv6 addresses that are independent of the o They may result in IPv6 addresses that are independent of the
underlying hardware (i.e. the resulting IPv6 addresses do not underlying hardware (i.e. the resulting IPv6 addresses do not
change if a network interface card is replaced) if an appropriate change if a network interface card is replaced) if an appropriate
source for Net_Iface (Section 3) is employed. source for Net_Iface (Section 3) is employed.
o They prevent the information leakage produced by embedding
hardware addresses in the Interface Identifier (which could be
exploited to launch device-specific attacks).
o Since the method specified in this document will result in
different Interface Identifiers for each configured address,
knowledge/leakage of the Interface Identifier employed for one
stable address of will not negatively affect the security/privacy
of other stable addresses configured for other prefixes (whether
at the same time or at some other point in time).
In scenarios in which an attacker can connect to the same subnet as a In scenarios in which an attacker can connect to the same subnet as a
victim node, the attacker might be able to learn the Interface victim node, the attacker might be able to learn the Interface
Identifier employed by the victim node for an arbitrary prefix, by Identifier employed by the victim node for an arbitrary prefix, by
simply sending a forged Router Advertisement [RFC4861] for that simply sending a forged Router Advertisement [RFC4861] for that
prefix, and subsequently learning the corresponding address prefix, and subsequently learning the corresponding address
configured by the victim node (either listening to the Duplicate configured by the victim node (either listening to the Duplicate
Address Detection packets, or to any other traffic that employs the Address Detection packets, or to any other traffic that employs the
newly configued address). We note that a number of factors might newly configured address). We note that a number of factors might
limit the ability of an attaker from successfully performing such limit the ability of an attacker from successfully performing such
attack: attack:
o First-Hop security mechanisms such as RA-Guard [RFC6105] o First-Hop security mechanisms such as RA-Guard [RFC6105]
[I-D.ietf-v6ops-ra-guard-implementation] could prevent the forged [I-D.ietf-v6ops-ra-guard-implementation] could prevent the forged
Router Advertisement from reaching the victim node Router Advertisement from reaching the victim node
o If the victim implementation includes the (optional) Network_ID o If the victim implementation includes the (optional) Network_ID
parameter for computing F() (see Section 3), and the Network_ID parameter for computing F() (see Section 3), and the Network_ID
employed by the victim for a remote network is unknown to the employed by the victim for a remote network is unknown to the
attacker, the Interface Identifier learned by the attacker would attacker, the Interface Identifier learned by the attacker would
skipping to change at page 17, line 12 skipping to change at page 17, line 12
thus possibly offering an interesting trade-off for those scenarios thus possibly offering an interesting trade-off for those scenarios
in which the use of temporary addresses is not feasible. in which the use of temporary addresses is not feasible.
8. Acknowledgements 8. Acknowledgements
The algorithm specified in this document has been inspired by Steven The algorithm specified in this document has been inspired by Steven
Bellovin's work ([RFC1948]) in the area of TCP sequence numbers. Bellovin's work ([RFC1948]) in the area of TCP sequence numbers.
The author would like to thank (in alphabetical order) Ran Atkinson, The author would like to thank (in alphabetical order) Ran Atkinson,
Karl Auer, Steven Bellovin, Matthias Bethke, Ben Campbell, Brian Karl Auer, Steven Bellovin, Matthias Bethke, Ben Campbell, Brian
Carpenter, Tassos Chatzithomaoglou, Alissa Cooper, Dominik Elsbroek, Carpenter, Tassos Chatzithomaoglou, Tim Chown, Alissa Cooper, Dominik
Brian Haberman, Bob Hinden, Christian Huitema, Ray Hunter, Jouni Elsbroek, Brian Haberman, Bob Hinden, Christian Huitema, Ray Hunter,
Korhonen, Eliot Lear, Jong-Hyouk Lee, Andrew McGregor, Tom Petch, Jouni Korhonen, Eliot Lear, Jong-Hyouk Lee, Andrew McGregor, Tom
Michael Richardson, Mark Smith, Ole Troan, and He Xuan, for providing Petch, Michael Richardson, Mark Smith, Ole Troan, James Woodyatt, and
valuable comments on earlier versions of this document. He Xuan, for providing valuable comments on earlier versions of this
document.
This document is based on the technical report "Security Assessment This document is based on the technical report "Security Assessment
of the Internet Protocol version 6 (IPv6)" [CPNI-IPv6] authored by of the Internet Protocol version 6 (IPv6)" [CPNI-IPv6] authored by
Fernando Gont on behalf of the UK Centre for the Protection of Fernando Gont on behalf of the UK Centre for the Protection of
National Infrastructure (CPNI). National Infrastructure (CPNI).
Fernando Gont would like to thank CPNI (http://www.cpni.gov.uk) for Fernando Gont would like to thank CPNI (http://www.cpni.gov.uk) for
their continued support. their continued support.
9. References 9. References
skipping to change at page 19, line 25 skipping to change at page 19, line 25
Networks", draft-ietf-opsec-ipv6-host-scanning-01 (work in Networks", draft-ietf-opsec-ipv6-host-scanning-01 (work in
progress), April 2013. progress), April 2013.
[I-D.ietf-v6ops-ra-guard-implementation] [I-D.ietf-v6ops-ra-guard-implementation]
Gont, F., "Implementation Advice for IPv6 Router Gont, F., "Implementation Advice for IPv6 Router
Advertisement Guard (RA-Guard)", Advertisement Guard (RA-Guard)",
draft-ietf-v6ops-ra-guard-implementation-07 (work in draft-ietf-v6ops-ra-guard-implementation-07 (work in
progress), November 2012. progress), November 2012.
[HDMoore] HD Moore, "The Wild West", Louisville, Kentucky, U.S.A. [HDMoore] HD Moore, "The Wild West", Louisville, Kentucky, U.S.A.
September 25-29, 2012., September 2012, September 25-29, 2012,
<https://speakerdeck.com/hdm/derbycon-2012-the-wild-west>. <https://speakerdeck.com/hdm/derbycon-2012-the-wild-west>.
[Gont-DEEPSEC2011] [Gont-DEEPSEC2011]
Gont, "Results of a Security Assessment of the Internet Gont, "Results of a Security Assessment of the Internet
Protocol version 6 (IPv6)", DEEPSEC 2011 Conference, Protocol version 6 (IPv6)", DEEPSEC 2011 Conference,
Vienna, Austria, November 2011, <http:// Vienna, Austria, November 2011, <http://
www.si6networks.com/presentations/deepsec2011/ www.si6networks.com/presentations/deepsec2011/
fgont-deepsec2011-ipv6-security.pdf>. fgont-deepsec2011-ipv6-security.pdf>.
[Gont-BRUCON2012] [Gont-BRUCON2012]
skipping to change at page 21, line 20 skipping to change at page 21, line 20
trade-offs, which may vary from one implementation to another. trade-offs, which may vary from one implementation to another.
A.1. Interface Index A.1. Interface Index
The Interface Index [RFC3493] [RFC3542] of an interface uniquely The Interface Index [RFC3493] [RFC3542] of an interface uniquely
identifies an interface within a node. However, these identifiers identifies an interface within a node. However, these identifiers
might or might not have the stability properties required for the might or might not have the stability properties required for the
Net_Iface value employed by this method. For example, the Interface Net_Iface value employed by this method. For example, the Interface
Index might change upon removal or installation of a network Index might change upon removal or installation of a network
interface (typically one with a smaller value for the Interface interface (typically one with a smaller value for the Interface
Index, when such a naming scheme is used), or when network interface Index, when such a naming scheme is used), or when network interfaces
happen to be initialized in a different order. We note that some happen to be initialized in a different order. We note that some
implementations are known to provide configuration knobs to set the implementations are known to provide configuration knobs to set the
Interface Index for a given interface. Such configuration knobs Interface Index for a given interface. Such configuration knobs
could be employed to prevent the Interface Index from changing (e.g. could be employed to prevent the Interface Index from changing (e.g.
as a result of the removal of a network interface). as a result of the removal of a network interface).
A.2. Interface Name A.2. Interface Name
The Interface Name (e.g., "eth0", "em0", etc) tends to be more stable The Interface Name (e.g., "eth0", "em0", etc) tends to be more stable
than the underlying Interface Index, since such stability is than the underlying Interface Index, since such stability is
skipping to change at page 21, line 49 skipping to change at page 21, line 49
from a different vendor. from a different vendor.
We note that Interface Names might still change when network We note that Interface Names might still change when network
interfaces are added or removed once the system has been bootstrapped interfaces are added or removed once the system has been bootstrapped
(for example, consider Universal Serial Bus-based network interface (for example, consider Universal Serial Bus-based network interface
cards which might be added or removed once the system has been cards which might be added or removed once the system has been
bootstrapped). bootstrapped).
A.3. Link-layer Addresses A.3. Link-layer Addresses
Link-layer addresses typically provide for unique identfiers for Link-layer addresses typically provide for unique identifiers for
network interfaces; although, for obvious reasons, they generally network interfaces; although, for obvious reasons, they generally
change when a network interface card is replaced. In scenarios where change when a network interface card is replaced. In scenarios where
neither Interface Indexes nor Interface Names have the stability neither Interface Indexes nor Interface Names have the stability
properties specified in Section 3 for Net_Iface, an implementation properties specified in Section 3 for Net_Iface, an implementation
might want to employ the link-layer address of the interface for the might want to employ the link-layer address of the interface for the
Net_Iface parameter, albeit at the expense of making the Net_Iface parameter, albeit at the expense of making the
corresponding IPv6 addresses dependent on the underlying network corresponding IPv6 addresses dependent on the underlying network
interface card (i.e., the corresponding IPv6 address would typically interface card (i.e., the corresponding IPv6 address would typically
change upon replacement of the underlying network interface card). change upon replacement of the underlying network interface card).
A.4. Logical Network Service Identity
Host operating systems with a conception of logical network service
identity, distinct from network interface identity or index, may keep
a Universally Unique Identifier (UUID) or similar number with the
stability properties appropriate for use as the Net_Iface parameter.
Appendix B. Privacy issues still present when temporary addresses are Appendix B. Privacy issues still present when temporary addresses are
employed employed
It is not unusual for people to assume or expect that all the It is not unusual for people to assume or expect that all the
security/privacy implications of traditional SLAAC addresses to me security/privacy implications of traditional SLAAC addresses are
mitigated when "temporary addresses" [RFC4941] are employed. mitigated when "temporary addresses" [RFC4941] are employed.
However, as noted in Section 1 of this document and [IAB-PRIVACY], However, as noted in Section 1 of this document and [IAB-PRIVACY],
since temporary addresses are employed in addition to (rather than in since temporary addresses are employed in addition to (rather than in
replacement of) traditional SLAAC addresses, many of the security/ replacement of) traditional SLAAC addresses, many of the security/
privacy implications of traditional SLAAC addresses are not mitigated privacy implications of traditional SLAAC addresses are not mitigated
by the use of temporary addresses. by the use of temporary addresses.
This section discusses a (non-exhaustive) number of scenarios in This section discusses a (non-exhaustive) number of scenarios in
which host security/privacy is still negatively affected as a result which host security/privacy is still negatively affected as a result
of employing Interface Identifiers that are constant across networks of employing Interface Identifiers that are constant across networks
(e.g., those resulting from embedding IEEE identifiers), even when (e.g., those resulting from embedding IEEE identifiers), even when
temporary addresses [RFC4941] are employed. It aims to clarify the temporary addresses [RFC4941] are employed. It aims to clarify the
motivation of employing the method specified in this document in motivation of employing the method specified in this document in
replacement of the traditional SLAAC addresses even when privacy/ replacement of the traditional SLAAC addresses even when privacy/
temporary addresses [RFC4941] are employed. temporary addresses [RFC4941] are employed.
B.1. Host tracking B.1. Host tracking
This section describes one possible attack scenario that illustrates This section describes two attack scenarios which illustrate that
that host-tracking may still be possible when privacy/temporary host-tracking may still be possible when privacy/temporary addresses
addresses [RFC4941] are employed. [RFC4941] are employed. These examples should remind us that one
should not disclose more than it is really needed for achieving a
specific goal (and an Interface Identifier that is constant across
different networks does exactly that: it discloses more information
than is needed for providing a stable address).
B.1.1. Tracking hosts across networks #1 B.1.1. Tracking hosts across networks #1
A host configures its stable addresses with the constant Interface A host configures its stable addresses with the constant Interface
Identifier, and runs any application that needs to perform a server- Identifier, and runs any application that needs to perform a server-
like function (e.g. a peer-to-peer application). As a result of like function (e.g. a peer-to-peer application). As a result of
that, an attacker/user participating in the same application (e.g., that, an attacker/user participating in the same application (e.g.,
P2P) would learn the constant Interface Identifier used by the host P2P) would learn the constant Interface Identifier used by the host
for that network interface. for that network interface.
Some time later, the same host moves to a completely different Some time later, the same host moves to a completely different
network, and employs the same P2P application, probably even with a network, and employs the same P2P application. The attacker now
different username. The attacker now interacts with the same host interacts with the same host again, and hence can learn its newly-
again, and hence can learn its newly-configured stable address. configured stable address. Since the Interface Identifier is the
Since the Interface Identifier is the same as the one used before, same as the one used before, the attacker can infer that it is
the attacker can infer that it is communicating with the same device communicating with the same device as before.
as before.
This is just *one* possible attack scenario, which should remind us
that one should not disclose more than it is really needed for
achieving a specific goal (and an Interface Identifier that is
constant across different networks does exactly that: it discloses
more information than is needed for providing a stable address).
B.1.2. Tracking hosts across networks #2 B.1.2. Tracking hosts across networks #2
Once an attacker learns the constant Interface Identifier employed by Once an attacker learns the constant Interface Identifier employed by
the victim host for its stable address, the attacker is able to the victim host for its stable address, the attacker is able to
"probe" a network for the presence of such host at any given network. "probe" a network for the presence of such host at any given network.
See Appendix B.1.1 for just one example of how an attacker could See Appendix B.1.1 for just one example of how an attacker could
learn such value. Other examples include being able to share the learn such value. Other examples include being able to share the
same network segment at some point in time (e.g. a conference same network segment at some point in time (e.g. a conference
skipping to change at page 25, line 8 skipping to change at page 25, line 7
While it is usually assumed that IPv6 address-scanning attacks are While it is usually assumed that IPv6 address-scanning attacks are
unfeasible, an attacker can leverage address patterns in IPv6 unfeasible, an attacker can leverage address patterns in IPv6
addresses to greatly reduce the search space addresses to greatly reduce the search space
[I-D.ietf-opsec-ipv6-host-scanning] [Gont-BRUCON2012]. Addresses [I-D.ietf-opsec-ipv6-host-scanning] [Gont-BRUCON2012]. Addresses
that embed IEEE identifiers result in one of such patterns that could that embed IEEE identifiers result in one of such patterns that could
be leveraged to reduce the search space when other nodes employ the be leveraged to reduce the search space when other nodes employ the
same IEEE OUI (Organizationally Unique Identifier). same IEEE OUI (Organizationally Unique Identifier).
As noted earlier in this document, temporary addresses [RFC4941] do As noted earlier in this document, temporary addresses [RFC4941] do
not replace/eliminate the use of IPv6 addresses that embed IEEE not replace/eliminate the use of IPv6 addresses that embed IEEE
identifiers (they are employed *in addition* to those), and hence identifiers (they are employed in addition to those), and hence hosts
hosts implementing [RFC4941] would still be vulnerable to address- implementing [RFC4941] would still be vulnerable to address-scanning
scanning attacks. The method specified in this document is meant as attacks. The method specified in this document is meant as an
an alternative to addresses that embed IEEE identifiers, and hence alternative to addresses that embed IEEE identifiers, and hence
eliminates such patterns (thus mitigating the aforementioned address- eliminates such patterns (thus mitigating the aforementioned address-
scanning attacks). scanning attacks).
B.3. Information Leakage B.3. Information Leakage
IPv6 addresses embedding IEEE identifiers leak information about the IPv6 addresses embedding IEEE identifiers leak information about the
device (Network Interface Card vendor, or even Operating System device (Network Interface Card vendor, or even Operating System
and/or software type), which could be leveraged by an attacker with and/or software type), which could be leveraged by an attacker with
device/software-specific vulnerabilities knowledge to quickly find device/software-specific vulnerabilities knowledge to quickly find
possible targets. Since temporary addresses do not replace the possible targets. Since temporary addresses do not replace the
traditional SLAAC addresses that typically embedd IEEE identifiers, traditional SLAAC addresses that typically embed IEEE identifiers,
employing temporary addresses does not eliminate this possible employing temporary addresses does not eliminate this possible
information leakage. information leakage.
Author's Address Author's Address
Fernando Gont Fernando Gont
SI6 Networks / UTN-FRH SI6 Networks / UTN-FRH
Evaristo Carriego 2644 Evaristo Carriego 2644
Haedo, Provincia de Buenos Aires 1706 Haedo, Provincia de Buenos Aires 1706
Argentina Argentina
 End of changes. 37 change blocks. 
90 lines changed or deleted 133 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/