draft-ietf-6man-stable-privacy-addresses-01.txt | draft-ietf-6man-stable-privacy-addresses-02.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 October 8, 2012 | Intended status: Standards Track December 30, 2012 | |||
Expires: April 11, 2013 | Expires: July 3, 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-01 | draft-ietf-6man-stable-privacy-addresses-02 | |||
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. The aforementioned method is meant | move from one network to another. The aforementioned method is meant | |||
to be an alternative to generating Interface Identifiers based on | to be an alternative to generating Interface Identifiers based on | |||
IEEE identifiers, such that the benefits of stable addresses can be | IEEE identifiers, such that the benefits of stable addresses can be | |||
skipping to change at page 1, line 38 | skipping to change at page 1, line 38 | |||
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 April 11, 2013. | This Internet-Draft will expire on July 3, 2013. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2012 IETF Trust and the persons identified as the | Copyright (c) 2012 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 . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 2. Design goals . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
3. Algorithm specification . . . . . . . . . . . . . . . . . . . 6 | 3. Algorithm specification . . . . . . . . . . . . . . . . . . . 7 | |||
4. Resolving Duplicate Address Detection (DAD) conflicts . . . . 9 | 4. Resolving Duplicate Address Detection (DAD) conflicts . . . . 10 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | |||
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 12 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . . 13 | 8.1. Normative References . . . . . . . . . . . . . . . . . . . 14 | |||
8.2. Informative References . . . . . . . . . . . . . . . . . . 13 | 8.2. Informative References . . . . . . . . . . . . . . . . . . 14 | |||
Appendix A. Privacy issues still present with RFC 4941 . . . . . 15 | Appendix A. Privacy issues still present with RFC 4941 . . . . . 16 | |||
A.1. Host tracking . . . . . . . . . . . . . . . . . . . . . . 15 | A.1. Host tracking . . . . . . . . . . . . . . . . . . . . . . 16 | |||
A.1.1. Tracking hosts across networks #1 . . . . . . . . . . 15 | A.1.1. Tracking hosts across networks #1 . . . . . . . . . . 16 | |||
A.1.2. Tracking hosts across networks #2 . . . . . . . . . . 15 | A.1.2. Tracking hosts across networks #2 . . . . . . . . . . 16 | |||
A.1.3. Revealing the identity of devices performing | A.1.3. Revealing the identity of devices performing | |||
server-like functions . . . . . . . . . . . . . . . . 16 | server-like functions . . . . . . . . . . . . . . . . 17 | |||
A.2. Address scanning attacks . . . . . . . . . . . . . . . . . 16 | A.2. Address scanning attacks . . . . . . . . . . . . . . . . . 17 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 17 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
1. Introduction | 1. Introduction | |||
[RFC4862] specifies the Stateless Address Autoconfiguration (SLAAC) | [RFC4862] specifies the Stateless Address Autoconfiguration (SLAAC) | |||
for IPv6 [RFC2460], which typically results in hosts configuring one | for IPv6 [RFC2460], which typically results in hosts configuring one | |||
or more "stable" addresses composed of a network prefix advertised by | or more "stable" addresses composed of a network prefix advertised by | |||
a local router, and an Interface Identifier (IID) that typically | a local router, and an Interface Identifier (IID) that typically | |||
embeds a hardware address (e.g., using IEEE identifiers) [RFC4291]. | embeds a hardware address (e.g., using IEEE identifiers) [RFC4291]. | |||
Generally, static addresses are thought to simplify network | Generally, stable addresses are thought to simplify network | |||
management, since they simplify Access Control Lists (ACLs) and | management, since they simplify Access Control Lists (ACLs) and | |||
logging. However, since IEEE identifiers are typically globally | logging. However, since IEEE identifiers are typically globally | |||
unique, the resulting IPv6 addresses can be leveraged to track and | unique, the resulting IPv6 addresses can be leveraged to track and | |||
correlate the activity of a node over time and across multiple | correlate the activity of a node over time and across multiple | |||
subnets and networks, thus negatively affecting the privacy of users. | subnets and networks, thus negatively affecting the privacy of users. | |||
The "Privacy Extensions for Stateless Address Autoconfiguration in | The "Privacy Extensions for Stateless Address Autoconfiguration in | |||
IPv6" [RFC4941] were introduced to complicate the task of | IPv6" [RFC4941] were introduced to complicate the task of | |||
eavesdroppers and other information collectors to correlate the | eavesdroppers and other information collectors to correlate the | |||
activities of a node, and basically result in temporary (and random) | activities of a node, and basically result in temporary (and random) | |||
skipping to change at page 4, line 33 | skipping to change at page 4, line 33 | |||
to negatively affect user privacy, but rather a desire to simplify | to negatively affect user privacy, but rather a desire to simplify | |||
operation of the network (simplify the use of ACLs, logging, etc.). | operation of the network (simplify the use of ACLs, logging, etc.). | |||
This document specifies a method to generate interface identifiers | This document specifies a method to generate interface identifiers | |||
that are stable/constant within each subnet, but that change as hosts | that are stable/constant within each subnet, but that change as hosts | |||
move from one network to another, thus keeping the "stability" | move from one network to another, thus keeping the "stability" | |||
properties of the interface identifiers specified in [RFC4291], while | properties of the interface identifiers specified in [RFC4291], while | |||
still mitigating host-scanning attacks and preventing correlation of | still mitigating host-scanning attacks and preventing correlation of | |||
the activities of a node as it moves from one network to another. | the activities of a node as it moves from one network to another. | |||
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 IDs. 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 this document | ||||
with SLAAC [RFC4862]. Additionally, from the point of view of | ||||
renumbering, we note that these addresses behave like the traditional | ||||
IPv6 addresses (that embed a hardware address) resulting from SLAAC | ||||
[RFC4862]. | ||||
For nodes that currently disable "Privacy extensions" [RFC4941] for | For nodes that currently disable "Privacy extensions" [RFC4941] for | |||
some of the reasons stated above, this mechanism provides stable | some of the reasons stated above, this mechanism provides stable | |||
privacy-enhanced addresses which may already address most of the | privacy-enhanced addresses which may already address most of the | |||
privacy concerns related to addresses that embed IEEE identifiers | privacy concerns related to addresses that embed IEEE identifiers | |||
[RFC4291]. On the other hand, in scenarios in which "Privacy | [RFC4291]. On the other hand, in scenarios in which "Privacy | |||
Extensions" are employed, implementation of the mechanism described | Extensions" are employed, implementation of the mechanism described | |||
in this document would mitigate host-scanning attacks and also | in this document would mitigate host-scanning attacks and also | |||
mitigate correlation of host activities. | mitigate correlation of host activities. | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
skipping to change at page 6, line 13 | skipping to change at page 7, line 13 | |||
(see Appendix A). | (see Appendix A). | |||
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]). The aforementioned | |||
algorithm MUST be employed for generating the interface identifiers | algorithm MUST be employed for generating the interface identifiers | |||
for all of the IPv6 addresses configured with SLAAC for a given | for all of the IPv6 addresses configured with SLAAC for a given | |||
interface, including IPv6 link-local addresses. Implementations | interface, including IPv6 link-local addresses. | |||
conforming to this specification SHOULD provide the means for a | ||||
system administrator to enable or disable the use of this algorithm | This means that this document does not formally obsolete or | |||
for generating Interface Identifiers. Implementations conforming to | deprecate any of the existing algorithms to generate Interface IDs | |||
this specification MAY employ the algorithm specified in [RFC4941] to | (e.g. such as that specified in [RFC2464]). However, those IPv6 | |||
generate temporary addresses in addition to the addresses generated | implementations that employ this specification must generate all | |||
with the algorithm specified in this document. | 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. | ||||
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 ID. | expression below MUST be included when generating an Interface ID. | |||
1. Compute a random (but stable) identifier with the expression: | 1. Compute a random (but stable) identifier with the expression: | |||
RID = F(Prefix, Interface_Index, Network_ID, DAD_Counter, | RID = F(Prefix, Interface_Index, Network_ID, DAD_Counter, | |||
secret_key) | secret_key) | |||
Where: | Where: | |||
skipping to change at page 7, line 10 | skipping to change at page 8, line 20 | |||
Some network specific data that identifies the subnet to which | Some network specific data that identifies the subnet to which | |||
this interface is attached. For example the IEEE 802.11 | this interface is attached. For example the IEEE 802.11 | |||
Service Set Identifier (SSID) corresponding to the network to | Service Set Identifier (SSID) corresponding to the network to | |||
which this interface is associated. This parameter is | which this interface is associated. This parameter is | |||
OPTIONAL. | OPTIONAL. | |||
DAD_Counter: | DAD_Counter: | |||
A counter that is employed to resolve Duplicate Address | A counter that is employed to resolve Duplicate Address | |||
Detection (DAD) conflicts. It MUST be initialized to 0, and | Detection (DAD) conflicts. It MUST be initialized to 0, and | |||
incremented by 1 for each new tentative address that is | incremented by 1 for each new tentative address that is | |||
configured as a result of a DAD conflict. See Section 4 for | configured as a result of a DAD conflict. Implementations | |||
additional details. | that record DAD_Counter in non-volatile memory for each | |||
{Prefix, Interface_Index, Network_ID} tuple MUST initialize | ||||
DAD_Counter to the recorded value if such an entry exists in | ||||
non-volatile memory). See Section 4 for additional details. | ||||
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 system installation time to a | key MUST be initialized at system installation time to a | |||
pseudo-random number (see [RFC4086] for randomness | 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 user to change the secret key. | means for the user to change the secret key. | |||
2. The Interface Identifier is finally obtained by taking the | 2. The Interface Identifier is finally obtained by taking the | |||
leftmost 64 bits of the RID value computed in the previous step, | leftmost 64 bits of the RID value computed in the previous step, | |||
and and setting bit 6 (the leftmost bit is numbered 0) to zero. | and and setting bit 6 (the leftmost bit is numbered 0) to zero. | |||
This creates an interface identifier with the universal/local bit | This creates an interface identifier with the universal/local bit | |||
indicating local significance only. | indicating local significance only. The resulting Interface | |||
Identifier should be compared against a list of reserved | ||||
interface identifiers and to those already employed in an address | ||||
of the same network interface and the same network prefix. In | ||||
the event that an unacceptable identifier has been generated, | ||||
this situation should be handled in the same way as the case of | ||||
duplicate addresses (see Section 4). | ||||
This document does not require the use of any specific PRF for the | ||||
function F() above, since the choice of such PRF is usually a trade- | ||||
off between a number of properties (processing requirements, ease of | ||||
implementation, possible intellectual property rights, etc.), and | ||||
since the best possible choice for F() might be different for | ||||
different types of devices (e.g. embedded systems vs. regular | ||||
servers) and might possibly change over time. | ||||
Note that the result of F() in the algorithm above is no more secure | Note that the result of F() in the algorithm above is no more secure | |||
than the secret key. If an attacker is aware of the PRF that is | than the secret key. If an attacker is aware of the PRF that is | |||
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 | |||
skipping to change at page 8, line 5 | skipping to change at page 10, line 5 | |||
benefit from predictable Interface IDs (such as host scanning). | benefit from predictable Interface IDs (such as host scanning). | |||
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 ID as it moves from one | a host would employ a different Interface ID as it moves from one | |||
network to another even for IPv6 link-local addresses or Unique Local | network to another even for IPv6 link-local addresses or Unique Local | |||
Addresses (ULAs). | Addresses (ULAs). | |||
Note that there are a number of ways in which these addresses | ||||
might leak out. For example, an attacker could use ICMPv6 Node | ||||
Information queries [RFC4620] to obtain such addresses. | ||||
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 MAY | 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. | |||
o A new Interface ID is generated with the algorithm specified in | o A new Interface ID is generated with the algorithm specified in | |||
Section 3, using the incremented DAD_Counter value. | Section 3, using the incremented DAD_Counter value. | |||
This procedure may be repeated a number of times until the address | This procedure may be repeated a number of times until the address | |||
conflict is resolved. However, hosts MUST limit the number of | conflict is resolved. We RECOMMEND hosts to try at least | |||
tentative addresses that are tried (rather than indefinitely try a | IDGEN_RETRIES (hereby specified as "3") tentative addresses if DAD | |||
fails for successive generated addresses, in the hopes of resolving | ||||
the address conflict. We also note that hosts MUST limit the number | ||||
of tentative addresses that are tried (rather than indefinitely try a | ||||
new tentative address until the conflict is resolved). | new tentative address until the conflict is resolved). | |||
In those (unlikely) scenarios in which duplicate addresses are | In those (unlikely) scenarios in which duplicate addresses are | |||
detected and in which the order in which the conflicting nodes | detected and in which the order in which the conflicting nodes | |||
configure their addresses may vary (e.g., because they may be | configure their addresses may vary (e.g., because they may be | |||
bootstrapped in different order), the algorithm specified in this | bootstrapped in different order), the algorithm specified in this | |||
section for resolving DAD conflicts could lead to addresses that are | section for resolving DAD conflicts could lead to addresses that are | |||
not stable within the same subnet. In order to mitigate this | not stable within the same subnet. In order to mitigate this | |||
potential problem, nodes MAY record the DAD_Counter value employed | potential problem, nodes MAY record the DAD_Counter value employed | |||
for a specific {Prefix, Interface_Index, Network_ID} tuple in non- | for a specific {Prefix, Interface_Index, Network_ID} tuple in non- | |||
skipping to change at page 11, line 9 | skipping to change at page 12, line 9 | |||
5. IANA Considerations | 5. IANA Considerations | |||
There are no IANA registries within this document. The RFC-Editor | There are no IANA registries within this document. The RFC-Editor | |||
can remove this section before publication of this document as an | can remove this section before publication of this document as an | |||
RFC. | RFC. | |||
6. Security Considerations | 6. Security Considerations | |||
This document specifies an algorithm for generating interface | This document specifies an algorithm for generating interface | |||
identifiers to be used with IPv6 Stateless Address Autoconfiguration | identifiers to be used with IPv6 Stateless Address Autoconfiguration | |||
(SLAAC), in replacement of e.g. interface identifiers that embed IEEE | (SLAAC), as an alternative to e.g. interface identifiers that embed | |||
identifiers (such as those specified in [RFC2464]). When compared to | IEEE identifiers (such as those specified in [RFC2464]). When | |||
such identifiers, the identifiers specified in this document have a | compared to such identifiers, the identifiers specified in this | |||
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 A. | identifier will also change (see Appendix A. | |||
o They mitigate host-scanning techniques which leverage predictable | o They mitigate address-scanning techniques which leverage | |||
interface identifiers (e.g., known Organizational Unique | predictable interface identifiers (e.g., known Organizational | |||
Identifiers). | Unique Identifiers) [I-D.ietf-opsec-ipv6-host-scanning]. | |||
o They result in IPv6 addresses that are independent of the | o They 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). | change if a network interface card is replaced). | |||
We note that this algorithm is meant to replace interface identifiers | We note that this algorithm is meant to be an alternative to | |||
such as those specified in [RFC2464], but not the temporary-addresses | interface identifiers such as those specified in [RFC2464], but is | |||
such as those specified in [RFC4941]. Clearly, temporary addresses | not meant as an alternative to temporary Interface IDs (such as those | |||
may help to mitigate the correlation of activities of a node within | specified in [RFC4941]). Clearly, temporary addresses may help to | |||
the same network, and may also reduce the attack exposure window | mitigate the correlation of activities of a node within the same | |||
(since the lifetime of privacy/temporary IPv6 address is reduced when | network, and may also reduce the attack exposure window (since | |||
compared to that of addresses generated with the method specified in | privacy/temporary addresses are short-lived when compared to the | |||
this document). We note that implementation of this algorithm would | addresses generated with the method specified in this document). We | |||
still benefit those hosts employing "Privacy Addresses", since it | note that implementation of this algorithm would still benefit those | |||
would mitigate host-tracking vectors still present when privacy | hosts employing "Privacy Addresses", since it would mitigate host- | |||
addresses are used (Appendix A, and would also mitigate host-scanning | tracking vectors still present when privacy addresses are used | |||
techniques that leverage patterns in IPv6 addresses that embed IEEE | (Appendix A, and would also mitigate host-scanning techniques that | |||
identifiers. | leverage patterns in IPv6 addresses that embed IEEE identifiers. | |||
Finally, we note that the method described in this document may | Finally, we note that the method described in this document may | |||
mitigate most of the privacy concerns arising from the use of IPv6 | mitigate most 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 | addresses, thus possibly offering an interesting trade-off for those | |||
scenarios in which the use of temporary addresses is not feasible. | scenarios in which the use of temporary addresses is not feasible. | |||
7. Acknowledgements | 7. 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) Karl Auer, | The author would like to thank (in alphabetical order) Karl Auer, | |||
Steven Bellovin, Matthias Bethke, Dominik Elsbroek, Bob Hinden, | Steven Bellovin, Matthias Bethke, Brian Carpenter, Dominik Elsbroek, | |||
Christian Huitema, Ray Hunter, Jong-Hyouk Lee, and Michael | Bob Hinden, Christian Huitema, Ray Hunter, Jong-Hyouk Lee, Michael | |||
Richardson, for providing valuable comments on earlier versions of | Richardson, and Ole Troan, for providing valuable comments on earlier | |||
this 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. | |||
8. References | 8. References | |||
skipping to change at page 13, line 30 | skipping to change at page 14, line 30 | |||
[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. | |||
[RFC4941] Narten, T., Draves, R., and S. Krishnan, "Privacy | [RFC4941] Narten, T., Draves, R., and S. Krishnan, "Privacy | |||
Extensions for Stateless Address Autoconfiguration in | Extensions for Stateless Address Autoconfiguration in | |||
IPv6", RFC 4941, September 2007. | IPv6", RFC 4941, September 2007. | |||
8.2. Informative References | 8.2. Informative References | |||
[RFC1948] Bellovin, S., "Defending Against Sequence Number Attacks", | ||||
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. | [RFC3493] Gilligan, R., Thomson, S., Bound, J., McCann, J., and W. | |||
Stevens, "Basic Socket Interface Extensions for IPv6", | Stevens, "Basic Socket Interface Extensions for IPv6", | |||
RFC 3493, February 2003. | RFC 3493, February 2003. | |||
[RFC3542] Stevens, W., Thomas, M., Nordmark, E., and T. Jinmei, | [RFC3542] Stevens, W., Thomas, M., Nordmark, E., and T. Jinmei, | |||
"Advanced Sockets Application Program Interface (API) for | "Advanced Sockets Application Program Interface (API) for | |||
IPv6", RFC 3542, May 2003. | IPv6", RFC 3542, May 2003. | |||
[RFC4620] Crawford, M. and B. Haberman, "IPv6 Node Information | [I-D.ietf-opsec-ipv6-host-scanning] | |||
Queries", RFC 4620, August 2006. | Gont, F. and T. Chown, "Network Reconnaissance in IPv6 | |||
Networks", draft-ietf-opsec-ipv6-host-scanning-00 (work in | ||||
[I-D.gont-opsec-ipv6-host-scanning] | progress), December 2012. | |||
Gont, F., "Network Reconnaissance in IPv6 Networks", | ||||
draft-gont-opsec-ipv6-host-scanning-01 (work in progress), | ||||
July 2012. | ||||
[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] | |||
Gont, "Recent Advances in IPv6 Security", BRUCON 2012 | Gont, "Recent Advances in IPv6 Security", BRUCON 2012 | |||
skipping to change at page 16, line 41 | skipping to change at page 17, line 41 | |||
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-IDs when | leakage by causing nodes to generate different Interface-IDs when | |||
moving to one network to another, thus mitigating this kind of | moving to one network to another, thus mitigating this kind of | |||
privacy attack. | privacy attack. | |||
A.2. Address scanning attacks | A.2. Address scanning attacks | |||
While it is usually assumed that address-scanning attacks are | While it is usually assumed that address-scanning attacks are | |||
unfeasible, an attacker could leverage patterns in IPv6 addresses to | unfeasible, an attacker could leverage patterns in IPv6 addresses to | |||
greatly reduce the search space [I-D.gont-opsec-ipv6-host-scanning] | greatly reduce the search space [I-D.ietf-opsec-ipv6-host-scanning] | |||
[Gont-BRUCON2012]. | [Gont-BRUCON2012]. | |||
As noted earlier in this document, privacy/temporary addresses do not | As noted earlier in this document, privacy/temporary addresses do not | |||
eliminate the use of IPv6 addresses that embed IEEE identifiers, and | eliminate the use of IPv6 addresses that embed IEEE identifiers, and | |||
hence such hosts would still be vulnerable to address-scanning | hence such hosts would still be vulnerable to address-scanning | |||
attacks. The method specified in this document eliminates such | attacks. The method specified in this document eliminates such | |||
patterns and would thus mitigate the aforementioned address-scanning | patterns and would thus mitigate the aforementioned address-scanning | |||
attacks. | attacks. | |||
Author's Address | Author's Address | |||
End of changes. 21 change blocks. | ||||
70 lines changed or deleted | 107 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/ |