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