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