draft-ietf-6man-stable-privacy-addresses-08.txt   draft-ietf-6man-stable-privacy-addresses-09.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 24, 2013 Intended status: Standards Track June 3, 2013
Expires: November 25, 2013 Expires: December 5, 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-08 draft-ietf-6man-stable-privacy-addresses-09
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 hardware alternative to generating Interface Identifiers based on hardware
address (e.g., using IEEE identifiers), such that the benefits of address (e.g., using IEEE identifiers), such that the benefits of
skipping to change at page 1, line 41 skipping to change at page 1, line 41
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 25, 2013. This Internet-Draft will expire on December 5, 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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Design goals . . . . . . . . . . . . . . . . . . . . . . . . . 6 2. Design goals . . . . . . . . . . . . . . . . . . . . . . . . . 7
3. Algorithm specification . . . . . . . . . . . . . . . . . . . 7 3. Algorithm specification . . . . . . . . . . . . . . . . . . . 8
4. Resolving Duplicate Address Detection (DAD) conflicts . . . . 12 4. Resolving Duplicate Address Detection (DAD) conflicts . . . . 13
5. Specified Constants . . . . . . . . . . . . . . . . . . . . . 13 5. Specified Constants . . . . . . . . . . . . . . . . . . . . . 14
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15
7. Security Considerations . . . . . . . . . . . . . . . . . . . 15 7. Security Considerations . . . . . . . . . . . . . . . . . . . 16
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 17 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 18
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 18 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 19
9.1. Normative References . . . . . . . . . . . . . . . . . . . 18 9.1. Normative References . . . . . . . . . . . . . . . . . . . 19
9.2. Informative References . . . . . . . . . . . . . . . . . . 18 9.2. Informative References . . . . . . . . . . . . . . . . . . 20
Appendix A. Possible sources for the Net_Iface parameter . . . . 21 Appendix A. Possible sources for the Net_Iface parameter . . . . 22
A.1. Interface Index . . . . . . . . . . . . . . . . . . . . . 21 A.1. Interface Index . . . . . . . . . . . . . . . . . . . . . 22
A.2. Interface Name . . . . . . . . . . . . . . . . . . . . . . 21 A.2. Interface Name . . . . . . . . . . . . . . . . . . . . . . 22
A.3. Link-layer Addresses . . . . . . . . . . . . . . . . . . . 21 A.3. Link-layer Addresses . . . . . . . . . . . . . . . . . . . 22
A.4. Logical Network Service Identity . . . . . . . . . . . . . 22 A.4. Logical Network Service Identity . . . . . . . . . . . . . 23
Appendix B. Privacy issues still present when temporary Appendix B. Security/privacy issues with traditional SLAAC
addresses are employed . . . . . . . . . . . . . . . 23 addresses . . . . . . . . . . . . . . . . . . . . . . 24
B.1. Host tracking . . . . . . . . . . . . . . . . . . . . . . 23 B.1. Correlation of node activities within the same network . . 24
B.1.1. Tracking hosts across networks #1 . . . . . . . . . . 23 B.2. Correlation of node activities across networks . . . . . . 24
B.1.2. Tracking hosts across networks #2 . . . . . . . . . . 24 B.3. Host-tracking attacks . . . . . . . . . . . . . . . . . . 24
B.1.3. Revealing the identity of devices performing B.4. Address-scanning attacks . . . . . . . . . . . . . . . . . 25
server-like functions . . . . . . . . . . . . . . . . 24 B.5. Exploitation of device-specific information . . . . . . . 25
B.2. Address-scanning attacks . . . . . . . . . . . . . . . . . 24 Appendix C. Privacy issues still present when temporary
B.3. Information Leakage . . . . . . . . . . . . . . . . . . . 25 addresses are employed . . . . . . . . . . . . . . . 26
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 26 C.1. Host tracking . . . . . . . . . . . . . . . . . . . . . . 26
C.1.1. Tracking hosts across networks #1 . . . . . . . . . . 26
C.1.2. Tracking hosts across networks #2 . . . . . . . . . . 27
C.1.3. Revealing the identity of devices performing
server-like functions . . . . . . . . . . . . . . . . 27
C.2. Address-scanning attacks . . . . . . . . . . . . . . . . . 27
C.3. Information Leakage . . . . . . . . . . . . . . . . . . . 28
C.4. Correlation of node activities within a network . . . . . 28
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 29
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].
Cryptographically Generated Addresses (CGAs) [RFC3972] are yet Cryptographically Generated Addresses (CGAs) [RFC3972] are yet
skipping to change at page 3, line 42 skipping to change at page 3, line 42
o since embedding the underlying link-layer address in the Interface o since embedding the underlying link-layer address in the Interface
Identifier will result in specific address patterns, such patterns Identifier will result in specific address patterns, such patterns
may 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. For example, the IPv6 performing address scanning attacks. For example, the IPv6
addresses of all nodes manufactured by the same vendor (at a given addresses of all nodes manufactured by the same vendor (at a given
time frame) will likely contain the same IEEE Organizationally time frame) will likely contain the same IEEE Organizationally
Unique Identifier (OUI) in the Interface Identifier. 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 leaks device-specific information that could be
leveraged to launch device-specific attacks.
o embedding the underlying link-layer address in the Interface
Identifier means that replacement of the underlying interface Identifier means that replacement of the underlying interface
hardware will result in a change of the IPv6 address(es) assigned hardware will result in a change of the IPv6 address(es) assigned
to that interface. to that interface.
Appendix B provides additional details regarding how these
vulnerabilities could be exploited, and the extent to which the
method discussed in this document mitigates them.
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 (e.g. IPv6 addresses in web server logs or
email headers, etc.) 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).
It should be noted that temporary addresses can be challenging in
a number of areas. For example, from a network-management point
of view, they tend to increase the complexity of event logging,
trouble-shooting, enforcement of access controls and quality of
service, etc. As a result, some organizations disable the use of
temporary addresses even at the expense of reduced privacy
[Broersma]. Temporary addresses may also result in increased
implementation complexity, which might not be possible or
desirable in some implementations (e.g., some embedded devices).
In scenarios in which temporary addresses are deliberately not
used (possibly for any of the aforementioned reasons), all a host
is left with is the stable addresses that have been generated
using e.g. IEEE identifiers. In such scenarios, it may still be
desirable to have addresses that mitigate address scanning
attacks, and that at the very least do not reveal the node's
identity when roaming from one network to another -- without
complicating the operation of the corresponding networks.
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 C.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].
Hence, there is a motivation to improve the properties of "stable" Hence, there is a motivation to improve the properties of "stable"
addresses regardless of whether temporary addresses are employed or addresses regardless of whether temporary addresses are employed or
not. not.
Additionally, it should be noted that temporary addresses can be We note that attackers can employ a plethora of probing techniques
challenging in a number of areas. For example, from a network- [I-D.ietf-opsec-ipv6-host-scanning] to exploit the aforementioned
management point of view, they tend to increase the complexity of issues. Some of them (such as the use of ICMPv6 Echo Request and
event logging, trouble-shooting, enforcement of access controls and ICMPv6 Echo Response packets) could mitigated by a personal firewall
quality of service, etc. As a result, some organizations disable the at the target host. For other vectors, such listening to ICMPv6
use of temporary addresses even at the expense of reduced privacy "Destination Unreachable, Address Unreachable" (Type 1, Code 3) error
[Broersma]. Temporary addresses may also result in increased messages referring to the target addresses
implementation complexity, which might not be possible or desirable [I-D.ietf-opsec-ipv6-host-scanning], there is nothing a host can do
in some implementations (e.g., some embedded devices). (e.g., a personal firewall at the target host would not be able to
mitigate this probing technique).
In scenarios in which temporary addresses are deliberately not used
(possibly for any of the aforementioned reasons), all a host is left
with is the stable addresses that have been generated using e.g.
IEEE identifiers. In such scenarios, it may still be desirable to
have addresses that mitigate address scanning attacks, and that at
the very least do not reveal the node's identity when roaming from
one network to another -- without complicating the operation of the
corresponding networks.
We note that even with temporary addresses [RFC4941] in place,
preventing correlation of activities of a node within a network
may be difficult (if at all possible) to achieve. As a trivial
example, consider a scenario where there is a single node (or a
reduced number of nodes) connected to a specific network. An
attacker could detect new addresses in use at that network, an
infer which addresses are being employed by which hosts. This
task is made particularly easier by the fact that use of
"temporary addresses" can be easily inferred (since the follow
different patterns from that of traditional SLAAC addresses), and
since they are re-generated periodically (i.e., after a specific
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.
The method specified in this document is a orthogonal to the use of The method specified in this document is a orthogonal to the use of
skipping to change at page 6, line 46 skipping to change at page 7, line 46
o The method specified in this document is meant to be an o The method specified in this document is meant to be an
alternative to producing IPv6 addresses based on e.g. IEEE alternative to producing IPv6 addresses based on e.g. IEEE
identifiers (as specified in [RFC2464]). It is meant to be identifiers (as specified in [RFC2464]). It is meant to be
employed for all of the stable (i.e. non-temporary) IPv6 addresses employed for all of the stable (i.e. non-temporary) IPv6 addresses
configured with SLAAC for a given interface, including global, configured with SLAAC for a given interface, including global,
link-local, and unique-local IPv6 addresses. 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]. When employed along "temporary addresses", the method [RFC4941]. When employed along with "temporary addresses", the
specified in this document will mitigate address-scanning attacks and method specified in this document will mitigate address-scanning
correlation of node activities across networks (see Appendix B and attacks and correlation of node activities across networks (see
[IAB-PRIVACY]). On the other hand, hosts that do not implement/use Appendix C and [IAB-PRIVACY]). On the other hand, hosts that do not
"temporary addresses" but employ the method specified in this implement/use "temporary addresses" but employ the method specified
document would, at the very least, mitigate the host-tracking and in this document would, at the very least, mitigate the host-tracking
address scanning issues discussed in the previous section. and 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]). However, addresses (such as those specified in [RFC2464]). However,
implementations conforming to this specification MAY employ the implementations conforming to this specification MAY employ the
algorithm specified in [RFC4941] to generate temporary addresses in algorithm specified in [RFC4941] to generate temporary addresses in
addition to the addresses generated with the algorithm specified in addition to the addresses generated with the algorithm specified in
this document. The method specified in this document MUST be this document. The method specified in this document MUST be
employed for generating the Interface Identifiers for all the stable employed for generating the Interface Identifiers for all the stable
addresses of a given interface, including IPv6 global, link-local, addresses of a given interface, including IPv6 global, link-local,
and unique-local addresses. 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
skipping to change at page 8, line 46 skipping to change at page 9, line 46
secret_key: secret_key:
A secret key that is not known by the attacker. The secret A secret key that is not known by the attacker. The secret
key MUST be initialized at operating system installation time key MUST be initialized at operating system installation time
to a pseudo-random number (see [RFC4086] for randomness to a pseudo-random number (see [RFC4086] for randomness
requirements for security). An implementation MAY provide the requirements for security). An implementation MAY provide the
means for the the system administrator to change or display means for the the system administrator to change or display
the secret key. the secret key.
2. The Interface Identifier is finally obtained by taking as many 2. The Interface Identifier is finally obtained by taking as many
bits from the RID value (computed in the previous step) as bits from the RID value (computed in the previous step) as
necessary, starting from the rightmost bit. necessary, starting from the least significant bit.
We note that [RFC4291] requires that, the Interface IDs of all We note that [RFC4291] requires that, the Interface IDs of all
unicast addresses (except those that start with the binary unicast addresses (except those that start with the binary
value 000) be 64-bit long. However, the method discussed in value 000) be 64-bit long. However, the method discussed in
this document could be employed for generating Interface IDs this document could be employed for generating Interface IDs
of any arbitrary length, albeit at the expense of reduced of any arbitrary length, albeit at the expense of reduced
entropy (when employing Interface IDs smaller than 64 bits). entropy (when employing Interface IDs smaller than 64 bits).
The resulting Interface Identifier should be compared against the The resulting Interface Identifier should be compared against the
Subnet-Router Anycast [RFC4291] and the Reserved Subnet Anycast Subnet-Router Anycast [RFC4291] and the Reserved Subnet Anycast
skipping to change at page 15, line 18 skipping to change at page 16, line 18
Identifiers to be used with IPv6 Stateless Address Autoconfiguration Identifiers to be used with IPv6 Stateless Address Autoconfiguration
(SLAAC), as an alternative to e.g. Interface Identifiers that embed (SLAAC), as an alternative to e.g. Interface Identifiers that embed
IEEE identifiers (such as those specified in [RFC2464]). When IEEE identifiers (such as those specified in [RFC2464]). When
compared to such identifiers, the identifiers specified in this compared to such identifiers, the identifiers specified in this
document have a number of advantages: document have a number of advantages:
o They prevent trivial host-tracking, since when a host moves from o They prevent trivial host-tracking, since when a host moves from
one network to another the network prefix used for one network to another the network prefix used for
autoconfiguration and/or the Network ID (e.g., IEEE 802.11 SSID) autoconfiguration and/or the Network ID (e.g., IEEE 802.11 SSID)
will typically change, and hence the resulting Interface will typically change, and hence the resulting Interface
Identifier will also change (see Appendix B.1). Identifier will also change (see Appendix C.1).
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.
skipping to change at page 15, line 48 skipping to change at page 16, line 48
at the same time or at some other point in time). 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 configured 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 attacker from successfully performing such limit the ability of an attacker to successfully perform such an
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 16, line 29 skipping to change at page 17, line 29
Interface Identifiers such as those specified in [RFC2464], but is Interface Identifiers such as those specified in [RFC2464], but is
not meant as an alternative to temporary Interface Identifiers (such not meant as an alternative to temporary Interface Identifiers (such
as those specified in [RFC4941]). Clearly, temporary addresses may as those specified in [RFC4941]). Clearly, temporary addresses may
help to mitigate the correlation of activities of a node within the help to mitigate the correlation of activities of a node within the
same network, and may also reduce the attack exposure window (since same network, and may also reduce the attack exposure window (since
temporary addresses are short-lived when compared to the addresses temporary addresses are short-lived when compared to the addresses
generated with the method specified in this document). We note that generated with the method specified in this document). We note that
implementation of this algorithm would still benefit those hosts implementation of this algorithm would still benefit those hosts
employing "temporary addresses", since it would mitigate host- employing "temporary addresses", since it would mitigate host-
tracking vectors still present when such addresses are used (see tracking vectors still present when such addresses are used (see
Appendix B.1), and would also mitigate address-scanning techniques Appendix C.1), and would also mitigate address-scanning techniques
that leverage patterns in IPv6 addresses that embed IEEE identifiers. that leverage patterns in IPv6 addresses that embed IEEE identifiers.
Finally, we note that the method described in this document addresses Finally, we note that the method described in this document addresses
some of the privacy concerns arising from the use of IPv6 addresses some of the privacy concerns arising from the use of IPv6 addresses
that embed IEEE identifiers, without the use of temporary addresses, that embed IEEE identifiers, without the use of temporary addresses,
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, Tim Chown, Alissa Cooper, Dominik Carpenter, Tassos Chatzithomaoglou, Tim Chown, Alissa Cooper, Dominik
Elsbroek, Brian Haberman, Bob Hinden, Christian Huitema, Ray Hunter, Elsbroek, Brian Haberman, Bob Hinden, Christian Huitema, Ray Hunter,
Jouni Korhonen, Eliot Lear, Jong-Hyouk Lee, Andrew McGregor, Tom Jouni Korhonen, Eliot Lear, Jong-Hyouk Lee, Andrew McGregor, Tom
Petch, Michael Richardson, Mark Smith, Ole Troan, James Woodyatt, and Petch, Michael Richardson, Mark Smith, Dave Thaler, Ole Troan, James
He Xuan, for providing valuable comments on earlier versions of this Woodyatt, and He Xuan, for providing valuable comments on earlier
document. 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 18, line 18 skipping to change at page 19, line 18
[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", RFC 2460, December 1998. (IPv6) Specification", RFC 2460, December 1998.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2526] Johnson, D. and S. Deering, "Reserved IPv6 Subnet Anycast [RFC2526] Johnson, D. and S. Deering, "Reserved IPv6 Subnet Anycast
Addresses", RFC 2526, March 1999. Addresses", RFC 2526, March 1999.
[RFC3493] Gilligan, R., Thomson, S., Bound, J., McCann, J., and W.
Stevens, "Basic Socket Interface Extensions for IPv6",
RFC 3493, February 2003.
[RFC3542] Stevens, W., Thomas, M., Nordmark, E., and T. Jinmei,
"Advanced Sockets Application Program Interface (API) for
IPv6", RFC 3542, May 2003.
[RFC3971] Arkko, J., Kempf, J., Zill, B., and P. Nikander, "SEcure [RFC3971] Arkko, J., Kempf, J., Zill, B., and P. Nikander, "SEcure
Neighbor Discovery (SEND)", RFC 3971, March 2005. Neighbor Discovery (SEND)", RFC 3971, March 2005.
[RFC3972] Aura, T., "Cryptographically Generated Addresses (CGA)", [RFC3972] Aura, T., "Cryptographically Generated Addresses (CGA)",
RFC 3972, March 2005. RFC 3972, March 2005.
[RFC4086] Eastlake, D., Schiller, J., and S. Crocker, "Randomness [RFC4086] Eastlake, D., Schiller, J., and S. Crocker, "Randomness
Requirements for Security", BCP 106, RFC 4086, June 2005. Requirements for Security", BCP 106, RFC 4086, June 2005.
[RFC4122] Leach, P., Mealling, M., and R. Salz, "A Universally
Unique IDentifier (UUID) URN Namespace", RFC 4122,
July 2005.
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing
Architecture", RFC 4291, February 2006. Architecture", RFC 4291, February 2006.
[RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
"Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
September 2007. September 2007.
[RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless
Address Autoconfiguration", RFC 4862, September 2007. Address Autoconfiguration", RFC 4862, September 2007.
skipping to change at page 19, line 5 skipping to change at page 20, line 17
February 2011. February 2011.
9.2. Informative References 9.2. Informative References
[RFC1948] Bellovin, S., "Defending Against Sequence Number Attacks", [RFC1948] Bellovin, S., "Defending Against Sequence Number Attacks",
RFC 1948, May 1996. RFC 1948, May 1996.
[RFC2464] Crawford, M., "Transmission of IPv6 Packets over Ethernet [RFC2464] Crawford, M., "Transmission of IPv6 Packets over Ethernet
Networks", RFC 2464, December 1998. Networks", RFC 2464, December 1998.
[RFC3493] Gilligan, R., Thomson, S., Bound, J., McCann, J., and W.
Stevens, "Basic Socket Interface Extensions for IPv6",
RFC 3493, February 2003.
[RFC3542] Stevens, W., Thomas, M., Nordmark, E., and T. Jinmei,
"Advanced Sockets Application Program Interface (API) for
IPv6", RFC 3542, May 2003.
[I-D.ietf-opsec-ipv6-host-scanning] [I-D.ietf-opsec-ipv6-host-scanning]
Gont, F. and T. Chown, "Network Reconnaissance in IPv6 Gont, F. and T. Chown, "Network Reconnaissance in IPv6
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.
skipping to change at page 22, line 15 skipping to change at page 23, line 15
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 A.4. Logical Network Service Identity
Host operating systems with a conception of logical network service Host operating systems with a conception of logical network service
identity, distinct from network interface identity or index, may keep identity, distinct from network interface identity or index, may keep
a Universally Unique Identifier (UUID) or similar number with the a Universally Unique Identifier (UUID) [RFC4122] or similar
stability properties appropriate for use as the Net_Iface parameter. identifier with the stability properties appropriate for use as the
Net_Iface parameter.
Appendix B. Privacy issues still present when temporary addresses are Appendix B. Security/privacy issues with traditional SLAAC addresses
This section provides additional details regarding security/privacy
issues arising from traditional SLAAC addresses- Namely, it provides
additional details regarding how those issues could be exploited, and
the extent to which the method specified in this document mitigates
such issues.
B.1. Correlation of node activities within the same network
Since traditional SLAAC addresses employ Interface Identifiers that
are constant within the same network, such identifiers can be
leveraged to correlate the activities of a node within the same
network. One sample scenario is that in which a client repeatedly
connects to a server over a period of time, and hence, based on the
stable Interface Identifier, the server can correlate all
communication instances as being initiated by the same node.
The method specified in this document does not mitigate this attack
vector, since it produces Interface Identifiers that are constant
within a given network.
This attack vector could only be mitigated by employing "temporary
addresses" [RFC4941]. However, as noted earlier in this document,
in scenarios in which there is a reduced number of nodes in a
given network, mitigation of this vector might be difficult (if at
all possible) -- even with "temporary addresses" [RFC4941] in
place.
B.2. Correlation of node activities across networks
Since traditional SLAAC addresses employ Interface Identifiers that
are constant across networks, such identifiers can be leveraged to
correlate the activities of a node across networks. One sample
scenario is that in which a client repeatedly connects to a server
over a period of time, and hence, based on the stable Interface
Identifier, the server can correlate all communication instances as
being initiated by the same node. Since the method specified in this
document results in Interface Identifiers that are not constant
across networks, this attack vector is mitigated.
B.3. Host-tracking attacks
Since traditional SLAAC addresses employ Interface Identifiers that
are constant across networks, such identifiers can be leveraged to
track a node across networks.
For example, let us assume that the attacker knows the Interface
Identifier employed by the target node. If the target node contacts
an attacker-operated node each time it moves from one network to
another, the attacker will be able to track the node as it moves from
one network to another.
An active version of this attack would imply that, once the Interface
Identifier is known to the attacker the attacker probes whether there
is an address with that Interface Identifier in each target network
(i.e., in each network the client might connect to). If such address
is found to be "alive", then the attacker could infer that the target
node has connected to the corresponding network.
This vector is discussed in detail in Appendix C.1.2.
Since the method specified in this document results in Interface
Identifiers that are not constant across networks, this attack vector
is mitigated.
B.4. Address-scanning attacks
Since traditional SLAAC addresses typically embed the underlying
link-layer address, the aforementioned addresses follow specific
patterns that can be leveraged to reduce the search space when
performing IPv6 address-scanning attacks (this is discussed in detail
in [I-D.ietf-opsec-ipv6-host-scanning]). The method specified in
this document produces random (but table within each subnet)
Interface Identifiers, thus mitigating this attack vector.
B.5. Exploitation of device-specific information
Since traditional SLAAC addresses typically embed the underlying
link-layer address, the aforementioned addresses leaks device-
specific information that might be leveraged to launch device-
specific attacks. For example, an attacker with knowledge about a
specific vulnerability in devices manufactured by some vendor might
easily identify potential targets by looking at the Interface
Identifier of a list of IPv6 addresses. The method specified in this
document produces random (but table within each subnet) Interface
Identifiers, thus mitigating this attack vector.
Appendix C. 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 are 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 C.1. Host tracking
This section describes two attack scenarios which illustrate that This section describes two attack scenarios which illustrate that
host-tracking may still be possible when privacy/temporary addresses host-tracking may still be possible when privacy/temporary addresses
[RFC4941] are employed. These examples should remind us that one [RFC4941] are employed. These examples should remind us that one
should not disclose more than it is really needed for achieving a should not disclose more than it is really needed for achieving a
specific goal (and an Interface Identifier that is constant across specific goal (and an Interface Identifier that is constant across
different networks does exactly that: it discloses more information different networks does exactly that: it discloses more information
than is needed for providing a stable address). than is needed for providing a stable address).
B.1.1. Tracking hosts across networks #1 C.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. The attacker now network, and employs the same P2P application. The attacker now
interacts with the same host again, and hence can learn its newly- interacts with the same host again, and hence can learn its newly-
configured stable address. Since the Interface Identifier is the configured stable address. Since the Interface Identifier is the
same as the one used before, the attacker can infer that it is same as the one used before, the attacker can infer that it is
communicating with the same device as before. communicating with the same device as before.
B.1.2. Tracking hosts across networks #2 C.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 C.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
network or any public network), etc. network or any public network), etc.
For example, if an attacker learns that in one network the victim For example, if an attacker learns that in one network the victim
used the Interface Identifier 1111:2222:3333:4444 for its stable used the Interface Identifier 1111:2222:3333:4444 for its stable
addresses, then he could subsequently probe for the presence of such addresses, then he could subsequently probe for the presence of such
device in the network 2011:db8::/64 by sending a probe packet (ICMPv6 device in the network 2011:db8::/64 by sending a probe packet (ICMPv6
Echo Request, or any other probe packet) to the address 2001:db8:: Echo Request, or any other probe packet) to the address 2001:db8::
1111:2222:3333:4444. 1111:2222:3333:4444.
B.1.3. Revealing the identity of devices performing server-like C.1.3. Revealing the identity of devices performing server-like
functions functions
Some devices, such as storage devices, may typically perform server- Some devices, such as storage devices, may typically perform server-
like functions and may be usually moved from one network to another. like functions and may be usually moved from one network to another.
Such devices are likely to simply disable (or not even implement) Such devices are likely to simply disable (or not even implement)
privacy/temporary addresses [RFC4941]. If the aforementioned devices privacy/temporary addresses [RFC4941]. If the aforementioned devices
employ Interface Identifiers that are constant across networks, it employ Interface Identifiers that are constant across networks, it
would be trivial for an attacker to tell whether the same device is would be trivial for an attacker to tell whether the same device is
being used across networks by simply looking at the Interface being used across networks by simply looking at the Interface
Identifier. Clearly, performing server-like functions should not Identifier. Clearly, performing server-like functions should not
imply that a device discloses its identity (i.e., that the attacker imply that a device discloses its identity (i.e., that the attacker
can tell whether it is the same device providing some function in two can tell whether it is the same device providing some function in two
different networks, at two different points in time). different networks, at two different points in time).
The scheme proposed in this document prevents such information The scheme proposed in this document prevents such information
leakage by causing nodes to generate different Interface Identifiers leakage by causing nodes to generate different Interface Identifiers
when moving from one network to another, thus mitigating this kind of when moving from one network to another, thus mitigating this kind of
privacy attack. privacy attack.
B.2. Address-scanning attacks C.2. Address-scanning attacks
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 hosts identifiers (they are employed in addition to those), and hence hosts
implementing [RFC4941] would still be vulnerable to address-scanning implementing [RFC4941] would still be vulnerable to address-scanning
attacks. The method specified in this document is meant as an attacks. The method specified in this document is meant as 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 C.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 embed 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.
C.4. Correlation of node activities within a network
In scenarios in which the number of nodes connected to a subnetwork
is small, preventing the correlation of the activities of those nodes
within such network might be difficult (if at all possible) to
achieve, even with temporary addresses [RFC4941] in place. As a
trivial example, consider a scenario where there is a single node (or
a reduced number of nodes) connected to a specific network. An
attacker could detect new addresses in use at that network along with
addresses that are no longer in use, and infer which addresses are
being employed by which hosts. This task is made particularly easier
by the fact that use of "temporary addresses" can be easily inferred
(since they follow different patterns from that of traditional SLAAC
addresses), and since they are re-generated periodically (i.e., after
a specific amount of time has elapsed).
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
Phone: +54 11 4650 8472 Phone: +54 11 4650 8472
Email: fgont@si6networks.com Email: fgont@si6networks.com
 End of changes. 30 change blocks. 
95 lines changed or deleted 219 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/