idnits 2.17.1 draft-gont-6man-stable-privacy-addresses-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- -- The document has an IETF Trust Provisions (28 Dec 2009) Section 6.c(ii) Publication Limitation clause. If this document is intended for submission to the IESG for publication, this constitutes an error. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- -- The draft header indicates that this document updates RFC4862, but the abstract doesn't seem to mention this, which it should. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year (Using the creation date from RFC4862, updated by this document, for RFC5378 checks: 2004-02-10) -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (December 15, 2011) is 4516 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'RFC2460' is defined on line 279, but no explicit reference was found in the text ** Obsolete normative reference: RFC 2460 (Obsoleted by RFC 8200) ** Obsolete normative reference: RFC 4941 (Obsoleted by RFC 8981) Summary: 2 errors (**), 0 flaws (~~), 2 warnings (==), 4 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 IPv6 maintenance Working Group (6man) F. Gont 3 Internet-Draft UK CPNI 4 Updates: 4862 (if approved) December 15, 2011 5 Intended status: Standards Track 6 Expires: June 17, 2012 8 A method for Generating Stable Privacy-Enhanced Addresses with IPv6 9 Stateless Address Autoconfiguration (SLAAC) 10 draft-gont-6man-stable-privacy-addresses-00 12 Abstract 14 This document specifies a method for generating IPv6 Interface 15 Identifiers to be used with IPv6 Stateless Address Autoconfiguration 16 (SLAAC), such that addresses configured using this method are stable 17 within each subnet, but the Interface Identifier changes when hosts 18 move from one network to another. The aforementioned method is meant 19 to be an alternative to generating Interface Identifiers based on 20 IEEE identifiers, such that the same manageability benefits can be 21 achieved without sacrificing the privacy of users. 23 Status of this Memo 25 This Internet-Draft is submitted in full conformance with the 26 provisions of BCP 78 and BCP 79. This document may not be modified, 27 and derivative works of it may not be created, and it may not be 28 published except as an Internet-Draft. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at http://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on June 17, 2012. 42 Copyright Notice 44 Copyright (c) 2011 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (http://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with respect 52 to this document. Code Components extracted from this document must 53 include Simplified BSD License text as described in Section 4.e of 54 the Trust Legal Provisions and are provided without warranty as 55 described in the Simplified BSD License. 57 Table of Contents 59 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 60 2. Design goals . . . . . . . . . . . . . . . . . . . . . . . . . 5 61 3. Algorithm specification . . . . . . . . . . . . . . . . . . . 6 62 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 63 5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 64 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 10 65 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11 66 7.1. Normative References . . . . . . . . . . . . . . . . . . . 11 67 7.2. Informative References . . . . . . . . . . . . . . . . . . 11 68 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 12 70 1. Introduction 72 [RFC4862] specifies the Stateless Address Autoconfiguration (SLAAC) 73 for IPv6, which typically results in hosts configuring one or more 74 "stable" addresses composed of a network prefix advertised by a local 75 router, and an Interface Identifier (IID) that typically embeds a 76 hardware address (using IEEE identifiers) [RFC4291]. 78 Static addresses are generally considered to simplify network 79 management, since they simplify ACLs and logging. However, since 80 IEEE identifiers are typically globally unique, the resulting IPv6 81 addresses can be leveraged to track and correlate the activity of a 82 node, thus negatively affecting the privacy of users. 84 The "Privacy Extensions for Stateless Address Autoconfiguration in 85 IPv6" [RFC4941] were introduced to difficult the task of 86 eavesdroppers and other information collectors to correlate the 87 activities of a node, and basically result in temporary (and random) 88 Interface Identifiers that are typically more difficult to leverage 89 than those based on IEEE identifiers. When privacy extensions are 90 enabled, "privacy addresses" are employed for "outgoing 91 communications", while the traditional IPv6 addresses based on IEEE 92 identifiers are still used for "server" functions (i.e., receiving 93 incoming connections). Some flavor of these "Privacy Extensions" 94 have been implemented in a variety of systems, some of which (notably 95 Microsoft Windows Vista and Microsoft Windows 7) enable them by 96 default. 98 Privacy addresses can be challenging in a number of areas. For 99 example, from a network-management point of view, they tend to 100 increase the complexity of enforcing access controls and event 101 logging. As a result, some organizations disable the use of privacy 102 addresses even at the expense of reduced privacy [Broersma]. Also, 103 they result in increased complexity, which might not be possible or 104 desirable in some implementations (e.g., some embedded devices). 106 In such scenarios in which "Privacy Extensions" are deliberately not 107 used, addresses are generated using e.g. IEEE identifiers, and are 108 subject to the privacy issues discussed above. 110 We note that even in those scenarios in which "Privacy Extensions" 111 are not used, there is still no need or desire to negatively affect 112 user privacy. As a result, this document specifies a method to 113 generate interface identifiers that are stable/constant within each 114 subnet, but that change as hosts move from one network to another, 115 thus keeping the "stability" properties of the interface identifiers 116 specified in [RFC4291], while still preventing to correlate the 117 activities of a node as it moves from one network to another. 119 On the other hand, even in scenarios in which "Privacy Extensions" 120 are employed, IPv6 addresses based on IEEE identifiers are still 121 typically used for performing "server" functions. In such scenarios, 122 implementation of the mechanism described in this document would 123 still be desirable, such that the "stable" addresses used by hosts 124 for "server" functions are not easily predictable (and hence 125 difficult host-scanning). 127 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 128 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 129 document are to be interpreted as described in RFC 2119 [RFC2119]. 131 2. Design goals 133 This document specifies a method for selecting interface identifiers 134 to be used with IPv6 SLAAC, with the following goals: 136 o The resulting interface identifier remains constant/stable for 137 each prefix used with SLAAC within each subnet. That is, the 138 algorithm generates the same interface identifier when configuring 139 an address belonging to the same prefix within the same subnet. 141 o The resulting interface identifier does change when addresses are 142 configured for different prefixes. That is, if different 143 autoconfiguration prefixes are used to configure addresses for the 144 same network interface card, the resulting interface identifiers 145 must be (statistically) different. 147 o It must be difficult for an outsider to predict the interface 148 identifiers that will be generated by the algorithm, even with 149 knowledge of the interface identifiers generated for configuring 150 other addresses. 152 o The aforementioned interface identifiers are meant to be an 153 alternative to those based on IEEE identifiers, as specified in 154 [RFC4291]. 156 We note that of use of the algorithm specified in this document is 157 (to a large extent) orthogonal to the use of "Privacy Extensions" 158 [RFC4941]. Hosts that do not implment/use "Privacy Extensions" would 159 have the benefit that they would not be subject to the host-tracking 160 issues discussed in the previous section. On the other hand, since 161 hosts implementing "Privacy Extensions" still make use of IEEE- 162 derived identifiers (mostly for performing "server" functions), 163 implementation of this algorithm would still benefit such 164 implementations, since it would prevent leakage of the Organizational 165 Unique Identifier (OUI), which would be of help to attackers for 166 host-scanning purposes [Gont-DEEPSEC2011] [CPNI-IPv6]. 168 3. Algorithm specification 170 IPv6 implementations conforming to this specification MUST generate 171 interface identifiers with the algorithm specified in this section. 172 The aforementioned algorithm MUST be employed for generating the 173 interface identifiers for all the IPv6 addresses configured with 174 SLAAC for a given interface, including IPv6 link-local addresses. 176 1. Compute a random (but stable) identifier with the expression: 178 RID = F(Prefix, Modified_EUI64, Network_ID, secret_key) 180 Where: 182 RID: 183 Random (but stable) identifier 185 F(): 186 A pseudorandom function (PRF) that is not computable from the 187 outside (without knowledge of the secret key). The PRF could 188 be implemented as a cryptographic hash of the concatenation of 189 each of the function parameters . 191 Prefix: 192 The prefix to be used for SLAAC, as learned from an ICMPv6 193 Router Advertisement message. 195 Modified_EUI64: 196 The Modified EUI-64 format identifier corresponding to this 197 network interface. 199 Network_ID: 200 Some network specific data that identifies the subnet to which 201 this interface is attached. For example the IEEE 802.11 SSID 202 corresponding to the network to which this interface is 203 associated. This parameter is OPTIONAL. 205 secret_key: 206 A secret key that is not known by the attacker. 208 2. The Interface Identifier is finally obtained by taking the 209 leftmost 64 bits of the RID value computed in the previous step, 210 and and setting bit 6 (the leftmost bit is numbered 0) to zero. 211 This creates an interface identifier with the universal/local bit 212 indicating local significance only. 214 Note that the result of F() in the algorithm above is no more secure 215 than the secret key. If an attacker is aware of PRF is being used by 216 the victim (which we should expect), and the attacker can obtain 217 enough material (i.e., addresses configured by the victim), the 218 attacker may simply search the entire secret-key space to find 219 matches. To protect against this, the secret key should be of a 220 reasonable length. Key lengths of 128 bits should be adequate. The 221 secret key can either be a true random number [RFC4086], or some per- 222 host secret. 224 Including the optional Network_ID parameter when computing the RID 225 value above would cause the algorithm to produce a different 226 Interface Identifier when connecting to different networks, even when 227 configuring addresses belonging to the same prefix. This means that 228 a host would employ a different Interface ID as it moves from one 229 network to another even for IPv6 link-local addresses. 231 4. IANA Considerations 233 There are no IANA registries within this document. The RFC-Editor 234 can remove this section before publication of this document as an 235 RFC. 237 5. Security Considerations 239 This document specifies an algorithm for generating interface 240 identifiers to be used with IPv6 Stateless Address Autoconfiguration 241 (SLAAC), in replacement of e.g. the Modified EUI-64 format 242 identifiers. When compared to modified EUI-64 format identifiers, 243 the identifiers specified in this document have a number of 244 advantages: 246 o They prevent trivial host-tracking, since when a host moves from 247 one network to another the prefix used for autoconfiguration will 248 typically change, and hence the resulting interface identifier 249 will also change. 251 o They mitigate host-scanning techniques which leverage predictable 252 interface identifiers (e.g., known Organizational Unique 253 Identifiers). 255 Finally, we note that this algorithm is meant to be an alternative 256 for e.g. the Modified EUI-64 format identifiers, but not for 257 temporary-address methods such as that specified in [RFC4941]. 258 Clearly, temporary addresses can help reduce the attack exposure 259 window, since the lifetime of each IPv6 address is reduced when 260 compared to that of addresses generated with the method specified in 261 this document. Additionally, they may be of help to correlate 262 different activities performed by the same host while attached to the 263 same network. However, we note that implementation of this algorithm 264 would still benefit those hosts employing "Privacy Addresses", since 265 it would prevent leakage of the IEEE Organizational Unique Identifier 266 (OUI) when IEEE-identifier-derived addresses are used for serve-like 267 functions, which can be of help to attackers for host-scanning 268 purposes. 270 6. Acknowledgements 272 Fernando Gont would like to thank CPNI (http://www.cpni.gov.uk) for 273 their continued support. 275 7. References 277 7.1. Normative References 279 [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 280 (IPv6) Specification", RFC 2460, December 1998. 282 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 283 Requirement Levels", BCP 14, RFC 2119, March 1997. 285 [RFC4086] Eastlake, D., Schiller, J., and S. Crocker, "Randomness 286 Requirements for Security", BCP 106, RFC 4086, June 2005. 288 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 289 Architecture", RFC 4291, February 2006. 291 [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless 292 Address Autoconfiguration", RFC 4862, September 2007. 294 [RFC4941] Narten, T., Draves, R., and S. Krishnan, "Privacy 295 Extensions for Stateless Address Autoconfiguration in 296 IPv6", RFC 4941, September 2007. 298 7.2. Informative References 300 [Gont-DEEPSEC2011] 301 Gont, "Results of a Security Assessment of the Internet 302 Protocol version 6 (IPv6)", DEEPSEC 2011 Conference, 303 Vienna, Austria, November 2011, . 307 [Broersma] 308 Broersma, R., "IPv6 Everywhere: Living with a Fully IPv6- 309 enabled environment", Australian IPv6 Summit 2010, 310 Melbourne, VIC Australia, October 2010, 311 . 313 [CPNI-IPv6] 314 Gont, F., "Security Assessment of the Internet Protocol 315 version 6 (IPv6)", UK Centre for the Protection of 316 National Infrastructure, (available on request). 318 Author's Address 320 Fernando Gont 321 UK CPNI 323 Email: fgont@si6networks.com 324 URI: http://www.cpni.gov.uk